@1money/component-ui 0.0.70 → 0.0.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +3 -2
- package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +2 -2
- package/es/business/Select/Network/NetworkSelect.js +2 -2
- package/es/components/Accordion/Accordion.js +3 -2
- package/es/components/Calendar/Calendar.js +3 -2
- package/es/components/Carousel/Carousel.js +3 -2
- package/es/components/Checkbox/BaseCheckbox.js +3 -2
- package/es/components/Checkbox/Checkbox.js +2 -2
- package/es/components/Checkbox/CheckboxGroup.js +3 -2
- package/es/components/CoachMark/CoachMark.js +3 -2
- package/es/components/Copy/Copy.js +2 -2
- package/es/components/Dialog/Dialog.js +2 -2
- package/es/components/Drawer/Drawer.js +2 -2
- package/es/components/Input/Amount/Amount.js +2 -2
- package/es/components/Input/Input/Input.js +3 -2
- package/es/components/Input/Mask/Mask.js +3 -2
- package/es/components/Input/OTP/OTP.js +3 -2
- package/es/components/Input/Password/Password.js +3 -2
- package/es/components/Input/Search/Search.js +3 -2
- package/es/components/Input/TextArea/TextArea.js +3 -2
- package/es/components/Input/Trade/Trade.js +2 -2
- package/es/components/Input/useAmountInput.js +4 -2
- package/es/components/Input/useSyncRef.js +2 -2
- package/es/components/Navigation/Nav.js +2 -2
- package/es/components/Navigation/Navigation.js +5 -2
- package/es/components/Pagination/Pagination.js +2 -2
- package/es/components/Pagination/usePagination.js +3 -2
- package/es/components/Popconfirm/Popconfirm.js +2 -2
- package/es/components/Portal/Portal.js +2 -2
- package/es/components/ProForm/ProForm.d.ts +10 -2
- package/es/components/ProForm/ProForm.js +60 -24
- package/es/components/ProForm/ProFormDependency.js +4 -1
- package/es/components/ProForm/ProFormGroup.js +2 -2
- package/es/components/ProForm/ProFormItem.js +73 -36
- package/es/components/ProForm/ProFormList.js +3 -2
- package/es/components/ProForm/SchemaForm.d.ts +7 -0
- package/es/components/ProForm/SchemaForm.js +103 -0
- package/es/components/ProForm/Submitter.js +13 -3
- package/es/components/ProForm/context.d.ts +22 -3
- package/es/components/ProForm/context.js +49 -10
- package/es/components/ProForm/core/constants.d.ts +8 -1
- package/es/components/ProForm/core/constants.js +9 -6
- package/es/components/ProForm/core/hooks/useForm.js +174 -320
- package/es/components/ProForm/core/hooks/useFormCore.js +84 -178
- package/es/components/ProForm/core/interface.d.ts +33 -12
- package/es/components/ProForm/core/pathUtils.d.ts +6 -0
- package/es/components/ProForm/core/pathUtils.js +59 -0
- package/es/components/ProForm/core/runRules.d.ts +23 -0
- package/es/components/ProForm/core/runRules.js +233 -0
- package/es/components/ProForm/core/useFormItem.d.ts +10 -1
- package/es/components/ProForm/core/useFormItem.js +105 -61
- package/es/components/ProForm/fields/ProFormDatePicker.js +4 -1
- package/es/components/ProForm/fields/createProFormField.js +64 -59
- package/es/components/ProForm/hooks/useFieldRequest.js +7 -5
- package/es/components/ProForm/index.d.ts +11 -4
- package/es/components/ProForm/index.js +7 -2
- package/es/components/ProForm/interface.d.ts +89 -14
- package/es/components/ProForm/layouts/DialogForm.d.ts +5 -1
- package/es/components/ProForm/layouts/DialogForm.js +2 -1
- package/es/components/ProForm/layouts/DrawerForm.d.ts +5 -1
- package/es/components/ProForm/layouts/DrawerForm.js +2 -1
- package/es/components/ProForm/layouts/QueryFilter.d.ts +5 -2
- package/es/components/ProForm/layouts/QueryFilter.js +79 -13
- package/es/components/ProForm/layouts/useOverlayForm.js +23 -21
- package/es/components/ProForm/style/ProForm.css +6 -0
- package/es/components/ProForm/utils.d.ts +14 -3
- package/es/components/ProForm/utils.js +73 -70
- package/es/components/ProTable/ProTable.js +3 -2
- package/es/components/ProTable/core/useAwaitableReload.js +3 -2
- package/es/components/ProTable/useFetchData.js +4 -2
- package/es/components/Radio/Radio.js +3 -2
- package/es/components/Radio/RadioGroup.js +3 -2
- package/es/components/ResizeObserver/useResizeObserver.js +2 -2
- package/es/components/Segment/Segment.js +4 -2
- package/es/components/Select/Select.js +3 -2
- package/es/components/Select/SelectCustom.js +2 -2
- package/es/components/Select/useSelectShell.js +3 -2
- package/es/components/Slider/Slider.js +3 -2
- package/es/components/Switch/Switch.js +3 -2
- package/es/components/Table/Table.js +14 -28
- package/es/components/Table/VirtualTable.js +18 -28
- package/es/components/Table/core/columnUtil.d.ts +9 -0
- package/es/components/Table/core/columnUtil.js +34 -0
- package/es/components/Table/core/useTableColumns.d.ts +4 -13
- package/es/components/Table/core/useTableColumns.js +55 -24
- package/es/components/Table/core/useTableDataPipeline.d.ts +11 -16
- package/es/components/Table/core/useTableDataPipeline.js +66 -73
- package/es/components/Table/core/useTableExpand.js +3 -2
- package/es/components/Table/core/useTableSelection.js +7 -4
- package/es/components/Table/core/useTableSetup.js +4 -2
- package/es/components/Table/features/ExpandTrigger.d.ts +9 -3
- package/es/components/Table/features/ExpandTrigger.js +14 -8
- package/es/components/Table/features/FilterTrigger.js +21 -17
- package/es/components/Table/features/SelectionColumn.d.ts +11 -6
- package/es/components/Table/features/SelectionColumn.js +12 -5
- package/es/components/Table/features/SortTrigger.d.ts +4 -2
- package/es/components/Table/features/SortTrigger.js +8 -3
- package/es/components/Table/internal/kernel/Body/MeasureCell.js +2 -2
- package/es/components/Table/internal/kernel/Cell/index.js +2 -2
- package/es/components/Table/internal/kernel/Table.js +3 -3
- package/es/components/Table/internal/kernel/VirtualTable/index.js +2 -2
- package/es/components/Table/internal/kernel/hooks/useRowInfo.js +2 -2
- package/es/components/Table/internal/kernel/selector-context/context.js +3 -3
- package/es/components/Table/renderers/HeaderCell.js +3 -2
- package/es/components/Table/renderers/TableShell.d.ts +13 -0
- package/es/components/Table/renderers/TableShell.js +25 -0
- package/es/components/Table/style/Table.css +3 -0
- package/es/components/Tabs/Tabs.js +4 -2
- package/es/components/Tooltip/Tooltip.js +3 -2
- package/es/components/Tooltip/style/Tooltip.css +1 -0
- package/es/components/Tour/Tour.js +3 -2
- package/es/components/Trigger/Trigger.js +3 -2
- package/es/components/Typography/Typography.js +2 -2
- package/es/components/Typography/useTypographyEnhancements.js +3 -2
- package/es/components/Upload/Upload.js +2 -2
- package/es/components/Upload/UploadFileBar.js +2 -2
- package/es/components/VirtualList/VirtualList.js +3 -2
- package/es/components/VirtualList/hooks/useMobileTouchMove.js +2 -2
- package/es/components/VirtualList/hooks/useScrollTo.js +2 -2
- package/es/index.css +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +9 -8
- package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +3 -3
- package/lib/business/Select/Network/NetworkSelect.js +3 -3
- package/lib/components/Accordion/Accordion.js +5 -4
- package/lib/components/Calendar/Calendar.js +6 -5
- package/lib/components/Carousel/Carousel.js +5 -4
- package/lib/components/Checkbox/BaseCheckbox.js +5 -4
- package/lib/components/Checkbox/Checkbox.js +3 -3
- package/lib/components/Checkbox/CheckboxGroup.js +7 -6
- package/lib/components/CoachMark/CoachMark.js +7 -6
- package/lib/components/Copy/Copy.js +3 -3
- package/lib/components/Dialog/Dialog.js +6 -6
- package/lib/components/Drawer/Drawer.js +10 -10
- package/lib/components/Input/Amount/Amount.js +6 -5
- package/lib/components/Input/Input/Input.js +7 -6
- package/lib/components/Input/Mask/Mask.js +9 -8
- package/lib/components/Input/OTP/OTP.js +9 -8
- package/lib/components/Input/Password/Password.js +6 -5
- package/lib/components/Input/Search/Search.js +8 -7
- package/lib/components/Input/TextArea/TextArea.js +5 -4
- package/lib/components/Input/Trade/Trade.js +5 -4
- package/lib/components/Input/useAmountInput.js +13 -11
- package/lib/components/Input/useSyncRef.js +4 -3
- package/lib/components/Navigation/Nav.js +3 -3
- package/lib/components/Navigation/Navigation.js +10 -7
- package/lib/components/Pagination/Pagination.js +4 -3
- package/lib/components/Pagination/usePagination.js +7 -6
- package/lib/components/Popconfirm/Popconfirm.js +3 -3
- package/lib/components/Portal/Portal.js +4 -4
- package/lib/components/ProForm/ProForm.d.ts +10 -2
- package/lib/components/ProForm/ProForm.js +66 -30
- package/lib/components/ProForm/ProFormDependency.js +4 -1
- package/lib/components/ProForm/ProFormGroup.js +3 -3
- package/lib/components/ProForm/ProFormItem.js +72 -34
- package/lib/components/ProForm/ProFormList.js +10 -9
- package/lib/components/ProForm/SchemaForm.d.ts +7 -0
- package/lib/components/ProForm/SchemaForm.js +110 -0
- package/lib/components/ProForm/Submitter.js +15 -5
- package/lib/components/ProForm/context.d.ts +22 -3
- package/lib/components/ProForm/context.js +49 -10
- package/lib/components/ProForm/core/constants.d.ts +8 -1
- package/lib/components/ProForm/core/constants.js +10 -7
- package/lib/components/ProForm/core/hooks/useForm.js +181 -327
- package/lib/components/ProForm/core/hooks/useFormCore.js +96 -190
- package/lib/components/ProForm/core/interface.d.ts +33 -12
- package/lib/components/ProForm/core/pathUtils.d.ts +6 -0
- package/lib/components/ProForm/core/pathUtils.js +68 -0
- package/lib/components/ProForm/core/runRules.d.ts +23 -0
- package/lib/components/ProForm/core/runRules.js +242 -0
- package/lib/components/ProForm/core/useFormItem.d.ts +10 -1
- package/lib/components/ProForm/core/useFormItem.js +106 -62
- package/lib/components/ProForm/fields/ProFormDatePicker.js +4 -1
- package/lib/components/ProForm/fields/createProFormField.js +63 -58
- package/lib/components/ProForm/hooks/useFieldRequest.js +9 -7
- package/lib/components/ProForm/index.d.ts +11 -4
- package/lib/components/ProForm/index.js +16 -1
- package/lib/components/ProForm/interface.d.ts +89 -14
- package/lib/components/ProForm/layouts/DialogForm.d.ts +5 -1
- package/lib/components/ProForm/layouts/DialogForm.js +2 -1
- package/lib/components/ProForm/layouts/DrawerForm.d.ts +5 -1
- package/lib/components/ProForm/layouts/DrawerForm.js +2 -1
- package/lib/components/ProForm/layouts/QueryFilter.d.ts +5 -2
- package/lib/components/ProForm/layouts/QueryFilter.js +84 -18
- package/lib/components/ProForm/layouts/useOverlayForm.js +27 -27
- package/lib/components/ProForm/style/ProForm.css +6 -0
- package/lib/components/ProForm/utils.d.ts +14 -3
- package/lib/components/ProForm/utils.js +91 -74
- package/lib/components/ProTable/ProTable.js +10 -9
- package/lib/components/ProTable/core/useAwaitableReload.js +6 -5
- package/lib/components/ProTable/useFetchData.js +15 -13
- package/lib/components/Radio/Radio.js +6 -5
- package/lib/components/Radio/RadioGroup.js +5 -4
- package/lib/components/ResizeObserver/useResizeObserver.js +4 -3
- package/lib/components/Segment/Segment.js +7 -5
- package/lib/components/Select/Select.js +23 -22
- package/lib/components/Select/SelectCustom.js +8 -8
- package/lib/components/Select/useSelectShell.js +5 -4
- package/lib/components/Slider/Slider.js +6 -5
- package/lib/components/Switch/Switch.js +5 -4
- package/lib/components/Table/Table.js +13 -27
- package/lib/components/Table/VirtualTable.js +17 -27
- package/lib/components/Table/core/columnUtil.d.ts +9 -0
- package/lib/components/Table/core/columnUtil.js +42 -0
- package/lib/components/Table/core/useTableColumns.d.ts +4 -13
- package/lib/components/Table/core/useTableColumns.js +57 -26
- package/lib/components/Table/core/useTableDataPipeline.d.ts +11 -16
- package/lib/components/Table/core/useTableDataPipeline.js +73 -80
- package/lib/components/Table/core/useTableExpand.js +6 -5
- package/lib/components/Table/core/useTableSelection.js +13 -10
- package/lib/components/Table/core/useTableSetup.js +8 -5
- package/lib/components/Table/features/ExpandTrigger.d.ts +9 -3
- package/lib/components/Table/features/ExpandTrigger.js +14 -8
- package/lib/components/Table/features/FilterTrigger.js +21 -17
- package/lib/components/Table/features/SelectionColumn.d.ts +11 -6
- package/lib/components/Table/features/SelectionColumn.js +12 -5
- package/lib/components/Table/features/SortTrigger.d.ts +4 -2
- package/lib/components/Table/features/SortTrigger.js +8 -3
- package/lib/components/Table/internal/kernel/Body/MeasureCell.js +3 -3
- package/lib/components/Table/internal/kernel/Cell/index.js +4 -4
- package/lib/components/Table/internal/kernel/Table.js +7 -6
- package/lib/components/Table/internal/kernel/VirtualTable/index.js +4 -4
- package/lib/components/Table/internal/kernel/hooks/useRowInfo.js +3 -3
- package/lib/components/Table/internal/kernel/selector-context/context.js +6 -5
- package/lib/components/Table/renderers/HeaderCell.js +3 -2
- package/lib/components/Table/renderers/TableShell.d.ts +13 -0
- package/lib/components/Table/renderers/TableShell.js +31 -0
- package/lib/components/Table/style/Table.css +3 -0
- package/lib/components/Tabs/Tabs.js +7 -5
- package/lib/components/Tooltip/Tooltip.js +5 -4
- package/lib/components/Tooltip/style/Tooltip.css +1 -0
- package/lib/components/Tour/Tour.js +7 -6
- package/lib/components/Trigger/Trigger.js +5 -4
- package/lib/components/Typography/Typography.js +5 -4
- package/lib/components/Typography/useTypographyEnhancements.js +8 -7
- package/lib/components/Upload/Upload.js +5 -4
- package/lib/components/Upload/UploadFileBar.js +4 -3
- package/lib/components/VirtualList/VirtualList.js +8 -7
- package/lib/components/VirtualList/hooks/useMobileTouchMove.js +4 -3
- package/lib/components/VirtualList/hooks/useScrollTo.js +3 -3
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +13 -1
- package/package.json +2 -2
- package/scripts/mcp-server/examples.generated.json +54 -0
- package/scripts/mcp-server/index.generated.json +1212 -80
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
@@ -9,10 +8,10 @@ exports["default"] = void 0;
|
|
|
9
8
|
exports.useOverlayForm = useOverlayForm;
|
|
10
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
-
var _react =
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _useControlledState3 = _interopRequireDefault(require("@1money/hooks/useControlledState"));
|
|
13
|
+
var _useDebouncedCallback2 = _interopRequireDefault(require("@1money/hooks/useDebouncedCallback"));
|
|
14
|
+
var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
|
|
16
15
|
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
17
16
|
function adopt(value) {
|
|
18
17
|
return value instanceof P ? value : new P(function (resolve) {
|
|
@@ -48,29 +47,32 @@ function useOverlayForm(options, onFinish) {
|
|
|
48
47
|
_options$autoClose = options.autoClose,
|
|
49
48
|
autoClose = _options$autoClose === void 0 ? true : _options$autoClose,
|
|
50
49
|
submitTimeout = options.submitTimeout;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
var
|
|
58
|
-
|
|
59
|
-
if (!isControlled) {
|
|
60
|
-
setInternalOpen(nextOpen);
|
|
61
|
-
}
|
|
50
|
+
// Controlled when `controlledOpen` is passed, internal otherwise — and always
|
|
51
|
+
// forward the change to `onOpenChange`.
|
|
52
|
+
var _useControlledState = (0, _useControlledState3["default"])(false, controlledOpen),
|
|
53
|
+
_useControlledState2 = (0, _slicedToArray2["default"])(_useControlledState, 2),
|
|
54
|
+
mergedOpen = _useControlledState2[0],
|
|
55
|
+
setMergedOpen = _useControlledState2[1];
|
|
56
|
+
var setOpen = (0, _useEventCallback["default"])(function (nextOpen) {
|
|
57
|
+
setMergedOpen(nextOpen);
|
|
62
58
|
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);
|
|
63
|
-
}
|
|
64
|
-
|
|
59
|
+
});
|
|
60
|
+
// Deferred auto-close after submit. `cancel` clears any pending close (e.g.
|
|
61
|
+
// when the overlay is hidden first); the timer is also auto-cancelled on
|
|
62
|
+
// unmount.
|
|
63
|
+
var _useDebouncedCallback = (0, _useDebouncedCallback2["default"])(function () {
|
|
64
|
+
return setOpen(false);
|
|
65
|
+
}, submitTimeout),
|
|
66
|
+
scheduleClose = _useDebouncedCallback.run,
|
|
67
|
+
cancelScheduledClose = _useDebouncedCallback.cancel;
|
|
68
|
+
var handleShow = (0, _useEventCallback["default"])(function () {
|
|
65
69
|
setOpen(true);
|
|
66
70
|
});
|
|
67
|
-
var handleHide = (0,
|
|
68
|
-
|
|
69
|
-
clearTimeout(timeoutRef.current);
|
|
70
|
-
}
|
|
71
|
+
var handleHide = (0, _useEventCallback["default"])(function () {
|
|
72
|
+
cancelScheduledClose();
|
|
71
73
|
setOpen(false);
|
|
72
74
|
});
|
|
73
|
-
var handleFinish = (0,
|
|
75
|
+
var handleFinish = (0, _useEventCallback["default"])(function (values) {
|
|
74
76
|
return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
75
77
|
return _regenerator["default"].wrap(function (_context) {
|
|
76
78
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -80,9 +82,7 @@ function useOverlayForm(options, onFinish) {
|
|
|
80
82
|
case 1:
|
|
81
83
|
if (autoClose) {
|
|
82
84
|
if (submitTimeout && submitTimeout > 0) {
|
|
83
|
-
|
|
84
|
-
setOpen(false);
|
|
85
|
-
}, submitTimeout);
|
|
85
|
+
scheduleClose();
|
|
86
86
|
} else {
|
|
87
87
|
setOpen(false);
|
|
88
88
|
}
|
|
@@ -114,4 +114,4 @@ function useOverlayForm(options, onFinish) {
|
|
|
114
114
|
};
|
|
115
115
|
}
|
|
116
116
|
var _default = exports["default"] = useOverlayForm;
|
|
117
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfaG9va3MiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsInVzZU92ZXJsYXlGb3JtIiwib3B0aW9ucyIsIm9uRmluaXNoIiwiX3RoaXMiLCJjb250cm9sbGVkT3BlbiIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJ0cmlnZ2VyIiwiX29wdGlvbnMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwic3VibWl0VGltZW91dCIsImlzQ29udHJvbGxlZCIsInVuZGVmaW5lZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImludGVybmFsT3BlbiIsInNldEludGVybmFsT3BlbiIsIm1lcmdlZE9wZW4iLCJ0aW1lb3V0UmVmIiwidXNlUmVmIiwic2V0T3BlbiIsInVzZUNhbGxiYWNrIiwibmV4dE9wZW4iLCJoYW5kbGVTaG93IiwidXNlRXZlbnRDYWxsYmFjayIsImhhbmRsZUhpZGUiLCJjdXJyZW50IiwiY2xlYXJUaW1lb3V0IiwiaGFuZGxlRmluaXNoIiwidmFsdWVzIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2Iiwic2V0VGltZW91dCIsInN0b3AiLCJ0cmlnZ2VyTm9kZSIsIlJlYWN0IiwiY2xvbmVFbGVtZW50Iiwib25DbGljayIsIl9hIiwib3JpZ2luYWxPbkNsaWNrIiwicHJvcHMiLCJhcmd1bWVudHMiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQWlELFNBQUFFLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBSix3QkFBQUksQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQ0hqRCxJQUFJVyxTQUFTLEdBQUksVUFBUSxTQUFLQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VBQ3JGLFNBQVNDLEtBQUtBLENBQUNDLEtBQUssRUFBRTtJQUFFLE9BQU9BLEtBQUssWUFBWUgsQ0FBQyxHQUFHRyxLQUFLLEdBQUcsSUFBSUgsQ0FBQyxDQUFDLFVBQVVJLE9BQU8sRUFBRTtNQUFFQSxPQUFPLENBQUNELEtBQUssQ0FBQztJQUFFLENBQUMsQ0FBQztFQUFFO0VBQzNHLE9BQU8sS0FBS0gsQ0FBQyxLQUFLQSxDQUFDLEdBQUdLLE9BQU8sQ0FBQyxFQUFFLFVBQVVELE9BQU8sRUFBRUUsTUFBTSxFQUFFO0lBQ3ZELFNBQVNDLFNBQVNBLENBQUNKLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUNRLElBQUksQ0FBQ04sS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT3pCLENBQUMsRUFBRTtRQUFFNEIsTUFBTSxDQUFDNUIsQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUMxRixTQUFTZ0MsUUFBUUEsQ0FBQ1AsS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQ0UsS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT3pCLENBQUMsRUFBRTtRQUFFNEIsTUFBTSxDQUFDNUIsQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUM3RixTQUFTOEIsSUFBSUEsQ0FBQ0csTUFBTSxFQUFFO01BQUVBLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHUixPQUFPLENBQUNPLE1BQU0sQ0FBQ1IsS0FBSyxDQUFDLEdBQUdELEtBQUssQ0FBQ1MsTUFBTSxDQUFDUixLQUFLLENBQUMsQ0FBQ1UsSUFBSSxDQUFDTixTQUFTLEVBQUVHLFFBQVEsQ0FBQztJQUFFO0lBQzdHRixJQUFJLENBQUMsQ0FBQ1AsU0FBUyxHQUFHQSxTQUFTLENBQUNhLEtBQUssQ0FBQ2hCLE9BQU8sRUFBRUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFVSxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ3pFLENBQUMsQ0FBQztBQUNOLENBQUM7QURhSyxTQUFVTSxjQUFjQSxDQUM1QkMsT0FBOEIsRUFDOUJDLFFBQW9FLEVBQUE7RUFBQSxJQUFBQyxLQUFBO0VBRXBFLElBQ1FDLGNBQWMsR0FLbEJILE9BQU8sQ0FMVEksSUFBSTtJQUNKQyxZQUFZLEdBSVZMLE9BQU8sQ0FKVEssWUFBWTtJQUNaQyxPQUFPLEdBR0xOLE9BQU8sQ0FIVE0sT0FBTztJQUFBQyxrQkFBQSxHQUdMUCxPQUFPLENBRlRRLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxrQkFBQSxjQUFHLElBQUksR0FBQUEsa0JBQUE7SUFDaEJFLGFBQWEsR0FDWFQsT0FBTyxDQURUUyxhQUFhO0VBR2YsSUFBTUMsWUFBWSxHQUFHUCxjQUFjLEtBQUtRLFNBQVM7RUFDakQsSUFBQUMsU0FBQSxHQUF3QyxJQUFBQyxlQUFRLEVBQUMsS0FBSyxDQUFDO0lBQUFDLFVBQUEsT0FBQUMsZUFBQSxhQUFBSCxTQUFBO0lBQWhESSxZQUFZLEdBQUFGLFVBQUE7SUFBRUcsZUFBZSxHQUFBSCxVQUFBO0VBQ3BDLElBQU1JLFVBQVUsR0FBR1IsWUFBWSxHQUFHUCxjQUFjLEdBQUdhLFlBQVk7RUFDL0QsSUFBTUcsVUFBVSxHQUFHLElBQUFDLGFBQU0sRUFBdUMsSUFBSSxDQUFDO0VBRXJFLElBQU1DLE9BQU8sR0FBRyxJQUFBQyxrQkFBVyxFQUN6QixVQUFDQyxRQUFpQixFQUFJO0lBQ3BCLElBQUksQ0FBQ2IsWUFBWSxFQUFFO01BQ2pCTyxlQUFlLENBQUNNLFFBQVEsQ0FBQztJQUMzQjtJQUNBbEIsWUFBWSxLQUFBLElBQUEsSUFBWkEsWUFBWSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFaQSxZQUFZLENBQUdrQixRQUFRLENBQUM7RUFDMUIsQ0FBQyxFQUNELENBQUNiLFlBQVksRUFBRUwsWUFBWSxDQUFDLENBQzdCO0VBRUQsSUFBTW1CLFVBQVUsR0FBRyxJQUFBQyx1QkFBZ0IsRUFBQyxZQUFLO0lBQ3ZDSixPQUFPLENBQUMsSUFBSSxDQUFDO0VBQ2YsQ0FBQyxDQUFDO0VBRUYsSUFBTUssVUFBVSxHQUFHLElBQUFELHVCQUFnQixFQUFDLFlBQUs7SUFDdkMsSUFBSU4sVUFBVSxDQUFDUSxPQUFPLEVBQUU7TUFDdEJDLFlBQVksQ0FBQ1QsVUFBVSxDQUFDUSxPQUFPLENBQUM7SUFDbEM7SUFDQU4sT0FBTyxDQUFDLEtBQUssQ0FBQztFQUNoQixDQUFDLENBQUM7RUFFRixJQUFNUSxZQUFZLEdBQUcsSUFBQUosdUJBQWdCLEVBQUMsVUFBT0ssTUFBK0I7SUFBQSxPQUFJakQsU0FBQSxDQUFBcUIsS0FBQSxFQUFBLEtBQUEsQ0FBQSxFQUFBLEtBQUEsQ0FBQSxlQUFBNkIsWUFBQSxZQUFBQyxJQUFBLENBQUEsU0FBQUMsUUFBQTtNQUFBLE9BQUFGLFlBQUEsWUFBQUcsSUFBQSxXQUFBQyxRQUFBO1FBQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUExQyxJQUFBO1VBQUE7WUFBQTBDLFFBQUEsQ0FBQTFDLElBQUE7WUFDOUUsT0FBTVEsUUFBUSxLQUFBLElBQUEsSUFBUkEsUUFBUSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFSQSxRQUFRLENBQUc2QixNQUFNLENBQUM7VUFBQTtZQUV4QixJQUFJdEIsU0FBUyxFQUFFO2NBQ2IsSUFBSUMsYUFBYSxJQUFJQSxhQUFhLEdBQUcsQ0FBQyxFQUFFO2dCQUN0Q1UsVUFBVSxDQUFDUSxPQUFPLEdBQUdVLFVBQVUsQ0FBQyxZQUFLO2tCQUNuQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ2hCLENBQUMsRUFBRVosYUFBYSxDQUFDO2NBQ25CLENBQUMsTUFBTTtnQkFDTFksT0FBTyxDQUFDLEtBQUssQ0FBQztjQUNoQjtZQUNGO1VBQUM7VUFBQTtZQUFBLE9BQUFjLFFBQUEsQ0FBQUcsSUFBQTtRQUFBO01BQUEsR0FBQUwsT0FBQTtJQUFBLENBQ0YsRUFBQTtFQUFBLEVBQUM7RUFFRjtFQUNBLElBQU1NLFdBQVcsR0FBR2pDLE9BQU8sZ0JBQ3ZCa0MsaUJBQUssQ0FBQ0MsWUFBWSxDQUFDbkMsT0FBc0QsRUFBRTtJQUN6RW9DLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQXlCO01DMUJ4QixJQUFJQyxFQUFFO01EMkJabkIsVUFBVSxDQUFBLENBQUU7TUFDWixJQUFNb0IsZUFBZSxHQUFHLENBQUFELEVBQUEsR0FBQ3JDLE9BQU8sQ0FBQ3VDLEtBQWlDLE1BQUEsSUFBQSxJQUFBRixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUQsT0FBTztNQUMzRSxJQUFJLE9BQU9FLGVBQWUsS0FBSyxVQUFVLEVBQUU7UUFDeENBLGVBQTZDLENBQUE5QyxLQUFBLFNBQUFnRCxTQUFRLENBQUM7TUFDekQ7SUFDRjtFQ3pCQSxDRDBCRCxDQUFDLEdBQ0YsSUFBSTtFQUVSLE9BQU87SUFDTDVCLFVBQVUsRUFBVkEsVUFBVTtJQUNWcUIsV0FBVyxFQUFYQSxXQUFXO0lBQ1hWLFlBQVksRUFBWkEsWUFBWTtJQUNaSCxVQUFVLEVBQVZBLFVBQVU7SUFDVkYsVUFBVSxFQUFWQTtFQzFCQSxDRDJCRDtBQUNIO0FBQUMsSUFBQXVCLFFBQUEsR0FBQUMsT0FBQSxjQUVjakQsY0FBYyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5leHBvcnQgZnVuY3Rpb24gdXNlT3ZlcmxheUZvcm0ob3B0aW9ucywgb25GaW5pc2gpIHtcbiAgICBjb25zdCB7IG9wZW46IGNvbnRyb2xsZWRPcGVuLCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXIsIGF1dG9DbG9zZSA9IHRydWUsIHN1Ym1pdFRpbWVvdXQsIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGlzQ29udHJvbGxlZCA9IGNvbnRyb2xsZWRPcGVuICE9PSB1bmRlZmluZWQ7XG4gICAgY29uc3QgW2ludGVybmFsT3Blbiwgc2V0SW50ZXJuYWxPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBtZXJnZWRPcGVuID0gaXNDb250cm9sbGVkID8gY29udHJvbGxlZE9wZW4gOiBpbnRlcm5hbE9wZW47XG4gICAgY29uc3QgdGltZW91dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZXRPcGVuID0gdXNlQ2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIGlmICghaXNDb250cm9sbGVkKSB7XG4gICAgICAgICAgICBzZXRJbnRlcm5hbE9wZW4obmV4dE9wZW4pO1xuICAgICAgICB9XG4gICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShuZXh0T3Blbik7XG4gICAgfSwgW2lzQ29udHJvbGxlZCwgb25PcGVuQ2hhbmdlXSk7XG4gICAgY29uc3QgaGFuZGxlU2hvdyA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBzZXRPcGVuKHRydWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUhpZGUgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKHRpbWVvdXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlRmluaXNoID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWVzKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHlpZWxkIChvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKSk7XG4gICAgICAgIGlmIChhdXRvQ2xvc2UpIHtcbiAgICAgICAgICAgIGlmIChzdWJtaXRUaW1lb3V0ICYmIHN1Ym1pdFRpbWVvdXQgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0sIHN1Ym1pdFRpbWVvdXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgLy8gQ2xvbmUgdHJpZ2dlciB3aXRoIG9uQ2xpY2sgaGFuZGxlclxuICAgIGNvbnN0IHRyaWdnZXJOb2RlID0gdHJpZ2dlclxuICAgICAgICA/IFJlYWN0LmNsb25lRWxlbWVudCh0cmlnZ2VyLCB7XG4gICAgICAgICAgICBvbkNsaWNrOiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTaG93KCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxPbkNsaWNrID0gKF9hID0gdHJpZ2dlci5wcm9wcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9uQ2xpY2s7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcmlnaW5hbE9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxPbkNsaWNrKC4uLmFyZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIDogbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBtZXJnZWRPcGVuLFxuICAgICAgICB0cmlnZ2VyTm9kZSxcbiAgICAgICAgaGFuZGxlRmluaXNoLFxuICAgICAgICBoYW5kbGVIaWRlLFxuICAgICAgICBoYW5kbGVTaG93LFxuICAgIH07XG59XG5leHBvcnQgZGVmYXVsdCB1c2VPdmVybGF5Rm9ybTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
117
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZURlYm91bmNlZENhbGxiYWNrMiIsIl91c2VFdmVudENhbGxiYWNrIiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwidXNlT3ZlcmxheUZvcm0iLCJvcHRpb25zIiwib25GaW5pc2giLCJfdGhpcyIsImNvbnRyb2xsZWRPcGVuIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsInRyaWdnZXIiLCJfb3B0aW9ucyRhdXRvQ2xvc2UiLCJhdXRvQ2xvc2UiLCJzdWJtaXRUaW1lb3V0IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwibWVyZ2VkT3BlbiIsInNldE1lcmdlZE9wZW4iLCJzZXRPcGVuIiwidXNlRXZlbnRDYWxsYmFjayIsIm5leHRPcGVuIiwiX3VzZURlYm91bmNlZENhbGxiYWNrIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJzY2hlZHVsZUNsb3NlIiwicnVuIiwiY2FuY2VsU2NoZWR1bGVkQ2xvc2UiLCJjYW5jZWwiLCJoYW5kbGVTaG93IiwiaGFuZGxlSGlkZSIsImhhbmRsZUZpbmlzaCIsInZhbHVlcyIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsInN0b3AiLCJ0cmlnZ2VyTm9kZSIsIlJlYWN0IiwiY2xvbmVFbGVtZW50Iiwib25DbGljayIsIl9hIiwib3JpZ2luYWxPbkNsaWNrIiwicHJvcHMiLCJhcmd1bWVudHMiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxvQkFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsc0JBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLGlCQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUNKQSxJQUFJSSxTQUFTLEdBQUksVUFBUSxTQUFLQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VBQ3JGLFNBQVNDLEtBQUtBLENBQUNDLEtBQUssRUFBRTtJQUFFLE9BQU9BLEtBQUssWUFBWUgsQ0FBQyxHQUFHRyxLQUFLLEdBQUcsSUFBSUgsQ0FBQyxDQUFDLFVBQVVJLE9BQU8sRUFBRTtNQUFFQSxPQUFPLENBQUNELEtBQUssQ0FBQztJQUFFLENBQUMsQ0FBQztFQUFFO0VBQzNHLE9BQU8sS0FBS0gsQ0FBQyxLQUFLQSxDQUFDLEdBQUdLLE9BQU8sQ0FBQyxFQUFFLFVBQVVELE9BQU8sRUFBRUUsTUFBTSxFQUFFO0lBQ3ZELFNBQVNDLFNBQVNBLENBQUNKLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUNRLElBQUksQ0FBQ04sS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUMxRixTQUFTQyxRQUFRQSxDQUFDUixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFD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QUlwQixTQUFTLEVBQUU7Y0FDYixJQUFJQyxhQUFhLElBQUlBLGFBQWEsR0FBRyxDQUFDLEVBQUU7Z0JBQ3RDWSxhQUFhLENBQUEsQ0FBRTtjQUNqQixDQUFDLE1BQU07Z0JBQ0xMLE9BQU8sQ0FBQyxLQUFLLENBQUM7Y0FDaEI7WUFDRjtVQUFDO1VBQUE7WUFBQSxPQUFBaUIsUUFBQSxDQUFBRSxJQUFBO1FBQUE7TUFBQSxHQUFBSixPQUFBO0lBQUEsQ0FDRixFQUFBO0VBQUEsRUFBQztFQUVGO0VBQ0EsSUFBTUssV0FBVyxHQUFHOUIsT0FBTyxnQkFDdkIrQixpQkFBSyxDQUFDQyxZQUFZLENBQUNoQyxPQUFzRCxFQUFFO0lBQ3pFaUMsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBeUI7TUMzQnhCLElBQUlDLEVBQUU7TUQ0QlpmLFVBQVUsQ0FBQSxDQUFFO01BQ1osSUFBTWdCLGVBQWUsR0FBRyxDQUFBRCxFQUFBLEdBQUNsQyxPQUFPLENBQUNvQyxLQUFpQyxNQUFBLElBQUEsSUFBQUYsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVELE9BQU87TUFDM0UsSUFBSSxPQUFPRSxlQUFlLEtBQUssVUFBVSxFQUFFO1FBQ3hDQSxlQUE2QyxDQUFBM0MsS0FBQSxTQUFBNkMsU0FBUSxDQUFDO01BQ3pEO0lBQ0Y7RUMxQkEsQ0QyQkQsQ0FBQyxHQUNGLElBQUk7RUFFUixPQUFPO0lBQ0w3QixVQUFVLEVBQVZBLFVBQVU7SUFDVnNCLFdBQVcsRUFBWEEsV0FBVztJQUNYVCxZQUFZLEVBQVpBLFlBQVk7SUFDWkQsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZELFVBQVUsRUFBVkE7RUMzQkEsQ0Q0QkQ7QUFDSDtBQUFDLElBQUFtQixRQUFBLEdBQUFDLE9BQUEsY0FFYzlDLGNBQWMiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZURlYm91bmNlZENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmV4cG9ydCBmdW5jdGlvbiB1c2VPdmVybGF5Rm9ybShvcHRpb25zLCBvbkZpbmlzaCkge1xuICAgIGNvbnN0IHsgb3BlbjogY29udHJvbGxlZE9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgYXV0b0Nsb3NlID0gdHJ1ZSwgc3VibWl0VGltZW91dCwgfSA9IG9wdGlvbnM7XG4gICAgLy8gQ29udHJvbGxlZCB3aGVuIGBjb250cm9sbGVkT3BlbmAgaXMgcGFzc2VkLCBpbnRlcm5hbCBvdGhlcndpc2Ug4oCUIGFuZCBhbHdheXNcbiAgICAvLyBmb3J3YXJkIHRoZSBjaGFuZ2UgdG8gYG9uT3BlbkNoYW5nZWAuXG4gICAgY29uc3QgW21lcmdlZE9wZW4sIHNldE1lcmdlZE9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGZhbHNlLCBjb250cm9sbGVkT3Blbik7XG4gICAgY29uc3Qgc2V0T3BlbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIHNldE1lcmdlZE9wZW4obmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0pO1xuICAgIC8vIERlZmVycmVkIGF1dG8tY2xvc2UgYWZ0ZXIgc3VibWl0LiBgY2FuY2VsYCBjbGVhcnMgYW55IHBlbmRpbmcgY2xvc2UgKGUuZy5cbiAgICAvLyB3aGVuIHRoZSBvdmVybGF5IGlzIGhpZGRlbiBmaXJzdCk7IHRoZSB0aW1lciBpcyBhbHNvIGF1dG8tY2FuY2VsbGVkIG9uXG4gICAgLy8gdW5tb3VudC5cbiAgICBjb25zdCB7IHJ1bjogc2NoZWR1bGVDbG9zZSwgY2FuY2VsOiBjYW5jZWxTY2hlZHVsZWRDbG9zZSB9ID0gdXNlRGVib3VuY2VkQ2FsbGJhY2soKCkgPT4gc2V0T3BlbihmYWxzZSksIHN1Ym1pdFRpbWVvdXQpO1xuICAgIGNvbnN0IGhhbmRsZVNob3cgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVIaWRlID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGNhbmNlbFNjaGVkdWxlZENsb3NlKCk7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUZpbmlzaCA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlcykgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB5aWVsZCAob25GaW5pc2ggPT09IG51bGwgfHwgb25GaW5pc2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoKHZhbHVlcykpO1xuICAgICAgICBpZiAoYXV0b0Nsb3NlKSB7XG4gICAgICAgICAgICBpZiAoc3VibWl0VGltZW91dCAmJiBzdWJtaXRUaW1lb3V0ID4gMCkge1xuICAgICAgICAgICAgICAgIHNjaGVkdWxlQ2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSkpO1xuICAgIC8vIENsb25lIHRyaWdnZXIgd2l0aCBvbkNsaWNrIGhhbmRsZXJcbiAgICBjb25zdCB0cmlnZ2VyTm9kZSA9IHRyaWdnZXJcbiAgICAgICAgPyBSZWFjdC5jbG9uZUVsZW1lbnQodHJpZ2dlciwge1xuICAgICAgICAgICAgb25DbGljazogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2hvdygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsT25DbGljayA9IChfYSA9IHRyaWdnZXIucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkNsaWNrO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxPbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsT25DbGljayguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVyZ2VkT3BlbixcbiAgICAgICAgdHJpZ2dlck5vZGUsXG4gICAgICAgIGhhbmRsZUZpbmlzaCxcbiAgICAgICAgaGFuZGxlSGlkZSxcbiAgICAgICAgaGFuZGxlU2hvdyxcbiAgICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlT3ZlcmxheUZvcm07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -27,6 +27,9 @@
|
|
|
27
27
|
.om-component-ui-form-item {
|
|
28
28
|
margin-bottom: var(--om-spacing-300, 12px);
|
|
29
29
|
}
|
|
30
|
+
.om-component-ui-form-item-large {
|
|
31
|
+
margin-bottom: var(--om-spacing-600, 24px);
|
|
32
|
+
}
|
|
30
33
|
.om-component-ui-form-item-small {
|
|
31
34
|
margin-bottom: var(--om-spacing-200, 8px);
|
|
32
35
|
}
|
|
@@ -54,6 +57,9 @@
|
|
|
54
57
|
.om-component-ui-form-item .om-component-ui-form-item-error {
|
|
55
58
|
margin-top: 8px;
|
|
56
59
|
}
|
|
60
|
+
.om-component-ui-form-item .om-component-ui-form-item-warning {
|
|
61
|
+
margin-top: 8px;
|
|
62
|
+
}
|
|
57
63
|
.om-component-ui-form-item .om-component-ui-form-item-feedback {
|
|
58
64
|
margin-top: 8px;
|
|
59
65
|
}
|
|
@@ -1,18 +1,29 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import type { ButtonProps } from "../Button";
|
|
3
|
-
import
|
|
3
|
+
import { getNestedValue, setNestedValue } from './core/pathUtils';
|
|
4
|
+
import type { ProFormDateFormatter, ProFormFieldTransformFn, ProFormValueEnumObj, ProFormValueType } from './interface';
|
|
5
|
+
export { getNestedValue, setNestedValue };
|
|
4
6
|
export declare function stableSerialize(value: unknown): string;
|
|
5
7
|
export declare function renderTextReadonly(value: unknown): ReactNode;
|
|
6
8
|
export declare function renderBooleanReadonly(value: unknown): ReactNode;
|
|
7
9
|
export declare function renderNumericReadonly(value: unknown): ReactNode;
|
|
8
|
-
export declare function getNestedValue(obj: Record<string, unknown>, path: string): unknown;
|
|
9
|
-
export declare function setNestedValue(obj: Record<string, unknown>, path: string, value: unknown): Record<string, unknown>;
|
|
10
10
|
export declare function resolveWidth(width: 'sm' | 'md' | 'lg' | 'xl' | number): number;
|
|
11
11
|
export declare function extractButtonProps(config: false | Partial<ButtonProps> | undefined): {
|
|
12
12
|
disabled: boolean;
|
|
13
13
|
rest: Partial<ButtonProps>;
|
|
14
14
|
};
|
|
15
15
|
export declare function transformSubmitValues(values: Record<string, unknown>, transforms: Record<string, ProFormFieldTransformFn>): Record<string, unknown>;
|
|
16
|
+
export declare const DATE_FORMAT = "YYYY-MM-DD";
|
|
17
|
+
export declare const DATE_TIME_FORMAT = "YYYY-MM-DD HH:mm:ss";
|
|
18
|
+
/** Minimal pattern formatter supporting YYYY / MM / DD / HH / mm / ss tokens. */
|
|
19
|
+
export declare function formatDateByPattern(date: Date, pattern: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Recursively serialize every `Date` in `values` according to `dateFormatter`.
|
|
22
|
+
* With `'string'`, fields registered as `valueType: 'dateTime'` use
|
|
23
|
+
* `YYYY-MM-DD HH:mm:ss`, everything else `YYYY-MM-DD`. Untouched when the
|
|
24
|
+
* formatter is `false`. Non-Date values pass through unchanged.
|
|
25
|
+
*/
|
|
26
|
+
export declare function formatDateValues(values: Record<string, unknown>, dateFormatter: ProFormDateFormatter, valueTypes: Record<string, ProFormValueType>): Record<string, unknown>;
|
|
16
27
|
export declare function omitNilValues(values: Record<string, unknown>): Record<string, unknown>;
|
|
17
28
|
export interface ValueEnumOption {
|
|
18
29
|
label: string;
|
|
@@ -4,25 +4,35 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
+
exports.DATE_TIME_FORMAT = exports.DATE_FORMAT = void 0;
|
|
7
8
|
exports.extractButtonProps = extractButtonProps;
|
|
8
|
-
exports.
|
|
9
|
+
exports.formatDateByPattern = formatDateByPattern;
|
|
10
|
+
exports.formatDateValues = formatDateValues;
|
|
11
|
+
Object.defineProperty(exports, "getNestedValue", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function get() {
|
|
14
|
+
return _pathUtils.getNestedValue;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
9
17
|
exports.omitNilValues = omitNilValues;
|
|
10
18
|
exports.renderBooleanReadonly = renderBooleanReadonly;
|
|
11
19
|
exports.renderNumericReadonly = renderNumericReadonly;
|
|
12
20
|
exports.renderTextReadonly = renderTextReadonly;
|
|
13
21
|
exports.resolveWidth = resolveWidth;
|
|
14
|
-
exports
|
|
22
|
+
Object.defineProperty(exports, "setNestedValue", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: function get() {
|
|
25
|
+
return _pathUtils.setNestedValue;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
15
28
|
exports.stableSerialize = stableSerialize;
|
|
16
29
|
exports.transformSubmitValues = transformSubmitValues;
|
|
17
30
|
exports.valueEnumToOptions = valueEnumToOptions;
|
|
18
31
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
19
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
20
32
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
33
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
22
34
|
var _constants = require("./constants");
|
|
23
|
-
|
|
24
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
25
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
35
|
+
var _pathUtils = require("./core/pathUtils");
|
|
26
36
|
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
27
37
|
var t = {};
|
|
28
38
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
@@ -31,6 +41,10 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
|
31
41
|
}
|
|
32
42
|
return t;
|
|
33
43
|
};
|
|
44
|
+
|
|
45
|
+
// Re-exported for consumers that import the nested-path helpers from `./utils`
|
|
46
|
+
// (ProFormDependency, ProFormList). Canonical definitions live in core/pathUtils.
|
|
47
|
+
|
|
34
48
|
// ---------------------------------------------------------------------------
|
|
35
49
|
// stableSerialize — deterministic deep serialization for params comparison
|
|
36
50
|
// ---------------------------------------------------------------------------
|
|
@@ -64,51 +78,6 @@ function renderNumericReadonly(value) {
|
|
|
64
78
|
return String(num);
|
|
65
79
|
}
|
|
66
80
|
// ---------------------------------------------------------------------------
|
|
67
|
-
// Nested path utilities
|
|
68
|
-
// ---------------------------------------------------------------------------
|
|
69
|
-
function getNestedValue(obj, path) {
|
|
70
|
-
var keys = path.split('.');
|
|
71
|
-
var current = obj;
|
|
72
|
-
var _iterator = _createForOfIteratorHelper(keys),
|
|
73
|
-
_step;
|
|
74
|
-
try {
|
|
75
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
76
|
-
var key = _step.value;
|
|
77
|
-
if (current === null || current === undefined || (0, _typeof2["default"])(current) !== 'object') {
|
|
78
|
-
return undefined;
|
|
79
|
-
}
|
|
80
|
-
current = current[key];
|
|
81
|
-
}
|
|
82
|
-
} catch (err) {
|
|
83
|
-
_iterator.e(err);
|
|
84
|
-
} finally {
|
|
85
|
-
_iterator.f();
|
|
86
|
-
}
|
|
87
|
-
return current;
|
|
88
|
-
}
|
|
89
|
-
function setNestedValue(obj, path, value) {
|
|
90
|
-
var keys = path.split('.');
|
|
91
|
-
if (keys.length === 1) return Object.assign(Object.assign({}, obj), (0, _defineProperty2["default"])({}, path, value));
|
|
92
|
-
var result = Object.assign({}, obj);
|
|
93
|
-
var current = result;
|
|
94
|
-
for (var i = 0; i < keys.length - 1; i++) {
|
|
95
|
-
var key = keys[i];
|
|
96
|
-
var nextKey = keys[i + 1];
|
|
97
|
-
var isNextArray = /^\d+$/.test(nextKey);
|
|
98
|
-
if (current[key] === undefined || current[key] === null) {
|
|
99
|
-
current[key] = isNextArray ? [] : {};
|
|
100
|
-
}
|
|
101
|
-
if (Array.isArray(current[key])) {
|
|
102
|
-
current[key] = (0, _toConsumableArray2["default"])(current[key]);
|
|
103
|
-
} else {
|
|
104
|
-
current[key] = Object.assign({}, current[key]);
|
|
105
|
-
}
|
|
106
|
-
current = current[key];
|
|
107
|
-
}
|
|
108
|
-
current[keys[keys.length - 1]] = value;
|
|
109
|
-
return result;
|
|
110
|
-
}
|
|
111
|
-
// ---------------------------------------------------------------------------
|
|
112
81
|
// resolveWidth — convert named width to px or pass through number
|
|
113
82
|
// ---------------------------------------------------------------------------
|
|
114
83
|
function resolveWidth(width) {
|
|
@@ -143,12 +112,15 @@ function isPlainObject(value) {
|
|
|
143
112
|
function transformSubmitValues(values, transforms) {
|
|
144
113
|
var keys = Object.keys(transforms);
|
|
145
114
|
if (keys.length === 0) return values;
|
|
115
|
+
// All nested writes go through setNestedValue (clones every object/array on
|
|
116
|
+
// the path) — `values` is the live form state and must never be mutated;
|
|
117
|
+
// only `result` itself (our own shallow copy) may be written directly.
|
|
146
118
|
var result = Object.assign({}, values);
|
|
147
119
|
// Process transforms in sorted key order for determinism
|
|
148
120
|
keys.sort().forEach(function (name) {
|
|
149
121
|
var transformFn = transforms[name];
|
|
150
122
|
if (typeof transformFn !== 'function') return;
|
|
151
|
-
var rawValue = getNestedValue(result, name);
|
|
123
|
+
var rawValue = (0, _pathUtils.getNestedValue)(result, name);
|
|
152
124
|
var transformed = transformFn(rawValue, name, result);
|
|
153
125
|
if (isPlainObject(transformed)) {
|
|
154
126
|
// If transform returns an object, delete original key and merge to parent
|
|
@@ -158,42 +130,87 @@ function transformSubmitValues(values, transforms) {
|
|
|
158
130
|
delete result[name];
|
|
159
131
|
Object.assign(result, transformed);
|
|
160
132
|
} else {
|
|
161
|
-
// Nested field —
|
|
133
|
+
// Nested field — rebuild the parent without the original key, merged
|
|
162
134
|
var parentPath = name.slice(0, dotIndex);
|
|
163
|
-
var parent = getNestedValue(result, parentPath);
|
|
135
|
+
var parent = (0, _pathUtils.getNestedValue)(result, parentPath);
|
|
164
136
|
if (isPlainObject(parent)) {
|
|
165
137
|
var childKey = name.slice(dotIndex + 1);
|
|
166
|
-
|
|
167
|
-
|
|
138
|
+
var newParent = Object.assign({}, parent);
|
|
139
|
+
delete newParent[childKey];
|
|
140
|
+
Object.assign(newParent, transformed);
|
|
141
|
+
result = (0, _pathUtils.setNestedValue)(result, parentPath, newParent);
|
|
168
142
|
}
|
|
169
143
|
}
|
|
170
144
|
} else {
|
|
171
|
-
// Primitive value — replace
|
|
172
|
-
|
|
173
|
-
if (_keys.length === 1) {
|
|
174
|
-
result[name] = transformed;
|
|
175
|
-
} else {
|
|
176
|
-
var current = result;
|
|
177
|
-
for (var i = 0; i < _keys.length - 1; i++) {
|
|
178
|
-
var key = _keys[i];
|
|
179
|
-
if (!isPlainObject(current[key]) && !Array.isArray(current[key])) {
|
|
180
|
-
current[key] = {};
|
|
181
|
-
}
|
|
182
|
-
current = current[key];
|
|
183
|
-
}
|
|
184
|
-
current[_keys[_keys.length - 1]] = transformed;
|
|
185
|
-
}
|
|
145
|
+
// Primitive value — replace at the (possibly nested) path
|
|
146
|
+
result = name.includes('.') ? (0, _pathUtils.setNestedValue)(result, name, transformed) : Object.assign(Object.assign({}, result), (0, _defineProperty2["default"])({}, name, transformed));
|
|
186
147
|
}
|
|
187
148
|
});
|
|
188
149
|
return result;
|
|
189
150
|
}
|
|
190
151
|
// ---------------------------------------------------------------------------
|
|
152
|
+
// Date formatting (form-level dateFormatter, dependency-free)
|
|
153
|
+
// ---------------------------------------------------------------------------
|
|
154
|
+
var DATE_FORMAT = exports.DATE_FORMAT = 'YYYY-MM-DD';
|
|
155
|
+
var DATE_TIME_FORMAT = exports.DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
|
|
156
|
+
/** Minimal pattern formatter supporting YYYY / MM / DD / HH / mm / ss tokens. */
|
|
157
|
+
function formatDateByPattern(date, pattern) {
|
|
158
|
+
var pad = function pad(n) {
|
|
159
|
+
return String(n).padStart(2, '0');
|
|
160
|
+
};
|
|
161
|
+
return pattern.replace(/YYYY/g, String(date.getFullYear())).replace(/MM/g, pad(date.getMonth() + 1)).replace(/DD/g, pad(date.getDate())).replace(/HH/g, pad(date.getHours())).replace(/mm/g, pad(date.getMinutes())).replace(/ss/g, pad(date.getSeconds()));
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Recursively serialize every `Date` in `values` according to `dateFormatter`.
|
|
165
|
+
* With `'string'`, fields registered as `valueType: 'dateTime'` use
|
|
166
|
+
* `YYYY-MM-DD HH:mm:ss`, everything else `YYYY-MM-DD`. Untouched when the
|
|
167
|
+
* formatter is `false`. Non-Date values pass through unchanged.
|
|
168
|
+
*/
|
|
169
|
+
function formatDateValues(values, dateFormatter, valueTypes) {
|
|
170
|
+
if (dateFormatter === false) return values;
|
|
171
|
+
var formatOne = function formatOne(date, path) {
|
|
172
|
+
if (typeof dateFormatter === 'function') return dateFormatter(date, path);
|
|
173
|
+
if (dateFormatter === 'number') return date.getTime();
|
|
174
|
+
if (dateFormatter === 'string') {
|
|
175
|
+
var pattern = valueTypes[path] === 'dateTime' ? DATE_TIME_FORMAT : DATE_FORMAT;
|
|
176
|
+
return formatDateByPattern(date, pattern);
|
|
177
|
+
}
|
|
178
|
+
return formatDateByPattern(date, dateFormatter);
|
|
179
|
+
};
|
|
180
|
+
var _walk = function walk(value, path) {
|
|
181
|
+
if (value instanceof Date) return formatOne(value, path);
|
|
182
|
+
if (Array.isArray(value)) {
|
|
183
|
+
var changed = false;
|
|
184
|
+
var next = value.map(function (item, index) {
|
|
185
|
+
var walked = _walk(item, path ? "".concat(path, ".").concat(index) : String(index));
|
|
186
|
+
if (walked !== item) changed = true;
|
|
187
|
+
return walked;
|
|
188
|
+
});
|
|
189
|
+
return changed ? next : value;
|
|
190
|
+
}
|
|
191
|
+
if (isPlainObject(value)) {
|
|
192
|
+
var _changed = false;
|
|
193
|
+
var _next = {};
|
|
194
|
+
for (var _i = 0, _Object$keys = Object.keys(value); _i < _Object$keys.length; _i++) {
|
|
195
|
+
var key = _Object$keys[_i];
|
|
196
|
+
var child = value[key];
|
|
197
|
+
var walked = _walk(child, path ? "".concat(path, ".").concat(key) : key);
|
|
198
|
+
if (walked !== child) _changed = true;
|
|
199
|
+
_next[key] = walked;
|
|
200
|
+
}
|
|
201
|
+
return _changed ? _next : value;
|
|
202
|
+
}
|
|
203
|
+
return value;
|
|
204
|
+
};
|
|
205
|
+
return _walk(values, '');
|
|
206
|
+
}
|
|
207
|
+
// ---------------------------------------------------------------------------
|
|
191
208
|
// omitNilValues — recursively remove null / undefined / '' from object
|
|
192
209
|
// ---------------------------------------------------------------------------
|
|
193
210
|
function omitNilValues(values) {
|
|
194
211
|
var result = {};
|
|
195
|
-
for (var
|
|
196
|
-
var key = _Object$
|
|
212
|
+
for (var _i2 = 0, _Object$keys2 = Object.keys(values); _i2 < _Object$keys2.length; _i2++) {
|
|
213
|
+
var key = _Object$keys2[_i2];
|
|
197
214
|
var v = values[key];
|
|
198
215
|
if (v === null || v === undefined || v === '') continue;
|
|
199
216
|
if (isPlainObject(v)) {
|
|
@@ -225,4 +242,4 @@ function valueEnumToOptions(valueEnum) {
|
|
|
225
242
|
};
|
|
226
243
|
});
|
|
227
244
|
}
|
|
228
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyIsImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyJdLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsImUiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiX19yZXN0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInN0YWJsZVNlcmlhbGl6ZSIsInVuZGVmaW5lZCIsIlN0cmluZyIsIl90eXBlb2YyIiwiSlNPTiIsInN0cmluZ2lmeSIsIm1hcCIsImpvaW4iLCJrZXlzIiwic29ydCIsImsiLCJyZW5kZXJUZXh0UmVhZG9ubHkiLCJyZW5kZXJCb29sZWFuUmVhZG9ubHkiLCJyZW5kZXJOdW1lcmljUmVhZG9ubHkiLCJudW0iLCJOdW1iZXIiLCJpc05hTiIsImdldE5lc3RlZFZhbHVlIiwib2JqIiwicGF0aCIsInNwbGl0IiwiY3VycmVudCIsIl9pdGVyYXRvciIsIl9zdGVwIiwia2V5IiwiZXJyIiwic2V0TmVzdGVkVmFsdWUiLCJhc3NpZ24iLCJfZGVmaW5lUHJvcGVydHkyIiwicmVzdWx0IiwibmV4dEtleSIsImlzTmV4dEFycmF5IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInJlc29sdmVXaWR0aCIsIndpZHRoIiwiX2EiLCJXSURUSF9TSVpFX01BUCIsIm1kIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwiY29uZmlnIiwiZGlzYWJsZWQiLCJyZXN0IiwiX2NvbmZpZyRkaXNhYmxlZCIsImlzUGxhaW5PYmplY3QiLCJ0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMiLCJ2YWx1ZXMiLCJ0cmFuc2Zvcm1zIiwiZm9yRWFjaCIsInRyYW5zZm9ybUZuIiwicmF3VmFsdWUiLCJ0cmFuc2Zvcm1lZCIsImRvdEluZGV4IiwibGFzdEluZGV4T2YiLCJwYXJlbnRQYXRoIiwicGFyZW50IiwiY2hpbGRLZXkiLCJvbWl0TmlsVmFsdWVzIiwiX2kiLCJfT2JqZWN0JGtleXMiLCJ2IiwiY2xlYW5lZCIsInZhbHVlRW51bVRvT3B0aW9ucyIsInZhbHVlRW51bSIsImVudHJpZXMiLCJfcmVmIiwiX3JlZjIiLCJfc2xpY2VkVG9BcnJheTIiLCJsYWJlbCIsInRleHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUE2QyxTQUFBQywyQkFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEseUJBQUFDLE1BQUEsSUFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsS0FBQUosQ0FBQSxxQkFBQUUsQ0FBQSxRQUFBRyxLQUFBLENBQUFDLE9BQUEsQ0FBQU4sQ0FBQSxNQUFBRSxDQUFBLEdBQUFLLDJCQUFBLENBQUFQLENBQUEsTUFBQUMsQ0FBQSxJQUFBRCxDQUFBLHVCQUFBQSxDQUFBLENBQUFRLE1BQUEsSUFBQU4sQ0FBQSxLQUFBRixDQUFBLEdBQUFFLENBQUEsT0FBQU8sRUFBQSxNQUFBQyxDQUFBLFlBQUFBLEVBQUEsZUFBQUMsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUEsRUFBQSxXQUFBSCxFQUFBLElBQUFULENBQUEsQ0FBQVEsTUFBQSxLQUFBSyxJQUFBLFdBQUFBLElBQUEsTUFBQUMsS0FBQSxFQUFBZCxDQUFBLENBQUFTLEVBQUEsVUFBQVIs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QUdvQyxPQUFPO01BQ3ZCO0lBQ0YsQ0FBQyxNQUFNO01BQ0wvQixNQUFNLENBQUNMLEdBQUcsQ0FBQyxHQUFHbUMsQ0FBQztJQUNqQjtFQUNGO0VBQ0EsT0FBTzlCLE1BQU07QUFDZjtBQVdNLFNBQVVnQyxrQkFBa0JBLENBQ2hDQyxTQUE4QixFQUFBO0VBRTlCLE9BQU9yRSxNQUFNLENBQUNzRSxPQUFPLENBQUNELFNBQVMsQ0FBQyxDQUFDeEQsR0FBRyxDQUFDLFVBQUEwRCxJQUFBLEVBQWtCO0lBQUEsSUFBQUMsS0FBQSxPQUFBQyxlQUFBLGFBQUFGLElBQUE7TUFBaEJ4QyxHQUFHLEdBQUF5QyxLQUFBO01BQUUxQixNQUFNLEdBQUEwQixLQUFBO0lBQ2hELElBQUksT0FBTzFCLE1BQU0sS0FBSyxRQUFRLEVBQUU7TUFDOUIsT0FBTztRQUFFNEIsS0FBSyxFQUFFNUIsTUFBTTtRQUFFL0QsS0FBSyxFQUFFZ0Q7TUFBRyxDQUFFO0lBQ3RDO0lBQ0EsT0FBTztNQUFFMkMsS0FBSyxFQUFFNUIsTUFBTSxDQUFDNkIsSUFBSTtNQUFFNUYsS0FBSyxFQUFFZ0QsR0FBRztNQUFFZ0IsUUFBUSxFQUFFRCxNQUFNLENBQUNDO0lBQVEsQ0FBRTtFQUN0RSxDQUFDLENBQUM7QUFDSiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IFdJRFRIX1NJWkVfTUFQIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBzdGFibGVTZXJpYWxpemUg4oCUIGRldGVybWluaXN0aWMgZGVlcCBzZXJpYWxpemF0aW9uIGZvciBwYXJhbXMgY29tcGFyaXNvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gc3RhYmxlU2VyaWFsaXplKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKVxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gJ1snICsgdmFsdWUubWFwKHN0YWJsZVNlcmlhbGl6ZSkuam9pbignLCcpICsgJ10nO1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmFsdWUpLnNvcnQoKTtcbiAgICByZXR1cm4gKCd7JyArXG4gICAgICAgIGtleXNcbiAgICAgICAgICAgIC5tYXAoKGspID0+IEpTT04uc3RyaW5naWZ5KGspICtcbiAgICAgICAgICAgICc6JyArXG4gICAgICAgICAgICBzdGFibGVTZXJpYWxpemUodmFsdWVba10pKVxuICAgICAgICAgICAgLmpvaW4oJywnKSArXG4gICAgICAgICd9Jyk7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlYWRvbmx5IHJlbmRlcmVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyVGV4dFJlYWRvbmx5KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckJvb2xlYW5SZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIHJldHVybiB2YWx1ZSA/ICdZZXMnIDogJ05vJztcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJOdW1lcmljUmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiAnLSc7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpXG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7XG4gICAgaWYgKE51bWJlci5pc05hTihudW0pKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIHJldHVybiBTdHJpbmcobnVtKTtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTmVzdGVkIHBhdGggdXRpbGl0aWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXN0ZWRWYWx1ZShvYmosIHBhdGgpIHtcbiAgICBjb25zdCBrZXlzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGxldCBjdXJyZW50ID0gb2JqO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudCA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBjdXJyZW50ICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzZXROZXN0ZWRWYWx1ZShvYmosIHBhdGgsIHZhbHVlKSB7XG4gICAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDEpXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG9iaiksIHsgW3BhdGhdOiB2YWx1ZSB9KTtcbiAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCBvYmopO1xuICAgIGxldCBjdXJyZW50ID0gcmVzdWx0O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgY29uc3Qga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgY29uc3QgbmV4dEtleSA9IGtleXNbaSArIDFdO1xuICAgICAgICBjb25zdCBpc05leHRBcnJheSA9IC9eXFxkKyQvLnRlc3QobmV4dEtleSk7XG4gICAgICAgIGlmIChjdXJyZW50W2tleV0gPT09IHVuZGVmaW5lZCB8fCBjdXJyZW50W2tleV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIGN1cnJlbnRba2V5XSA9IGlzTmV4dEFycmF5ID8gW10gOiB7fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50W2tleV0pKSB7XG4gICAgICAgICAgICBjdXJyZW50W2tleV0gPSBbLi4uY3VycmVudFtrZXldXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRba2V5XSA9IE9iamVjdC5hc3NpZ24oe30sIGN1cnJlbnRba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnRba2V5XTtcbiAgICB9XG4gICAgY3VycmVudFtrZXlzW2tleXMubGVuZ3RoIC0gMV1dID0gdmFsdWU7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVzb2x2ZVdpZHRoIOKAlCBjb252ZXJ0IG5hbWVkIHdpZHRoIHRvIHB4IG9yIHBhc3MgdGhyb3VnaCBudW1iZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVXaWR0aCh3aWR0aCkge1xuICAgIHZhciBfYTtcbiAgICBpZiAodHlwZW9mIHdpZHRoID09PSAnbnVtYmVyJylcbiAgICAgICAgcmV0dXJuIHdpZHRoO1xuICAgIHJldHVybiAoX2EgPSBXSURUSF9TSVpFX01BUFt3aWR0aF0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFdJRFRIX1NJWkVfTUFQLm1kO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBleHRyYWN0QnV0dG9uUHJvcHMg4oCUIHNhZmVseSBleHRyYWN0IHByb3BzIGZyb20gYnV0dG9uIGNvbmZpZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEJ1dHRvblByb3BzKGNvbmZpZykge1xuICAgIGlmIChjb25maWcgPT09IGZhbHNlIHx8IGNvbmZpZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB7IGRpc2FibGVkOiBmYWxzZSwgcmVzdDoge30gfTtcbiAgICB9XG4gICAgY29uc3QgeyBkaXNhYmxlZCA9IGZhbHNlIH0gPSBjb25maWcsIHJlc3QgPSBfX3Jlc3QoY29uZmlnLCBbXCJkaXNhYmxlZFwiXSk7XG4gICAgcmV0dXJuIHsgZGlzYWJsZWQsIHJlc3QgfTtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gdHJhbnNmb3JtU3VibWl0VmFsdWVzIOKAlCBhcHBseSByZWdpc3RlcmVkIGZpZWxkIHRyYW5zZm9ybXMgdG8gZm9ybSB2YWx1ZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXModmFsdWVzLCB0cmFuc2Zvcm1zKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRyYW5zZm9ybXMpO1xuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCB2YWx1ZXMpO1xuICAgIC8vIFByb2Nlc3MgdHJhbnNmb3JtcyBpbiBzb3J0ZWQga2V5IG9yZGVyIGZvciBkZXRlcm1pbmlzbVxuICAgIGtleXMuc29ydCgpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtRm4gPSB0cmFuc2Zvcm1zW25hbWVdO1xuICAgICAgICBpZiAodHlwZW9mIHRyYW5zZm9ybUZuICE9PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCByYXdWYWx1ZSA9IGdldE5lc3RlZFZhbHVlKHJlc3VsdCwgbmFtZSk7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkID0gdHJhbnNmb3JtRm4ocmF3VmFsdWUsIG5hbWUsIHJlc3VsdCk7XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHRyYW5zZm9ybWVkKSkge1xuICAgICAgICAgICAgLy8gSWYgdHJhbnNmb3JtIHJldHVybnMgYW4gb2JqZWN0LCBkZWxldGUgb3JpZ2luYWwga2V5IGFuZCBtZXJnZSB0byBwYXJlbnRcbiAgICAgICAgICAgIGNvbnN0IGRvdEluZGV4ID0gbmFtZS5sYXN0SW5kZXhPZignLicpO1xuICAgICAgICAgICAgaWYgKGRvdEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIC8vIFRvcC1sZXZlbCBmaWVsZCDigJQgZGVsZXRlIG9yaWdpbmFsIGFuZCBtZXJnZSBhdCByb290XG4gICAgICAgICAgICAgICAgZGVsZXRlIHJlc3VsdFtuYW1lXTtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHJlc3VsdCwgdHJhbnNmb3JtZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTmVzdGVkIGZpZWxkIOKAlCBkZWxldGUgb3JpZ2luYWwgYW5kIG1lcmdlIGludG8gcGFyZW50IG9iamVjdFxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBuYW1lLnNsaWNlKDAsIGRvdEluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBnZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHBhcmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBuYW1lLnNsaWNlKGRvdEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJlbnRbY2hpbGRLZXldO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcmVudCwgdHJhbnNmb3JtZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIFByaW1pdGl2ZSB2YWx1ZSDigJQgcmVwbGFjZSBpbi1wbGFjZVxuICAgICAgICAgICAgY29uc3Qga2V5cyA9IG5hbWUuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtuYW1lXSA9IHRyYW5zZm9ybWVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnQgPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzUGxhaW5PYmplY3QoY3VycmVudFtrZXldKSAmJiAhQXJyYXkuaXNBcnJheShjdXJyZW50W2tleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50W2tleV0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjdXJyZW50W2tleXNba2V5cy5sZW5ndGggLSAxXV0gPSB0cmFuc2Zvcm1lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIG9taXROaWxWYWx1ZXMg4oCUIHJlY3Vyc2l2ZWx5IHJlbW92ZSBudWxsIC8gdW5kZWZpbmVkIC8gJycgZnJvbSBvYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIG9taXROaWxWYWx1ZXModmFsdWVzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWVzKSkge1xuICAgICAgICBjb25zdCB2ID0gdmFsdWVzW2tleV07XG4gICAgICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCB8fCB2ID09PSAnJylcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBpZiAoaXNQbGFpbk9iamVjdCh2KSkge1xuICAgICAgICAgICAgY29uc3QgY2xlYW5lZCA9IG9taXROaWxWYWx1ZXModik7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoY2xlYW5lZCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gY2xlYW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRW51bVRvT3B0aW9ucyh2YWx1ZUVudW0pIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModmFsdWVFbnVtKS5tYXAoKFtrZXksIGNvbmZpZ10pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogY29uZmlnLCB2YWx1ZToga2V5IH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgbGFiZWw6IGNvbmZpZy50ZXh0LCB2YWx1ZToga2V5LCBkaXNhYmxlZDogY29uZmlnLmRpc2FibGVkIH07XG4gICAgfSk7XG59Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
245
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyIsImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyJdLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9wYXRoVXRpbHMiLCJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInN0YWJsZVNlcmlhbGl6ZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiU3RyaW5nIiwiX3R5cGVvZjIiLCJKU09OIiwic3RyaW5naWZ5IiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiam9pbiIsImtleXMiLCJzb3J0IiwiayIsInJlbmRlclRleHRSZWFkb25seSIsInJlbmRlckJvb2xlYW5SZWFkb25seSIsInJlbmRlck51bWVyaWNSZWFkb25seSIsIm51bSIsIk51bWJlciIsImlzTmFOIiwicmVzb2x2ZVdpZHRoIiwid2lkdGgiLCJfYSIsIldJRFRIX1NJWkVfTUFQIiwibWQiLCJleHRyYWN0QnV0dG9uUHJvcHMiLCJjb25maWciLCJkaXNhYmxlZCIsInJlc3QiLCJfY29uZmlnJGRpc2FibGVkIiwiaXNQbGFpbk9iamVjdCIsInRyYW5zZm9ybVN1Ym1pdFZhbHVlcyIsInZhbHVlcyIsInRyYW5zZm9ybXMiLCJyZXN1bHQiLCJhc3NpZ24iLCJmb3JFYWNoIiwibmFtZSIsInRyYW5zZm9ybUZuIiwicmF3VmFsdWUiLCJnZXROZXN0ZWRWYWx1ZSIsInRyYW5zZm9ybWVkIiwiZG90SW5kZXgiLCJsYXN0SW5kZXhPZiIsInBhcmVudFBhdGgiLCJzbGljZSIsInBhcmVudCIsImNoaWxkS2V5IiwibmV3UGFyZW50Iiwic2V0TmVzdGVkVmFsdWUiLCJpbmNsdWRlcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJEQVRFX0ZPUk1BVCIsImV4cG9ydHMiLCJEQVRFX1RJTUVfRk9STUFUIiwiZm9ybWF0RGF0ZUJ5UGF0dGVybiIsImRhdGUiLCJwYXR0ZXJuIiwicGFkIiwibiIsInBhZFN0YXJ0IiwicmVwbGFjZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiZ2V0SG91cnMiLCJnZXRNaW51dGVzIiwiZ2V0U2Vjb25kcyIsImZvcm1hdERhdGVWYWx1ZXMiLCJkYXRlRm9ybWF0dGVyIiwidmFsdWVUeXBlcyIsImZvcm1hdE9uZSIsInBhdGgiLCJnZXRUaW1lIiwid2FsayIsIkRhdGUiLCJjaGFuZ2VkIiwibmV4dCIsIml0ZW0iLCJpbmRleCIsIndhbGtlZCIsImNvbmNhdCIsIl9pIiwiX09iamVjdCRrZXlzIiwia2V5IiwiY2hpbGQiLCJvbWl0TmlsVmFsdWVzIiwiX2kyIiwiX09iamVjdCRrZXlzMiIsInYiLCJjbGVhbmVkIiwidmFsdWVFbnVtVG9PcHRpb25zIiwidmFsdWVFbnVtIiwiZW50cmllcyIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5MiIsImxhYmVsIiwidGV4dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FDSEEsSUFBSUUsTUFBTSxHQUFJLFVBQVEsU0FBS0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FB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O0lBQ0YsQ0FBQyxNQUFNO01BQ0x4RCxNQUFNLENBQUNrRCxHQUFHLENBQUMsR0FBR0ssQ0FBQztJQUNqQjtFQUNGO0VBQ0EsT0FBT3ZELE1BQU07QUFDZjtBQVdNLFNBQVV5RCxrQkFBa0JBLENBQ2hDQyxTQUE4QixFQUFBO0VBRTlCLE9BQU9yRyxNQUFNLENBQUNzRyxPQUFPLENBQUNELFNBQVMsQ0FBQyxDQUFDbkYsR0FBRyxDQUFDLFVBQUFxRixJQUFBLEVBQWtCO0lBQUEsSUFBQUMsS0FBQSxPQUFBQyxlQUFBLGFBQUFGLElBQUE7TUFBaEJWLEdBQUcsR0FBQVcsS0FBQTtNQUFFckUsTUFBTSxHQUFBcUUsS0FBQTtJQUNoRCxJQUFJLE9BQU9yRSxNQUFNLEtBQUssUUFBUSxFQUFFO01BQzlCLE9BQU87UUFBRXVFLEtBQUssRUFBRXZFLE1BQU07UUFBRXpCLEtBQUssRUFBRW1GO01BQUcsQ0FBRTtJQUN0QztJQUNBLE9BQU87TUFBRWEsS0FBSyxFQUFFdkUsTUFBTSxDQUFDd0UsSUFBSTtNQUFFakcsS0FBSyxFQUFFbUYsR0FBRztNQUFFekQsUUFBUSxFQUFFRCxNQUFNLENBQUNDO0lBQVEsQ0FBRTtFQUN0RSxDQUFDLENBQUM7QUFDSiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IFdJRFRIX1NJWkVfTUFQIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUsIHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG4vLyBSZS1leHBvcnRlZCBmb3IgY29uc3VtZXJzIHRoYXQgaW1wb3J0IHRoZSBuZXN0ZWQtcGF0aCBoZWxwZXJzIGZyb20gYC4vdXRpbHNgXG4vLyAoUHJvRm9ybURlcGVuZGVuY3ksIFByb0Zvcm1MaXN0KS4gQ2Fub25pY2FsIGRlZmluaXRpb25zIGxpdmUgaW4gY29yZS9wYXRoVXRpbHMuXG5leHBvcnQgeyBnZXROZXN0ZWRWYWx1ZSwgc2V0TmVzdGVkVmFsdWUgfTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gc3RhYmxlU2VyaWFsaXplIOKAlCBkZXRlcm1pbmlzdGljIGRlZXAgc2VyaWFsaXphdGlvbiBmb3IgcGFyYW1zIGNvbXBhcmlzb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIHN0YWJsZVNlcmlhbGl6ZSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JylcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICdbJyArIHZhbHVlLm1hcChzdGFibGVTZXJpYWxpemUpLmpvaW4oJywnKSArICddJztcbiAgICB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbHVlKS5zb3J0KCk7XG4gICAgcmV0dXJuICgneycgK1xuICAgICAgICBrZXlzXG4gICAgICAgICAgICAubWFwKChrKSA9PiBKU09OLnN0cmluZ2lmeShrKSArXG4gICAgICAgICAgICAnOicgK1xuICAgICAgICAgICAgc3RhYmxlU2VyaWFsaXplKHZhbHVlW2tdKSlcbiAgICAgICAgICAgIC5qb2luKCcsJykgK1xuICAgICAgICAnfScpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkb25seSByZW5kZXJlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclRleHRSZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJylcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJCb29sZWFuUmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gdmFsdWUgPyAnWWVzJyA6ICdObyc7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTnVtZXJpY1JlYWRvbmx5KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKVxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4obnVtKSlcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKG51bSk7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlc29sdmVXaWR0aCDigJQgY29udmVydCBuYW1lZCB3aWR0aCB0byBweCBvciBwYXNzIHRocm91Z2ggbnVtYmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlV2lkdGgod2lkdGgpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcicpXG4gICAgICAgIHJldHVybiB3aWR0aDtcbiAgICByZXR1cm4gKF9hID0gV0lEVEhfU0laRV9NQVBbd2lkdGhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBXSURUSF9TSVpFX01BUC5tZDtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZXh0cmFjdEJ1dHRvblByb3BzIOKAlCBzYWZlbHkgZXh0cmFjdCBwcm9wcyBmcm9tIGJ1dHRvbiBjb25maWdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RCdXR0b25Qcm9wcyhjb25maWcpIHtcbiAgICBpZiAoY29uZmlnID09PSBmYWxzZSB8fCBjb25maWcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4geyBkaXNhYmxlZDogZmFsc2UsIHJlc3Q6IHt9IH07XG4gICAgfVxuICAgIGNvbnN0IHsgZGlzYWJsZWQgPSBmYWxzZSB9ID0gY29uZmlnLCByZXN0ID0gX19yZXN0KGNvbmZpZywgW1wiZGlzYWJsZWRcIl0pO1xuICAgIHJldHVybiB7IGRpc2FibGVkLCByZXN0IH07XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyDigJQgYXBwbHkgcmVnaXN0ZXJlZCBmaWVsZCB0cmFuc2Zvcm1zIHRvIGZvcm0gdmFsdWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHZhbHVlcywgdHJhbnNmb3Jtcykge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0cmFuc2Zvcm1zKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgLy8gQWxsIG5lc3RlZCB3cml0ZXMgZ28gdGhyb3VnaCBzZXROZXN0ZWRWYWx1ZSAoY2xvbmVzIGV2ZXJ5IG9iamVjdC9hcnJheSBvblxuICAgIC8vIHRoZSBwYXRoKSDigJQgYHZhbHVlc2AgaXMgdGhlIGxpdmUgZm9ybSBzdGF0ZSBhbmQgbXVzdCBuZXZlciBiZSBtdXRhdGVkO1xuICAgIC8vIG9ubHkgYHJlc3VsdGAgaXRzZWxmIChvdXIgb3duIHNoYWxsb3cgY29weSkgbWF5IGJlIHdyaXR0ZW4gZGlyZWN0bHkuXG4gICAgbGV0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIHZhbHVlcyk7XG4gICAgLy8gUHJvY2VzcyB0cmFuc2Zvcm1zIGluIHNvcnRlZCBrZXkgb3JkZXIgZm9yIGRldGVybWluaXNtXG4gICAga2V5cy5zb3J0KCkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1GbiA9IHRyYW5zZm9ybXNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgdHJhbnNmb3JtRm4gIT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gZ2V0TmVzdGVkVmFsdWUocmVzdWx0LCBuYW1lKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1GbihyYXdWYWx1ZSwgbmFtZSwgcmVzdWx0KTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodHJhbnNmb3JtZWQpKSB7XG4gICAgICAgICAgICAvLyBJZiB0cmFuc2Zvcm0gcmV0dXJucyBhbiBvYmplY3QsIGRlbGV0ZSBvcmlnaW5hbCBrZXkgYW5kIG1lcmdlIHRvIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgZG90SW5kZXggPSBuYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICAgICAgICBpZiAoZG90SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gVG9wLWxldmVsIGZpZWxkIOKAlCBkZWxldGUgb3JpZ2luYWwgYW5kIG1lcmdlIGF0IHJvb3RcbiAgICAgICAgICAgICAgICBkZWxldGUgcmVzdWx0W25hbWVdO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LCB0cmFuc2Zvcm1lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBOZXN0ZWQgZmllbGQg4oCUIHJlYnVpbGQgdGhlIHBhcmVudCB3aXRob3V0IHRoZSBvcmlnaW5hbCBrZXksIG1lcmdlZFxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBuYW1lLnNsaWNlKDAsIGRvdEluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBnZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHBhcmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBuYW1lLnNsaWNlKGRvdEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IE9iamVjdC5hc3NpZ24oe30sIHBhcmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdQYXJlbnRbY2hpbGRLZXldO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG5ld1BhcmVudCwgdHJhbnNmb3JtZWQpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgsIG5ld1BhcmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gUHJpbWl0aXZlIHZhbHVlIOKAlCByZXBsYWNlIGF0IHRoZSAocG9zc2libHkgbmVzdGVkKSBwYXRoXG4gICAgICAgICAgICByZXN1bHQgPSBuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKHJlc3VsdCwgbmFtZSwgdHJhbnNmb3JtZWQpXG4gICAgICAgICAgICAgICAgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHJlc3VsdCksIHsgW25hbWVdOiB0cmFuc2Zvcm1lZCB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERhdGUgZm9ybWF0dGluZyAoZm9ybS1sZXZlbCBkYXRlRm9ybWF0dGVyLCBkZXBlbmRlbmN5LWZyZWUpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBjb25zdCBEQVRFX0ZPUk1BVCA9ICdZWVlZLU1NLUREJztcbmV4cG9ydCBjb25zdCBEQVRFX1RJTUVfRk9STUFUID0gJ1lZWVktTU0tREQgSEg6bW06c3MnO1xuLyoqIE1pbmltYWwgcGF0dGVybiBmb3JtYXR0ZXIgc3VwcG9ydGluZyBZWVlZIC8gTU0gLyBERCAvIEhIIC8gbW0gLyBzcyB0b2tlbnMuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKSB7XG4gICAgY29uc3QgcGFkID0gKG4pID0+IFN0cmluZyhuKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBwYXR0ZXJuXG4gICAgICAgIC5yZXBsYWNlKC9ZWVlZL2csIFN0cmluZyhkYXRlLmdldEZ1bGxZZWFyKCkpKVxuICAgICAgICAucmVwbGFjZSgvTU0vZywgcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpKVxuICAgICAgICAucmVwbGFjZSgvREQvZywgcGFkKGRhdGUuZ2V0RGF0ZSgpKSlcbiAgICAgICAgLnJlcGxhY2UoL0hIL2csIHBhZChkYXRlLmdldEhvdXJzKCkpKVxuICAgICAgICAucmVwbGFjZSgvbW0vZywgcGFkKGRhdGUuZ2V0TWludXRlcygpKSlcbiAgICAgICAgLnJlcGxhY2UoL3NzL2csIHBhZChkYXRlLmdldFNlY29uZHMoKSkpO1xufVxuLyoqXG4gKiBSZWN1cnNpdmVseSBzZXJpYWxpemUgZXZlcnkgYERhdGVgIGluIGB2YWx1ZXNgIGFjY29yZGluZyB0byBgZGF0ZUZvcm1hdHRlcmAuXG4gKiBXaXRoIGAnc3RyaW5nJ2AsIGZpZWxkcyByZWdpc3RlcmVkIGFzIGB2YWx1ZVR5cGU6ICdkYXRlVGltZSdgIHVzZVxuICogYFlZWVktTU0tREQgSEg6bW06c3NgLCBldmVyeXRoaW5nIGVsc2UgYFlZWVktTU0tRERgLiBVbnRvdWNoZWQgd2hlbiB0aGVcbiAqIGZvcm1hdHRlciBpcyBgZmFsc2VgLiBOb24tRGF0ZSB2YWx1ZXMgcGFzcyB0aHJvdWdoIHVuY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVzKSB7XG4gICAgaWYgKGRhdGVGb3JtYXR0ZXIgPT09IGZhbHNlKVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIGNvbnN0IGZvcm1hdE9uZSA9IChkYXRlLCBwYXRoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0ZUZvcm1hdHRlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgIHJldHVybiBkYXRlRm9ybWF0dGVyKGRhdGUsIHBhdGgpO1xuICAgICAgICBpZiAoZGF0ZUZvcm1hdHRlciA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIGlmIChkYXRlRm9ybWF0dGVyID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgcGF0dGVybiA9IHZhbHVlVHlwZXNbcGF0aF0gPT09ICdkYXRlVGltZScgPyBEQVRFX1RJTUVfRk9STUFUIDogREFURV9GT1JNQVQ7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBkYXRlRm9ybWF0dGVyKTtcbiAgICB9O1xuICAgIGNvbnN0IHdhbGsgPSAodmFsdWUsIHBhdGgpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPbmUodmFsdWUsIHBhdGgpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gdmFsdWUubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdhbGtlZCA9IHdhbGsoaXRlbSwgcGF0aCA/IGAke3BhdGh9LiR7aW5kZXh9YCA6IFN0cmluZyhpbmRleCkpO1xuICAgICAgICAgICAgICAgIGlmICh3YWxrZWQgIT09IGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB3YWxrZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gdmFsdWVba2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCB3YWxrZWQgPSB3YWxrKGNoaWxkLCBwYXRoID8gYCR7cGF0aH0uJHtrZXl9YCA6IGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHdhbGtlZCAhPT0gY2hpbGQpXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5leHRba2V5XSA9IHdhbGtlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIHJldHVybiB3YWxrKHZhbHVlcywgJycpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvbWl0TmlsVmFsdWVzIOKAlCByZWN1cnNpdmVseSByZW1vdmUgbnVsbCAvIHVuZGVmaW5lZCAvICcnIGZyb20gb2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBvbWl0TmlsVmFsdWVzKHZhbHVlcykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlcykpIHtcbiAgICAgICAgY29uc3QgdiA9IHZhbHVlc1trZXldO1xuICAgICAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gJycpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodikpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuZWQgPSBvbWl0TmlsVmFsdWVzKHYpO1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGNsZWFuZWQpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IGNsZWFuZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IHY7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUVudW1Ub09wdGlvbnModmFsdWVFbnVtKSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHZhbHVlRW51bSkubWFwKChba2V5LCBjb25maWddKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6IGNvbmZpZywgdmFsdWU6IGtleSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGxhYmVsOiBjb25maWcudGV4dCwgdmFsdWU6IGtleSwgZGlzYWJsZWQ6IGNvbmZpZy5kaXNhYmxlZCB9O1xuICAgIH0pO1xufSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|