@onepercentio/one-ui 0.28.5 → 0.28.7
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/dist/components/AdaptiveButton/AdaptiveButton.js +12 -8
- package/dist/components/AdaptiveButton/index.js +2 -2
- package/dist/components/AdaptiveContainer/AdaptiveContainer.d.ts +2 -2
- package/dist/components/AdaptiveContainer/AdaptiveContainer.js +58 -30
- package/dist/components/AdaptiveContainer/AdaptiveContainer.module.scss +2 -2
- package/dist/components/AdaptiveContainer/index.js +2 -2
- package/dist/components/AdaptiveDialog/AdaptiveDialog.js +8 -9
- package/dist/components/AdaptiveDialog/index.js +2 -2
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.js +19 -18
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.js +2 -2
- package/dist/components/AdaptiveSidebar/index.js +2 -2
- package/dist/components/AnchoredTooltip/AnchoredTooltip.d.ts +1 -1
- package/dist/components/AnchoredTooltip/AnchoredTooltip.js +20 -21
- package/dist/components/AnchoredTooltip/index.js +2 -2
- package/dist/components/AnimatedEntrance/AnimatedEntrance.js +9 -11
- package/dist/components/AnimatedEntrance/index.js +2 -3
- package/dist/components/AsyncWrapper/AsyncWrapper.js +2 -2
- package/dist/components/AsyncWrapper/index.js +2 -2
- package/dist/components/Avatar/Avatar.js +5 -6
- package/dist/components/Avatar/index.js +2 -2
- package/dist/components/BucketFill/BucketFill.js +6 -7
- package/dist/components/BucketFill/index.js +2 -2
- package/dist/components/Button/Button.js +13 -15
- package/dist/components/Button/index.js +2 -2
- package/dist/components/Card/Card.js +3 -3
- package/dist/components/Card/index.js +2 -2
- package/dist/components/Chart/Chart.logic.js +2 -2
- package/dist/components/Chart/Chart.types.js +1 -1
- package/dist/components/Chart/Chart.view.js +7 -8
- package/dist/components/Chart/index.js +2 -2
- package/dist/components/CheckBox/CheckBox.js +17 -14
- package/dist/components/CheckBox/index.js +2 -2
- package/dist/components/CodeInput/CodeInput.js +5 -6
- package/dist/components/CodeInput/index.js +2 -2
- package/dist/components/Collapsable/Collapsable.js +33 -29
- package/dist/components/Collapsable/index.js +2 -2
- package/dist/components/Countdown/Countdown.js +7 -8
- package/dist/components/Countdown/index.js +2 -2
- package/dist/components/CurrencyInput/CurrencyInput.hook.js +2 -2
- package/dist/components/CurrencyInput/CurrencyInput.js +14 -11
- package/dist/components/CurrencyInput/index.js +2 -2
- package/dist/components/Divider/Divider.js +3 -3
- package/dist/components/Divider/index.js +2 -2
- package/dist/components/EmailInput/EmailInput.js +5 -7
- package/dist/components/EmailInput/index.js +2 -3
- package/dist/components/FadeIn/FadeIn.js +16 -15
- package/dist/components/FadeIn/index.js +2 -2
- package/dist/components/FileInput/FileInput.js +11 -10
- package/dist/components/FileInput/View/BigFactory/BigFactory.js +3 -3
- package/dist/components/FileInput/View/BigFactory/index.js +2 -2
- package/dist/components/FileInput/View/Compact/Compact.js +7 -9
- package/dist/components/FileInput/View/Compact/index.js +2 -3
- package/dist/components/FileInput/View/View.types.js +1 -1
- package/dist/components/FileInput/index.js +2 -2
- package/dist/components/FlowController/FlowController.d.ts +1 -1
- package/dist/components/FlowController/FlowController.js +3 -3
- package/dist/components/FlowController/index.js +2 -2
- package/dist/components/Form/Form.js +16 -16
- package/dist/components/Form/index.js +2 -2
- package/dist/components/Form/v2/Form.hook.js +16 -21
- package/dist/components/Form/v2/Form.js +11 -10
- package/dist/components/Form/v2/Form.types.js +6 -11
- package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.js +4 -4
- package/dist/components/Form/v2/FormField/Extensions/DateField/index.js +2 -2
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.js +3 -4
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.js +2 -2
- package/dist/components/Form/v2/FormField/FormField.js +13 -9
- package/dist/components/Form/v2/FormField/FormField.types.js +2 -3
- package/dist/components/Form/v2/FormField/index.js +2 -2
- package/dist/components/Form/v2/index.js +2 -2
- package/dist/components/Freeze/Freeze.js +2 -2
- package/dist/components/Freeze/index.js +2 -2
- package/dist/components/HSForms/HSForms.js +5 -16
- package/dist/components/HSForms/index.js +2 -2
- package/dist/components/Header/Header.js +8 -9
- package/dist/components/Header/index.js +2 -2
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.js +3 -3
- package/dist/components/HeaderCloseBtn/index.js +2 -2
- package/dist/components/InfinityScroll/InfinityScroll.js +14 -13
- package/dist/components/InfinityScroll/index.js +2 -2
- package/dist/components/Input/Input.js +24 -24
- package/dist/components/Input/index.js +2 -2
- package/dist/components/InstantCounter/InstantCounter.js +3 -5
- package/dist/components/InstantCounter/index.js +2 -2
- package/dist/components/LavaLamp/LavaLamp.data.js +3 -4
- package/dist/components/LavaLamp/LavaLamp.js +11 -12
- package/dist/components/LavaLamp/index.js +2 -2
- package/dist/components/LavaLamp/v2/LavaLamp.js +9 -9
- package/dist/components/LinkToId/LinkToId.js +2 -2
- package/dist/components/LinkToId/index.js +2 -3
- package/dist/components/Loader/Loader.js +10 -7
- package/dist/components/Loader/index.js +2 -2
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.js +2 -3
- package/dist/components/LoaderDotsIndicator/index.js +2 -2
- package/dist/components/LoopableVideo/LoopableVideo.js +11 -8
- package/dist/components/LoopableVideo/index.js +2 -2
- package/dist/components/MainGrid/MainGrid.js +4 -6
- package/dist/components/MainGrid/index.js +2 -2
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.js +13 -10
- package/dist/components/MutableHamburgerButton/index.js +2 -2
- package/dist/components/Notification/Notification.js +3 -3
- package/dist/components/Notification/index.js +2 -2
- package/dist/components/OrderableList/OrderableList.js +47 -44
- package/dist/components/OrderableList/index.js +2 -2
- package/dist/components/PaginationIndicator/PaginationIndicator.js +23 -26
- package/dist/components/PaginationIndicator/index.js +2 -2
- package/dist/components/Parallax/Parallax.js +25 -24
- package/dist/components/Parallax/index.js +2 -2
- package/dist/components/Parallax/math/helpers.js +2 -3
- package/dist/components/PasswordInput/PasswordInput.js +5 -7
- package/dist/components/PasswordInput/index.js +2 -2
- package/dist/components/PingPongText/PingPongText.js +7 -9
- package/dist/components/PingPongText/index.js +2 -2
- package/dist/components/PixelatedScan/PixelatedScan.js +19 -16
- package/dist/components/PixelatedScan/index.js +2 -2
- package/dist/components/Portal/Portal.js +14 -13
- package/dist/components/Portal/index.js +2 -3
- package/dist/components/ProgressBar/ProgressBar.js +28 -25
- package/dist/components/ProgressBar/index.js +2 -3
- package/dist/components/ProgressTexts/ProgressTexts.js +3 -3
- package/dist/components/ProgressTexts/index.js +2 -2
- package/dist/components/Radio/Radio.js +17 -14
- package/dist/components/Radio/index.js +2 -2
- package/dist/components/SectionContainer/SectionContainer.d.ts +1 -1
- package/dist/components/SectionContainer/SectionContainer.js +7 -9
- package/dist/components/SectionContainer/index.js +2 -2
- package/dist/components/Select/Select.js +24 -23
- package/dist/components/Select/index.js +2 -2
- package/dist/components/Skeleton/Skeleton.js +5 -5
- package/dist/components/Skeleton/index.js +2 -2
- package/dist/components/Spacing/Spacing.js +4 -5
- package/dist/components/Spacing/index.js +2 -2
- package/dist/components/StaticScroller/StaticScroller.js +12 -11
- package/dist/components/StaticScroller/index.js +2 -2
- package/dist/components/Switch/Switch.js +14 -11
- package/dist/components/Switch/index.js +2 -2
- package/dist/components/Table/Table.js +5 -6
- package/dist/components/Table/index.js +2 -2
- package/dist/components/Tabs/Tabs.js +6 -8
- package/dist/components/Tabs/index.js +2 -2
- package/dist/components/Text/Text.js +14 -13
- package/dist/components/Text/index.js +2 -2
- package/dist/components/Transition/MasksFactory/DiagonalReveal.js +11 -11
- package/dist/components/Transition/MasksFactory/DiagonalSquareToBalls.js +16 -17
- package/dist/components/Transition/MasksFactory/PhysicsSquares.js +5 -5
- package/dist/components/Transition/MasksFactory/SquareToBalls.js +15 -16
- package/dist/components/Transition/MasksFactory/utils.js +1 -1
- package/dist/components/Transition/Transition.js +45 -48
- package/dist/components/Transition/index.js +2 -3
- package/dist/components/UncontrolledTransition/UncontrolledTransition.js +37 -39
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.js +4 -5
- package/dist/components/UncontrolledTransition/index.js +2 -3
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.js +8 -11
- package/dist/components/WalletConnectionWrapper/index.js +2 -3
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.js +3 -4
- package/dist/components/utilitary/ScrollAndFocusLock/index.js +2 -2
- package/dist/context/AsyncProcess.js +12 -10
- package/dist/context/ContextAsyncControl.js +10 -7
- package/dist/context/CustomBrowserRouter.js +5 -6
- package/dist/context/OneUIProvider.d.ts +3 -2
- package/dist/context/OneUIProvider.js +7 -28
- package/dist/hooks/logs/useDependencyChangeDetection.js +2 -2
- package/dist/hooks/logs/useIsMounting.js +1 -1
- package/dist/hooks/persistence/useLocalStorage.js +1 -1
- package/dist/hooks/shims/ObjectWatchShim.js +1 -1
- package/dist/hooks/ui/useAdaptiveImage.js +3 -4
- package/dist/hooks/ui/useAlternating.js +1 -1
- package/dist/hooks/ui/useBreakpoint.js +2 -2
- package/dist/hooks/ui/useCustomScrollbar.js +2 -2
- package/dist/hooks/ui/useEffectIf.js +1 -1
- package/dist/hooks/ui/useMouseHover.js +2 -2
- package/dist/hooks/ui/usePaginationControls.js +26 -21
- package/dist/hooks/ui/useSnapToViewport.js +6 -6
- package/dist/hooks/ui/useTilt.js +7 -5
- package/dist/hooks/ui/useZoomable.js +8 -9
- package/dist/hooks/useAsyncControl.js +28 -32
- package/dist/hooks/useContainedRepositioning.js +6 -6
- package/dist/hooks/useCustomHistory.js +8 -4
- package/dist/hooks/useElementFit.js +2 -2
- package/dist/hooks/useFirestoreWatch.js +1 -1
- package/dist/hooks/useForm.js +9 -6
- package/dist/hooks/useFreeze.d.ts +1 -1
- package/dist/hooks/useFreeze.js +2 -2
- package/dist/hooks/useHero.js +36 -33
- package/dist/hooks/useIntersection.js +1 -1
- package/dist/hooks/useMergeRefs.js +1 -1
- package/dist/hooks/useObserve.js +1 -1
- package/dist/hooks/usePagination.js +21 -12
- package/dist/hooks/usePooledOperation.js +2 -2
- package/dist/hooks/usePooling.js +1 -1
- package/dist/hooks/useRebound.js +1 -1
- package/dist/hooks/useShortIntl.ai.md +5 -0
- package/dist/hooks/useShortIntl.js +19 -19
- package/dist/hooks/utility/useAsyncMemo.js +12 -8
- package/dist/hooks/utility/useDepChange.js +1 -1
- package/dist/hooks/utility/useEvents.js +1 -1
- package/dist/hooks/utility/useImmediate.js +2 -2
- package/dist/hooks/utility/useManualInit.js +2 -2
- package/dist/hooks/utility/useModule.js +1 -1
- package/dist/hooks/utility/useQuery.js +1 -1
- package/dist/hooks/utility/useUniqueEffect.js +1 -1
- package/dist/index.js +1 -1
- package/dist/models/DebugLogger.js +2 -2
- package/dist/models/GenericContract.js +2 -3
- package/dist/models/Orbs.js +1 -1
- package/dist/reac-app-env.d.js +1 -1
- package/dist/storybookUtils/index.js +2 -2
- package/dist/type-utils.js +1 -1
- package/dist/types.js +1 -1
- package/dist/utility.d.js +1 -1
- package/dist/utils/blockchain.js +1 -1
- package/dist/utils/flatten.js +3 -3
- package/dist/utils/formatters.js +3 -4
- package/dist/utils/html.utils.js +1 -1
- package/dist/utils/ownEvent.js +1 -1
- package/dist/utils/test.js +3 -3
- package/package.json +20 -12
- package/src_ai/components/UncontrolledTransition/UncontrolledTransition.ai.ts +0 -35
- package/src_ai/hooks/ui/useAlternating.ai.ts +0 -15
- package/src_ai/hooks/useHero.ai.ts +0 -18
- package/src_ai/types.ts +0 -10
|
@@ -10,19 +10,24 @@ var _FadeIn = _interopRequireDefault(require("../../components/FadeIn"));
|
|
|
10
10
|
var _OneUIProvider = require("../../context/OneUIProvider");
|
|
11
11
|
var _usePaginationControlsModule = _interopRequireDefault(require("./usePaginationControls.module.scss"));
|
|
12
12
|
var _html = require("../../utils/html.utils");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const _excluded = ["snapToPage", "baseWidth", "snapToCutElement"],
|
|
14
|
+
_excluded2 = ["touches"],
|
|
15
|
+
_excluded3 = ["touches"];
|
|
16
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
19
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
16
20
|
/**
|
|
17
21
|
* This hook handles the display of pagination controls for the user to move to another page
|
|
18
22
|
*/
|
|
19
23
|
function usePaginationControls(containerRef) {
|
|
20
|
-
let {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
let _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
25
|
+
{
|
|
26
|
+
snapToPage,
|
|
27
|
+
baseWidth,
|
|
28
|
+
snapToCutElement: _snapToCutElement
|
|
29
|
+
} = _ref,
|
|
30
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
26
31
|
const [controlsState, setControls] = (0, _react.useState)([false, false]);
|
|
27
32
|
const [leftControl, rightControl] = controlsState;
|
|
28
33
|
const LeftControl = (0, _OneUIProvider.useOneUIConfig)("hook.ui.usePaginationControls.LeftControl");
|
|
@@ -31,7 +36,7 @@ function usePaginationControls(containerRef) {
|
|
|
31
36
|
function move(direction) {
|
|
32
37
|
let snapToCutElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _snapToCutElement;
|
|
33
38
|
return () => {
|
|
34
|
-
if (snapToCutElement
|
|
39
|
+
if (snapToCutElement !== null && snapToCutElement !== void 0 ? snapToCutElement : false) {
|
|
35
40
|
const childBaseWidth = baseWidth || containerRef.current.firstElementChild.clientWidth;
|
|
36
41
|
const howMuchDoesTheScrollAddsUpTo = containerRef.current.scrollLeft / childBaseWidth - Math.floor((containerRef.current.scrollLeft + (direction === "l" ? -1 : 0)) / childBaseWidth);
|
|
37
42
|
const howMuchElementsFitOnAPage = containerRef.current.clientWidth / childBaseWidth;
|
|
@@ -73,22 +78,22 @@ function usePaginationControls(containerRef) {
|
|
|
73
78
|
checkControlsRequirement();
|
|
74
79
|
let startingX;
|
|
75
80
|
let lastX;
|
|
76
|
-
const onTouchStart =
|
|
81
|
+
const onTouchStart = _ref2 => {
|
|
77
82
|
let {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
touches
|
|
84
|
+
} = _ref2,
|
|
85
|
+
e = _objectWithoutProperties(_ref2, _excluded2);
|
|
81
86
|
if (!(0, _html.isSameTarget)(e)) return;
|
|
82
87
|
const {
|
|
83
88
|
pageX
|
|
84
89
|
} = touches.item(0);
|
|
85
90
|
startingX = pageX;
|
|
86
91
|
};
|
|
87
|
-
const onTouchMove =
|
|
92
|
+
const onTouchMove = _ref3 => {
|
|
88
93
|
let {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
94
|
+
touches
|
|
95
|
+
} = _ref3,
|
|
96
|
+
e = _objectWithoutProperties(_ref3, _excluded3);
|
|
92
97
|
if (!(0, _html.isSameTarget)(e)) return;
|
|
93
98
|
const touch = touches.item(0);
|
|
94
99
|
lastX = touch.pageX;
|
|
@@ -116,15 +121,15 @@ function usePaginationControls(containerRef) {
|
|
|
116
121
|
controls: [/*#__PURE__*/_react.default.createElement(_FadeIn.default, {
|
|
117
122
|
key: "l",
|
|
118
123
|
active: leftControl,
|
|
119
|
-
className:
|
|
124
|
+
className: "".concat(_usePaginationControlsModule.default.left, " ").concat(_usePaginationControlsModule.default.control, " ").concat(className),
|
|
120
125
|
onClick: move("l")
|
|
121
126
|
}, leftControl && /*#__PURE__*/_react.default.createElement(LeftControl, null)), /*#__PURE__*/_react.default.createElement(_FadeIn.default, {
|
|
122
127
|
key: "r",
|
|
123
128
|
active: rightControl,
|
|
124
|
-
className:
|
|
129
|
+
className: "".concat(_usePaginationControlsModule.default.right, " ").concat(_usePaginationControlsModule.default.control, " ").concat(className),
|
|
125
130
|
onClick: move("r")
|
|
126
131
|
}, rightControl && /*#__PURE__*/_react.default.createElement(RightControl, null))],
|
|
127
132
|
checkControlsRequirement
|
|
128
133
|
};
|
|
129
134
|
}
|
|
130
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGhyb3R0bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0ZhZGVJbiIsIl9PbmVVSVByb3ZpZGVyIiwiX3VzZVBhZ2luYXRpb25Db250cm9sc01vZHVsZSIsIl9odG1sIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsInVzZVBhZ2luYXRpb25Db250cm9scyIsImNvbnRhaW5lclJlZiIsInNuYXBUb1BhZ2UiLCJiYXNlV2lkdGgiLCJzbmFwVG9DdXRFbGVtZW50IiwiX3NuYXBUb0N1dEVsZW1lbnQiLCJwcm9wcyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNvbnRyb2xzU3RhdGUiLCJzZXRDb250cm9scyIsInVzZVN0YXRlIiwibGVmdENvbnRyb2wiLCJyaWdodENvbnRyb2wiLCJMZWZ0Q29udHJvbCIsInVzZU9uZVVJQ29uZmlnIiwiUmlnaHRDb250cm9sIiwiY2xhc3NOYW1lIiwibW92ZSIsImRpcmVjdGlvbiIsImNoaWxkQmFzZVdpZHRoIiwiY3VycmVudCIsImZpcnN0RWxlbWVudENoaWxkIiwiY2xpZW50V2lkdGgiLCJob3dNdWNoRG9lc1RoZVNjcm9sbEFkZHNVcFRvIiwic2Nyb2xsTGVmdCIsIk1hdGgiLCJmbG9vciIsImhvd011Y2hFbGVtZW50c0ZpdE9uQVBhZ2UiLCJob3dNdWNoRWxlbWVudHNGdWxseUZpdE9uQVBhZ2UiLCJkaXJlY3Rpb25TY2FsZSIsImhvd011Y2hPZlRoZVJlbWFpbmluZ0VsZW1lbnRJc1Nob3duIiwiaG93TXVjaFRvU2Nyb2xsIiwic2Nyb2xsQnkiLCJsZWZ0IiwiYmVoYXZpb3IiLCJyZXN0Iiwicm91bmQiLCJzbmFwT2Zmc2V0IiwiY2hlY2tDb250cm9sc1JlcXVpcmVtZW50IiwidXBkYXRlRnVuYyIsIm5leHQiLCJwcmV2IiwiZWwiLCJzaG91bGRIYXZlQW55Q29udHJvbCIsInNjcm9sbFdpZHRoIiwic2hvdWxkSGF2ZVJpZ2h0Q29udHJvbCIsInNob3VsZEhhdmVMZWZ0Q29udHJvbCIsInVzZUVmZmVjdCIsInRocm90dGxlZENoZWNrIiwidGhyb3R0bGUiLCJzdGFydGluZ1giLCJsYXN0WCIsIm9uVG91Y2hTdGFydCIsIl9yZWYiLCJ0b3VjaGVzIiwiZSIsImlzU2FtZVRhcmdldCIsInBhZ2VYIiwiaXRlbSIsIm9uVG91Y2hNb3ZlIiwiX3JlZjIiLCJ0b3VjaCIsIm9uVG91Y2hFbmQiLCJkaXIiLCJhZGRFdmVudExpc3RlbmVyIiwicGFzc2l2ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjb250cm9scyIsImNyZWF0ZUVsZW1lbnQiLCJhY3RpdmUiLCJTdHlsZXMiLCJjb250cm9sIiwib25DbGljayIsInJpZ2h0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VpL3VzZVBhZ2luYXRpb25Db250cm9scy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRocm90dGxlIGZyb20gXCJsb2Rhc2gvdGhyb3R0bGVcIjtcbmltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBGYWRlIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0ZhZGVJblwiO1xuaW1wb3J0IHsgdXNlT25lVUlDb25maWcgfSBmcm9tIFwiLi4vLi4vY29udGV4dC9PbmVVSVByb3ZpZGVyXCI7XG5pbXBvcnQgU3R5bGVzIGZyb20gXCIuL3VzZVBhZ2luYXRpb25Db250cm9scy5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgaXNTYW1lVGFyZ2V0IH0gZnJvbSBcIi4uLy4uL3V0aWxzL2h0bWwudXRpbHNcIjtcblxuLyoqXG4gKiBUaGlzIGhvb2sgaGFuZGxlcyB0aGUgZGlzcGxheSBvZiBwYWdpbmF0aW9uIGNvbnRyb2xzIGZvciB0aGUgdXNlciB0byBtb3ZlIHRvIGFub3RoZXIgcGFnZVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VQYWdpbmF0aW9uQ29udHJvbHMoXG4gIGNvbnRhaW5lclJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PixcbiAge1xuICAgIHNuYXBUb1BhZ2UsXG4gICAgYmFzZVdpZHRoLFxuICAgIHNuYXBUb0N1dEVsZW1lbnQ6IF9zbmFwVG9DdXRFbGVtZW50LFxuICAgIC4uLnByb3BzXG4gIH06IHtcbiAgICBzbmFwVG9QYWdlPzogYm9vbGVhbjtcbiAgICBiYXNlV2lkdGg/OiBudW1iZXI7XG4gICAgLyoqIFRoaXMgd2lsbCBzY3JvbGwgb25seSB1bnRpbCB0aGUgcGFydGlhbGx5IHZpc2libGUgZWxlbWVudCBpcyBhdCB0aGUgYm9yZGVyLCBpbnN0ZWFkIG9mIHNjcm9sbGluZyBhbGwgdGhlIGNvbnRhaW5lciAqL1xuICAgIHNuYXBUb0N1dEVsZW1lbnQ/OiBib29sZWFuO1xuICAgIFwiZGF0YS10ZXN0aWRcIj86IFtsZWZ0OiBzdHJpbmcsIHJpZ2h0OiBzdHJpbmddO1xuICB9ID0ge31cbikge1xuICBjb25zdCBbY29udHJvbHNTdGF0ZSwgc2V0Q29udHJvbHNdID0gdXNlU3RhdGU8XG4gICAgW2xlZnRDb250cm9sOiBib29sZWFuLCByaWdodENvbnRyb2w6IGJvb2xlYW5dXG4gID4oW2ZhbHNlLCBmYWxzZV0pO1xuICBjb25zdCBbbGVmdENvbnRyb2wsIHJpZ2h0Q29udHJvbF0gPSBjb250cm9sc1N0YXRlO1xuICBjb25zdCBMZWZ0Q29udHJvbCA9IHVzZU9uZVVJQ29uZmlnKFxuICAgIFwiaG9vay51aS51c2VQYWdpbmF0aW9uQ29udHJvbHMuTGVmdENvbnRyb2xcIlxuICApO1xuICBjb25zdCBSaWdodENvbnRyb2wgPSB1c2VPbmVVSUNvbmZpZyhcbiAgICBcImhvb2sudWkudXNlUGFnaW5hdGlvbkNvbnRyb2xzLlJpZ2h0Q29udHJvbFwiXG4gICk7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IHVzZU9uZVVJQ29uZmlnKFxuICAgIFwiaG9vay51aS51c2VQYWdpbmF0aW9uQ29udHJvbHMuY2xhc3NOYW1lXCIsXG4gICAgXCJcIlxuICApO1xuICBmdW5jdGlvbiBtb3ZlKGRpcmVjdGlvbjogXCJsXCIgfCBcInJcIiwgc25hcFRvQ3V0RWxlbWVudCA9IF9zbmFwVG9DdXRFbGVtZW50KSB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChzbmFwVG9DdXRFbGVtZW50ID8/IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkQmFzZVdpZHRoID1cbiAgICAgICAgICBiYXNlV2lkdGghIHx8IGNvbnRhaW5lclJlZi5jdXJyZW50IS5maXJzdEVsZW1lbnRDaGlsZCEuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IGhvd011Y2hEb2VzVGhlU2Nyb2xsQWRkc1VwVG8gPVxuICAgICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50IS5zY3JvbGxMZWZ0IC8gY2hpbGRCYXNlV2lkdGggLVxuICAgICAgICAgIE1hdGguZmxvb3IoXG4gICAgICAgICAgICAoY29udGFpbmVyUmVmLmN1cnJlbnQhLnNjcm9sbExlZnQgKyAoZGlyZWN0aW9uID09PSBcImxcIiA/IC0xIDogMCkpIC9cbiAgICAgICAgICAgICAgY2hpbGRCYXNlV2lkdGhcbiAgICAgICAgICApO1xuICAgICAgICBjb25zdCBob3dNdWNoRWxlbWVudHNGaXRPbkFQYWdlID1cbiAgICAgICAgICBjb250YWluZXJSZWYuY3VycmVudCEuY2xpZW50V2lkdGggLyBjaGlsZEJhc2VXaWR0aDtcblxuICAgICAgICBjb25zdCBob3dNdWNoRWxlbWVudHNGdWxseUZpdE9uQVBhZ2UgPVxuICAgICAgICAgIE1hdGguZmxvb3IoaG93TXVjaEVsZW1lbnRzRml0T25BUGFnZSkgfHwgMTtcblxuICAgICAgICBjb25zdCBkaXJlY3Rpb25TY2FsZSA9XG4gICAgICAgICAgZGlyZWN0aW9uID09PSBcImxcIlxuICAgICAgICAgICAgPyAxIC0gaG93TXVjaERvZXNUaGVTY3JvbGxBZGRzVXBUb1xuICAgICAgICAgICAgOiBob3dNdWNoRG9lc1RoZVNjcm9sbEFkZHNVcFRvO1xuXG4gICAgICAgIGNvbnN0IGhvd011Y2hPZlRoZVJlbWFpbmluZ0VsZW1lbnRJc1Nob3duID1cbiAgICAgICAgICBob3dNdWNoRWxlbWVudHNGaXRPbkFQYWdlICtcbiAgICAgICAgICBkaXJlY3Rpb25TY2FsZSAtXG4gICAgICAgICAgaG93TXVjaEVsZW1lbnRzRnVsbHlGaXRPbkFQYWdlO1xuXG4gICAgICAgIGNvbnN0IGhvd011Y2hUb1Njcm9sbCA9XG4gICAgICAgICAgKGNvbnRhaW5lclJlZi5jdXJyZW50IS5jbGllbnRXaWR0aCAtXG4gICAgICAgICAgICBjaGlsZEJhc2VXaWR0aCAqIGhvd011Y2hPZlRoZVJlbWFpbmluZ0VsZW1lbnRJc1Nob3duKSAqXG4gICAgICAgICAgKGRpcmVjdGlvbiA9PT0gXCJsXCIgPyAtMSA6IDEpO1xuXG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50IS5zY3JvbGxCeSh7XG4gICAgICAgICAgbGVmdDogaG93TXVjaFRvU2Nyb2xsLFxuICAgICAgICAgIGJlaGF2aW9yOiBcInNtb290aFwiLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlc3QgPVxuICAgICAgICAgIE1hdGgucm91bmQoY29udGFpbmVyUmVmLmN1cnJlbnQhLnNjcm9sbExlZnQpICVcbiAgICAgICAgICBjb250YWluZXJSZWYuY3VycmVudCEuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHNuYXBPZmZzZXQgPSBzbmFwVG9QYWdlXG4gICAgICAgICAgPyBkaXJlY3Rpb24gPT09IFwibFwiXG4gICAgICAgICAgICA/IHJlc3RcbiAgICAgICAgICAgICAgPyBjb250YWluZXJSZWYuY3VycmVudCEuY2xpZW50V2lkdGggLSByZXN0XG4gICAgICAgICAgICAgIDogMFxuICAgICAgICAgICAgOiByZXN0XG4gICAgICAgICAgOiAwO1xuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudCEuc2Nyb2xsQnkoe1xuICAgICAgICAgIGxlZnQ6XG4gICAgICAgICAgICAoY29udGFpbmVyUmVmLmN1cnJlbnQhLmNsaWVudFdpZHRoIC0gc25hcE9mZnNldCkgKlxuICAgICAgICAgICAgKGRpcmVjdGlvbiA9PT0gXCJsXCIgPyAtMSA6IDEpLFxuICAgICAgICAgIGJlaGF2aW9yOiBcInNtb290aFwiLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tDb250cm9sc1JlcXVpcmVtZW50KCkge1xuICAgIGNvbnN0IHVwZGF0ZUZ1bmMgPVxuICAgICAgKG5leHQ6IHR5cGVvZiBjb250cm9sc1N0YXRlKSA9PiAocHJldjogdHlwZW9mIGNvbnRyb2xzU3RhdGUpID0+IHtcbiAgICAgICAgaWYgKHByZXZbMF0gIT09IG5leHRbMF0gfHwgcHJldlsxXSAhPT0gbmV4dFsxXSkgcmV0dXJuIG5leHQ7XG4gICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgfTtcbiAgICBjb25zdCBlbCA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgIGlmICghZWwpIHJldHVybjtcbiAgICBjb25zdCBzaG91bGRIYXZlQW55Q29udHJvbCA9IGVsLnNjcm9sbFdpZHRoID4gZWwuY2xpZW50V2lkdGg7XG4gICAgaWYgKCFzaG91bGRIYXZlQW55Q29udHJvbCkgc2V0Q29udHJvbHModXBkYXRlRnVuYyhbZmFsc2UsIGZhbHNlXSkpO1xuICAgIGVsc2Uge1xuICAgICAgY29uc3Qgc2hvdWxkSGF2ZVJpZ2h0Q29udHJvbCA9XG4gICAgICAgIGVsLnNjcm9sbExlZnQgPCBlbC5zY3JvbGxXaWR0aCAtIGVsLmNsaWVudFdpZHRoO1xuICAgICAgY29uc3Qgc2hvdWxkSGF2ZUxlZnRDb250cm9sID0gZWwuc2Nyb2xsTGVmdCA+IDA7XG5cbiAgICAgIHNldENvbnRyb2xzKHVwZGF0ZUZ1bmMoW3Nob3VsZEhhdmVMZWZ0Q29udHJvbCwgc2hvdWxkSGF2ZVJpZ2h0Q29udHJvbF0pKTtcbiAgICB9XG4gIH1cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbCA9IGNvbnRhaW5lclJlZi5jdXJyZW50ITtcbiAgICBjb25zdCB0aHJvdHRsZWRDaGVjayA9IHRocm90dGxlKGNoZWNrQ29udHJvbHNSZXF1aXJlbWVudCwgMTAwMCAvIDQpO1xuICAgIGNoZWNrQ29udHJvbHNSZXF1aXJlbWVudCgpO1xuICAgIGxldCBzdGFydGluZ1g6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBsZXQgbGFzdFg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IG9uVG91Y2hTdGFydCA9ICh7IHRvdWNoZXMsIC4uLmUgfTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc1NhbWVUYXJnZXQoZSkpIHJldHVybjtcbiAgICAgIGNvbnN0IHsgcGFnZVggfSA9IHRvdWNoZXMuaXRlbSgwKSE7XG4gICAgICBzdGFydGluZ1ggPSBwYWdlWDtcbiAgICB9O1xuICAgIGNvbnN0IG9uVG91Y2hNb3ZlID0gKHsgdG91Y2hlcywgLi4uZSB9OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICBpZiAoIWlzU2FtZVRhcmdldChlKSkgcmV0dXJuO1xuICAgICAgY29uc3QgdG91Y2ggPSB0b3VjaGVzLml0ZW0oMCk7XG5cbiAgICAgIGxhc3RYID0gdG91Y2ghLnBhZ2VYO1xuICAgIH07XG4gICAgY29uc3Qgb25Ub3VjaEVuZCA9IChlOiBFdmVudCkgPT4ge1xuICAgICAgaWYgKCFsYXN0WCkgcmV0dXJuO1xuICAgICAgY29uc3QgZGlyID0gbGFzdFggPiBzdGFydGluZ1ghID8gXCJsXCIgOiBcInJcIjtcbiAgICAgIG1vdmUoZGlyLCB0cnVlKSgpO1xuICAgICAgc3RhcnRpbmdYID0gdW5kZWZpbmVkO1xuICAgIH07XG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aHJvdHRsZWRDaGVjaywge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICB9KTtcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBvblRvdWNoU3RhcnQpO1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBvblRvdWNoRW5kKTtcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIG9uVG91Y2hNb3ZlKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aHJvdHRsZWRDaGVjayk7XG4gICAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBvblRvdWNoU3RhcnQpO1xuICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIG9uVG91Y2hFbmQpO1xuICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIG9uVG91Y2hFbmQpO1xuICAgIH07XG4gIH0sIFtdKTtcblxuICByZXR1cm4ge1xuICAgIGNvbnRyb2xzOiBbXG4gICAgICA8RmFkZVxuICAgICAgICBrZXk9e1wibFwifVxuICAgICAgICBhY3RpdmU9e2xlZnRDb250cm9sfVxuICAgICAgICBjbGFzc05hbWU9e2Ake1N0eWxlcy5sZWZ0fSAke1N0eWxlcy5jb250cm9sfSAke2NsYXNzTmFtZX1gfVxuICAgICAgICBkYXRhLXRlc3RpZD17cHJvcHNbXCJkYXRhLXRlc3RpZFwiXT8uWzBdfVxuICAgICAgICBvbkNsaWNrPXttb3ZlKFwibFwiKX1cbiAgICAgID5cbiAgICAgICAge2xlZnRDb250cm9sICYmIDxMZWZ0Q29udHJvbCAvPn1cbiAgICAgIDwvRmFkZT4sXG4gICAgICA8RmFkZVxuICAgICAgICBrZXk9e1wiclwifVxuICAgICAgICBhY3RpdmU9e3JpZ2h0Q29udHJvbH1cbiAgICAgICAgY2xhc3NOYW1lPXtgJHtTdHlsZXMucmlnaHR9ICR7U3R5bGVzLmNvbnRyb2x9ICR7Y2xhc3NOYW1lfWB9XG4gICAgICAgIGRhdGEtdGVzdGlkPXtwcm9wc1tcImRhdGEtdGVzdGlkXCJdPy5bMV19XG4gICAgICAgIG9uQ2xpY2s9e21vdmUoXCJyXCIpfVxuICAgICAgPlxuICAgICAgICB7cmlnaHRDb250cm9sICYmIDxSaWdodENvbnRyb2wgLz59XG4gICAgICA8L0ZhZGU+LFxuICAgIF0sXG4gICAgY2hlY2tDb250cm9sc1JlcXVpcmVtZW50LFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxTQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxjQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyw0QkFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sS0FBQSxHQUFBTixPQUFBO0FBQXNELFNBQUFPLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFOLHdCQUFBVSxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEs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
|
|
135
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGhyb3R0bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0ZhZGVJbiIsIl9PbmVVSVByb3ZpZGVyIiwiX3VzZVBhZ2luYXRpb25Db250cm9sc01vZHVsZSIsIl9odG1sIiwiX2V4Y2x1ZGVkIiwiX2V4Y2x1ZGVkMiIsIl9leGNsdWRlZDMiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsImluZGV4T2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInVzZVBhZ2luYXRpb25Db250cm9scyIsImNvbnRhaW5lclJlZiIsIl9yZWYiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJzbmFwVG9QYWdlIiwiYmFzZVdpZHRoIiwic25hcFRvQ3V0RWxlbWVudCIsIl9zbmFwVG9DdXRFbGVtZW50IiwicHJvcHMiLCJjb250cm9sc1N0YXRlIiwic2V0Q29udHJvbHMiLCJ1c2VTdGF0ZSIsImxlZnRDb250cm9sIiwicmlnaHRDb250cm9sIiwiTGVmdENvbnRyb2wiLCJ1c2VPbmVVSUNvbmZpZyIsIlJpZ2h0Q29udHJvbCIsImNsYXNzTmFtZSIsIm1vdmUiLCJkaXJlY3Rpb24iLCJjaGlsZEJhc2VXaWR0aCIsImN1cnJlbnQiLCJmaXJzdEVsZW1lbnRDaGlsZCIsImNsaWVudFdpZHRoIiwiaG93TXVjaERvZXNUaGVTY3JvbGxBZGRzVXBUbyIsInNjcm9sbExlZnQiLCJNYXRoIiwiZmxvb3IiLCJob3dNdWNoRWxlbWVudHNGaXRPbkFQYWdlIiwiaG93TXVjaEVsZW1lbnRzRnVsbHlGaXRPbkFQYWdlIiwiZGlyZWN0aW9uU2NhbGUiLCJob3dNdWNoT2ZUaGVSZW1haW5pbmdFbGVtZW50SXNTaG93biIsImhvd011Y2hUb1Njcm9sbCIsInNjcm9sbEJ5IiwibGVmdCIsImJlaGF2aW9yIiwicmVzdCIsInJvdW5kIiwic25hcE9mZnNldCIsImNoZWNrQ29udHJvbHNSZXF1aXJlbWVudCIsInVwZGF0ZUZ1bmMiLCJuZXh0IiwicHJldiIsImVsIiwic2hvdWxkSGF2ZUFueUNvbnRyb2wiLCJzY3JvbGxXaWR0aCIsInNob3VsZEhhdmVSaWdodENvbnRyb2wiLCJzaG91bGRIYXZlTGVmdENvbnRyb2wiLCJ1c2VFZmZlY3QiLCJ0aHJvdHRsZWRDaGVjayIsInRocm90dGxlIiwic3RhcnRpbmdYIiwibGFzdFgiLCJvblRvdWNoU3RhcnQiLCJfcmVmMiIsInRvdWNoZXMiLCJpc1NhbWVUYXJnZXQiLCJwYWdlWCIsIml0ZW0iLCJvblRvdWNoTW92ZSIsIl9yZWYzIiwidG91Y2giLCJvblRvdWNoRW5kIiwiZGlyIiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY29udHJvbHMiLCJjcmVhdGVFbGVtZW50Iiwia2V5IiwiYWN0aXZlIiwiY29uY2F0IiwiU3R5bGVzIiwiY29udHJvbCIsIm9uQ2xpY2siLCJyaWdodCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91aS91c2VQYWdpbmF0aW9uQ29udHJvbHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0aHJvdHRsZSBmcm9tIFwibG9kYXNoL3Rocm90dGxlXCI7XG5pbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgRmFkZSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9GYWRlSW5cIjtcbmltcG9ydCB7IHVzZU9uZVVJQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvT25lVUlQcm92aWRlclwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi91c2VQYWdpbmF0aW9uQ29udHJvbHMubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IGlzU2FtZVRhcmdldCB9IGZyb20gXCIuLi8uLi91dGlscy9odG1sLnV0aWxzXCI7XG5cbi8qKlxuICogVGhpcyBob29rIGhhbmRsZXMgdGhlIGRpc3BsYXkgb2YgcGFnaW5hdGlvbiBjb250cm9scyBmb3IgdGhlIHVzZXIgdG8gbW92ZSB0byBhbm90aGVyIHBhZ2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlUGFnaW5hdGlvbkNvbnRyb2xzKFxuICBjb250YWluZXJSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD4sXG4gIHtcbiAgICBzbmFwVG9QYWdlLFxuICAgIGJhc2VXaWR0aCxcbiAgICBzbmFwVG9DdXRFbGVtZW50OiBfc25hcFRvQ3V0RWxlbWVudCxcbiAgICAuLi5wcm9wc1xuICB9OiB7XG4gICAgc25hcFRvUGFnZT86IGJvb2xlYW47XG4gICAgYmFzZVdpZHRoPzogbnVtYmVyO1xuICAgIC8qKiBUaGlzIHdpbGwgc2Nyb2xsIG9ubHkgdW50aWwgdGhlIHBhcnRpYWxseSB2aXNpYmxlIGVsZW1lbnQgaXMgYXQgdGhlIGJvcmRlciwgaW5zdGVhZCBvZiBzY3JvbGxpbmcgYWxsIHRoZSBjb250YWluZXIgKi9cbiAgICBzbmFwVG9DdXRFbGVtZW50PzogYm9vbGVhbjtcbiAgICBcImRhdGEtdGVzdGlkXCI/OiBbbGVmdDogc3RyaW5nLCByaWdodDogc3RyaW5nXTtcbiAgfSA9IHt9XG4pIHtcbiAgY29uc3QgW2NvbnRyb2xzU3RhdGUsIHNldENvbnRyb2xzXSA9IHVzZVN0YXRlPFxuICAgIFtsZWZ0Q29udHJvbDogYm9vbGVhbiwgcmlnaHRDb250cm9sOiBib29sZWFuXVxuICA+KFtmYWxzZSwgZmFsc2VdKTtcbiAgY29uc3QgW2xlZnRDb250cm9sLCByaWdodENvbnRyb2xdID0gY29udHJvbHNTdGF0ZTtcbiAgY29uc3QgTGVmdENvbnRyb2wgPSB1c2VPbmVVSUNvbmZpZyhcbiAgICBcImhvb2sudWkudXNlUGFnaW5hdGlvbkNvbnRyb2xzLkxlZnRDb250cm9sXCJcbiAgKTtcbiAgY29uc3QgUmlnaHRDb250cm9sID0gdXNlT25lVUlDb25maWcoXG4gICAgXCJob29rLnVpLnVzZVBhZ2luYXRpb25Db250cm9scy5SaWdodENvbnRyb2xcIlxuICApO1xuICBjb25zdCBjbGFzc05hbWUgPSB1c2VPbmVVSUNvbmZpZyhcbiAgICBcImhvb2sudWkudXNlUGFnaW5hdGlvbkNvbnRyb2xzLmNsYXNzTmFtZVwiLFxuICAgIFwiXCJcbiAgKTtcbiAgZnVuY3Rpb24gbW92ZShkaXJlY3Rpb246IFwibFwiIHwgXCJyXCIsIHNuYXBUb0N1dEVsZW1lbnQgPSBfc25hcFRvQ3V0RWxlbWVudCkge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoc25hcFRvQ3V0RWxlbWVudCA/PyBmYWxzZSkge1xuICAgICAgICBjb25zdCBjaGlsZEJhc2VXaWR0aCA9XG4gICAgICAgICAgYmFzZVdpZHRoISB8fCBjb250YWluZXJSZWYuY3VycmVudCEuZmlyc3RFbGVtZW50Q2hpbGQhLmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCBob3dNdWNoRG9lc1RoZVNjcm9sbEFkZHNVcFRvID1cbiAgICAgICAgICBjb250YWluZXJSZWYuY3VycmVudCEuc2Nyb2xsTGVmdCAvIGNoaWxkQmFzZVdpZHRoIC1cbiAgICAgICAgICBNYXRoLmZsb29yKFxuICAgICAgICAgICAgKGNvbnRhaW5lclJlZi5jdXJyZW50IS5zY3JvbGxMZWZ0ICsgKGRpcmVjdGlvbiA9PT0gXCJsXCIgPyAtMSA6IDApKSAvXG4gICAgICAgICAgICAgIGNoaWxkQmFzZVdpZHRoXG4gICAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaG93TXVjaEVsZW1lbnRzRml0T25BUGFnZSA9XG4gICAgICAgICAgY29udGFpbmVyUmVmLmN1cnJlbnQhLmNsaWVudFdpZHRoIC8gY2hpbGRCYXNlV2lkdGg7XG5cbiAgICAgICAgY29uc3QgaG93TXVjaEVsZW1lbnRzRnVsbHlGaXRPbkFQYWdlID1cbiAgICAgICAgICBNYXRoLmZsb29yKGhvd011Y2hFbGVtZW50c0ZpdE9uQVBhZ2UpIHx8IDE7XG5cbiAgICAgICAgY29uc3QgZGlyZWN0aW9uU2NhbGUgPVxuICAgICAgICAgIGRpcmVjdGlvbiA9PT0gXCJsXCJcbiAgICAgICAgICAgID8gMSAtIGhvd011Y2hEb2VzVGhlU2Nyb2xsQWRkc1VwVG9cbiAgICAgICAgICAgIDogaG93TXVjaERvZXNUaGVTY3JvbGxBZGRzVXBUbztcblxuICAgICAgICBjb25zdCBob3dNdWNoT2ZUaGVSZW1haW5pbmdFbGVtZW50SXNTaG93biA9XG4gICAgICAgICAgaG93TXVjaEVsZW1lbnRzRml0T25BUGFnZSArXG4gICAgICAgICAgZGlyZWN0aW9uU2NhbGUgLVxuICAgICAgICAgIGhvd011Y2hFbGVtZW50c0Z1bGx5Rml0T25BUGFnZTtcblxuICAgICAgICBjb25zdCBob3dNdWNoVG9TY3JvbGwgPVxuICAgICAgICAgIChjb250YWluZXJSZWYuY3VycmVudCEuY2xpZW50V2lkdGggLVxuICAgICAgICAgICAgY2hpbGRCYXNlV2lkdGggKiBob3dNdWNoT2ZUaGVSZW1haW5pbmdFbGVtZW50SXNTaG93bikgKlxuICAgICAgICAgIChkaXJlY3Rpb24gPT09IFwibFwiID8gLTEgOiAxKTtcblxuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudCEuc2Nyb2xsQnkoe1xuICAgICAgICAgIGxlZnQ6IGhvd011Y2hUb1Njcm9sbCxcbiAgICAgICAgICBiZWhhdmlvcjogXCJzbW9vdGhcIixcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXN0ID1cbiAgICAgICAgICBNYXRoLnJvdW5kKGNvbnRhaW5lclJlZi5jdXJyZW50IS5zY3JvbGxMZWZ0KSAlXG4gICAgICAgICAgY29udGFpbmVyUmVmLmN1cnJlbnQhLmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCBzbmFwT2Zmc2V0ID0gc25hcFRvUGFnZVxuICAgICAgICAgID8gZGlyZWN0aW9uID09PSBcImxcIlxuICAgICAgICAgICAgPyByZXN0XG4gICAgICAgICAgICAgID8gY29udGFpbmVyUmVmLmN1cnJlbnQhLmNsaWVudFdpZHRoIC0gcmVzdFxuICAgICAgICAgICAgICA6IDBcbiAgICAgICAgICAgIDogcmVzdFxuICAgICAgICAgIDogMDtcbiAgICAgICAgY29udGFpbmVyUmVmLmN1cnJlbnQhLnNjcm9sbEJ5KHtcbiAgICAgICAgICBsZWZ0OlxuICAgICAgICAgICAgKGNvbnRhaW5lclJlZi5jdXJyZW50IS5jbGllbnRXaWR0aCAtIHNuYXBPZmZzZXQpICpcbiAgICAgICAgICAgIChkaXJlY3Rpb24gPT09IFwibFwiID8gLTEgOiAxKSxcbiAgICAgICAgICBiZWhhdmlvcjogXCJzbW9vdGhcIixcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNoZWNrQ29udHJvbHNSZXF1aXJlbWVudCgpIHtcbiAgICBjb25zdCB1cGRhdGVGdW5jID1cbiAgICAgIChuZXh0OiB0eXBlb2YgY29udHJvbHNTdGF0ZSkgPT4gKHByZXY6IHR5cGVvZiBjb250cm9sc1N0YXRlKSA9PiB7XG4gICAgICAgIGlmIChwcmV2WzBdICE9PSBuZXh0WzBdIHx8IHByZXZbMV0gIT09IG5leHRbMV0pIHJldHVybiBuZXh0O1xuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH07XG4gICAgY29uc3QgZWwgPSBjb250YWluZXJSZWYuY3VycmVudDtcbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgY29uc3Qgc2hvdWxkSGF2ZUFueUNvbnRyb2wgPSBlbC5zY3JvbGxXaWR0aCA+IGVsLmNsaWVudFdpZHRoO1xuICAgIGlmICghc2hvdWxkSGF2ZUFueUNvbnRyb2wpIHNldENvbnRyb2xzKHVwZGF0ZUZ1bmMoW2ZhbHNlLCBmYWxzZV0pKTtcbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHNob3VsZEhhdmVSaWdodENvbnRyb2wgPVxuICAgICAgICBlbC5zY3JvbGxMZWZ0IDwgZWwuc2Nyb2xsV2lkdGggLSBlbC5jbGllbnRXaWR0aDtcbiAgICAgIGNvbnN0IHNob3VsZEhhdmVMZWZ0Q29udHJvbCA9IGVsLnNjcm9sbExlZnQgPiAwO1xuXG4gICAgICBzZXRDb250cm9scyh1cGRhdGVGdW5jKFtzaG91bGRIYXZlTGVmdENvbnRyb2wsIHNob3VsZEhhdmVSaWdodENvbnRyb2xdKSk7XG4gICAgfVxuICB9XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWwgPSBjb250YWluZXJSZWYuY3VycmVudCE7XG4gICAgY29uc3QgdGhyb3R0bGVkQ2hlY2sgPSB0aHJvdHRsZShjaGVja0NvbnRyb2xzUmVxdWlyZW1lbnQsIDEwMDAgLyA0KTtcbiAgICBjaGVja0NvbnRyb2xzUmVxdWlyZW1lbnQoKTtcbiAgICBsZXQgc3RhcnRpbmdYOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGxhc3RYOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBvblRvdWNoU3RhcnQgPSAoeyB0b3VjaGVzLCAuLi5lIH06IFRvdWNoRXZlbnQpID0+IHtcbiAgICAgIGlmICghaXNTYW1lVGFyZ2V0KGUpKSByZXR1cm47XG4gICAgICBjb25zdCB7IHBhZ2VYIH0gPSB0b3VjaGVzLml0ZW0oMCkhO1xuICAgICAgc3RhcnRpbmdYID0gcGFnZVg7XG4gICAgfTtcbiAgICBjb25zdCBvblRvdWNoTW92ZSA9ICh7IHRvdWNoZXMsIC4uLmUgfTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc1NhbWVUYXJnZXQoZSkpIHJldHVybjtcbiAgICAgIGNvbnN0IHRvdWNoID0gdG91Y2hlcy5pdGVtKDApO1xuXG4gICAgICBsYXN0WCA9IHRvdWNoIS5wYWdlWDtcbiAgICB9O1xuICAgIGNvbnN0IG9uVG91Y2hFbmQgPSAoZTogRXZlbnQpID0+IHtcbiAgICAgIGlmICghbGFzdFgpIHJldHVybjtcbiAgICAgIGNvbnN0IGRpciA9IGxhc3RYID4gc3RhcnRpbmdYISA/IFwibFwiIDogXCJyXCI7XG4gICAgICBtb3ZlKGRpciwgdHJ1ZSkoKTtcbiAgICAgIHN0YXJ0aW5nWCA9IHVuZGVmaW5lZDtcbiAgICB9O1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhyb3R0bGVkQ2hlY2ssIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfSk7XG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgb25Ub3VjaFN0YXJ0KTtcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgb25Ub3VjaEVuZCk7XG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCBvblRvdWNoTW92ZSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhyb3R0bGVkQ2hlY2spO1xuICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgb25Ub3VjaFN0YXJ0KTtcbiAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBvblRvdWNoRW5kKTtcbiAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBvblRvdWNoRW5kKTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBjb250cm9sczogW1xuICAgICAgPEZhZGVcbiAgICAgICAga2V5PXtcImxcIn1cbiAgICAgICAgYWN0aXZlPXtsZWZ0Q29udHJvbH1cbiAgICAgICAgY2xhc3NOYW1lPXtgJHtTdHlsZXMubGVmdH0gJHtTdHlsZXMuY29udHJvbH0gJHtjbGFzc05hbWV9YH1cbiAgICAgICAgZGF0YS10ZXN0aWQ9e3Byb3BzW1wiZGF0YS10ZXN0aWRcIl0/LlswXX1cbiAgICAgICAgb25DbGljaz17bW92ZShcImxcIil9XG4gICAgICA+XG4gICAgICAgIHtsZWZ0Q29udHJvbCAmJiA8TGVmdENvbnRyb2wgLz59XG4gICAgICA8L0ZhZGU+LFxuICAgICAgPEZhZGVcbiAgICAgICAga2V5PXtcInJcIn1cbiAgICAgICAgYWN0aXZlPXtyaWdodENvbnRyb2x9XG4gICAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGVzLnJpZ2h0fSAke1N0eWxlcy5jb250cm9sfSAke2NsYXNzTmFtZX1gfVxuICAgICAgICBkYXRhLXRlc3RpZD17cHJvcHNbXCJkYXRhLXRlc3RpZFwiXT8uWzFdfVxuICAgICAgICBvbkNsaWNrPXttb3ZlKFwiclwiKX1cbiAgICAgID5cbiAgICAgICAge3JpZ2h0Q29udHJvbCAmJiA8UmlnaHRDb250cm9sIC8+fVxuICAgICAgPC9GYWRlPixcbiAgICBdLFxuICAgIGNoZWNrQ29udHJvbHNSZXF1aXJlbWVudCxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsU0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssNEJBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQU4sT0FBQTtBQUFzRCxNQUFBTyxTQUFBO0VBQUFDLFVBQUE7RUFBQUMsVUFBQTtBQUFBLFNBQUFQLHdCQUFBUSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBVix1QkFBQSxZQUFBQSxDQUFBUSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENB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
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = useSnapToViewport;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _useSnapToViewportModule = _interopRequireDefault(require("./useSnapToViewport.module.scss"));
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
/**
|
|
11
11
|
* This takes a container and applies padding and margin so the content overflow container and goes until it hits the viewport border
|
|
12
12
|
*/
|
|
@@ -15,12 +15,12 @@ function useSnapToViewport(defaultPadding) {
|
|
|
15
15
|
(0, _react.useLayoutEffect)(() => {
|
|
16
16
|
const diff = window.visualViewport.width - elRef.current.clientWidth;
|
|
17
17
|
const margin = diff / 2;
|
|
18
|
-
elRef.current.style.setProperty("--overflow-padding",
|
|
19
|
-
elRef.current.style.setProperty("--overflow-margin",
|
|
20
|
-
elRef.current.style.setProperty("--default-padding",
|
|
21
|
-
elRef.current.style.setProperty("--default-margin",
|
|
18
|
+
elRef.current.style.setProperty("--overflow-padding", "".concat(margin, "px"));
|
|
19
|
+
elRef.current.style.setProperty("--overflow-margin", "".concat(-margin, "px"));
|
|
20
|
+
elRef.current.style.setProperty("--default-padding", "".concat(defaultPadding, "px"));
|
|
21
|
+
elRef.current.style.setProperty("--default-margin", "".concat(-defaultPadding, "px"));
|
|
22
22
|
elRef.current.classList.add(_useSnapToViewportModule.default.applySpacings);
|
|
23
23
|
}, []);
|
|
24
24
|
return elRef;
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3VzZVNuYXBUb1ZpZXdwb3J0TW9kdWxlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInVzZVNuYXBUb1ZpZXdwb3J0IiwiZGVmYXVsdFBhZGRpbmciLCJlbFJlZiIsInVzZVJlZiIsInVzZUxheW91dEVmZmVjdCIsImRpZmYiLCJ3aW5kb3ciLCJ2aXN1YWxWaWV3cG9ydCIsIndpZHRoIiwiY3VycmVudCIsImNsaWVudFdpZHRoIiwibWFyZ2luIiwic3R5bGUiLCJzZXRQcm9wZXJ0eSIsImNvbmNhdCIsImNsYXNzTGlzdCIsImFkZCIsIlN0eWxlcyIsImFwcGx5U3BhY2luZ3MiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdWkvdXNlU25hcFRvVmlld3BvcnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBTdHlsZXMgZnJvbSBcIi4vdXNlU25hcFRvVmlld3BvcnQubW9kdWxlLnNjc3NcIjtcbi8qKlxuICogVGhpcyB0YWtlcyBhIGNvbnRhaW5lciBhbmQgYXBwbGllcyBwYWRkaW5nIGFuZCBtYXJnaW4gc28gdGhlIGNvbnRlbnQgb3ZlcmZsb3cgY29udGFpbmVyIGFuZCBnb2VzIHVudGlsIGl0IGhpdHMgdGhlIHZpZXdwb3J0IGJvcmRlclxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VTbmFwVG9WaWV3cG9ydChkZWZhdWx0UGFkZGluZzogbnVtYmVyKSB7XG4gIGNvbnN0IGVsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGRpZmYgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQhLndpZHRoIC0gZWxSZWYuY3VycmVudCEuY2xpZW50V2lkdGg7XG5cbiAgICBjb25zdCBtYXJnaW4gPSBkaWZmIC8gMjtcblxuICAgIGVsUmVmLmN1cnJlbnQhLnN0eWxlLnNldFByb3BlcnR5KFwiLS1vdmVyZmxvdy1wYWRkaW5nXCIsIGAke21hcmdpbn1weGApO1xuICAgIGVsUmVmLmN1cnJlbnQhLnN0eWxlLnNldFByb3BlcnR5KFwiLS1vdmVyZmxvdy1tYXJnaW5cIiwgYCR7LW1hcmdpbn1weGApO1xuICAgIGVsUmVmLmN1cnJlbnQhLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgXCItLWRlZmF1bHQtcGFkZGluZ1wiLFxuICAgICAgYCR7ZGVmYXVsdFBhZGRpbmd9cHhgXG4gICAgKTtcbiAgICBlbFJlZi5jdXJyZW50IS5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgIFwiLS1kZWZhdWx0LW1hcmdpblwiLFxuICAgICAgYCR7LWRlZmF1bHRQYWRkaW5nfXB4YFxuICAgICk7XG4gICAgZWxSZWYuY3VycmVudCEuY2xhc3NMaXN0LmFkZChTdHlsZXMuYXBwbHlTcGFjaW5ncyk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gZWxSZWY7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLHdCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFBcUQsU0FBQUUsdUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFDckQ7QUFDQTtBQUNBO0FBQ2UsU0FBU0csaUJBQWlCQSxDQUFDQyxjQUFzQixFQUFFO0VBQ2hFLE1BQU1DLEtBQUssR0FBRyxJQUFBQyxhQUFNLEVBQWlCLElBQUksQ0FBQztFQUUxQyxJQUFBQyxzQkFBZSxFQUFDLE1BQU07SUFDcEIsTUFBTUMsSUFBSSxHQUFHQyxNQUFNLENBQUNDLGNBQWMsQ0FBRUMsS0FBSyxHQUFHTixLQUFLLENBQUNPLE9BQU8sQ0FBRUMsV0FBVztJQUV0RSxNQUFNQyxNQUFNLEdBQUdOLElBQUksR0FBRyxDQUFDO0lBRXZCSCxLQUFLLENBQUNPLE9BQU8sQ0FBRUcsS0FBSyxDQUFDQyxXQUFXLENBQUMsb0JBQW9CLEtBQUFDLE1BQUEsQ0FBS0gsTUFBTSxPQUFJLENBQUM7SUFDckVULEtBQUssQ0FBQ08sT0FBTyxDQUFFRyxLQUFLLENBQUNDLFdBQVcsQ0FBQyxtQkFBbUIsS0FBQUMsTUFBQSxDQUFLLENBQUNILE1BQU0sT0FBSSxDQUFDO0lBQ3JFVCxLQUFLLENBQUNPLE9BQU8sQ0FBRUcsS0FBSyxDQUFDQyxXQUFXLENBQzlCLG1CQUFtQixLQUFBQyxNQUFBLENBQ2hCYixjQUFjLE9BQ25CLENBQUM7SUFDREMsS0FBSyxDQUFDTyxPQUFPLENBQUVHLEtBQUssQ0FBQ0MsV0FBVyxDQUM5QixrQkFBa0IsS0FBQUMsTUFBQSxDQUNmLENBQUNiLGNBQWMsT0FDcEIsQ0FBQztJQUNEQyxLQUFLLENBQUNPLE9BQU8sQ0FBRU0sU0FBUyxDQUFDQyxHQUFHLENBQUNDLGdDQUFNLENBQUNDLGFBQWEsQ0FBQztFQUNwRCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sT0FBT2hCLEtBQUs7QUFDZCIsImlnbm9yZUxpc3QiOltdfQ==
|
package/dist/hooks/ui/useTilt.js
CHANGED
|
@@ -10,7 +10,7 @@ exports.useTiltUpdates = useTiltUpdates;
|
|
|
10
10
|
var _throttle = _interopRequireDefault(require("lodash/throttle"));
|
|
11
11
|
var _react = require("react");
|
|
12
12
|
var _helpers = require("../../components/Parallax/math/helpers");
|
|
13
|
-
function _interopRequireDefault(
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
14
|
const MAX_TILT = {
|
|
15
15
|
x: 100,
|
|
16
16
|
y: 100
|
|
@@ -21,7 +21,9 @@ function useTiltUpdates(active, relativeToEl, onTilt, onInverseMatrix) {
|
|
|
21
21
|
let options = arguments.length > 6 ? arguments[6] : undefined;
|
|
22
22
|
(0, _react.useEffect)(() => {
|
|
23
23
|
if (active) {
|
|
24
|
+
var _options$gyroEnabled;
|
|
24
25
|
const updatePositions = (relativeToX, relativeToY) => {
|
|
26
|
+
var _options$round, _options$round2;
|
|
25
27
|
const el = relativeToEl.current;
|
|
26
28
|
const rect = el.getBoundingClientRect();
|
|
27
29
|
const {
|
|
@@ -31,8 +33,8 @@ function useTiltUpdates(active, relativeToEl, onTilt, onInverseMatrix) {
|
|
|
31
33
|
width: [rect.left, el.clientWidth],
|
|
32
34
|
height: [rect.top, el.clientHeight]
|
|
33
35
|
};
|
|
34
|
-
const distanceOffRight = calculateDistanceRelativeToBounds(relativeToX, x0, xW, (options === null || options === void 0 ? void 0 : options.round)
|
|
35
|
-
const distanceOffBottom = calculateDistanceRelativeToBounds(relativeToY, y0, yH, (options === null || options === void 0 ? void 0 : options.round)
|
|
36
|
+
const distanceOffRight = calculateDistanceRelativeToBounds(relativeToX, x0, xW, (_options$round = options === null || options === void 0 ? void 0 : options.round) !== null && _options$round !== void 0 ? _options$round : true);
|
|
37
|
+
const distanceOffBottom = calculateDistanceRelativeToBounds(relativeToY, y0, yH, (_options$round2 = options === null || options === void 0 ? void 0 : options.round) !== null && _options$round2 !== void 0 ? _options$round2 : true);
|
|
36
38
|
const howMuchToRotateY = givenTheRelativePositionHowMuchToRotate(distanceOffRight, tiltLimit.y);
|
|
37
39
|
const howMuchToRotateX = givenTheRelativePositionHowMuchToRotate(distanceOffBottom, tiltLimit.x);
|
|
38
40
|
onTilt({
|
|
@@ -100,7 +102,7 @@ function useTiltUpdates(active, relativeToEl, onTilt, onInverseMatrix) {
|
|
|
100
102
|
window.removeEventListener("mousemove", handler);
|
|
101
103
|
window.removeEventListener("touchmove", touchHandler);
|
|
102
104
|
}
|
|
103
|
-
if ((options === null || options === void 0 ? void 0 : options.gyroEnabled)
|
|
105
|
+
if ((_options$gyroEnabled = options === null || options === void 0 ? void 0 : options.gyroEnabled) !== null && _options$gyroEnabled !== void 0 ? _options$gyroEnabled : true) {
|
|
104
106
|
window.addEventListener("deviceorientation", orientationListener);
|
|
105
107
|
return () => {
|
|
106
108
|
window.removeEventListener("deviceorientation", orientationListener);
|
|
@@ -155,4 +157,4 @@ function calculateDistanceRelativeToBounds(mousePosition, elementInitialPosition
|
|
|
155
157
|
function givenTheRelativePositionHowMuchToRotate(relativePosition, maxRotation) {
|
|
156
158
|
return relativePosition * maxRotation - maxRotation / 2;
|
|
157
159
|
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGhyb3R0bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdCIsIl9oZWxwZXJzIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJNQVhfVElMVCIsIngiLCJ5IiwidXNlVGlsdFVwZGF0ZXMiLCJhY3RpdmUiLCJyZWxhdGl2ZVRvRWwiLCJvblRpbHQiLCJvbkludmVyc2VNYXRyaXgiLCJzZW5zb3JTY2FsZSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInRpbHRMaW1pdCIsIm9wdGlvbnMiLCJ1c2VFZmZlY3QiLCJ1cGRhdGVQb3NpdGlvbnMiLCJyZWxhdGl2ZVRvWCIsInJlbGF0aXZlVG9ZIiwiZWwiLCJjdXJyZW50IiwicmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIndpZHRoIiwieDAiLCJ4VyIsImhlaWdodCIsInkwIiwieUgiLCJsZWZ0IiwiY2xpZW50V2lkdGgiLCJ0b3AiLCJjbGllbnRIZWlnaHQiLCJkaXN0YW5jZU9mZlJpZ2h0IiwiY2FsY3VsYXRlRGlzdGFuY2VSZWxhdGl2ZVRvQm91bmRzIiwicm91bmQiLCJkaXN0YW5jZU9mZkJvdHRvbSIsImhvd011Y2hUb1JvdGF0ZVkiLCJnaXZlblRoZVJlbGF0aXZlUG9zaXRpb25Ib3dNdWNoVG9Sb3RhdGUiLCJob3dNdWNoVG9Sb3RhdGVYIiwiaGFuZGxlciIsInRocm90dGxlIiwiX3JlZiIsInRvdWNoSGFuZGxlciIsIl9yZWYyIiwidG91Y2hlcyIsInBhZ2VYIiwicGFnZVkiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiX2ludmVyc2VNYXRyaXgiLCJfbGltaXRzIiwiYmV0YSIsImdhbW1hIiwib3JpZW50YXRpb25MaXN0ZW5lciIsIl9yZWYzIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9mZnNldCIsIl9iZXRhIiwiTWF0aCIsIm1pbiIsIm1heCIsIl9nYW1tYSIsImZsYXR0ZW5NYXRyaXgiLCJpbnZlcnRNYXRyaXgiLCJnZW5lcmF0ZU1hdHJpeEZyb21PcGVyYXRpb25zIiwidHlwZSIsImFuZ2xlIiwicmVtb3ZlTGlzdGVuZXJzIiwiZ3lyb0VuYWJsZWQiLCJ1c2VUaWx0IiwibWF4VGlsdCIsInRpbHQiLCJzZXRUaWx0IiwidXNlU3RhdGUiLCJ0aWx0UmVzZXRNYXRyaXgiLCJzZXRUaWx0UmVzZXRNYXRyaXgiLCJJREVOVElUWV9NQVRSSVgiLCJyZWxhdGl2ZVRvIiwidXNlUmVmIiwibW91c2VQb3NpdGlvbiIsImVsZW1lbnRJbml0aWFsUG9zaXRpb24iLCJlbGVtZW50U2l6ZURpbWVuc2lvbiIsInNob3VsZFJvdW5kIiwibm9ybWFsaXplSW5pdGlhbFBvc2l0aW9uIiwiZG9Ob3RBbGxvd0dvaW5nQmV5b25kTG93ZXJMaW1pdCIsImRvTm90QWxsb3dIb2luZ0JleW9uZEhpZ2hlckxpbWl0IiwidGhyZWVSdWxlIiwicmVzdWx0IiwicmVsYXRpdmVQb3NpdGlvbiIsIm1heFJvdGF0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VpL3VzZVRpbHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0aHJvdHRsZSBmcm9tIFwibG9kYXNoL3Rocm90dGxlXCI7XG5pbXBvcnQgeyBSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtcbiAgZmxhdHRlbk1hdHJpeCxcbiAgZ2VuZXJhdGVNYXRyaXhGcm9tT3BlcmF0aW9ucyxcbiAgSURFTlRJVFlfTUFUUklYLFxuICBpbnZlcnRNYXRyaXgsXG59IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1BhcmFsbGF4L21hdGgvaGVscGVyc1wiO1xuXG5jb25zdCBNQVhfVElMVCA9IHtcbiAgeDogMTAwLFxuICB5OiAxMDAsXG59O1xuXG50eXBlIE9wdGlvbnMgPSB7XG4gIHJvdW5kPzogYm9vbGVhbjtcbiAgZ3lyb0VuYWJsZWQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVRpbHRVcGRhdGVzKFxuICBhY3RpdmU6IGJvb2xlYW4sXG4gIHJlbGF0aXZlVG9FbDogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD4sXG4gIG9uVGlsdDogKHA6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkgPT4gdm9pZCxcbiAgb25JbnZlcnNlTWF0cml4PzogKHVwZGF0ZUZ1bmM6IChtYXRyaXg6IG51bWJlcltdKSA9PiBudW1iZXJbXSkgPT4gdm9pZCxcbiAgc2Vuc29yU2NhbGU6IG51bWJlciA9IDEsXG4gIHRpbHRMaW1pdDogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9ID0gTUFYX1RJTFQsXG4gIG9wdGlvbnM/OiBPcHRpb25zXG4pIHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYWN0aXZlKSB7XG4gICAgICBjb25zdCB1cGRhdGVQb3NpdGlvbnMgPSAocmVsYXRpdmVUb1g6IG51bWJlciwgcmVsYXRpdmVUb1k6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IHJlbGF0aXZlVG9FbC5jdXJyZW50ITtcbiAgICAgICAgY29uc3QgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgd2lkdGg6IFt4MCwgeFddLFxuICAgICAgICAgIGhlaWdodDogW3kwLCB5SF0sXG4gICAgICAgIH0gPSB7XG4gICAgICAgICAgd2lkdGg6IFtyZWN0LmxlZnQsIGVsLmNsaWVudFdpZHRoXSxcbiAgICAgICAgICBoZWlnaHQ6IFtyZWN0LnRvcCwgZWwuY2xpZW50SGVpZ2h0XSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VPZmZSaWdodCA9IGNhbGN1bGF0ZURpc3RhbmNlUmVsYXRpdmVUb0JvdW5kcyhcbiAgICAgICAgICByZWxhdGl2ZVRvWCxcbiAgICAgICAgICB4MCxcbiAgICAgICAgICB4VyxcbiAgICAgICAgICBvcHRpb25zPy5yb3VuZCA/PyB0cnVlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlT2ZmQm90dG9tID0gY2FsY3VsYXRlRGlzdGFuY2VSZWxhdGl2ZVRvQm91bmRzKFxuICAgICAgICAgIHJlbGF0aXZlVG9ZLFxuICAgICAgICAgIHkwLFxuICAgICAgICAgIHlILFxuICAgICAgICAgIG9wdGlvbnM/LnJvdW5kID8/IHRydWVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaG93TXVjaFRvUm90YXRlWSA9IGdpdmVuVGhlUmVsYXRpdmVQb3NpdGlvbkhvd011Y2hUb1JvdGF0ZShcbiAgICAgICAgICBkaXN0YW5jZU9mZlJpZ2h0LFxuICAgICAgICAgIHRpbHRMaW1pdC55XG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGhvd011Y2hUb1JvdGF0ZVggPSBnaXZlblRoZVJlbGF0aXZlUG9zaXRpb25Ib3dNdWNoVG9Sb3RhdGUoXG4gICAgICAgICAgZGlzdGFuY2VPZmZCb3R0b20sXG4gICAgICAgICAgdGlsdExpbWl0LnhcbiAgICAgICAgKTtcblxuICAgICAgICBvblRpbHQoe1xuICAgICAgICAgIHk6IGhvd011Y2hUb1JvdGF0ZVggKiAyLFxuICAgICAgICAgIHg6IGhvd011Y2hUb1JvdGF0ZVkgKiAyLFxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICBjb25zdCBoYW5kbGVyID0gdGhyb3R0bGUoKHsgeCwgeSB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIHVwZGF0ZVBvc2l0aW9ucyh4LCB5KTtcbiAgICAgIH0sIDEwMDAgLyAzMCk7XG4gICAgICBjb25zdCB0b3VjaEhhbmRsZXIgPSB0aHJvdHRsZSgoeyB0b3VjaGVzIH06IFRvdWNoRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgeyBwYWdlWCwgcGFnZVkgfSA9IHRvdWNoZXNbMF07XG4gICAgICAgIHVwZGF0ZVBvc2l0aW9ucyhwYWdlWCwgcGFnZVkpO1xuICAgICAgfSwgMTAwMCAvIDMwKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGhhbmRsZXIpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdG91Y2hIYW5kbGVyKTtcbiAgICAgIGxldCBfaW52ZXJzZU1hdHJpeDogbnVtYmVyW10gfCB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBfbGltaXRzOiB7XG4gICAgICAgIFtrIGluIFwiYmV0YVwiIHwgXCJnYW1tYVwiXT86IFtudW1iZXIsIG51bWJlcl07XG4gICAgICB9ID0ge1xuICAgICAgICBiZXRhOiB1bmRlZmluZWQsXG4gICAgICAgIGdhbW1hOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgICAgY29uc3Qgb3JpZW50YXRpb25MaXN0ZW5lcjogKGU6IERldmljZU9yaWVudGF0aW9uRXZlbnQpID0+IHZvaWQgPSAoe1xuICAgICAgICBiZXRhLFxuICAgICAgICBnYW1tYSxcbiAgICAgIH0pID0+IHtcbiAgICAgICAgYmV0YSA9IGJldGEhICogMC41O1xuICAgICAgICBnYW1tYSA9IGdhbW1hISAqIDAuNTtcbiAgICAgICAgaWYgKCFfaW52ZXJzZU1hdHJpeCkge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGhhbmRsZXIpO1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIHRvdWNoSGFuZGxlcik7XG4gICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gMTIuNTtcbiAgICAgICAgICBfbGltaXRzLmJldGEgPSBbYmV0YSEgLSBvZmZzZXQsIGJldGEhICsgb2Zmc2V0XTtcbiAgICAgICAgICBfbGltaXRzLmdhbW1hID0gW2dhbW1hISAtIG9mZnNldCwgZ2FtbWEhICsgb2Zmc2V0XTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBfYmV0YSA9IE1hdGgubWluKFxuICAgICAgICAgIF9saW1pdHMuYmV0YSFbMV0sXG4gICAgICAgICAgTWF0aC5tYXgoX2xpbWl0cy5iZXRhIVswXSwgYmV0YSEpXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IF9nYW1tYSA9IE1hdGgubWluKFxuICAgICAgICAgIF9saW1pdHMuZ2FtbWEhWzFdLFxuICAgICAgICAgIE1hdGgubWF4KF9saW1pdHMuZ2FtbWEhWzBdLCBnYW1tYSEpXG4gICAgICAgICk7XG4gICAgICAgIGlmICghX2ludmVyc2VNYXRyaXggJiYgb25JbnZlcnNlTWF0cml4KSB7XG4gICAgICAgICAgb25JbnZlcnNlTWF0cml4KCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoX2ludmVyc2VNYXRyaXggPSBmbGF0dGVuTWF0cml4KFxuICAgICAgICAgICAgICBpbnZlcnRNYXRyaXgoXG4gICAgICAgICAgICAgICAgZ2VuZXJhdGVNYXRyaXhGcm9tT3BlcmF0aW9ucyhcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJyb3RhdGVZXCIsXG4gICAgICAgICAgICAgICAgICAgIGFuZ2xlOiBfZ2FtbWEhLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJyb3RhdGVYXCIsXG4gICAgICAgICAgICAgICAgICAgIGFuZ2xlOiAtX2JldGEhLFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgb25UaWx0KHtcbiAgICAgICAgICB5OiAtX2JldGEgKiBzZW5zb3JTY2FsZSxcbiAgICAgICAgICB4OiBfZ2FtbWEgKiBzZW5zb3JTY2FsZSxcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXJzKCkge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdG91Y2hIYW5kbGVyKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zPy5neXJvRW5hYmxlZCA/PyB0cnVlKSB7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZGV2aWNlb3JpZW50YXRpb25cIiwgb3JpZW50YXRpb25MaXN0ZW5lcik7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJkZXZpY2VvcmllbnRhdGlvblwiLCBvcmllbnRhdGlvbkxpc3RlbmVyKTtcbiAgICAgICAgICByZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAoKSA9PiByZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFthY3RpdmUsIG9uSW52ZXJzZU1hdHJpeCwgb25UaWx0XSk7XG59XG5cbi8qKlxuICogVGhpcyBob29rIGJpbmRzIHRvIHR3byBtZXRob2RzIGZvciBjYWxjdWxhdGluZyB0aWx0XG4gKlxuICogV2hlbiBhdmFpbGFibGU6IFRoZSBkZXZpY2Ugc2Vuc29yc1xuICogV2hlbiBvbiBkZXNrdG9wOiBUaGUgbW91c2UgcG9zaXRpb24gcmVsYXRpdmUgdG8gYSByZWZcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlVGlsdChcbiAgYWN0aXZlOiBib29sZWFuLFxuICAvKipcbiAgICogQSBzY2FsZSB0byBpbmNyZWFzZSB0aGUgdmFsdWVzIGZyb20gdGhlIHNlbnNvcnNcbiAgICpcbiAgICogQGhhY2sgWW91IGNhbiBzZXQgdGhpcyB2YWx1ZSB0byAwIGFzIGEgd2F5IHRvIGRpc2FibGUgdGhlIHRpbHQgY2FsYyBvbiBtb2JpbGVcbiAgICovXG4gIHNlbnNvclNjYWxlOiBudW1iZXIgPSAxLFxuICBtYXhUaWx0OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0gPSBNQVhfVElMVCxcbiAgb3B0aW9ucz86IE9wdGlvbnNcbikge1xuICBjb25zdCBbdGlsdCwgc2V0VGlsdF0gPSB1c2VTdGF0ZTx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+KHtcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gIH0pO1xuICBjb25zdCBbdGlsdFJlc2V0TWF0cml4LCBzZXRUaWx0UmVzZXRNYXRyaXhdID0gdXNlU3RhdGU8bnVtYmVyW10+KCgpID0+XG4gICAgZmxhdHRlbk1hdHJpeChJREVOVElUWV9NQVRSSVgoKSlcbiAgKTtcbiAgY29uc3QgcmVsYXRpdmVUbyA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgdXNlVGlsdFVwZGF0ZXMoXG4gICAgYWN0aXZlLFxuICAgIHJlbGF0aXZlVG8sXG4gICAgc2V0VGlsdCxcbiAgICBzZXRUaWx0UmVzZXRNYXRyaXgsXG4gICAgc2Vuc29yU2NhbGUsXG4gICAgbWF4VGlsdCxcbiAgICBvcHRpb25zXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICAvKiogVGhlIGVsZW1lbnQgdG8gbW9uaXRvciBtb3VzZSBob3ZlciByZWxhdGl2ZSB0byAqL1xuICAgIHJlbGF0aXZlVG8sXG4gICAgLyoqXG4gICAgICogVGhlIG1hdHJpeCB0aGF0IHJlcHJlc2VudHMgdGhlIG9yaWdpbmFsIHRpbHQsIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggdGhlIHRpbHQgcHJvcCB0byB0aWx0IHJlbGF0aXZlIHRvIHRoZSB1c2VyXG4gICAgICogVXNlIGl0IG9uIGNzcyBsaWtlIHNvIHRyYW5zZm9ybTogbWF0cml4M2QodGlsdFJlc2V0TWF0cml4LmpvaW4oXCIsXCIpKSByb3RhdGVYKHRpbHQueCkgcm90YXRlWSh0aWx0LnkpXG4gICAgICovXG4gICAgdGlsdFJlc2V0TWF0cml4LFxuXG4gICAgLyoqXG4gICAgICogSG93IG11Y2ggdGlsdCBzaG91bGQgYmUgYXBwbGllZCBiYXNlZFxuICAgICAqL1xuICAgIHRpbHQsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVEaXN0YW5jZVJlbGF0aXZlVG9Cb3VuZHMoXG4gIG1vdXNlUG9zaXRpb246IG51bWJlcixcbiAgZWxlbWVudEluaXRpYWxQb3NpdGlvbjogbnVtYmVyLFxuICBlbGVtZW50U2l6ZURpbWVuc2lvbjogbnVtYmVyLFxuICBzaG91bGRSb3VuZDogYm9vbGVhblxuKSB7XG4gIGNvbnN0IG5vcm1hbGl6ZUluaXRpYWxQb3NpdGlvbiA9IG1vdXNlUG9zaXRpb24gLSBlbGVtZW50SW5pdGlhbFBvc2l0aW9uO1xuICBjb25zdCBkb05vdEFsbG93R29pbmdCZXlvbmRMb3dlckxpbWl0ID0gTWF0aC5tYXgobm9ybWFsaXplSW5pdGlhbFBvc2l0aW9uLCAwKTtcbiAgY29uc3QgZG9Ob3RBbGxvd0hvaW5nQmV5b25kSGlnaGVyTGltaXQgPSBNYXRoLm1pbihcbiAgICBkb05vdEFsbG93R29pbmdCZXlvbmRMb3dlckxpbWl0LFxuICAgIGVsZW1lbnRTaXplRGltZW5zaW9uXG4gICk7XG4gIGNvbnN0IHRocmVlUnVsZSA9XG4gICAgKGRvTm90QWxsb3dIb2luZ0JleW9uZEhpZ2hlckxpbWl0ICogMTAwKSAvIGVsZW1lbnRTaXplRGltZW5zaW9uO1xuICBjb25zdCByZXN1bHQgPSAoc2hvdWxkUm91bmQgPyBNYXRoLnJvdW5kKHRocmVlUnVsZSkgOiB0aHJlZVJ1bGUpIC8gMTAwO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2l2ZW5UaGVSZWxhdGl2ZVBvc2l0aW9uSG93TXVjaFRvUm90YXRlKFxuICByZWxhdGl2ZVBvc2l0aW9uOiBudW1iZXIsXG4gIG1heFJvdGF0aW9uOiBudW1iZXJcbikge1xuICByZXR1cm4gcmVsYXRpdmVQb3NpdGlvbiAqIG1heFJvdGF0aW9uIC0gbWF4Um90YXRpb24gLyAyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxTQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFGLE9BQUE7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
|
|
160
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGhyb3R0bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdCIsIl9oZWxwZXJzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiTUFYX1RJTFQiLCJ4IiwieSIsInVzZVRpbHRVcGRhdGVzIiwiYWN0aXZlIiwicmVsYXRpdmVUb0VsIiwib25UaWx0Iiwib25JbnZlcnNlTWF0cml4Iiwic2Vuc29yU2NhbGUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJ0aWx0TGltaXQiLCJvcHRpb25zIiwidXNlRWZmZWN0IiwiX29wdGlvbnMkZ3lyb0VuYWJsZWQiLCJ1cGRhdGVQb3NpdGlvbnMiLCJyZWxhdGl2ZVRvWCIsInJlbGF0aXZlVG9ZIiwiX29wdGlvbnMkcm91bmQiLCJfb3B0aW9ucyRyb3VuZDIiLCJlbCIsImN1cnJlbnQiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwid2lkdGgiLCJ4MCIsInhXIiwiaGVpZ2h0IiwieTAiLCJ5SCIsImxlZnQiLCJjbGllbnRXaWR0aCIsInRvcCIsImNsaWVudEhlaWdodCIsImRpc3RhbmNlT2ZmUmlnaHQiLCJjYWxjdWxhdGVEaXN0YW5jZVJlbGF0aXZlVG9Cb3VuZHMiLCJyb3VuZCIsImRpc3RhbmNlT2ZmQm90dG9tIiwiaG93TXVjaFRvUm90YXRlWSIsImdpdmVuVGhlUmVsYXRpdmVQb3NpdGlvbkhvd011Y2hUb1JvdGF0ZSIsImhvd011Y2hUb1JvdGF0ZVgiLCJoYW5kbGVyIiwidGhyb3R0bGUiLCJfcmVmIiwidG91Y2hIYW5kbGVyIiwiX3JlZjIiLCJ0b3VjaGVzIiwicGFnZVgiLCJwYWdlWSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJfaW52ZXJzZU1hdHJpeCIsIl9saW1pdHMiLCJiZXRhIiwiZ2FtbWEiLCJvcmllbnRhdGlvbkxpc3RlbmVyIiwiX3JlZjMiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib2Zmc2V0IiwiX2JldGEiLCJNYXRoIiwibWluIiwibWF4IiwiX2dhbW1hIiwiZmxhdHRlbk1hdHJpeCIsImludmVydE1hdHJpeCIsImdlbmVyYXRlTWF0cml4RnJvbU9wZXJhdGlvbnMiLCJ0eXBlIiwiYW5nbGUiLCJyZW1vdmVMaXN0ZW5lcnMiLCJneXJvRW5hYmxlZCIsInVzZVRpbHQiLCJtYXhUaWx0IiwidGlsdCIsInNldFRpbHQiLCJ1c2VTdGF0ZSIsInRpbHRSZXNldE1hdHJpeCIsInNldFRpbHRSZXNldE1hdHJpeCIsIklERU5USVRZX01BVFJJWCIsInJlbGF0aXZlVG8iLCJ1c2VSZWYiLCJtb3VzZVBvc2l0aW9uIiwiZWxlbWVudEluaXRpYWxQb3NpdGlvbiIsImVsZW1lbnRTaXplRGltZW5zaW9uIiwic2hvdWxkUm91bmQiLCJub3JtYWxpemVJbml0aWFsUG9zaXRpb24iLCJkb05vdEFsbG93R29pbmdCZXlvbmRMb3dlckxpbWl0IiwiZG9Ob3RBbGxvd0hvaW5nQmV5b25kSGlnaGVyTGltaXQiLCJ0aHJlZVJ1bGUiLCJyZXN1bHQiLCJyZWxhdGl2ZVBvc2l0aW9uIiwibWF4Um90YXRpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdWkvdXNlVGlsdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRocm90dGxlIGZyb20gXCJsb2Rhc2gvdGhyb3R0bGVcIjtcbmltcG9ydCB7IFJlZk9iamVjdCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge1xuICBmbGF0dGVuTWF0cml4LFxuICBnZW5lcmF0ZU1hdHJpeEZyb21PcGVyYXRpb25zLFxuICBJREVOVElUWV9NQVRSSVgsXG4gIGludmVydE1hdHJpeCxcbn0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvUGFyYWxsYXgvbWF0aC9oZWxwZXJzXCI7XG5cbmNvbnN0IE1BWF9USUxUID0ge1xuICB4OiAxMDAsXG4gIHk6IDEwMCxcbn07XG5cbnR5cGUgT3B0aW9ucyA9IHtcbiAgcm91bmQ/OiBib29sZWFuO1xuICBneXJvRW5hYmxlZD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlVGlsdFVwZGF0ZXMoXG4gIGFjdGl2ZTogYm9vbGVhbixcbiAgcmVsYXRpdmVUb0VsOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPixcbiAgb25UaWx0OiAocDogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9KSA9PiB2b2lkLFxuICBvbkludmVyc2VNYXRyaXg/OiAodXBkYXRlRnVuYzogKG1hdHJpeDogbnVtYmVyW10pID0+IG51bWJlcltdKSA9PiB2b2lkLFxuICBzZW5zb3JTY2FsZTogbnVtYmVyID0gMSxcbiAgdGlsdExpbWl0OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0gPSBNQVhfVElMVCxcbiAgb3B0aW9ucz86IE9wdGlvbnNcbikge1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZVBvc2l0aW9ucyA9IChyZWxhdGl2ZVRvWDogbnVtYmVyLCByZWxhdGl2ZVRvWTogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsID0gcmVsYXRpdmVUb0VsLmN1cnJlbnQhO1xuICAgICAgICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICB3aWR0aDogW3gwLCB4V10sXG4gICAgICAgICAgaGVpZ2h0OiBbeTAsIHlIXSxcbiAgICAgICAgfSA9IHtcbiAgICAgICAgICB3aWR0aDogW3JlY3QubGVmdCwgZWwuY2xpZW50V2lkdGhdLFxuICAgICAgICAgIGhlaWdodDogW3JlY3QudG9wLCBlbC5jbGllbnRIZWlnaHRdLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkaXN0YW5jZU9mZlJpZ2h0ID0gY2FsY3VsYXRlRGlzdGFuY2VSZWxhdGl2ZVRvQm91bmRzKFxuICAgICAgICAgIHJlbGF0aXZlVG9YLFxuICAgICAgICAgIHgwLFxuICAgICAgICAgIHhXLFxuICAgICAgICAgIG9wdGlvbnM/LnJvdW5kID8/IHRydWVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VPZmZCb3R0b20gPSBjYWxjdWxhdGVEaXN0YW5jZVJlbGF0aXZlVG9Cb3VuZHMoXG4gICAgICAgICAgcmVsYXRpdmVUb1ksXG4gICAgICAgICAgeTAsXG4gICAgICAgICAgeUgsXG4gICAgICAgICAgb3B0aW9ucz8ucm91bmQgPz8gdHJ1ZVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBob3dNdWNoVG9Sb3RhdGVZID0gZ2l2ZW5UaGVSZWxhdGl2ZVBvc2l0aW9uSG93TXVjaFRvUm90YXRlKFxuICAgICAgICAgIGRpc3RhbmNlT2ZmUmlnaHQsXG4gICAgICAgICAgdGlsdExpbWl0LnlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaG93TXVjaFRvUm90YXRlWCA9IGdpdmVuVGhlUmVsYXRpdmVQb3NpdGlvbkhvd011Y2hUb1JvdGF0ZShcbiAgICAgICAgICBkaXN0YW5jZU9mZkJvdHRvbSxcbiAgICAgICAgICB0aWx0TGltaXQueFxuICAgICAgICApO1xuXG4gICAgICAgIG9uVGlsdCh7XG4gICAgICAgICAgeTogaG93TXVjaFRvUm90YXRlWCAqIDIsXG4gICAgICAgICAgeDogaG93TXVjaFRvUm90YXRlWSAqIDIsXG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aHJvdHRsZSgoeyB4LCB5IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgdXBkYXRlUG9zaXRpb25zKHgsIHkpO1xuICAgICAgfSwgMTAwMCAvIDMwKTtcbiAgICAgIGNvbnN0IHRvdWNoSGFuZGxlciA9IHRocm90dGxlKCh7IHRvdWNoZXMgfTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IHBhZ2VYLCBwYWdlWSB9ID0gdG91Y2hlc1swXTtcbiAgICAgICAgdXBkYXRlUG9zaXRpb25zKHBhZ2VYLCBwYWdlWSk7XG4gICAgICB9LCAxMDAwIC8gMzApO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgaGFuZGxlcik7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0b3VjaEhhbmRsZXIpO1xuICAgICAgbGV0IF9pbnZlcnNlTWF0cml4OiBudW1iZXJbXSB8IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IF9saW1pdHM6IHtcbiAgICAgICAgW2sgaW4gXCJiZXRhXCIgfCBcImdhbW1hXCJdPzogW251bWJlciwgbnVtYmVyXTtcbiAgICAgIH0gPSB7XG4gICAgICAgIGJldGE6IHVuZGVmaW5lZCxcbiAgICAgICAgZ2FtbWE6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgICBjb25zdCBvcmllbnRhdGlvbkxpc3RlbmVyOiAoZTogRGV2aWNlT3JpZW50YXRpb25FdmVudCkgPT4gdm9pZCA9ICh7XG4gICAgICAgIGJldGEsXG4gICAgICAgIGdhbW1hLFxuICAgICAgfSkgPT4ge1xuICAgICAgICBiZXRhID0gYmV0YSEgKiAwLjU7XG4gICAgICAgIGdhbW1hID0gZ2FtbWEhICogMC41O1xuICAgICAgICBpZiAoIV9pbnZlcnNlTWF0cml4KSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgaGFuZGxlcik7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdG91Y2hIYW5kbGVyKTtcbiAgICAgICAgICBjb25zdCBvZmZzZXQgPSAxMi41O1xuICAgICAgICAgIF9saW1pdHMuYmV0YSA9IFtiZXRhISAtIG9mZnNldCwgYmV0YSEgKyBvZmZzZXRdO1xuICAgICAgICAgIF9saW1pdHMuZ2FtbWEgPSBbZ2FtbWEhIC0gb2Zmc2V0LCBnYW1tYSEgKyBvZmZzZXRdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IF9iZXRhID0gTWF0aC5taW4oXG4gICAgICAgICAgX2xpbWl0cy5iZXRhIVsxXSxcbiAgICAgICAgICBNYXRoLm1heChfbGltaXRzLmJldGEhWzBdLCBiZXRhISlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgX2dhbW1hID0gTWF0aC5taW4oXG4gICAgICAgICAgX2xpbWl0cy5nYW1tYSFbMV0sXG4gICAgICAgICAgTWF0aC5tYXgoX2xpbWl0cy5nYW1tYSFbMF0sIGdhbW1hISlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFfaW52ZXJzZU1hdHJpeCAmJiBvbkludmVyc2VNYXRyaXgpIHtcbiAgICAgICAgICBvbkludmVyc2VNYXRyaXgoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChfaW52ZXJzZU1hdHJpeCA9IGZsYXR0ZW5NYXRyaXgoXG4gICAgICAgICAgICAgIGludmVydE1hdHJpeChcbiAgICAgICAgICAgICAgICBnZW5lcmF0ZU1hdHJpeEZyb21PcGVyYXRpb25zKFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInJvdGF0ZVlcIixcbiAgICAgICAgICAgICAgICAgICAgYW5nbGU6IF9nYW1tYSEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInJvdGF0ZVhcIixcbiAgICAgICAgICAgICAgICAgICAgYW5nbGU6IC1fYmV0YSEsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBvblRpbHQoe1xuICAgICAgICAgIHk6IC1fYmV0YSAqIHNlbnNvclNjYWxlLFxuICAgICAgICAgIHg6IF9nYW1tYSAqIHNlbnNvclNjYWxlLFxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcnMoKSB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGhhbmRsZXIpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0b3VjaEhhbmRsZXIpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnM/Lmd5cm9FbmFibGVkID8/IHRydWUpIHtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJkZXZpY2VvcmllbnRhdGlvblwiLCBvcmllbnRhdGlvbkxpc3RlbmVyKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImRldmljZW9yaWVudGF0aW9uXCIsIG9yaWVudGF0aW9uTGlzdGVuZXIpO1xuICAgICAgICAgIHJlbW92ZUxpc3RlbmVycygpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICgpID0+IHJlbW92ZUxpc3RlbmVycygpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2FjdGl2ZSwgb25JbnZlcnNlTWF0cml4LCBvblRpbHRdKTtcbn1cblxuLyoqXG4gKiBUaGlzIGhvb2sgYmluZHMgdG8gdHdvIG1ldGhvZHMgZm9yIGNhbGN1bGF0aW5nIHRpbHRcbiAqXG4gKiBXaGVuIGF2YWlsYWJsZTogVGhlIGRldmljZSBzZW5zb3JzXG4gKiBXaGVuIG9uIGRlc2t0b3A6IFRoZSBtb3VzZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBhIHJlZlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VUaWx0KFxuICBhY3RpdmU6IGJvb2xlYW4sXG4gIC8qKlxuICAgKiBBIHNjYWxlIHRvIGluY3JlYXNlIHRoZSB2YWx1ZXMgZnJvbSB0aGUgc2Vuc29yc1xuICAgKlxuICAgKiBAaGFjayBZb3UgY2FuIHNldCB0aGlzIHZhbHVlIHRvIDAgYXMgYSB3YXkgdG8gZGlzYWJsZSB0aGUgdGlsdCBjYWxjIG9uIG1vYmlsZVxuICAgKi9cbiAgc2Vuc29yU2NhbGU6IG51bWJlciA9IDEsXG4gIG1heFRpbHQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSA9IE1BWF9USUxULFxuICBvcHRpb25zPzogT3B0aW9uc1xuKSB7XG4gIGNvbnN0IFt0aWx0LCBzZXRUaWx0XSA9IHVzZVN0YXRlPHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfT4oe1xuICAgIHg6IDAsXG4gICAgeTogMCxcbiAgfSk7XG4gIGNvbnN0IFt0aWx0UmVzZXRNYXRyaXgsIHNldFRpbHRSZXNldE1hdHJpeF0gPSB1c2VTdGF0ZTxudW1iZXJbXT4oKCkgPT5cbiAgICBmbGF0dGVuTWF0cml4KElERU5USVRZX01BVFJJWCgpKVxuICApO1xuICBjb25zdCByZWxhdGl2ZVRvID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICB1c2VUaWx0VXBkYXRlcyhcbiAgICBhY3RpdmUsXG4gICAgcmVsYXRpdmVUbyxcbiAgICBzZXRUaWx0LFxuICAgIHNldFRpbHRSZXNldE1hdHJpeCxcbiAgICBzZW5zb3JTY2FsZSxcbiAgICBtYXhUaWx0LFxuICAgIG9wdGlvbnNcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIC8qKiBUaGUgZWxlbWVudCB0byBtb25pdG9yIG1vdXNlIGhvdmVyIHJlbGF0aXZlIHRvICovXG4gICAgcmVsYXRpdmVUbyxcbiAgICAvKipcbiAgICAgKiBUaGUgbWF0cml4IHRoYXQgcmVwcmVzZW50cyB0aGUgb3JpZ2luYWwgdGlsdCwgc28gaXQgY2FuIGJlIHVzZWQgd2l0aCB0aGUgdGlsdCBwcm9wIHRvIHRpbHQgcmVsYXRpdmUgdG8gdGhlIHVzZXJcbiAgICAgKiBVc2UgaXQgb24gY3NzIGxpa2Ugc28gdHJhbnNmb3JtOiBtYXRyaXgzZCh0aWx0UmVzZXRNYXRyaXguam9pbihcIixcIikpIHJvdGF0ZVgodGlsdC54KSByb3RhdGVZKHRpbHQueSlcbiAgICAgKi9cbiAgICB0aWx0UmVzZXRNYXRyaXgsXG5cbiAgICAvKipcbiAgICAgKiBIb3cgbXVjaCB0aWx0IHNob3VsZCBiZSBhcHBsaWVkIGJhc2VkXG4gICAgICovXG4gICAgdGlsdCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZURpc3RhbmNlUmVsYXRpdmVUb0JvdW5kcyhcbiAgbW91c2VQb3NpdGlvbjogbnVtYmVyLFxuICBlbGVtZW50SW5pdGlhbFBvc2l0aW9uOiBudW1iZXIsXG4gIGVsZW1lbnRTaXplRGltZW5zaW9uOiBudW1iZXIsXG4gIHNob3VsZFJvdW5kOiBib29sZWFuXG4pIHtcbiAgY29uc3Qgbm9ybWFsaXplSW5pdGlhbFBvc2l0aW9uID0gbW91c2VQb3NpdGlvbiAtIGVsZW1lbnRJbml0aWFsUG9zaXRpb247XG4gIGNvbnN0IGRvTm90QWxsb3dHb2luZ0JleW9uZExvd2VyTGltaXQgPSBNYXRoLm1heChub3JtYWxpemVJbml0aWFsUG9zaXRpb24sIDApO1xuICBjb25zdCBkb05vdEFsbG93SG9pbmdCZXlvbmRIaWdoZXJMaW1pdCA9IE1hdGgubWluKFxuICAgIGRvTm90QWxsb3dHb2luZ0JleW9uZExvd2VyTGltaXQsXG4gICAgZWxlbWVudFNpemVEaW1lbnNpb25cbiAgKTtcbiAgY29uc3QgdGhyZWVSdWxlID1cbiAgICAoZG9Ob3RBbGxvd0hvaW5nQmV5b25kSGlnaGVyTGltaXQgKiAxMDApIC8gZWxlbWVudFNpemVEaW1lbnNpb247XG4gIGNvbnN0IHJlc3VsdCA9IChzaG91bGRSb3VuZCA/IE1hdGgucm91bmQodGhyZWVSdWxlKSA6IHRocmVlUnVsZSkgLyAxMDA7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnaXZlblRoZVJlbGF0aXZlUG9zaXRpb25Ib3dNdWNoVG9Sb3RhdGUoXG4gIHJlbGF0aXZlUG9zaXRpb246IG51bWJlcixcbiAgbWF4Um90YXRpb246IG51bWJlclxuKSB7XG4gIHJldHVybiByZWxhdGl2ZVBvc2l0aW9uICogbWF4Um90YXRpb24gLSBtYXhSb3RhdGlvbiAvIDI7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FB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
|
|
@@ -5,22 +5,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = useZoomable;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _useZoomableModule = _interopRequireDefault(require("./useZoomable.module.scss"));
|
|
9
8
|
var _client = require("react-dom/client");
|
|
10
9
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
10
|
+
var _useZoomableModule = _interopRequireDefault(require("./useZoomable.module.scss"));
|
|
11
11
|
var _useHero = _interopRequireDefault(require("../useHero"));
|
|
12
12
|
var _useMergeRefs = require("../useMergeRefs");
|
|
13
13
|
var _ownEvent = _interopRequireDefault(require("../../utils/ownEvent"));
|
|
14
|
-
function _interopRequireDefault(
|
|
15
|
-
function
|
|
16
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
17
16
|
/**
|
|
18
17
|
* Allows an element to be zoomable for fullscreen
|
|
19
18
|
*/
|
|
20
19
|
function useZoomable(id) {
|
|
21
|
-
const zoomableID = (0, _react.useMemo)(() =>
|
|
20
|
+
const zoomableID = (0, _react.useMemo)(() => "zoomable-".concat(id), []);
|
|
22
21
|
const getBackdrop = () => {
|
|
23
|
-
return document.querySelector(
|
|
22
|
+
return document.querySelector("[data-zoomable=\"".concat(zoomableID, "\"]"));
|
|
24
23
|
};
|
|
25
24
|
const {
|
|
26
25
|
heroRef,
|
|
@@ -107,9 +106,9 @@ function useZoomable(id) {
|
|
|
107
106
|
backdrop.addEventListener("click", _unzoom);
|
|
108
107
|
backdrop.setAttribute("data-zoomable", zoomableID);
|
|
109
108
|
document.body.appendChild(backdrop);
|
|
110
|
-
(0, _client.createRoot)(backdrop).render(
|
|
109
|
+
(0, _client.createRoot)(backdrop).render(/*#__PURE__*/_react.default.createElement(HeroMount, null));
|
|
111
110
|
} else {
|
|
112
|
-
(0, _client.createRoot)(existingBackdrop).render(
|
|
111
|
+
(0, _client.createRoot)(existingBackdrop).render(/*#__PURE__*/_react.default.createElement(HeroMount, null));
|
|
113
112
|
}
|
|
114
113
|
}
|
|
115
114
|
(0, _react.useEffect)(() => {
|
|
@@ -132,4 +131,4 @@ function useZoomable(id) {
|
|
|
132
131
|
zoomableEl: mergedRefs
|
|
133
132
|
};
|
|
134
133
|
}
|
|
135
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlWm9vbWFibGVNb2R1bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NsaWVudCIsIl9yZWFjdERvbSIsIl91c2VIZXJvIiwiX3VzZU1lcmdlUmVmcyIsIl9vd25FdmVudCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJ1c2Vab29tYWJsZSIsImlkIiwiem9vbWFibGVJRCIsInVzZU1lbW8iLCJnZXRCYWNrZHJvcCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImhlcm9SZWYiLCJ0cmlnZ2VyIiwidXNlSGVybyIsInJlcGVhdGFibGUiLCJvbkhlcm9TdGFydCIsImNsb25lIiwiYmQiLCJyZW1vdmVDYiIsIl9yZWYiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0IiwiUmVhY3RET00iLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwiY29uc29sZSIsImVycm9yIiwicmVtb3ZlIiwic3R5bGUiLCJvcGFjaXR5IiwibWlkZGxld2F5Q2xpY2siLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiX3pvb20iLCJhZGRFdmVudExpc3RlbmVyIiwib3duRXZlbnQiLCJ6b29tYWJsZUVsIiwidXNlUmVmIiwiX3Vuem9vbSIsImVsIiwiY3VycmVudCIsImVsQ2xvbmUiLCJjbG9uZU5vZGUiLCJ2aXNpYmlsaXR5IiwiSGVyb01vdW50IiwidW56b29tQ2IiLCJvbkhlcm9FbmQiLCJjbGFzc0xpc3QiLCJTdHlsZXMiLCJ6b29tYWJsZUluZGljYXRvciIsImNyZWF0ZUVsZW1lbnQiLCJyZWYiLCJhcHBlbmRDaGlsZCIsInZlcnRpY2FsUHJvcG9ydGlvbiIsImNsaWVudFdpZHRoIiwiY2xpZW50SGVpZ2h0IiwidGFyZ2V0V2lkdGgiLCJob3Jpem9udGFsUHJvcG9ydGlvbiIsIndpZHRoIiwiaGVpZ2h0IiwiZXhpc3RpbmdCYWNrZHJvcCIsImJhY2tkcm9wIiwiYWRkIiwic2V0QXR0cmlidXRlIiwiYm9keSIsImNyZWF0ZVJvb3QiLCJyZW5kZXIiLCJ1c2VFZmZlY3QiLCJtZXJnZWRSZWZzIiwidXNlTWVyZ2VSZWZzRnVuYyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91aS91c2Vab29tYWJsZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU3R5bGVzIGZyb20gXCIuL3VzZVpvb21hYmxlLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBjcmVhdGVSb290IH0gZnJvbSBcInJlYWN0LWRvbS9jbGllbnRcIjtcbmltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgdXNlSGVybyBmcm9tIFwiLi4vdXNlSGVyb1wiO1xuaW1wb3J0IHsgdXNlTWVyZ2VSZWZzRnVuYyB9IGZyb20gXCIuLi91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCBvd25FdmVudCBmcm9tIFwiLi4vLi4vdXRpbHMvb3duRXZlbnRcIjtcbi8qKlxuICogQWxsb3dzIGFuIGVsZW1lbnQgdG8gYmUgem9vbWFibGUgZm9yIGZ1bGxzY3JlZW5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlWm9vbWFibGUoaWQ6IHN0cmluZykge1xuICBjb25zdCB6b29tYWJsZUlEID0gdXNlTWVtbygoKSA9PiBgem9vbWFibGUtJHtpZH1gLCBbXSk7XG4gIGNvbnN0IGdldEJhY2tkcm9wID0gKCkgPT4ge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgYFtkYXRhLXpvb21hYmxlPVwiJHt6b29tYWJsZUlEfVwiXWBcbiAgICApISBhcyBIVE1MRGl2RWxlbWVudDtcbiAgfTtcbiAgY29uc3QgeyBoZXJvUmVmLCB0cmlnZ2VyIH0gPSB1c2VIZXJvKFxuICAgIHpvb21hYmxlSUQsXG4gICAge1xuICAgICAgXCJkYXRhLXByZWZmaXhcIjogXCJ6b29tYWJsZVwiLFxuICAgICAgcmVwZWF0YWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG9uSGVyb1N0YXJ0OiAoY2xvbmUsIC4uLmFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgYmQgPSBnZXRCYWNrZHJvcCgpO1xuICAgICAgICBjb25zdCByZW1vdmVDYiA9ICh7IGN1cnJlbnRUYXJnZXQsIHRhcmdldCB9OiBUcmFuc2l0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAodGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICBpZiAoKFwidW5tb3VudENvbXBvbmVudEF0Tm9kZVwiIGluIFJlYWN0RE9NKSBhcyBhbnkpXG4gICAgICAgICAgICAgIChSZWFjdERPTSBhcyBhbnkpLnVubW91bnRDb21wb25lbnRBdE5vZGUoYmQpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiVGhpcyBjb21wb25lbnQgZG9lc24ndCB3b3JrIHdpdGggdGhlIG5ldyB2ZXJzaW9ucyBvZiByZWFjdCB5ZXQuLi5cIilcbiAgICAgICAgICAgIGJkLnJlbW92ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgYmQuc3R5bGUub3BhY2l0eSA9IFwiMFwiO1xuICAgICAgICBjb25zdCBtaWRkbGV3YXlDbGljayA9ICgpID0+IHtcbiAgICAgICAgICBiZC5yZW1vdmVFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmVuZFwiLCByZW1vdmVDYik7XG4gICAgICAgICAgY2xvbmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIG1pZGRsZXdheUNsaWNrKTtcbiAgICAgICAgICBfem9vbSgpO1xuICAgICAgICB9O1xuICAgICAgICBjbG9uZS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgbWlkZGxld2F5Q2xpY2spO1xuICAgICAgICBiZC5hZGRFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmVuZFwiLCByZW1vdmVDYik7XG4gICAgICAgIGJkLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uc3RhcnRcIiwgKCkgPT4ge1xuICAgICAgICAgIGJkLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcInRyYW5zaXRpb25jYW5jZWxcIixcbiAgICAgICAgICAgIG93bkV2ZW50KCgpID0+IGJkLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsIHJlbW92ZUNiKSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfVxuICApO1xuICBjb25zdCB6b29tYWJsZUVsID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgZnVuY3Rpb24gX3Vuem9vbSgpIHtcbiAgICB0cmlnZ2VyKCk7XG4gIH1cblxuICBmdW5jdGlvbiBfem9vbSgpIHtcbiAgICBjb25zdCBlbCA9IHpvb21hYmxlRWwuY3VycmVudCE7XG4gICAgY29uc3QgZWxDbG9uZSA9IGVsLmNsb25lTm9kZSh0cnVlKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBlbENsb25lLnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuXG4gICAgZnVuY3Rpb24gSGVyb01vdW50KCkge1xuICAgICAgY29uc3QgeyBoZXJvUmVmIH0gPSB1c2VIZXJvKFxuICAgICAgICB6b29tYWJsZUlELFxuICAgICAgICB7XG4gICAgICAgICAgXCJkYXRhLXByZWZmaXhcIjogXCJ6b29tYWJsZVwiLFxuICAgICAgICAgIHJlcGVhdGFibGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBvbkhlcm9TdGFydDogKGNsb25lLCAuLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICBnZXRCYWNrZHJvcCgpLnN0eWxlLm9wYWNpdHkgPSBcIjFcIjtcbiAgICAgICAgICAgIGNvbnN0IHVuem9vbUNiID0gKCkgPT4ge1xuICAgICAgICAgICAgICBfdW56b29tKCk7XG4gICAgICAgICAgICAgIGNsb25lLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB1bnpvb21DYik7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2xvbmUuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHVuem9vbUNiKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uSGVyb0VuZDogKCkgPT4ge1xuICAgICAgICAgICAgaGVyb1JlZi5jdXJyZW50IS5jbGFzc0xpc3QucmVtb3ZlKFN0eWxlcy56b29tYWJsZUluZGljYXRvcik7XG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIHJlZj17KHJlZikgPT4ge1xuICAgICAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgICByZWYuYXBwZW5kQ2hpbGQoZWxDbG9uZSk7XG4gICAgICAgICAgICAgIChoZXJvUmVmIGFzIGFueSkuY3VycmVudCA9IGVsQ2xvbmU7XG4gICAgICAgICAgICAgIGNvbnN0IHZlcnRpY2FsUHJvcG9ydGlvbiA9IGVsLmNsaWVudFdpZHRoIC8gZWwuY2xpZW50SGVpZ2h0O1xuICAgICAgICAgICAgICBjb25zdCB0YXJnZXRXaWR0aCA9IHJlZi5jbGllbnRIZWlnaHQgKiB2ZXJ0aWNhbFByb3BvcnRpb247XG5cbiAgICAgICAgICAgICAgaWYgKHRhcmdldFdpZHRoID4gcmVmLmNsaWVudFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaG9yaXpvbnRhbFByb3BvcnRpb24gPSBlbC5jbGllbnRIZWlnaHQgLyBlbC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICBlbENsb25lLnN0eWxlLndpZHRoID0gcmVmLmNsaWVudFdpZHRoICsgXCJweFwiO1xuICAgICAgICAgICAgICAgIGVsQ2xvbmUuc3R5bGUuaGVpZ2h0ID1cbiAgICAgICAgICAgICAgICAgIHJlZi5jbGllbnRXaWR0aCAqIGhvcml6b250YWxQcm9wb3J0aW9uICsgXCJweFwiO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVsQ2xvbmUuc3R5bGUuaGVpZ2h0ID0gcmVmLmNsaWVudEhlaWdodCArIFwicHhcIjtcbiAgICAgICAgICAgICAgICBlbENsb25lLnN0eWxlLndpZHRoID0gdGFyZ2V0V2lkdGggKyBcInB4XCI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ0JhY2tkcm9wID0gZ2V0QmFja2Ryb3AoKTtcbiAgICBpZiAoIWV4aXN0aW5nQmFja2Ryb3ApIHtcbiAgICAgIGNvbnN0IGJhY2tkcm9wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblxuICAgICAgYmFja2Ryb3AuY2xhc3NMaXN0LmFkZChTdHlsZXMuYmFja2Ryb3ApO1xuICAgICAgYmFja2Ryb3AuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIF91bnpvb20pO1xuICAgICAgYmFja2Ryb3Auc2V0QXR0cmlidXRlKFwiZGF0YS16b29tYWJsZVwiLCB6b29tYWJsZUlEKTtcblxuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChiYWNrZHJvcCk7XG4gICAgICBjcmVhdGVSb290KGJhY2tkcm9wKS5yZW5kZXIoPEhlcm9Nb3VudCAvPik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNyZWF0ZVJvb3QoZXhpc3RpbmdCYWNrZHJvcCkucmVuZGVyKDxIZXJvTW91bnQgLz4pO1xuICAgIH1cbiAgfVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsID0gem9vbWFibGVFbC5jdXJyZW50ITtcbiAgICBlbC5jbGFzc0xpc3QuYWRkKFN0eWxlcy56b29tYWJsZUluZGljYXRvcik7XG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIF96b29tKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShTdHlsZXMuem9vbWFibGVJbmRpY2F0b3IpO1xuICAgICAgY29uc3QgYmQgPSBnZXRCYWNrZHJvcCgpO1xuICAgICAgaWYgKGJkKSB7XG4gICAgICAgIGJkLnN0eWxlLm9wYWNpdHkgPSBcIjBcIjtcbiAgICAgICAgYmQuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIiwgKCkgPT4ge1xuICAgICAgICAgIGJkLnJlbW92ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgY29uc3QgbWVyZ2VkUmVmcyA9IHVzZU1lcmdlUmVmc0Z1bmMoaGVyb1JlZiwgem9vbWFibGVFbCk7XG5cbiAgcmV0dXJuIHtcbiAgICB6b29tYWJsZUVsOiBtZXJnZWRSZWZzLFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxrQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sU0FBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQTRDLFNBQUFFLHVCQUFBTSxHQUFBLFdBQUFBLEdBQUEs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
|
|
134
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xpZW50IiwiX3JlYWN0RG9tIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91c2Vab29tYWJsZU1vZHVsZSIsIl91c2VIZXJvIiwiX3VzZU1lcmdlUmVmcyIsIl9vd25FdmVudCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInVzZVpvb21hYmxlIiwiaWQiLCJ6b29tYWJsZUlEIiwidXNlTWVtbyIsImNvbmNhdCIsImdldEJhY2tkcm9wIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiaGVyb1JlZiIsInRyaWdnZXIiLCJ1c2VIZXJvIiwicmVwZWF0YWJsZSIsIm9uSGVyb1N0YXJ0IiwiY2xvbmUiLCJiZCIsInJlbW92ZUNiIiwiX3JlZiIsImN1cnJlbnRUYXJnZXQiLCJ0YXJnZXQiLCJSZWFjdERPTSIsInVubW91bnRDb21wb25lbnRBdE5vZGUiLCJjb25zb2xlIiwiZXJyb3IiLCJyZW1vdmUiLCJzdHlsZSIsIm9wYWNpdHkiLCJtaWRkbGV3YXlDbGljayIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJfem9vbSIsImFkZEV2ZW50TGlzdGVuZXIiLCJvd25FdmVudCIsInpvb21hYmxlRWwiLCJ1c2VSZWYiLCJfdW56b29tIiwiZWwiLCJjdXJyZW50IiwiZWxDbG9uZSIsImNsb25lTm9kZSIsInZpc2liaWxpdHkiLCJIZXJvTW91bnQiLCJ1bnpvb21DYiIsIm9uSGVyb0VuZCIsImNsYXNzTGlzdCIsIlN0eWxlcyIsInpvb21hYmxlSW5kaWNhdG9yIiwiY3JlYXRlRWxlbWVudCIsInJlZiIsImFwcGVuZENoaWxkIiwidmVydGljYWxQcm9wb3J0aW9uIiwiY2xpZW50V2lkdGgiLCJjbGllbnRIZWlnaHQiLCJ0YXJnZXRXaWR0aCIsImhvcml6b250YWxQcm9wb3J0aW9uIiwid2lkdGgiLCJoZWlnaHQiLCJleGlzdGluZ0JhY2tkcm9wIiwiYmFja2Ryb3AiLCJhZGQiLCJzZXRBdHRyaWJ1dGUiLCJib2R5IiwiY3JlYXRlUm9vdCIsInJlbmRlciIsInVzZUVmZmVjdCIsIm1lcmdlZFJlZnMiLCJ1c2VNZXJnZVJlZnNGdW5jIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VpL3VzZVpvb21hYmxlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNyZWF0ZVJvb3QgfSBmcm9tIFwicmVhY3QtZG9tL2NsaWVudFwiO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCBTdHlsZXMgZnJvbSBcIi4vdXNlWm9vbWFibGUubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB1c2VIZXJvIGZyb20gXCIuLi91c2VIZXJvXCI7XG5pbXBvcnQgeyB1c2VNZXJnZVJlZnNGdW5jIH0gZnJvbSBcIi4uL3VzZU1lcmdlUmVmc1wiO1xuaW1wb3J0IG93bkV2ZW50IGZyb20gXCIuLi8uLi91dGlscy9vd25FdmVudFwiO1xuLyoqXG4gKiBBbGxvd3MgYW4gZWxlbWVudCB0byBiZSB6b29tYWJsZSBmb3IgZnVsbHNjcmVlblxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2Vab29tYWJsZShpZDogc3RyaW5nKSB7XG4gIGNvbnN0IHpvb21hYmxlSUQgPSB1c2VNZW1vKCgpID0+IGB6b29tYWJsZS0ke2lkfWAsIFtdKTtcbiAgY29uc3QgZ2V0QmFja2Ryb3AgPSAoKSA9PiB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBgW2RhdGEtem9vbWFibGU9XCIke3pvb21hYmxlSUR9XCJdYFxuICAgICkhIGFzIEhUTUxEaXZFbGVtZW50O1xuICB9O1xuICBjb25zdCB7IGhlcm9SZWYsIHRyaWdnZXIgfSA9IHVzZUhlcm8oXG4gICAgem9vbWFibGVJRCxcbiAgICB7XG4gICAgICBcImRhdGEtcHJlZmZpeFwiOiBcInpvb21hYmxlXCIsXG4gICAgICByZXBlYXRhYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgb25IZXJvU3RhcnQ6IChjbG9uZSwgLi4uYXJncykgPT4ge1xuICAgICAgICBjb25zdCBiZCA9IGdldEJhY2tkcm9wKCk7XG4gICAgICAgIGNvbnN0IHJlbW92ZUNiID0gKHsgY3VycmVudFRhcmdldCwgdGFyZ2V0IH06IFRyYW5zaXRpb25FdmVudCkgPT4ge1xuICAgICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgICAgIGlmICgoXCJ1bm1vdW50Q29tcG9uZW50QXROb2RlXCIgaW4gUmVhY3RET00pIGFzIGFueSlcbiAgICAgICAgICAgICAgKFJlYWN0RE9NIGFzIGFueSkudW5tb3VudENvbXBvbmVudEF0Tm9kZShiZCk7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJUaGlzIGNvbXBvbmVudCBkb2Vzbid0IHdvcmsgd2l0aCB0aGUgbmV3IHZlcnNpb25zIG9mIHJlYWN0IHlldC4uLlwiKVxuICAgICAgICAgICAgYmQucmVtb3ZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBiZC5zdHlsZS5vcGFjaXR5ID0gXCIwXCI7XG4gICAgICAgIGNvbnN0IG1pZGRsZXdheUNsaWNrID0gKCkgPT4ge1xuICAgICAgICAgIGJkLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsIHJlbW92ZUNiKTtcbiAgICAgICAgICBjbG9uZS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgbWlkZGxld2F5Q2xpY2spO1xuICAgICAgICAgIF96b29tKCk7XG4gICAgICAgIH07XG4gICAgICAgIGNsb25lLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBtaWRkbGV3YXlDbGljayk7XG4gICAgICAgIGJkLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsIHJlbW92ZUNiKTtcbiAgICAgICAgYmQuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25zdGFydFwiLCAoKSA9PiB7XG4gICAgICAgICAgYmQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgIFwidHJhbnNpdGlvbmNhbmNlbFwiLFxuICAgICAgICAgICAgb3duRXZlbnQoKCkgPT4gYmQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIiwgcmVtb3ZlQ2IpKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9XG4gICk7XG4gIGNvbnN0IHpvb21hYmxlRWwgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBmdW5jdGlvbiBfdW56b29tKCkge1xuICAgIHRyaWdnZXIoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIF96b29tKCkge1xuICAgIGNvbnN0IGVsID0gem9vbWFibGVFbC5jdXJyZW50ITtcbiAgICBjb25zdCBlbENsb25lID0gZWwuY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGVsQ2xvbmUuc3R5bGUudmlzaWJpbGl0eSA9IFwiaGlkZGVuXCI7XG5cbiAgICBmdW5jdGlvbiBIZXJvTW91bnQoKSB7XG4gICAgICBjb25zdCB7IGhlcm9SZWYgfSA9IHVzZUhlcm8oXG4gICAgICAgIHpvb21hYmxlSUQsXG4gICAgICAgIHtcbiAgICAgICAgICBcImRhdGEtcHJlZmZpeFwiOiBcInpvb21hYmxlXCIsXG4gICAgICAgICAgcmVwZWF0YWJsZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9uSGVyb1N0YXJ0OiAoY2xvbmUsIC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgIGdldEJhY2tkcm9wKCkuc3R5bGUub3BhY2l0eSA9IFwiMVwiO1xuICAgICAgICAgICAgY29uc3QgdW56b29tQ2IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgIF91bnpvb20oKTtcbiAgICAgICAgICAgICAgY2xvbmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHVuem9vbUNiKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjbG9uZS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdW56b29tQ2IpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgb25IZXJvRW5kOiAoKSA9PiB7XG4gICAgICAgICAgICBoZXJvUmVmLmN1cnJlbnQhLmNsYXNzTGlzdC5yZW1vdmUoU3R5bGVzLnpvb21hYmxlSW5kaWNhdG9yKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgcmVmPXsocmVmKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgIHJlZi5hcHBlbmRDaGlsZChlbENsb25lKTtcbiAgICAgICAgICAgICAgKGhlcm9SZWYgYXMgYW55KS5jdXJyZW50ID0gZWxDbG9uZTtcbiAgICAgICAgICAgICAgY29uc3QgdmVydGljYWxQcm9wb3J0aW9uID0gZWwuY2xpZW50V2lkdGggLyBlbC5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICAgIGNvbnN0IHRhcmdldFdpZHRoID0gcmVmLmNsaWVudEhlaWdodCAqIHZlcnRpY2FsUHJvcG9ydGlvbjtcblxuICAgICAgICAgICAgICBpZiAodGFyZ2V0V2lkdGggPiByZWYuY2xpZW50V2lkdGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBob3Jpem9udGFsUHJvcG9ydGlvbiA9IGVsLmNsaWVudEhlaWdodCAvIGVsLmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgIGVsQ2xvbmUuc3R5bGUud2lkdGggPSByZWYuY2xpZW50V2lkdGggKyBcInB4XCI7XG4gICAgICAgICAgICAgICAgZWxDbG9uZS5zdHlsZS5oZWlnaHQgPVxuICAgICAgICAgICAgICAgICAgcmVmLmNsaWVudFdpZHRoICogaG9yaXpvbnRhbFByb3BvcnRpb24gKyBcInB4XCI7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWxDbG9uZS5zdHlsZS5oZWlnaHQgPSByZWYuY2xpZW50SGVpZ2h0ICsgXCJweFwiO1xuICAgICAgICAgICAgICAgIGVsQ2xvbmUuc3R5bGUud2lkdGggPSB0YXJnZXRXaWR0aCArIFwicHhcIjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nQmFja2Ryb3AgPSBnZXRCYWNrZHJvcCgpO1xuICAgIGlmICghZXhpc3RpbmdCYWNrZHJvcCkge1xuICAgICAgY29uc3QgYmFja2Ryb3AgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuXG4gICAgICBiYWNrZHJvcC5jbGFzc0xpc3QuYWRkKFN0eWxlcy5iYWNrZHJvcCk7XG4gICAgICBiYWNrZHJvcC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgX3Vuem9vbSk7XG4gICAgICBiYWNrZHJvcC5zZXRBdHRyaWJ1dGUoXCJkYXRhLXpvb21hYmxlXCIsIHpvb21hYmxlSUQpO1xuXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGJhY2tkcm9wKTtcbiAgICAgIGNyZWF0ZVJvb3QoYmFja2Ryb3ApLnJlbmRlcig8SGVyb01vdW50IC8+KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3JlYXRlUm9vdChleGlzdGluZ0JhY2tkcm9wKS5yZW5kZXIoPEhlcm9Nb3VudCAvPik7XG4gICAgfVxuICB9XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWwgPSB6b29tYWJsZUVsLmN1cnJlbnQhO1xuICAgIGVsLmNsYXNzTGlzdC5hZGQoU3R5bGVzLnpvb21hYmxlSW5kaWNhdG9yKTtcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgX3pvb20pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKFN0eWxlcy56b29tYWJsZUluZGljYXRvcik7XG4gICAgICBjb25zdCBiZCA9IGdldEJhY2tkcm9wKCk7XG4gICAgICBpZiAoYmQpIHtcbiAgICAgICAgYmQuc3R5bGUub3BhY2l0eSA9IFwiMFwiO1xuICAgICAgICBiZC5hZGRFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmVuZFwiLCAoKSA9PiB7XG4gICAgICAgICAgYmQucmVtb3ZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtdKTtcblxuICBjb25zdCBtZXJnZWRSZWZzID0gdXNlTWVyZ2VSZWZzRnVuYyhoZXJvUmVmLCB6b29tYWJsZUVsKTtcblxuICByZXR1cm4ge1xuICAgIHpvb21hYmxlRWw6IG1lcmdlZFJlZnMsXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGtCQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxTQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFBNEMsU0FBQUcsdUJBQUFLLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBVCx3QkFBQVMsQ0FBQSxFQUFBRyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQWIsdUJBQUEsWUFBQUEsQ0FBQVMsQ0FBQSxFQUFBRyxDQUFBLFNBQUFBLENBQUEsSUFBQUgsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsU0FBQUQsQ0FBQSxNQUFBTyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFSLE9BQUEsRUFBQUYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUyxDQUFBLE1BQUFGLENBQUEsR0FBQUosQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUUsQ0FBQSxDQUFBSSxHQUFBLENBQUFYLENBQUEsVUFBQU8sQ0FBQSxDQUFBSyxHQUFBLENBQUFaLENBQUEsR0FBQU8sQ0FBQSxDQUFBTSxHQUFBLENBQUFiLENBQUEsRUFBQVMsQ0FBQSxnQkFBQU4sQ0FBQSxJQUFBSCxDQUFBLGdCQUFBRyxDQUFBLE9BQUFXLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBLEVBQUFHLENBQUEsT0FBQUssQ0FBQSxJQUFBRCxDQUFBLEdBQUFTLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFsQixDQUFBLEVBQUFHLENBQUEsT0FBQUssQ0FBQSxDQUFBSSxHQUFBLElBQUFKLENBQUEsQ0FBQUssR0FBQSxJQUFBTixDQUFBLENBQUFFLENBQUEsRUFBQU4sQ0FBQSxFQUFBSyxDQUFBLElBQUFDLENBQUEsQ0FBQU4sQ0FBQSxJQUFBSCxDQUFBLENBQUFHLENBQUEsV0FBQU0sQ0FBQSxLQUFBVCxDQUFBLEVBQUFHLENBQUE7QUFDNUM7QUFDQTtBQUNBO0FBQ2UsU0FBU2dCLFdBQVdBLENBQUNDLEVBQVUsRUFBRTtFQUM5QyxNQUFNQyxVQUFVLEdBQUcsSUFBQUMsY0FBTyxFQUFDLGtCQUFBQyxNQUFBLENBQWtCSCxFQUFFLENBQUUsRUFBRSxFQUFFLENBQUM7RUFDdEQsTUFBTUksV0FBVyxHQUFHQSxDQUFBLEtBQU07SUFDeEIsT0FBT0MsUUFBUSxDQUFDQyxhQUFhLHFCQUFBSCxNQUFBLENBQ1JGLFVBQVUsUUFDL0IsQ0FBQztFQUNILENBQUM7RUFDRCxNQUFNO0lBQUVNLE9BQU87SUFBRUM7RUFBUSxDQUFDLEdBQUcsSUFBQUMsZ0JBQU8sRUFDbENSLFVBQVUsRUFDVjtJQUNFLGNBQWMsRUFBRSxVQUFVO0lBQzFCUyxVQUFVLEVBQUU7RUFDZCxDQUFDLEVBQ0Q7SUFDRUMsV0FBVyxFQUFFLFNBQUFBLENBQUNDLEtBQUssRUFBYztNQUMvQixNQUFNQyxFQUFFLEdBQUdULFdBQVcsQ0FBQyxDQUFDO01BQ3hCLE1BQU1VLFFBQVEsR0FBR0MsSUFBQSxJQUFnRDtRQUFBLElBQS9DO1VBQUVDLGFBQWE7VUFBRUM7UUFBd0IsQ0FBQyxHQUFBRixJQUFBO1FBQzFELElBQUlFLE1BQU0sS0FBS0QsYUFBYSxFQUFFO1VBQzVCLElBQUssd0JBQXdCLElBQUlFLGlCQUFRLEVBQ3RDQSxpQkFBUSxDQUFTQyxzQkFBc0IsQ0FBQ04sRUFBRSxDQUFDLENBQUMsS0FFN0NPLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLG1FQUFtRSxDQUFDO1VBQ3BGUixFQUFFLENBQUNTLE1BQU0sQ0FBQyxDQUFDO1FBQ2I7TUFDRixDQUFDO01BQ0RULEVBQUUsQ0FBQ1UsS0FBSyxDQUFDQyxPQUFPLEdBQUcsR0FBRztNQUN0QixNQUFNQyxjQUFjLEdBQUdBLENBQUEsS0FBTTtRQUMzQlosRUFBRSxDQUFDYSxtQkFBbUIsQ0FBQyxlQUFlLEVBQUVaLFFBQVEsQ0FBQztRQUNqREYsS0FBSyxDQUFDYyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUVELGNBQWMsQ0FBQztRQUNsREUsS0FBSyxDQUFDLENBQUM7TUFDVCxDQUFDO01BQ0RmLEtBQUssQ0FBQ2dCLGdCQUFnQixDQUFDLE9BQU8sRUFBRUgsY0FBYyxDQUFDO01BQy9DWixFQUFFLENBQUNlLGdCQUFnQixDQUFDLGVBQWUsRUFBRWQsUUFBUSxDQUFDO01BQzlDRCxFQUFFLENBQUNlLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLE1BQU07UUFDM0NmLEVBQUUsQ0FBQ2UsZ0JBQWdCLENBQ2pCLGtCQUFrQixFQUNsQixJQUFBQyxpQkFBUSxFQUFDLE1BQU1oQixFQUFFLENBQUNhLG1CQUFtQixDQUFDLGVBQWUsRUFBRVosUUFBUSxDQUFDLENBQ2xFLENBQUM7TUFDSCxDQUFDLENBQUM7SUFDSjtFQUNGLENBQ0YsQ0FBQztFQUNELE1BQU1nQixVQUFVLEdBQUcsSUFBQUMsYUFBTSxFQUFpQixJQUFJLENBQUM7RUFDL0MsU0FBU0MsT0FBT0EsQ0FBQSxFQUFHO0lBQ2pCeEIsT0FBTyxDQUFDLENBQUM7RUFDWDtFQUVBLFNBQVNtQixLQUFLQSxDQUFBLEVBQUc7SUFDZixNQUFNTSxFQUFFLEdBQUdILFVBQVUsQ0FBQ0ksT0FBUTtJQUM5QixNQUFNQyxPQUFPLEdBQUdGLEVBQUUsQ0FBQ0csU0FBUyxDQUFDLElBQUksQ0FBbUI7SUFDcERELE9BQU8sQ0FBQ1osS0FBSyxDQUFDYyxVQUFVLEdBQUcsUUFBUTtJQUVuQyxTQUFTQyxTQUFTQSxDQUFBLEVBQUc7TUFDbkIsTUFBTTtRQUFFL0I7TUFBUSxDQUFDLEdBQUcsSUFBQUUsZ0JBQU8sRUFDekJSLFVBQVUsRUFDVjtRQUNFLGNBQWMsRUFBRSxVQUFVO1FBQzFCUyxVQUFVLEVBQUU7TUFDZCxDQUFDLEVBQ0Q7UUFDRUMsV0FBVyxFQUFFLFNBQUFBLENBQUNDLEtBQUssRUFBYztVQUMvQlIsV0FBVyxDQUFDLENBQUMsQ0FBQ21CLEtBQUssQ0FBQ0MsT0FBTyxHQUFHLEdBQUc7VUFDakMsTUFBTWUsUUFBUSxHQUFHQSxDQUFBLEtBQU07WUFDckJQLE9BQU8sQ0FBQyxDQUFDO1lBQ1RwQixLQUFLLENBQUNjLG1CQUFtQixDQUFDLE9BQU8sRUFBRWEsUUFBUSxDQUFDO1VBQzlDLENBQUM7VUFDRDNCLEtBQUssQ0FBQ2dCLGdCQUFnQixDQUFDLE9BQU8sRUFBRVcsUUFBUSxDQUFDO1FBQzNDLENBQUM7UUFDREMsU0FBUyxFQUFFQSxDQUFBLEtBQU07VUFDZmpDLE9BQU8sQ0FBQzJCLE9BQU8sQ0FBRU8sU0FBUyxDQUFDbkIsTUFBTSxDQUFDb0IsMEJBQU0sQ0FBQ0MsaUJBQWlCLENBQUM7UUFDN0Q7TUFDRixDQUNGLENBQUM7TUFFRCxvQkFDRXpFLE1BQUEsQ0FBQVksT0FBQSxDQUFBOEQsYUFBQTtRQUNFQyxHQUFHLEVBQUdBLEdBQUcsSUFBSztVQUNaLElBQUlBLEdBQUcsRUFBRTtZQUNQQSxHQUFHLENBQUNDLFdBQVcsQ0FBQ1gsT0FBTyxDQUFDO1lBQ3ZCNUIsT0FBTyxDQUFTMkIsT0FBTyxHQUFHQyxPQUFPO1lBQ2xDLE1BQU1ZLGtCQUFrQixHQUFHZCxFQUFFLENBQUNlLFdBQVcsR0FBR2YsRUFBRSxDQUFDZ0IsWUFBWTtZQUMzRCxNQUFNQyxXQUFXLEdBQUdMLEdBQUcsQ0FBQ0ksWUFBWSxHQUFHRixrQkFBa0I7WUFFekQsSUFBSUcsV0FBVyxHQUFHTCxHQUFHLENBQUNHLFdBQVcsRUFBRTtjQUNqQyxNQUFNRyxvQkFBb0IsR0FBR2xCLEVBQUUsQ0FBQ2dCLFlBQVksR0FBR2hCLEVBQUUsQ0FBQ2UsV0FBVztjQUM3RGIsT0FBTyxDQUFDWixLQUFLLENBQUM2QixLQUFLLEdBQUdQLEdBQUcsQ0FBQ0csV0FBVyxHQUFHLElBQUk7Y0FDNUNiLE9BQU8sQ0FBQ1osS0FBSyxDQUFDOEIsTUFBTSxHQUNsQlIsR0FBRyxDQUFDRyxXQUFXLEdBQUdHLG9CQUFvQixHQUFHLElBQUk7WUFDakQsQ0FBQyxNQUFNO2NBQ0xoQixPQUFPLENBQUNaLEtBQUssQ0FBQzhCLE1BQU0sR0FBR1IsR0FBRyxDQUFDSSxZQUFZLEdBQUcsSUFBSTtjQUM5Q2QsT0FBTyxDQUFDWixLQUFLLENBQUM2QixLQUFLLEdBQUdGLFdBQVcsR0FBRyxJQUFJO1lBQzFDO1VBQ0Y7UUFDRjtNQUFFLENBQ0gsQ0FBQztJQUVOO0lBRUEsTUFBTUksZ0JBQWdCLEdBQUdsRCxXQUFXLENBQUMsQ0FBQztJQUN0QyxJQUFJLENBQUNrRCxnQkFBZ0IsRUFBRTtNQUNyQixNQUFNQyxRQUFRLEdBQUdsRCxRQUFRLENBQUN1QyxhQUFhLENBQUMsS0FBSyxDQUFDO01BRTlDVyxRQUFRLENBQUNkLFNBQVMsQ0FBQ2UsR0FBRyxDQUFDZCwwQkFBTSxDQUFDYSxRQUFRLENBQUM7TUFDdkNBLFFBQVEsQ0FBQzNCLGdCQUFnQixDQUFDLE9BQU8sRUFBRUksT0FBTyxDQUFDO01BQzNDdUIsUUFBUSxDQUFDRSxZQUFZLENBQUMsZUFBZSxFQUFFeEQsVUFBVSxDQUFDO01BRWxESSxRQUFRLENBQUNxRCxJQUFJLENBQUNaLFdBQVcsQ0FBQ1MsUUFBUSxDQUFDO01BQ25DLElBQUFJLGtCQUFVLEVBQUNKLFFBQVEsQ0FBQyxDQUFDSyxNQUFNLGNBQUMxRixNQUFBLENBQUFZLE9BQUEsQ0FBQThELGFBQUEsQ0FBQ04sU0FBUyxNQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDLE1BQU07TUFDTCxJQUFBcUIsa0JBQVUsRUFBQ0wsZ0JBQWdCLENBQUMsQ0FBQ00sTUFBTSxjQUFDMUYsTUFBQSxDQUFBWSxPQUFBLENBQUE4RCxhQUFBLENBQUNOLFNBQVMsTUFBRSxDQUFDLENBQUM7SUFDcEQ7RUFDRjtFQUNBLElBQUF1QixnQkFBUyxFQUFDLE1BQU07SUFDZCxNQUFNNUIsRUFBRSxHQUFHSCxVQUFVLENBQUNJLE9BQVE7SUFDOUJELEVBQUUsQ0FBQ1EsU0FBUyxDQUFDZSxHQUFHLENBQUNkLDBCQUFNLENBQUNDLGlCQUFpQixDQUFDO0lBQzFDVixFQUFFLENBQUNMLGdCQUFnQixDQUFDLE9BQU8sRUFBRUQsS0FBSyxDQUFDO0lBQ25DLE9BQU8sTUFBTTtNQUNYTSxFQUFFLENBQUNRLFNBQVMsQ0FBQ25CLE1BQU0sQ0FBQ29CLDBCQUFNLENBQUNDLGlCQUFpQixDQUFDO01BQzdDLE1BQU05QixFQUFFLEdBQUdULFdBQVcsQ0FBQyxDQUFDO01BQ3hCLElBQUlTLEVBQUUsRUFBRTtRQUNOQSxFQUFFLENBQUNVLEtBQUssQ0FBQ0MsT0FBTyxHQUFHLEdBQUc7UUFDdEJYLEVBQUUsQ0FBQ2UsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLE1BQU07VUFDekNmLEVBQUUsQ0FBQ1MsTUFBTSxDQUFDLENBQUM7UUFDYixDQUFDLENBQUM7TUFDSjtJQUNGLENBQUM7RUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sTUFBTXdDLFVBQVUsR0FBRyxJQUFBQyw4QkFBZ0IsRUFBQ3hELE9BQU8sRUFBRXVCLFVBQVUsQ0FBQztFQUV4RCxPQUFPO0lBQ0xBLFVBQVUsRUFBRWdDO0VBQ2QsQ0FBQztBQUNIIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -7,6 +7,11 @@ exports.default = void 0;
|
|
|
7
7
|
exports.useAsyncControl = useAsyncControl;
|
|
8
8
|
exports.useRawAsynControl = useRawAsynControl;
|
|
9
9
|
var _react = require("react");
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
14
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
15
|
function useRawAsynControl(functionsToWrap, _ref, _ref2) {
|
|
11
16
|
let [error, setError] = _ref;
|
|
12
17
|
let [loading, setLoading] = _ref2;
|
|
@@ -28,44 +33,36 @@ function useRawAsynControl(functionsToWrap, _ref, _ref2) {
|
|
|
28
33
|
other
|
|
29
34
|
} = Object.entries(functionsToWrap || {}).reduce((r, _ref3) => {
|
|
30
35
|
let [k, func] = _ref3;
|
|
31
|
-
return {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
functionsToMemoize: {
|
|
35
|
-
...r.functionsToMemoize,
|
|
36
|
-
[k]: func
|
|
37
|
-
}
|
|
38
|
-
} : {
|
|
39
|
-
other: {
|
|
40
|
-
...r.other,
|
|
41
|
-
[k]: func
|
|
42
|
-
}
|
|
36
|
+
return _objectSpread(_objectSpread({}, r), typeof func === "function" ? {
|
|
37
|
+
functionsToMemoize: _objectSpread(_objectSpread({}, r.functionsToMemoize), {}, {
|
|
38
|
+
[k]: func
|
|
43
39
|
})
|
|
44
|
-
}
|
|
40
|
+
} : {
|
|
41
|
+
other: _objectSpread(_objectSpread({}, r.other), {}, {
|
|
42
|
+
[k]: func
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
45
|
}, {
|
|
46
46
|
functionsToMemoize: {},
|
|
47
47
|
other: {}
|
|
48
48
|
});
|
|
49
|
-
return {
|
|
49
|
+
return _objectSpread(_objectSpread({
|
|
50
50
|
process: _process,
|
|
51
51
|
loading,
|
|
52
52
|
error,
|
|
53
53
|
setError,
|
|
54
|
-
setLoading
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
};
|
|
67
|
-
}, {})
|
|
68
|
-
};
|
|
54
|
+
setLoading
|
|
55
|
+
}, other), Object.entries(functionsToMemoize).reduce((r, _ref4) => {
|
|
56
|
+
let [k, v] = _ref4;
|
|
57
|
+
return _objectSpread(_objectSpread({}, r), {}, {
|
|
58
|
+
[k]: (0, _react.useMemo)(() => function () {
|
|
59
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
60
|
+
args[_key] = arguments[_key];
|
|
61
|
+
}
|
|
62
|
+
return _process(() => v(...args));
|
|
63
|
+
}, [v])
|
|
64
|
+
});
|
|
65
|
+
}, {}));
|
|
69
66
|
}
|
|
70
67
|
function useAsyncControl(functionsToWrap) {
|
|
71
68
|
const error = (0, _react.useState)();
|
|
@@ -78,6 +75,5 @@ function useAsyncControl(functionsToWrap) {
|
|
|
78
75
|
* @param functionsToWrap The functions to wrap in control.
|
|
79
76
|
* @returns
|
|
80
77
|
*/
|
|
81
|
-
var _default = useAsyncControl;
|
|
82
|
-
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwidXNlUmF3QXN5bkNvbnRyb2wiLCJmdW5jdGlvbnNUb1dyYXAiLCJfcmVmIiwiX3JlZjIiLCJlcnJvciIsInNldEVycm9yIiwibG9hZGluZyIsInNldExvYWRpbmciLCJfcHJvY2VzcyIsInVzZUNhbGxiYWNrIiwiYXN5bmNGbiIsInVuZGVmaW5lZCIsIlByb21pc2UiLCJlIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29uc29sZSIsImZ1bmN0aW9uc1RvTWVtb2l6ZSIsIm90aGVyIiwiT2JqZWN0IiwiZW50cmllcyIsInJlZHVjZSIsInIiLCJfcmVmMyIsImsiLCJmdW5jIiwiX3JlZjQiLCJ2IiwidXNlTWVtbyIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwidXNlQXN5bmNDb250cm9sIiwidXNlU3RhdGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUFzeW5jQ29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXRTdGF0ZUFjdGlvbiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwidHlwZS1mZXN0XCI7XG5cbnR5cGUgQXJyPFg+ID0gW1gsIFJlYWN0LkRpc3BhdGNoPFNldFN0YXRlQWN0aW9uPFg+Pl07XG5leHBvcnQgdHlwZSBGdW5jdGlvbk1hcCA9IHtcbiAgW2Y6IHN0cmluZ106ICgoLi4uYXJnczogYW55W10pID0+IFByb21pc2U8YW55PikgfCBPYmplY3QgfCBQcmltaXRpdmU7XG59O1xuZXhwb3J0IHR5cGUgQ29udHJvbDxFIGV4dGVuZHMgYW55ID0gYW55PiA9IHtcbiAgZXJyb3I/OiBFO1xuICBsb2FkaW5nOiBib29sZWFuO1xufTtcbmV4cG9ydCBmdW5jdGlvbiB1c2VSYXdBc3luQ29udHJvbDxFID0gYW55LCBGIGV4dGVuZHMgRnVuY3Rpb25NYXAgPSB7fT4oXG4gIGZ1bmN0aW9uc1RvV3JhcDogRiB8IHVuZGVmaW5lZCxcbiAgW2Vycm9yLCBzZXRFcnJvcl06IEFycjxFIHwgdW5kZWZpbmVkPixcbiAgW2xvYWRpbmcsIHNldExvYWRpbmddOiBBcnI8Ym9vbGVhbj5cbikge1xuICBjb25zdCBfcHJvY2VzcyA9IHVzZUNhbGxiYWNrKGFzeW5jIChhc3luY0ZuOiAoKCkgPT4gUHJvbWlzZTxhbnk+KSB8IFByb21pc2U8YW55PikgPT4ge1xuICAgIHRyeSB7XG4gICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgc2V0RXJyb3IodW5kZWZpbmVkKTtcbiAgICAgIGlmIChhc3luY0ZuIGluc3RhbmNlb2YgUHJvbWlzZSkgYXdhaXQgYXN5bmNGbjtcbiAgICAgIGVsc2UgcmV0dXJuIGF3YWl0IGFzeW5jRm4oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikgY29uc29sZS5lcnJvcihlKTtcbiAgICAgIHNldEVycm9yKGUgYXMgRSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCB7IGZ1bmN0aW9uc1RvTWVtb2l6ZSwgb3RoZXIgfSA9IE9iamVjdC5lbnRyaWVzKFxuICAgIGZ1bmN0aW9uc1RvV3JhcCB8fCB7fVxuICApLnJlZHVjZShcbiAgICAociwgW2ssIGZ1bmNdKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5yLFxuICAgICAgICAuLi4odHlwZW9mIGZ1bmMgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBmdW5jdGlvbnNUb01lbW9pemU6IHtcbiAgICAgICAgICAgICAgICAuLi5yLmZ1bmN0aW9uc1RvTWVtb2l6ZSxcbiAgICAgICAgICAgICAgICBba106IGZ1bmMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIG90aGVyOiB7XG4gICAgICAgICAgICAgICAgLi4uci5vdGhlcixcbiAgICAgICAgICAgICAgICBba106IGZ1bmMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfSxcbiAgICB7XG4gICAgICBmdW5jdGlvbnNUb01lbW9pemU6IHt9LFxuICAgICAgb3RoZXI6IHt9LFxuICAgIH0gYXMge1xuICAgICAgZnVuY3Rpb25zVG9NZW1vaXplOiBGO1xuICAgICAgb3RoZXI6IEY7XG4gICAgfVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgcHJvY2VzczogX3Byb2Nlc3MsXG4gICAgbG9hZGluZyxcbiAgICBlcnJvcixcbiAgICBzZXRFcnJvcixcbiAgICBzZXRMb2FkaW5nLFxuICAgIC4uLm90aGVyLFxuICAgIC4uLk9iamVjdC5lbnRyaWVzKGZ1bmN0aW9uc1RvTWVtb2l6ZSkucmVkdWNlKFxuICAgICAgKHIsIFtrLCB2XSkgPT4gKHtcbiAgICAgICAgLi4ucixcbiAgICAgICAgW2tdOiB1c2VNZW1vKFxuICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAoLi4uYXJnczogYW55W10pID0+XG4gICAgICAgICAgICAgIF9wcm9jZXNzKCgpID0+ICh2IGFzIGFueSkoLi4uYXJncykpLFxuICAgICAgICAgIFt2XVxuICAgICAgICApLFxuICAgICAgfSksXG4gICAgICB7fSBhcyBGXG4gICAgKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUFzeW5jQ29udHJvbDxcbiAgRSA9IGFueSxcbiAgRiBleHRlbmRzIHtcbiAgICBbZjogc3RyaW5nXTogKCguLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTxhbnk+KSB8IE9iamVjdCB8IFByaW1pdGl2ZTtcbiAgfSA9IHt9XG4+KGZ1bmN0aW9uc1RvV3JhcD86IEYpIHtcbiAgY29uc3QgZXJyb3IgPSB1c2VTdGF0ZTxFIHwgRXJyb3I+KCk7XG4gIGNvbnN0IGxvYWRpbmcgPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG5cbiAgcmV0dXJuIHVzZVJhd0FzeW5Db250cm9sKGZ1bmN0aW9uc1RvV3JhcCwgZXJyb3IsIGxvYWRpbmcpO1xufVxuXG4vKipcbiAqIFRoaXMgaG9vayBwcm92aWRlcyBhIHdheSB0byBoYW5kbGUgYXN5bmMgb3BlcmF0aW9ucyBzdG9yaW5nIHRoZSBsb2FkaW5nIHN0YXRlLCBvciB0aGUgZXJyb3Igd2hlbiBpdCBmYWlscywgaXQgZG9lcyBub3Qgc3RvcmUgaW5mb3JtYXRpb24gcmV0dXJuZWQgZnJvbSB0aGUgZnVuY3Rpb25zLlxuICogQHBhcmFtIGZ1bmN0aW9uc1RvV3JhcCBUaGUgZnVuY3Rpb25zIHRvIHdyYXAgaW4gY29udHJvbC5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBkZWZhdWx0IHVzZUFzeW5jQ29udHJvbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFXTyxTQUFTQyxpQkFBaUJBLENBQy9CQyxlQUE4QixFQUFBQyxJQUFBLEVBQUFDLEtBQUEsRUFHOUI7RUFBQSxJQUZBLENBQUNDLEtBQUssRUFBRUMsUUFBUSxDQUFxQixHQUFBSCxJQUFBO0VBQUEsSUFDckMsQ0FBQ0ksT0FBTyxFQUFFQyxVQUFVLENBQWUsR0FBQUosS0FBQTtFQUVuQyxNQUFNSyxRQUFRLEdBQUcsSUFBQUMsa0JBQVcsRUFBQyxNQUFPQyxPQUE0QyxJQUFLO0lBQ25GLElBQUk7TUFDRkgsVUFBVSxDQUFDLElBQUksQ0FBQztNQUNoQkYsUUFBUSxDQUFDTSxTQUFTLENBQUM7TUFDbkIsSUFBSUQsT0FBTyxZQUFZRSxPQUFPLEVBQUUsTUFBTUYsT0FBTyxDQUFDLEtBQ3pDLE9BQU8sTUFBTUEsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLE9BQU9HLENBQUMsRUFBRTtNQUNWLElBQUlDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxRQUFRLEtBQUssYUFBYSxFQUFFQyxPQUFPLENBQUNiLEtBQUssQ0FBQ1MsQ0FBQyxDQUFDO01BQzVEUixRQUFRLENBQUNRLENBQU0sQ0FBQztNQUNoQixNQUFNQSxDQUFDO0lBQ1QsQ0FBQyxTQUFTO01BQ1JOLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDbkI7RUFDRixDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sTUFBTTtJQUFFVyxrQkFBa0I7SUFBRUM7RUFBTSxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0MsT0FBTyxDQUNsRHBCLGVBQWUsSUFBSSxDQUFDLENBQ3RCLENBQUMsQ0FBQ3FCLE1BQU0sQ0FDTixDQUFDQyxDQUFDLEVBQUFDLEtBQUEsS0FBZ0I7SUFBQSxJQUFkLENBQUNDLENBQUMsRUFBRUMsSUFBSSxDQUFDLEdBQUFGLEtBQUE7SUFDWCxPQUFPO01BQ0wsR0FBR0QsQ0FBQztNQUNKLElBQUksT0FBT0csSUFBSSxLQUFLLFVBQVUsR0FDMUI7UUFDRVIsa0JBQWtCLEVBQUU7VUFDbEIsR0FBR0ssQ0FBQyxDQUFDTCxrQkFBa0I7VUFDdkIsQ0FBQ08sQ0FBQyxHQUFHQztRQUNQO01BQ0YsQ0FBQyxHQUNEO1FBQ0VQLEtBQUssRUFBRTtVQUNMLEdBQUdJLENBQUMsQ0FBQ0osS0FBSztVQUNWLENBQUNNLENBQUMsR0FBR0M7UUFDUDtNQUNGLENBQUM7SUFDUCxDQUFDO0VBQ0gsQ0FBQyxFQUNEO0lBQ0VSLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUN0QkMsS0FBSyxFQUFFLENBQUM7RUFDVixDQUlGLENBQUM7RUFFRCxPQUFPO0lBQ0xMLE9BQU8sRUFBRU4sUUFBUTtJQUNqQkYsT0FBTztJQUNQRixLQUFLO0lBQ0xDLFFBQVE7SUFDUkUsVUFBVTtJQUNWLEdBQUdZLEtBQUs7SUFDUixHQUFHQyxNQUFNLENBQUNDLE9BQU8sQ0FBQ0gsa0JBQWtCLENBQUMsQ0FBQ0ksTUFBTSxDQUMxQyxDQUFDQyxDQUFDLEVBQUFJLEtBQUE7TUFBQSxJQUFFLENBQUNGLENBQUMsRUFBRUcsQ0FBQyxDQUFDLEdBQUFELEtBQUE7TUFBQSxPQUFNO1FBQ2QsR0FBR0osQ0FBQztRQUNKLENBQUNFLENBQUMsR0FBRyxJQUFBSSxjQUFPLEVBQ1YsTUFDRTtVQUFBLFNBQUFDLElBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBQUlDLElBQUksT0FBQUMsS0FBQSxDQUFBSixJQUFBLEdBQUFLLElBQUEsTUFBQUEsSUFBQSxHQUFBTCxJQUFBLEVBQUFLLElBQUE7WUFBSkYsSUFBSSxDQUFBRSxJQUFBLElBQUFKLFNBQUEsQ0FBQUksSUFBQTtVQUFBO1VBQUEsT0FDTjNCLFFBQVEsQ0FBQyxNQUFPb0IsQ0FBQyxDQUFTLEdBQUdLLElBQUksQ0FBQyxDQUFDO1FBQUEsR0FDdkMsQ0FBQ0wsQ0FBQyxDQUNKO01BQ0YsQ0FBQztJQUFBLENBQUMsRUFDRixDQUFDLENBQ0g7RUFDRixDQUFDO0FBQ0g7QUFFTyxTQUFTUSxlQUFlQSxDQUs3Qm5DLGVBQW1CLEVBQUU7RUFDckIsTUFBTUcsS0FBSyxHQUFHLElBQUFpQyxlQUFRLEVBQVksQ0FBQztFQUNuQyxNQUFNL0IsT0FBTyxHQUFHLElBQUErQixlQUFRLEVBQVUsS0FBSyxDQUFDO0VBRXhDLE9BQU9yQyxpQkFBaUIsQ0FBQ0MsZUFBZSxFQUFFRyxLQUFLLEVBQUVFLE9BQU8sQ0FBQztBQUMzRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkEsSUFBQWdDLFFBQUEsR0FLZUYsZUFBZTtBQUFBRyxPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQSJ9
|
|
78
|
+
var _default = exports.default = useAsyncControl;
|
|
79
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJ1c2VSYXdBc3luQ29udHJvbCIsImZ1bmN0aW9uc1RvV3JhcCIsIl9yZWYiLCJfcmVmMiIsImVycm9yIiwic2V0RXJyb3IiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl9wcm9jZXNzIiwidXNlQ2FsbGJhY2siLCJhc3luY0ZuIiwidW5kZWZpbmVkIiwiUHJvbWlzZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbnNvbGUiLCJmdW5jdGlvbnNUb01lbW9pemUiLCJvdGhlciIsImVudHJpZXMiLCJyZWR1Y2UiLCJfcmVmMyIsImsiLCJmdW5jIiwiX3JlZjQiLCJ2IiwidXNlTWVtbyIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwidXNlQXN5bmNDb250cm9sIiwidXNlU3RhdGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUFzeW5jQ29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXRTdGF0ZUFjdGlvbiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwidHlwZS1mZXN0XCI7XG5cbnR5cGUgQXJyPFg+ID0gW1gsIFJlYWN0LkRpc3BhdGNoPFNldFN0YXRlQWN0aW9uPFg+Pl07XG5leHBvcnQgdHlwZSBGdW5jdGlvbk1hcCA9IHtcbiAgW2Y6IHN0cmluZ106ICgoLi4uYXJnczogYW55W10pID0+IFByb21pc2U8YW55PikgfCBPYmplY3QgfCBQcmltaXRpdmU7XG59O1xuZXhwb3J0IHR5cGUgQ29udHJvbDxFIGV4dGVuZHMgYW55ID0gYW55PiA9IHtcbiAgZXJyb3I/OiBFO1xuICBsb2FkaW5nOiBib29sZWFuO1xufTtcbmV4cG9ydCBmdW5jdGlvbiB1c2VSYXdBc3luQ29udHJvbDxFID0gYW55LCBGIGV4dGVuZHMgRnVuY3Rpb25NYXAgPSB7fT4oXG4gIGZ1bmN0aW9uc1RvV3JhcDogRiB8IHVuZGVmaW5lZCxcbiAgW2Vycm9yLCBzZXRFcnJvcl06IEFycjxFIHwgdW5kZWZpbmVkPixcbiAgW2xvYWRpbmcsIHNldExvYWRpbmddOiBBcnI8Ym9vbGVhbj5cbikge1xuICBjb25zdCBfcHJvY2VzcyA9IHVzZUNhbGxiYWNrKGFzeW5jIChhc3luY0ZuOiAoKCkgPT4gUHJvbWlzZTxhbnk+KSB8IFByb21pc2U8YW55PikgPT4ge1xuICAgIHRyeSB7XG4gICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgc2V0RXJyb3IodW5kZWZpbmVkKTtcbiAgICAgIGlmIChhc3luY0ZuIGluc3RhbmNlb2YgUHJvbWlzZSkgYXdhaXQgYXN5bmNGbjtcbiAgICAgIGVsc2UgcmV0dXJuIGF3YWl0IGFzeW5jRm4oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikgY29uc29sZS5lcnJvcihlKTtcbiAgICAgIHNldEVycm9yKGUgYXMgRSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCB7IGZ1bmN0aW9uc1RvTWVtb2l6ZSwgb3RoZXIgfSA9IE9iamVjdC5lbnRyaWVzKFxuICAgIGZ1bmN0aW9uc1RvV3JhcCB8fCB7fVxuICApLnJlZHVjZShcbiAgICAociwgW2ssIGZ1bmNdKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5yLFxuICAgICAgICAuLi4odHlwZW9mIGZ1bmMgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBmdW5jdGlvbnNUb01lbW9pemU6IHtcbiAgICAgICAgICAgICAgICAuLi5yLmZ1bmN0aW9uc1RvTWVtb2l6ZSxcbiAgICAgICAgICAgICAgICBba106IGZ1bmMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIG90aGVyOiB7XG4gICAgICAgICAgICAgICAgLi4uci5vdGhlcixcbiAgICAgICAgICAgICAgICBba106IGZ1bmMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfSxcbiAgICB7XG4gICAgICBmdW5jdGlvbnNUb01lbW9pemU6IHt9LFxuICAgICAgb3RoZXI6IHt9LFxuICAgIH0gYXMge1xuICAgICAgZnVuY3Rpb25zVG9NZW1vaXplOiBGO1xuICAgICAgb3RoZXI6IEY7XG4gICAgfVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgcHJvY2VzczogX3Byb2Nlc3MsXG4gICAgbG9hZGluZyxcbiAgICBlcnJvcixcbiAgICBzZXRFcnJvcixcbiAgICBzZXRMb2FkaW5nLFxuICAgIC4uLm90aGVyLFxuICAgIC4uLk9iamVjdC5lbnRyaWVzKGZ1bmN0aW9uc1RvTWVtb2l6ZSkucmVkdWNlKFxuICAgICAgKHIsIFtrLCB2XSkgPT4gKHtcbiAgICAgICAgLi4ucixcbiAgICAgICAgW2tdOiB1c2VNZW1vKFxuICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAoLi4uYXJnczogYW55W10pID0+XG4gICAgICAgICAgICAgIF9wcm9jZXNzKCgpID0+ICh2IGFzIGFueSkoLi4uYXJncykpLFxuICAgICAgICAgIFt2XVxuICAgICAgICApLFxuICAgICAgfSksXG4gICAgICB7fSBhcyBGXG4gICAgKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUFzeW5jQ29udHJvbDxcbiAgRSA9IGFueSxcbiAgRiBleHRlbmRzIHtcbiAgICBbZjogc3RyaW5nXTogKCguLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTxhbnk+KSB8IE9iamVjdCB8IFByaW1pdGl2ZTtcbiAgfSA9IHt9XG4+KGZ1bmN0aW9uc1RvV3JhcD86IEYpIHtcbiAgY29uc3QgZXJyb3IgPSB1c2VTdGF0ZTxFIHwgRXJyb3I+KCk7XG4gIGNvbnN0IGxvYWRpbmcgPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG5cbiAgcmV0dXJuIHVzZVJhd0FzeW5Db250cm9sKGZ1bmN0aW9uc1RvV3JhcCwgZXJyb3IsIGxvYWRpbmcpO1xufVxuXG4vKipcbiAqIFRoaXMgaG9vayBwcm92aWRlcyBhIHdheSB0byBoYW5kbGUgYXN5bmMgb3BlcmF0aW9ucyBzdG9yaW5nIHRoZSBsb2FkaW5nIHN0YXRlLCBvciB0aGUgZXJyb3Igd2hlbiBpdCBmYWlscywgaXQgZG9lcyBub3Qgc3RvcmUgaW5mb3JtYXRpb24gcmV0dXJuZWQgZnJvbSB0aGUgZnVuY3Rpb25zLlxuICogQHBhcmFtIGZ1bmN0aW9uc1RvV3JhcCBUaGUgZnVuY3Rpb25zIHRvIHdyYXAgaW4gY29udHJvbC5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBkZWZhdWx0IHVzZUFzeW5jQ29udHJvbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFBdUUsU0FBQUMsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FB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
|