@onepercentio/one-ui 1.3.3 → 1.3.4
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/README.md +1 -1
- package/dist/assets/img/svg/checkbox.svg +3 -0
- package/dist/assets/styles/index.scss +2 -0
- package/dist/assets/styles/mixins.scss +15 -0
- package/dist/assets/styles/variables.scss +49 -0
- package/dist/components/AdaptiveButton/AdaptiveButton.js +32 -0
- package/dist/components/AdaptiveButton/AdaptiveButton.module.scss +7 -0
- package/dist/components/AdaptiveButton/index.js +27 -0
- package/dist/components/AdaptiveContainer/AdaptiveContainer.js +152 -0
- package/dist/components/AdaptiveContainer/AdaptiveContainer.module.scss +53 -0
- package/dist/components/AdaptiveContainer/index.js +27 -0
- package/dist/components/AdaptiveDialog/AdaptiveDialog.js +81 -0
- package/dist/components/AdaptiveDialog/AdaptiveDialog.module.scss +145 -0
- package/dist/components/AdaptiveDialog/index.js +27 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.js +77 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.module.scss +49 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.js +13 -0
- package/dist/components/AdaptiveSidebar/index.js +27 -0
- package/dist/components/AnchoredTooltip/AnchoredTooltip.js +168 -0
- package/dist/components/AnchoredTooltip/AnchoredTooltip.module.scss +64 -0
- package/dist/components/AnchoredTooltip/index.js +27 -0
- package/dist/components/AnimatedEntrance/AnimatedEntrance.js +166 -0
- package/dist/components/AnimatedEntrance/AnimatedEntrance.module.scss +108 -0
- package/dist/components/AnimatedEntrance/index.js +27 -0
- package/dist/components/AsyncTriggerContainer/AsyncTriggerContainer.js +95 -0
- package/dist/components/AsyncTriggerContainer/AsyncTriggerContainer.module.scss +22 -0
- package/dist/components/AsyncTriggerContainer/index.js +27 -0
- package/dist/components/AsyncWrapper/AsyncWrapper.js +42 -0
- package/dist/components/AsyncWrapper/index.js +27 -0
- package/dist/components/Avatar/Avatar.js +40 -0
- package/dist/components/Avatar/Avatar.module.scss +22 -0
- package/dist/components/Avatar/index.js +27 -0
- package/dist/components/BucketFill/BucketFill.js +56 -0
- package/dist/components/BucketFill/BucketFill.module.scss +36 -0
- package/dist/components/BucketFill/index.js +27 -0
- package/dist/components/Button/Button.js +39 -0
- package/dist/components/Button/Button.module.scss +45 -0
- package/dist/components/Button/index.js +27 -0
- package/dist/components/Card/Card.js +22 -0
- package/dist/components/Card/Card.module.scss +12 -0
- package/dist/components/Card/index.js +27 -0
- package/dist/components/Chart/Chart.js +27 -0
- package/dist/components/Chart/Chart.logic.js +14 -0
- package/dist/components/Chart/Chart.module.scss +58 -0
- package/dist/components/Chart/Chart.types.js +6 -0
- package/dist/components/Chart/Chart.view.js +184 -0
- package/dist/components/Chart/index.js +27 -0
- package/dist/components/CheckBox/CheckBox.js +52 -0
- package/dist/components/CheckBox/CheckBox.module.scss +36 -0
- package/dist/components/CheckBox/index.js +27 -0
- package/dist/components/CodeInput/CodeInput.js +84 -0
- package/dist/components/CodeInput/CodeInput.module.scss +5 -0
- package/dist/components/CodeInput/index.js +27 -0
- package/dist/components/Collapsable/Collapsable.js +186 -0
- package/dist/components/Collapsable/Collapsable.module.scss +42 -0
- package/dist/components/Collapsable/index.js +27 -0
- package/dist/components/Countdown/Countdown.js +83 -0
- package/dist/components/Countdown/index.js +27 -0
- package/dist/components/CurrencyInput/CurrencyInput.hook.js +28 -0
- package/dist/components/CurrencyInput/CurrencyInput.js +54 -0
- package/dist/components/CurrencyInput/index.js +27 -0
- package/dist/components/Divider/Divider.js +21 -0
- package/dist/components/Divider/Divider.module.scss +7 -0
- package/dist/components/Divider/index.js +27 -0
- package/dist/components/EmailInput/EmailInput.js +48 -0
- package/dist/components/EmailInput/EmailInput.module.scss +0 -0
- package/dist/components/EmailInput/index.js +27 -0
- package/dist/components/FadeIn/FadeIn.js +64 -0
- package/dist/components/FadeIn/FadeIn.module.scss +9 -0
- package/dist/components/FadeIn/index.js +27 -0
- package/dist/components/FileInput/FileInput.js +53 -0
- package/dist/components/FileInput/FileInput.module.scss +6 -0
- package/dist/components/FileInput/View/BigFactory/BigFactory.js +54 -0
- package/dist/components/FileInput/View/BigFactory/BigFactory.module.scss +20 -0
- package/dist/components/FileInput/View/BigFactory/index.js +27 -0
- package/dist/components/FileInput/View/Compact/Compact.js +120 -0
- package/dist/components/FileInput/View/Compact/Compact.module.scss +68 -0
- package/dist/components/FileInput/View/Compact/index.js +27 -0
- package/dist/components/FileInput/View/View.types.js +6 -0
- package/dist/components/FileInput/index.js +27 -0
- package/dist/components/FlowController/FlowController.js +66 -0
- package/dist/components/FlowController/FlowController.module.scss +47 -0
- package/dist/components/FlowController/index.js +27 -0
- package/dist/components/Form/Form.hook.js +234 -0
- package/dist/components/Form/Form.js +115 -0
- package/dist/components/Form/Form.module.scss +0 -0
- package/dist/components/Form/Form.types.js +40 -0
- package/dist/components/Form/FormField/Extensions/DateField/DateField.js +75 -0
- package/dist/components/Form/FormField/Extensions/DateField/DateField.module.scss +0 -0
- package/dist/components/Form/FormField/Extensions/DateField/index.js +27 -0
- package/dist/components/Form/FormField/Extensions/PhoneField/PhoneField.js +91 -0
- package/dist/components/Form/FormField/Extensions/PhoneField/PhoneField.module.scss +0 -0
- package/dist/components/Form/FormField/Extensions/PhoneField/index.js +27 -0
- package/dist/components/Form/FormField/FormField.js +296 -0
- package/dist/components/Form/FormField/FormField.types.js +12 -0
- package/dist/components/Form/FormField/index.js +27 -0
- package/dist/components/Form/index.js +27 -0
- package/dist/components/Freeze/Freeze.js +18 -0
- package/dist/components/Freeze/index.js +27 -0
- package/dist/components/HSForms/HSForms.js +55 -0
- package/dist/components/HSForms/index.js +27 -0
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.js +25 -0
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.module.scss +44 -0
- package/dist/components/HeaderCloseBtn/index.js +27 -0
- package/dist/components/InfinityScroll/InfinityScroll.js +128 -0
- package/dist/components/InfinityScroll/InfinityScroll.module.scss +30 -0
- package/dist/components/InfinityScroll/index.js +27 -0
- package/dist/components/Input/Input.js +110 -0
- package/dist/components/Input/Input.module.scss +31 -0
- package/dist/components/Input/index.js +27 -0
- package/dist/components/InstantCounter/InstantCounter.js +55 -0
- package/dist/components/InstantCounter/index.js +27 -0
- package/dist/components/LavaLamp/LavaLamp.data.js +89 -0
- package/dist/components/LavaLamp/LavaLamp.js +125 -0
- package/dist/components/LavaLamp/LavaLamp.module.scss +26 -0
- package/dist/components/LavaLamp/index.js +27 -0
- package/dist/components/LavaLamp/v2/LavaLamp.js +154 -0
- package/dist/components/LavaLamp/v2/LavaLamp.module.scss +23 -0
- package/dist/components/LinkToId/LinkToId.js +45 -0
- package/dist/components/LinkToId/LinkToId.module.scss +4 -0
- package/dist/components/LinkToId/index.js +27 -0
- package/dist/components/Loader/Loader.js +27 -0
- package/dist/components/Loader/Loader.module.scss +40 -0
- package/dist/components/Loader/index.js +27 -0
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.js +36 -0
- package/dist/components/LoaderDotsIndicator/index.js +27 -0
- package/dist/components/LoopableVideo/LoopableVideo.js +41 -0
- package/dist/components/LoopableVideo/index.js +27 -0
- package/dist/components/MainGrid/MainGrid.js +55 -0
- package/dist/components/MainGrid/MainGrid.module.scss +28 -0
- package/dist/components/MainGrid/index.js +27 -0
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.js +32 -0
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.module.scss +220 -0
- package/dist/components/MutableHamburgerButton/index.js +27 -0
- package/dist/components/Notification/Notification.js +24 -0
- package/dist/components/Notification/Notification.module.scss +25 -0
- package/dist/components/Notification/index.js +27 -0
- package/dist/components/NumberInput/NumberInput.js +50 -0
- package/dist/components/NumberInput/index.js +27 -0
- package/dist/components/OrderableList/OrderableList.js +439 -0
- package/dist/components/OrderableList/OrderableList.module.scss +98 -0
- package/dist/components/OrderableList/index.js +27 -0
- package/dist/components/PaginationIndicator/PaginationIndicator.js +261 -0
- package/dist/components/PaginationIndicator/index.js +27 -0
- package/dist/components/Parallax/Parallax.js +169 -0
- package/dist/components/Parallax/Parallax.module.scss +28 -0
- package/dist/components/Parallax/index.js +27 -0
- package/dist/components/Parallax/math/helpers.js +134 -0
- package/dist/components/PasswordInput/PasswordInput.js +97 -0
- package/dist/components/PasswordInput/PasswordInput.module.scss +17 -0
- package/dist/components/PasswordInput/index.js +27 -0
- package/dist/components/PingPongText/PingPongText.js +76 -0
- package/dist/components/PingPongText/PingPongText.module.scss +4 -0
- package/dist/components/PingPongText/index.js +27 -0
- package/dist/components/PixelatedScan/PixelatedScan.js +139 -0
- package/dist/components/PixelatedScan/PixelatedScan.module.scss +86 -0
- package/dist/components/PixelatedScan/index.js +27 -0
- package/dist/components/Portal/Portal.js +62 -0
- package/dist/components/Portal/Portal.module.scss +3 -0
- package/dist/components/Portal/index.js +27 -0
- package/dist/components/ProgressBar/ProgressBar.js +113 -0
- package/dist/components/ProgressBar/ProgressBar.module.scss +44 -0
- package/dist/components/ProgressBar/index.js +27 -0
- package/dist/components/ProgressTexts/ProgressTexts.js +52 -0
- package/dist/components/ProgressTexts/ProgressTexts.module.scss +37 -0
- package/dist/components/ProgressTexts/index.js +27 -0
- package/dist/components/Radio/Radio.js +53 -0
- package/dist/components/Radio/Radio.module.scss +20 -0
- package/dist/components/Radio/index.js +27 -0
- package/dist/components/Radio/variants/Checkmark/Checkmark.js +20 -0
- package/dist/components/Radio/variants/Checkmark/Checkmark.module.scss +24 -0
- package/dist/components/Radio/variants/Checkmark/index.js +27 -0
- package/dist/components/Radio/variants/Generic/Generic.js +22 -0
- package/dist/components/Radio/variants/Generic/Generic.module.scss +38 -0
- package/dist/components/Radio/variants/Generic/index.js +27 -0
- package/dist/components/SectionContainer/SectionContainer.js +49 -0
- package/dist/components/SectionContainer/SectionContainer.module.scss +30 -0
- package/dist/components/SectionContainer/index.js +27 -0
- package/dist/components/Select/Select.js +138 -0
- package/dist/components/Select/Select.module.scss +60 -0
- package/dist/components/Select/index.js +27 -0
- package/dist/components/Skeleton/Skeleton.js +30 -0
- package/dist/components/Skeleton/Skeleton.module.scss +21 -0
- package/dist/components/Skeleton/index.js +27 -0
- package/dist/components/Slider/Slider.js +70 -0
- package/dist/components/Slider/Slider.module.scss +7 -0
- package/dist/components/Slider/index.js +27 -0
- package/dist/components/Spacing/Spacing.js +34 -0
- package/dist/components/Spacing/Spacing.module.scss +13 -0
- package/dist/components/Spacing/index.js +27 -0
- package/dist/components/StaticScroller/StaticScroller.js +72 -0
- package/dist/components/StaticScroller/StaticScroller.module.scss +14 -0
- package/dist/components/StaticScroller/index.js +27 -0
- package/dist/components/Switch/Switch.js +47 -0
- package/dist/components/Switch/Switch.module.scss +46 -0
- package/dist/components/Switch/index.js +27 -0
- package/dist/components/Table/Table.js +115 -0
- package/dist/components/Table/Table.module.scss +74 -0
- package/dist/components/Table/index.js +27 -0
- package/dist/components/Tabs/Tabs.js +67 -0
- package/dist/components/Tabs/Tabs.module.scss +40 -0
- package/dist/components/Tabs/index.js +27 -0
- package/dist/components/Text/Text.js +44 -0
- package/dist/components/Text/Text.module.scss +13 -0
- package/dist/components/Text/index.js +27 -0
- package/dist/components/Transition/MasksFactory/DiagonalReveal.js +49 -0
- package/dist/components/Transition/MasksFactory/DiagonalSquareToBalls.js +78 -0
- package/dist/components/Transition/MasksFactory/PhysicsSquares.js +96 -0
- package/dist/components/Transition/MasksFactory/SquareToBalls.js +67 -0
- package/dist/components/Transition/MasksFactory/utils.js +30 -0
- package/dist/components/Transition/Transition.js +323 -0
- package/dist/components/Transition/Transition.module.scss +211 -0
- package/dist/components/Transition/index.js +27 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.ai.md +9 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.js +110 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.js +32 -0
- package/dist/components/UncontrolledTransition/index.js +27 -0
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.js +115 -0
- package/dist/components/WalletConnectionWrapper/index.js +27 -0
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.js +59 -0
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.module.scss +5 -0
- package/dist/components/utilitary/ScrollAndFocusLock/index.js +27 -0
- package/dist/context/AsyncProcess.js +74 -0
- package/dist/context/ContextAsyncControl.js +92 -0
- package/dist/context/CustomBrowserRouter.js +50 -0
- package/dist/context/OneUIProvider.js +129 -0
- package/dist/hooks/logs/useDependencyChangeDetection.js +20 -0
- package/dist/hooks/logs/useIsMounting.js +13 -0
- package/dist/hooks/persistence/useLocalStorage.js +48 -0
- package/dist/hooks/shims/ObjectWatchShim.js +54 -0
- package/dist/hooks/ui/useAdaptiveImage.js +36 -0
- package/dist/hooks/ui/useAlternating.js +24 -0
- package/dist/hooks/ui/useBreakpoint.js +26 -0
- package/dist/hooks/ui/useCustomScrollbar.js +28 -0
- package/dist/hooks/ui/useCustomScrollbar.module.scss +20 -0
- package/dist/hooks/ui/useEffectIf.js +14 -0
- package/dist/hooks/ui/useMouseHover.js +32 -0
- package/dist/hooks/ui/usePaginationControls.js +136 -0
- package/dist/hooks/ui/usePaginationControls.module.scss +16 -0
- package/dist/hooks/ui/useSnapToViewport.js +26 -0
- package/dist/hooks/ui/useSnapToViewport.module.scss +6 -0
- package/dist/hooks/ui/useTilt.js +161 -0
- package/dist/hooks/ui/useZoomable.js +135 -0
- package/dist/hooks/ui/useZoomable.module.scss +34 -0
- package/dist/hooks/useAsyncControl.ai.md +25 -0
- package/dist/hooks/useAsyncControl.js +79 -0
- package/dist/hooks/useContainedRepositioning.js +83 -0
- package/dist/hooks/useCustomHistory.js +24 -0
- package/dist/hooks/useElementFit.js +54 -0
- package/dist/hooks/useFirestoreWatch.js +45 -0
- package/dist/hooks/useFreeze.js +17 -0
- package/dist/hooks/useHero.js +273 -0
- package/dist/hooks/useHero.module.scss +41 -0
- package/dist/hooks/useIntersection.js +39 -0
- package/dist/hooks/useMergeRefs.js +36 -0
- package/dist/hooks/useObserve.js +25 -0
- package/dist/hooks/usePagination.js +163 -0
- package/dist/hooks/usePooledOperation.js +52 -0
- package/dist/hooks/usePooling.js +52 -0
- package/dist/hooks/useRebound.js +32 -0
- package/dist/hooks/useShortIntl.ai.md +5 -0
- package/dist/hooks/useShortIntl.js +82 -0
- package/dist/hooks/utility/useAsyncMemo.js +45 -0
- package/dist/hooks/utility/useDepChange.js +17 -0
- package/dist/hooks/utility/useEvents.js +33 -0
- package/dist/hooks/utility/useImmediate.js +14 -0
- package/dist/hooks/utility/useManualInit.js +25 -0
- package/dist/hooks/utility/useModule.js +18 -0
- package/dist/hooks/utility/useQuery.js +20 -0
- package/dist/hooks/utility/useUniqueEffect.js +20 -0
- package/dist/index.js +2149 -0
- package/dist/index.preprocess.js +42 -0
- package/dist/models/DebugLogger.js +16 -0
- package/dist/models/GenericContract.js +51 -0
- package/dist/models/Orbs.js +67 -0
- package/dist/reac-app-env.d.js +2 -0
- package/dist/storybook/assets/video/txt-reversed.mp4 +0 -0
- package/dist/storybookUtils/index.js +44 -0
- package/dist/type-utils.js +6 -0
- package/dist/types.js +6 -0
- package/dist/utility.d.js +2 -0
- package/dist/utils/blockchain.js +46 -0
- package/dist/utils/e2e.js +33 -0
- package/dist/utils/flatten.js +19 -0
- package/dist/utils/formatters.js +63 -0
- package/dist/utils/html.utils.js +15 -0
- package/dist/utils/ownEvent.js +16 -0
- package/dist/utils/test.js +19 -0
- package/dist-ts/components/AnchoredTooltip/AnchoredTooltip.module.scss +13 -10
- package/dist-ts/components/CheckBox/CheckBox.d.ts +3 -1
- package/dist-ts/components/CheckBox/CheckBox.js +7 -4
- package/dist-ts/components/CheckBox/CheckBox.js.map +1 -1
- package/dist-ts/components/CheckBox/CheckBox.module.scss +5 -0
- package/dist-ts/components/Input/Input.js +1 -1
- package/dist-ts/components/Input/Input.js.map +1 -1
- package/dist-ts/context/OneUIProvider.d.ts +3 -1
- package/dist-ts/context/OneUIProvider.js.map +1 -1
- package/dist-ts/hooks/ui/useAdaptiveImage.d.ts +1 -1
- package/dist-ts/hooks/ui/useAdaptiveImage.js +1 -1
- package/dist-ts/hooks/ui/useAdaptiveImage.js.map +1 -1
- package/dist-ts/hooks/ui/useMouseHover.d.ts +2 -3
- package/dist-ts/hooks/ui/useMouseHover.js +6 -8
- package/dist-ts/hooks/ui/useMouseHover.js.map +1 -1
- package/dist-ts/index.d.ts +1 -0
- package/dist-ts/index.js +1 -0
- package/dist-ts/index.js.map +1 -1
- package/dist-ts/models/ImageScales.d.ts +7 -0
- package/dist-ts/models/ImageScales.js +9 -0
- package/dist-ts/models/ImageScales.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {};
|
|
7
|
+
Object.defineProperty(exports, "default", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _InstantCounter.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var _InstantCounter = _interopRequireWildcard(require("./InstantCounter"));
|
|
14
|
+
Object.keys(_InstantCounter).forEach(function (key) {
|
|
15
|
+
if (key === "default" || key === "__esModule") return;
|
|
16
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
17
|
+
if (key in exports && exports[key] === _InstantCounter[key]) return;
|
|
18
|
+
Object.defineProperty(exports, key, {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _InstantCounter[key];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
|
+
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; }
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfSW5zdGFudENvdW50ZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9leHBvcnROYW1lcyIsImV4cG9ydHMiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVzYyIsInNldCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0luc3RhbnRDb3VudGVyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi4vSW5zdGFudENvdW50ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0luc3RhbnRDb3VudGVyXCI7Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxlQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLGVBQUEsRUFBQUssT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBTixlQUFBLENBQUFNLEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFkLGVBQUEsQ0FBQU0sR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUFpQyxTQUFBUyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBZix3QkFBQW1CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQVQsR0FBQSxDQUFBTSxHQUFBLFNBQUFLLE1BQUEsV0FBQUMscUJBQUEsR0FBQXZCLE1BQUEsQ0FBQVMsY0FBQSxJQUFBVCxNQUFBLENBQUF3Qix3QkFBQSxXQUFBckIsR0FBQSxJQUFBYyxHQUFBLFFBQUFkLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQVcsR0FBQSxFQUFBZCxHQUFBLFNBQUFzQixJQUFBLEdBQUFGLHFCQUFBLEdBQUF2QixNQUFBLENBQUF3Qix3QkFBQSxDQUFBUCxHQUFBLEVBQUFkLEdBQUEsY0FBQXNCLElBQUEsS0FBQUEsSUFBQSxDQUFBZCxHQUFBLElBQUFjLElBQUEsQ0FBQUMsR0FBQSxLQUFBMUIsTUFBQSxDQUFBUyxjQUFBLENBQUFhLE1BQUEsRUFBQW5CLEdBQUEsRUFBQXNCLElBQUEsWUFBQUgsTUFBQSxDQUFBbkIsR0FBQSxJQUFBYyxHQUFBLENBQUFkLEdBQUEsU0FBQW1CLE1BQUEsQ0FBQUgsT0FBQSxHQUFBRixHQUFBLE1BQUFHLEtBQUEsSUFBQUEsS0FBQSxDQUFBTSxHQUFBLENBQUFULEdBQUEsRUFBQUssTUFBQSxZQUFBQSxNQUFBIn0=
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = useLavaLampSetup;
|
|
7
|
+
exports.transitionPositionMs = void 0;
|
|
8
|
+
var _lodash = require("lodash");
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _useTilt = require("../../hooks/ui/useTilt");
|
|
11
|
+
var _LavaLampModule = _interopRequireDefault(require("./LavaLamp.module.scss"));
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
const transitionMs = Number(_LavaLampModule.default.transitionMs);
|
|
14
|
+
const transitionPositionMs = exports.transitionPositionMs = Number(_LavaLampModule.default.transitionPositionMs);
|
|
15
|
+
function useLavaLampSetup(onUpdatePosition, onUpdateSize) {
|
|
16
|
+
const [d, setDim] = (0, _react.useState)();
|
|
17
|
+
const relativeTo = (0, _react.useRef)(null);
|
|
18
|
+
const prevTilt = (0, _react.useRef)(undefined);
|
|
19
|
+
(0, _react.useEffect)(() => {
|
|
20
|
+
const baseWidth = Math.min(relativeTo.current.clientWidth, 1440);
|
|
21
|
+
setDim({
|
|
22
|
+
width: baseWidth,
|
|
23
|
+
height: baseWidth * (relativeTo.current.clientHeight / relativeTo.current.clientWidth)
|
|
24
|
+
});
|
|
25
|
+
}, []);
|
|
26
|
+
const updateTiltCb = (0, _react.useMemo)(() => {
|
|
27
|
+
const throttlePosition = _lodash.throttle;
|
|
28
|
+
if (!d) return () => {};
|
|
29
|
+
const baseSize = Math.min(d.width, d.height) * 0.1;
|
|
30
|
+
let acceleration = (0, _lodash.throttle)(currTilt => {
|
|
31
|
+
if (!prevTilt.current) {
|
|
32
|
+
prevTilt.current = currTilt;
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const diff = {
|
|
36
|
+
x: Math.abs(prevTilt.current.x - currTilt.x),
|
|
37
|
+
y: Math.abs(prevTilt.current.y - currTilt.y)
|
|
38
|
+
};
|
|
39
|
+
const baseDiff = Math.max(diff.x, diff.y);
|
|
40
|
+
const percent = baseDiff * 100 / 90;
|
|
41
|
+
onUpdateSize(baseSize + baseSize * (percent / 100));
|
|
42
|
+
prevTilt.current = currTilt;
|
|
43
|
+
}, transitionMs, {
|
|
44
|
+
leading: false,
|
|
45
|
+
trailing: true
|
|
46
|
+
});
|
|
47
|
+
let movement = throttlePosition(currTilt => {
|
|
48
|
+
const [x, y] = [currTilt.x + 100, currTilt.y + 100];
|
|
49
|
+
const [cx, cy] = [d.width * x / 200, d.height * y / 200];
|
|
50
|
+
onUpdatePosition(cx, cy);
|
|
51
|
+
}, transitionPositionMs, {
|
|
52
|
+
leading: false,
|
|
53
|
+
trailing: true
|
|
54
|
+
});
|
|
55
|
+
return tilt => {
|
|
56
|
+
if (!d) return;
|
|
57
|
+
acceleration(tilt);
|
|
58
|
+
movement(tilt);
|
|
59
|
+
};
|
|
60
|
+
}, [d]);
|
|
61
|
+
(0, _useTilt.useTiltUpdates)(true, relativeTo, updateTiltCb, undefined, undefined, undefined, {
|
|
62
|
+
round: false,
|
|
63
|
+
gyroEnabled: false
|
|
64
|
+
});
|
|
65
|
+
const circlesConfig = (0, _react.useMemo)(() => {
|
|
66
|
+
if (!d) return [];
|
|
67
|
+
const baseSize = Math.min(d.width, d.height) * 0.15;
|
|
68
|
+
return new Array(10).fill(undefined).map((_, i) => {
|
|
69
|
+
const mod = i % 2;
|
|
70
|
+
const startX = Math.random() * d.width * 0.5 + (mod === 0 ? 0 : d.width * 0.5);
|
|
71
|
+
const translateX = startX - (startX + 50 + Math.random() * 200);
|
|
72
|
+
const startY = Math.random() * d.height * 0.75 + (mod === 0 ? 0 : d.height * 0.25);
|
|
73
|
+
const translateY = startY - (startY + 50 + Math.random() * 200);
|
|
74
|
+
return {
|
|
75
|
+
baseSize,
|
|
76
|
+
startX,
|
|
77
|
+
startY,
|
|
78
|
+
translateX,
|
|
79
|
+
translateY
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
}, [d]);
|
|
83
|
+
return {
|
|
84
|
+
relativeTo,
|
|
85
|
+
d,
|
|
86
|
+
circlesConfig
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9yZWFjdCIsIl91c2VUaWx0IiwiX0xhdmFMYW1wTW9kdWxlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidHJhbnNpdGlvbk1zIiwiTnVtYmVyIiwiU3R5bGVzIiwidHJhbnNpdGlvblBvc2l0aW9uTXMiLCJleHBvcnRzIiwidXNlTGF2YUxhbXBTZXR1cCIsIm9uVXBkYXRlUG9zaXRpb24iLCJvblVwZGF0ZVNpemUiLCJkIiwic2V0RGltIiwidXNlU3RhdGUiLCJyZWxhdGl2ZVRvIiwidXNlUmVmIiwicHJldlRpbHQiLCJ1bmRlZmluZWQiLCJ1c2VFZmZlY3QiLCJiYXNlV2lkdGgiLCJNYXRoIiwibWluIiwiY3VycmVudCIsImNsaWVudFdpZHRoIiwid2lkdGgiLCJoZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJ1cGRhdGVUaWx0Q2IiLCJ1c2VNZW1vIiwidGhyb3R0bGVQb3NpdGlvbiIsInQiLCJiYXNlU2l6ZSIsImFjY2VsZXJhdGlvbiIsImN1cnJUaWx0IiwiZGlmZiIsIngiLCJhYnMiLCJ5IiwiYmFzZURpZmYiLCJtYXgiLCJwZXJjZW50IiwibGVhZGluZyIsInRyYWlsaW5nIiwibW92ZW1lbnQiLCJjeCIsImN5IiwidGlsdCIsInVzZVRpbHRVcGRhdGVzIiwicm91bmQiLCJneXJvRW5hYmxlZCIsImNpcmNsZXNDb25maWciLCJBcnJheSIsImZpbGwiLCJtYXAiLCJfIiwiaSIsIm1vZCIsInN0YXJ0WCIsInJhbmRvbSIsInRyYW5zbGF0ZVgiLCJzdGFydFkiLCJ0cmFuc2xhdGVZIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTGF2YUxhbXAvTGF2YUxhbXAuZGF0YS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhyb3R0bGUgYXMgdCB9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlVGlsdFVwZGF0ZXMgfSBmcm9tIFwiLi4vLi4vaG9va3MvdWkvdXNlVGlsdFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9MYXZhTGFtcC5tb2R1bGUuc2Nzc1wiO1xuXG5jb25zdCB0cmFuc2l0aW9uTXMgPSBOdW1iZXIoU3R5bGVzLnRyYW5zaXRpb25Ncyk7XG5leHBvcnQgY29uc3QgdHJhbnNpdGlvblBvc2l0aW9uTXMgPSBOdW1iZXIoU3R5bGVzLnRyYW5zaXRpb25Qb3NpdGlvbk1zKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlTGF2YUxhbXBTZXR1cChcbiAgb25VcGRhdGVQb3NpdGlvbjogKHg6IG51bWJlciwgeTogbnVtYmVyKSA9PiB2b2lkLFxuICBvblVwZGF0ZVNpemU6IChzaXplOiBudW1iZXIpID0+IHZvaWRcbikge1xuICBjb25zdCBbZCwgc2V0RGltXSA9IHVzZVN0YXRlPHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfT4oKTtcbiAgY29uc3QgcmVsYXRpdmVUbyA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgcHJldlRpbHQgPSB1c2VSZWY8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9Pih1bmRlZmluZWQpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYmFzZVdpZHRoID0gTWF0aC5taW4ocmVsYXRpdmVUby5jdXJyZW50IS5jbGllbnRXaWR0aCwgMTQ0MCk7XG4gICAgc2V0RGltKHtcbiAgICAgIHdpZHRoOiBiYXNlV2lkdGgsXG4gICAgICBoZWlnaHQ6XG4gICAgICAgIGJhc2VXaWR0aCAqXG4gICAgICAgIChyZWxhdGl2ZVRvLmN1cnJlbnQhLmNsaWVudEhlaWdodCAvIHJlbGF0aXZlVG8uY3VycmVudCEuY2xpZW50V2lkdGgpLFxuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgdXBkYXRlVGlsdENiID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdGhyb3R0bGVQb3NpdGlvbiA9IHQ7XG4gICAgaWYgKCFkKSByZXR1cm4gKCkgPT4ge307XG4gICAgY29uc3QgYmFzZVNpemUgPSBNYXRoLm1pbihkLndpZHRoLCBkLmhlaWdodCkgKiAwLjE7XG4gICAgbGV0IGFjY2VsZXJhdGlvbiA9IHQoXG4gICAgICAoY3VyclRpbHQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICBpZiAoIXByZXZUaWx0LmN1cnJlbnQpIHtcbiAgICAgICAgICBwcmV2VGlsdC5jdXJyZW50ID0gY3VyclRpbHQ7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGlmZiA9IHtcbiAgICAgICAgICB4OiBNYXRoLmFicyhwcmV2VGlsdC5jdXJyZW50LnggLSBjdXJyVGlsdC54KSxcbiAgICAgICAgICB5OiBNYXRoLmFicyhwcmV2VGlsdC5jdXJyZW50LnkgLSBjdXJyVGlsdC55KSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBiYXNlRGlmZiA9IE1hdGgubWF4KGRpZmYueCwgZGlmZi55KTtcbiAgICAgICAgY29uc3QgcGVyY2VudCA9IChiYXNlRGlmZiAqIDEwMCkgLyA5MDtcblxuICAgICAgICBvblVwZGF0ZVNpemUoYmFzZVNpemUgKyBiYXNlU2l6ZSAqIChwZXJjZW50IC8gMTAwKSk7XG5cbiAgICAgICAgcHJldlRpbHQuY3VycmVudCA9IGN1cnJUaWx0ITtcbiAgICAgIH0sXG4gICAgICB0cmFuc2l0aW9uTXMsXG4gICAgICB7XG4gICAgICAgIGxlYWRpbmc6IGZhbHNlLFxuICAgICAgICB0cmFpbGluZzogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICAgIGxldCBtb3ZlbWVudCA9IHRocm90dGxlUG9zaXRpb24oXG4gICAgICAoY3VyclRpbHQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICBjb25zdCBbeCwgeV0gPSBbY3VyclRpbHQueCArIDEwMCwgY3VyclRpbHQueSArIDEwMF07XG4gICAgICAgIGNvbnN0IFtjeCwgY3ldID0gWyhkIS53aWR0aCAqIHgpIC8gMjAwLCAoZCEuaGVpZ2h0ICogeSkgLyAyMDBdO1xuICAgICAgICBvblVwZGF0ZVBvc2l0aW9uKGN4LCBjeSk7XG4gICAgICB9LFxuICAgICAgdHJhbnNpdGlvblBvc2l0aW9uTXMsXG4gICAgICB7XG4gICAgICAgIGxlYWRpbmc6IGZhbHNlLFxuICAgICAgICB0cmFpbGluZzogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiAodGlsdDogTm9uTnVsbGFibGU8dHlwZW9mIHByZXZUaWx0LmN1cnJlbnQ+KSA9PiB7XG4gICAgICBpZiAoIWQpIHJldHVybjtcbiAgICAgIGFjY2VsZXJhdGlvbih0aWx0KTtcbiAgICAgIG1vdmVtZW50KHRpbHQpO1xuICAgIH07XG4gIH0sIFtkXSk7XG4gIHVzZVRpbHRVcGRhdGVzKFxuICAgIHRydWUsXG4gICAgcmVsYXRpdmVUbyxcbiAgICB1cGRhdGVUaWx0Q2IsXG4gICAgdW5kZWZpbmVkLFxuICAgIHVuZGVmaW5lZCxcbiAgICB1bmRlZmluZWQsXG4gICAge1xuICAgICAgcm91bmQ6IGZhbHNlLFxuICAgICAgZ3lyb0VuYWJsZWQ6IGZhbHNlLFxuICAgIH1cbiAgKTtcbiAgY29uc3QgY2lyY2xlc0NvbmZpZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghZCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IGJhc2VTaXplID0gTWF0aC5taW4oZC53aWR0aCwgZC5oZWlnaHQpICogMC4xNTtcbiAgICByZXR1cm4gbmV3IEFycmF5KDEwKS5maWxsKHVuZGVmaW5lZCkubWFwKChfLCBpKSA9PiB7XG4gICAgICBjb25zdCBtb2QgPSBpICUgMjtcbiAgICAgIGNvbnN0IHN0YXJ0WCA9XG4gICAgICAgIE1hdGgucmFuZG9tKCkgKiBkLndpZHRoICogMC41ICsgKG1vZCA9PT0gMCA/IDAgOiBkLndpZHRoICogMC41KTtcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZVggPSBzdGFydFggLSAoc3RhcnRYICsgNTAgKyBNYXRoLnJhbmRvbSgpICogMjAwKTtcbiAgICAgIGNvbnN0IHN0YXJ0WSA9XG4gICAgICAgIE1hdGgucmFuZG9tKCkgKiBkLmhlaWdodCAqIDAuNzUgKyAobW9kID09PSAwID8gMCA6IGQuaGVpZ2h0ICogMC4yNSk7XG4gICAgICBjb25zdCB0cmFuc2xhdGVZID0gc3RhcnRZIC0gKHN0YXJ0WSArIDUwICsgTWF0aC5yYW5kb20oKSAqIDIwMCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhc2VTaXplLFxuICAgICAgICBzdGFydFgsXG4gICAgICAgIHN0YXJ0WSxcbiAgICAgICAgdHJhbnNsYXRlWCxcbiAgICAgICAgdHJhbnNsYXRlWSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH0sIFtkXSk7XG5cbiAgcmV0dXJuIHtcbiAgICByZWxhdGl2ZVRvLFxuICAgIGQsXG4gICAgY2lyY2xlc0NvbmZpZyxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUE0QyxTQUFBSSx1QkFBQUMsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUU1QyxNQUFNRyxZQUFZLEdBQUdDLE1BQU0sQ0FBQ0MsdUJBQU0sQ0FBQ0YsWUFBWSxDQUFDO0FBQ3pDLE1BQU1HLG9CQUFvQixHQUFBQyxPQUFBLENBQUFELG9CQUFBLEdBQUdGLE1BQU0sQ0FBQ0MsdUJBQU0sQ0FBQ0Msb0JBQW9CLENBQUM7QUFFeEQsU0FBU0UsZ0JBQWdCQSxDQUN0Q0MsZ0JBQWdELEVBQ2hEQyxZQUFvQyxFQUNwQztFQUNBLE1BQU0sQ0FBQ0MsQ0FBQyxFQUFFQyxNQUFN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
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = LavaLamp;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _LavaLamp = _interopRequireDefault(require("./LavaLamp.data"));
|
|
9
|
+
var _LavaLampModule = _interopRequireDefault(require("./LavaLamp.module.scss"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
+
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; }
|
|
13
|
+
/**
|
|
14
|
+
* This component creates a calming visual effect that looks like a lava lamp, with floating bubbles that move around smoothly.
|
|
15
|
+
*/
|
|
16
|
+
function LavaLamp(_ref) {
|
|
17
|
+
let {
|
|
18
|
+
className,
|
|
19
|
+
children
|
|
20
|
+
} = _ref;
|
|
21
|
+
const circleRef = (0, _react.useRef)(null);
|
|
22
|
+
const {
|
|
23
|
+
relativeTo,
|
|
24
|
+
d,
|
|
25
|
+
circlesConfig
|
|
26
|
+
} = (0, _LavaLamp.default)((cx, cy) => {
|
|
27
|
+
const style = circleRef.current.style;
|
|
28
|
+
style.cx = cx;
|
|
29
|
+
style.cy = cy;
|
|
30
|
+
}, size => {
|
|
31
|
+
const style = circleRef.current.style;
|
|
32
|
+
style.r = size;
|
|
33
|
+
});
|
|
34
|
+
const randomCircles = (0, _react.useMemo)(() => {
|
|
35
|
+
return circlesConfig.map(_ref2 => {
|
|
36
|
+
let {
|
|
37
|
+
baseSize,
|
|
38
|
+
startX,
|
|
39
|
+
startY,
|
|
40
|
+
translateX,
|
|
41
|
+
translateY
|
|
42
|
+
} = _ref2;
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement("circle", {
|
|
44
|
+
r: baseSize + Math.random() * (baseSize / 2),
|
|
45
|
+
fill: "#fff",
|
|
46
|
+
cx: startX,
|
|
47
|
+
cy: startY
|
|
48
|
+
}, /*#__PURE__*/_react.default.createElement("animateTransform", {
|
|
49
|
+
additive: "sum",
|
|
50
|
+
attributeName: "transform",
|
|
51
|
+
attributeType: "XML",
|
|
52
|
+
type: "translate",
|
|
53
|
+
values: "0 0; ".concat(translateX, " ").concat(translateY, "; 0 0;"),
|
|
54
|
+
dur: "".concat(5 + Math.random() * 5, "s"),
|
|
55
|
+
repeatCount: "indefinite"
|
|
56
|
+
}));
|
|
57
|
+
});
|
|
58
|
+
}, [circlesConfig]);
|
|
59
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
60
|
+
ref: relativeTo,
|
|
61
|
+
className: "".concat(_LavaLampModule.default.root, " ").concat(className)
|
|
62
|
+
}, d && /*#__PURE__*/_react.default.createElement("svg", {
|
|
63
|
+
className: _LavaLampModule.default.effect,
|
|
64
|
+
viewBox: "0 0 ".concat(d.width, " ").concat(d.height)
|
|
65
|
+
}, /*#__PURE__*/_react.default.createElement("filter", {
|
|
66
|
+
id: "goo-lava-lamp",
|
|
67
|
+
width: "10",
|
|
68
|
+
height: "10",
|
|
69
|
+
x: "0%",
|
|
70
|
+
y: "0%",
|
|
71
|
+
filterRes: "1"
|
|
72
|
+
}, /*#__PURE__*/_react.default.createElement("feGaussianBlur", {
|
|
73
|
+
in: "SourceGraphic",
|
|
74
|
+
result: "blur",
|
|
75
|
+
stdDeviation: "40"
|
|
76
|
+
}), /*#__PURE__*/_react.default.createElement("feColorMatrix", {
|
|
77
|
+
in: "blur",
|
|
78
|
+
mode: "matrix",
|
|
79
|
+
values: "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 50 -7",
|
|
80
|
+
result: "goo"
|
|
81
|
+
})), /*#__PURE__*/_react.default.createElement("mask", {
|
|
82
|
+
id: "mask-lava-lamp"
|
|
83
|
+
}, /*#__PURE__*/_react.default.createElement("g", {
|
|
84
|
+
filter: "url(#".concat("goo-lava-lamp", ")"),
|
|
85
|
+
fill: "#fff"
|
|
86
|
+
}, randomCircles, /*#__PURE__*/_react.default.createElement("circle", {
|
|
87
|
+
ref: circleRef,
|
|
88
|
+
fill: "#fff"
|
|
89
|
+
}))), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("radialGradient", {
|
|
90
|
+
id: "grad1",
|
|
91
|
+
cx: "50%",
|
|
92
|
+
cy: "50%",
|
|
93
|
+
r: "50%",
|
|
94
|
+
fx: "50%",
|
|
95
|
+
fy: "50%"
|
|
96
|
+
}, /*#__PURE__*/_react.default.createElement("stop", {
|
|
97
|
+
offset: "0%",
|
|
98
|
+
style: {
|
|
99
|
+
stopColor: "var(--lava-lamp-color-a)",
|
|
100
|
+
stopOpacity: 1
|
|
101
|
+
}
|
|
102
|
+
}), /*#__PURE__*/_react.default.createElement("stop", {
|
|
103
|
+
offset: "67.33%",
|
|
104
|
+
style: {
|
|
105
|
+
stopColor: "var(--lava-lamp-color-b)",
|
|
106
|
+
stopOpacity: 1
|
|
107
|
+
}
|
|
108
|
+
}), /*#__PURE__*/_react.default.createElement("stop", {
|
|
109
|
+
offset: "88.33%",
|
|
110
|
+
style: {
|
|
111
|
+
stopColor: "var(--lava-lamp-color-c)",
|
|
112
|
+
stopOpacity: 1
|
|
113
|
+
}
|
|
114
|
+
}))), /*#__PURE__*/_react.default.createElement("rect", {
|
|
115
|
+
x: "-50%",
|
|
116
|
+
y: "-50%",
|
|
117
|
+
mask: "url(#".concat("mask-lava-lamp", ")"),
|
|
118
|
+
width: "200%",
|
|
119
|
+
height: "200%",
|
|
120
|
+
style: {
|
|
121
|
+
fill: "url(#grad1)"
|
|
122
|
+
}
|
|
123
|
+
})), /*#__PURE__*/_react.default.createElement("div", null, children));
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfTGF2YUxhbXAiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0xhdmFMYW1wTW9kdWxlIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkxhdmFMYW1wIiwiX3JlZiIsImNsYXNzTmFtZSIsImNoaWxkcmVuIiwiY2lyY2xlUmVmIiwidXNlUmVmIiwicmVsYXRpdmVUbyIsImQiLCJjaXJjbGVzQ29uZmlnIiwidXNlTGF2YUxhbXBTZXR1cCIsImN4IiwiY3kiLCJzdHlsZSIsImN1cnJlbnQiLCJzaXplIiwiciIsInJhbmRvbUNpcmNsZXMiLCJ1c2VNZW1vIiwibWFwIiwiX3JlZjIiLCJiYXNlU2l6ZSIsInN0YXJ0WCIsInN0YXJ0WSIsInRyYW5zbGF0ZVgiLCJ0cmFuc2xhdGVZIiwiY3JlYXRlRWxlbWVudCIsIk1hdGgiLCJyYW5kb20iLCJmaWxsIiwiYWRkaXRpdmUiLCJhdHRyaWJ1dGVOYW1lIiwiYXR0cmlidXRlVHlwZSIsInR5cGUiLCJ2YWx1ZXMiLCJjb25jYXQiLCJkdXIiLCJyZXBlYXRDb3VudCIsInJlZiIsIlN0eWxlcyIsInJvb3QiLCJlZmZlY3QiLCJ2aWV3Qm94Iiwid2lkdGgiLCJoZWlnaHQiLCJpZCIsIngiLCJ5IiwiZmlsdGVyUmVzIiwiaW4iLCJyZXN1bHQiLCJzdGREZXZpYXRpb24iLCJtb2RlIiwiZmlsdGVyIiwiZngiLCJmeSIsIm9mZnNldCIsInN0b3BDb2xvciIsInN0b3BPcGFjaXR5IiwibWFzayJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0xhdmFMYW1wL0xhdmFMYW1wLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHJvcHNXaXRoQ2hpbGRyZW4sIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHVzZUxhdmFMYW1wU2V0dXAgZnJvbSBcIi4vTGF2YUxhbXAuZGF0YVwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9MYXZhTGFtcC5tb2R1bGUuc2Nzc1wiO1xuXG50eXBlIExhdmFMYW1wUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBSZXF1aXJlZCBmb3IgZGVmaW5pbmcgdGhlIGRpbWVuc2lvbnMgdGhlIGxhdmEgbGFtcCBzaG91bGQgaGF2ZVxuICAgKi9cbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGNyZWF0ZXMgYSBjYWxtaW5nIHZpc3VhbCBlZmZlY3QgdGhhdCBsb29rcyBsaWtlIGEgbGF2YSBsYW1wLCB3aXRoIGZsb2F0aW5nIGJ1YmJsZXMgdGhhdCBtb3ZlIGFyb3VuZCBzbW9vdGhseS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTGF2YUxhbXAoe1xuICBjbGFzc05hbWUsXG4gIGNoaWxkcmVuLFxufTogUHJvcHNXaXRoQ2hpbGRyZW48TGF2YUxhbXBQcm9wcz4pIHtcbiAgY29uc3QgY2lyY2xlUmVmID0gdXNlUmVmPFNWR0NpcmNsZUVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IHsgcmVsYXRpdmVUbywgZCwgY2lyY2xlc0NvbmZpZyB9ID0gdXNlTGF2YUxhbXBTZXR1cChcbiAgICAoY3gsIGN5KSA9PiB7XG4gICAgICBjb25zdCBzdHlsZTogYW55ID0gY2lyY2xlUmVmLmN1cnJlbnQhLnN0eWxlO1xuICAgICAgc3R5bGUuY3ggPSBjeDtcbiAgICAgIHN0eWxlLmN5ID0gY3k7XG4gICAgfSxcbiAgICAoc2l6ZSkgPT4ge1xuICAgICAgY29uc3Qgc3R5bGU6IGFueSA9IGNpcmNsZVJlZi5jdXJyZW50IS5zdHlsZTtcbiAgICAgIHN0eWxlLnIgPSBzaXplO1xuICAgIH1cbiAgKTtcblxuICBjb25zdCByYW5kb21DaXJjbGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGNpcmNsZXNDb25maWcubWFwKFxuICAgICAgKHsgYmFzZVNpemUsIHN0YXJ0WCwgc3RhcnRZLCB0cmFuc2xhdGVYLCB0cmFuc2xhdGVZIH0pID0+IChcbiAgICAgICAgPGNpcmNsZVxuICAgICAgICAgIHI9e2Jhc2VTaXplICsgTWF0aC5yYW5kb20oKSAqIChiYXNlU2l6ZSAvIDIpfVxuICAgICAgICAgIGZpbGw9XCIjZmZmXCJcbiAgICAgICAgICBjeD17c3RhcnRYfVxuICAgICAgICAgIGN5PXtzdGFydFl9XG4gICAgICAgID5cbiAgICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybVxuICAgICAgICAgICAgYWRkaXRpdmU9XCJzdW1cIlxuICAgICAgICAgICAgYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiXG4gICAgICAgICAgICBhdHRyaWJ1dGVUeXBlPVwiWE1MXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0cmFuc2xhdGVcIlxuICAgICAgICAgICAgdmFsdWVzPXtgMCAwOyAke3RyYW5zbGF0ZVh9ICR7dHJhbnNsYXRlWX07IDAgMDtgfVxuICAgICAgICAgICAgZHVyPXtgJHs1ICsgTWF0aC5yYW5kb20oKSAqIDV9c2B9XG4gICAgICAgICAgICByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvY2lyY2xlPlxuICAgICAgKVxuICAgICk7XG4gIH0sIFtjaXJjbGVzQ29uZmlnXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17cmVsYXRpdmVUb30gY2xhc3NOYW1lPXtgJHtTdHlsZXMucm9vdH0gJHtjbGFzc05hbWV9YH0+XG4gICAgICB7ZCAmJiAoXG4gICAgICAgIDxzdmcgY2xhc3NOYW1lPXtTdHlsZXMuZWZmZWN0fSB2aWV3Qm94PXtgMCAwICR7ZC53aWR0aH0gJHtkLmhlaWdodH1gfT5cbiAgICAgICAgICA8ZmlsdGVyXG4gICAgICAgICAgICBpZD17YGdvby1sYXZhLWxhbXBgfVxuICAgICAgICAgICAgd2lkdGg9XCIxMFwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIxMFwiXG4gICAgICAgICAgICB4PVwiMCVcIlxuICAgICAgICAgICAgeT1cIjAlXCJcbiAgICAgICAgICAgIGZpbHRlclJlcz1cIjFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1clxuICAgICAgICAgICAgICBpbj1cIlNvdXJjZUdyYXBoaWNcIlxuICAgICAgICAgICAgICByZXN1bHQ9XCJibHVyXCJcbiAgICAgICAgICAgICAgc3RkRGV2aWF0aW9uPVwiNDBcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4XG4gICAgICAgICAgICAgIGluPVwiYmx1clwiXG4gICAgICAgICAgICAgIG1vZGU9XCJtYXRyaXhcIlxuICAgICAgICAgICAgICB2YWx1ZXM9XCIxIDAgMCAwIDAgIDAgMSAwIDAgMCAgMCAwIDEgMCAwICAwIDAgMCA1MCAtN1wiXG4gICAgICAgICAgICAgIHJlc3VsdD1cImdvb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZmlsdGVyPlxuICAgICAgICAgIDxtYXNrIGlkPXtgbWFzay1sYXZhLWxhbXBgfT5cbiAgICAgICAgICAgIDxnIGZpbHRlcj17YHVybCgjJHtgZ29vLWxhdmEtbGFtcGB9KWB9IGZpbGw9XCIjZmZmXCI+XG4gICAgICAgICAgICAgIHtyYW5kb21DaXJjbGVzfVxuICAgICAgICAgICAgICA8Y2lyY2xlIHJlZj17Y2lyY2xlUmVmfSBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgICAgICAgICA8L2c+XG4gICAgICAgICAgPC9tYXNrPlxuICAgICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgPHJhZGlhbEdyYWRpZW50XG4gICAgICAgICAgICAgIGlkPVwiZ3JhZDFcIlxuICAgICAgICAgICAgICBjeD1cIjUwJVwiXG4gICAgICAgICAgICAgIGN5PVwiNTAlXCJcbiAgICAgICAgICAgICAgcj1cIjUwJVwiXG4gICAgICAgICAgICAgIGZ4PVwiNTAlXCJcbiAgICAgICAgICAgICAgZnk9XCI1MCVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3RvcFxuICAgICAgICAgICAgICAgIG9mZnNldD1cIjAlXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgc3RvcENvbG9yOiBcInZhcigtLWxhdmEtbGFtcC1jb2xvci1hKVwiLFxuICAgICAgICAgICAgICAgICAgc3RvcE9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHN0b3BcbiAgICAgICAgICAgICAgICBvZmZzZXQ9XCI2Ny4zMyVcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBzdG9wQ29sb3I6IFwidmFyKC0tbGF2YS1sYW1wLWNvbG9yLWIpXCIsXG4gICAgICAgICAgICAgICAgICBzdG9wT3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8c3RvcFxuICAgICAgICAgICAgICAgIG9mZnNldD1cIjg4LjMzJVwiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIHN0b3BDb2xvcjogXCJ2YXIoLS1sYXZhLWxhbXAtY29sb3ItYylcIixcbiAgICAgICAgICAgICAgICAgIHN0b3BPcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3JhZGlhbEdyYWRpZW50PlxuICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICA8cmVjdFxuICAgICAgICAgICAgeD1cIi01MCVcIlxuICAgICAgICAgICAgeT1cIi01MCVcIlxuICAgICAgICAgICAgbWFzaz17YHVybCgjJHtgbWFzay1sYXZhLWxhbXBgfSlgfVxuICAgICAgICAgICAgd2lkdGg9XCIyMDAlXCJcbiAgICAgICAgICAgIGhlaWdodD1cIjIwMCVcIlxuICAgICAgICAgICAgc3R5bGU9e3sgZmlsbDogXCJ1cmwoI2dyYWQxKVwiIH19XG4gICAgICAgICAgPjwvcmVjdD5cbiAgICAgICAgPC9zdmc+XG4gICAgICApfVxuICAgICAgPGRpdj57Y2hpbGRyZW59PC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGVBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUE0QyxTQUFBRSx1QkFBQUUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFULHdCQUFBSyxHQUFBLEVBQUFJLFdBQUEsU0FBQUEsV0FBQSxJQUFBSixHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFBUSxLQUFBLEdBQUFMLHdCQUFBLENBQUFDLFdBQUEsT0FBQUksS0FBQSxJQUFBQSxLQUFB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
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
@use 'sass:math';
|
|
2
|
+
|
|
3
|
+
$transitionMs: math.div(1000, 5);
|
|
4
|
+
$transitionPositionMs: math.div($transitionMs, 2);
|
|
5
|
+
@value transitionMs #{$transitionMs};
|
|
6
|
+
@value transitionPositionMs #{$transitionPositionMs};
|
|
7
|
+
|
|
8
|
+
.root {
|
|
9
|
+
position: relative;
|
|
10
|
+
svg.effect {
|
|
11
|
+
position: absolute;
|
|
12
|
+
top: 0;
|
|
13
|
+
left: 0;
|
|
14
|
+
bottom: 0;
|
|
15
|
+
right: 0;
|
|
16
|
+
circle {
|
|
17
|
+
will-change: r, cx, cy;
|
|
18
|
+
transition: r #{$transitionMs}ms linear,
|
|
19
|
+
cx #{$transitionPositionMs}ms linear,
|
|
20
|
+
cy #{$transitionPositionMs}ms linear;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
> div {
|
|
24
|
+
z-index: 1;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {};
|
|
7
|
+
Object.defineProperty(exports, "default", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _LavaLamp.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var _LavaLamp = _interopRequireWildcard(require("./LavaLamp"));
|
|
14
|
+
Object.keys(_LavaLamp).forEach(function (key) {
|
|
15
|
+
if (key === "default" || key === "__esModule") return;
|
|
16
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
17
|
+
if (key in exports && exports[key] === _LavaLamp[key]) return;
|
|
18
|
+
Object.defineProperty(exports, key, {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _LavaLamp[key];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
|
+
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; }
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfTGF2YUxhbXAiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9leHBvcnROYW1lcyIsImV4cG9ydHMiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVzYyIsInNldCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0xhdmFMYW1wL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi4vTGF2YUxhbXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0xhdmFMYW1wXCI7Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxTQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLFNBQUEsRUFBQUssT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBTixTQUFBLENBQUFNLEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFkLFNBQUEsQ0FBQU0sR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUEyQixTQUFBUyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBZix3QkFBQW1CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQVQsR0FBQSxDQUFBTSxHQUFBLFNBQUFLLE1BQUEsV0FBQUMscUJBQUEsR0FBQXZCLE1BQUEsQ0FBQVMsY0FBQSxJQUFBVCxNQUFBLENBQUF3Qix3QkFBQSxXQUFBckIsR0FBQSxJQUFBYyxHQUFBLFFBQUFkLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQVcsR0FBQSxFQUFBZCxHQUFBLFNBQUFzQixJQUFBLEdBQUFGLHFCQUFBLEdBQUF2QixNQUFBLENBQUF3Qix3QkFBQSxDQUFBUCxHQUFBLEVBQUFkLEdBQUEsY0FBQXNCLElBQUEsS0FBQUEsSUFBQSxDQUFBZCxHQUFBLElBQUFjLElBQUEsQ0FBQUMsR0FBQSxLQUFBMUIsTUFBQSxDQUFBUyxjQUFBLENBQUFhLE1BQUEsRUFBQW5CLEdBQUEsRUFBQXNCLElBQUEsWUFBQUgsTUFBQSxDQUFBbkIsR0FBQSxJQUFBYyxHQUFBLENBQUFkLEdBQUEsU0FBQW1CLE1BQUEsQ0FBQUgsT0FBQSxHQUFBRixHQUFBLE1BQUFHLEtBQUEsSUFBQUEsS0FBQSxDQUFBTSxHQUFBLENBQUFULEdBQUEsRUFBQUssTUFBQSxZQUFBQSxNQUFBIn0=
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = LavaLamp;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _useMergeRefs = _interopRequireDefault(require("../../../hooks/useMergeRefs"));
|
|
9
|
+
var _LavaLamp = _interopRequireWildcard(require("../LavaLamp.data"));
|
|
10
|
+
var _LavaLampModule = _interopRequireDefault(require("./LavaLamp.module.scss"));
|
|
11
|
+
var _Orbs = require("../../../models/Orbs");
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
+
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; }
|
|
15
|
+
function LavaLamp(_ref) {
|
|
16
|
+
let {
|
|
17
|
+
className,
|
|
18
|
+
children
|
|
19
|
+
} = _ref;
|
|
20
|
+
const guideConfig = (0, _react.useRef)({
|
|
21
|
+
size: 0,
|
|
22
|
+
sizeTimestamp: Date.now(),
|
|
23
|
+
sizeIncrement: 0,
|
|
24
|
+
x: 0,
|
|
25
|
+
y: 0,
|
|
26
|
+
posTimestamp: Date.now(),
|
|
27
|
+
posIncrement: [0, 0]
|
|
28
|
+
});
|
|
29
|
+
const {
|
|
30
|
+
relativeTo,
|
|
31
|
+
circlesConfig,
|
|
32
|
+
d
|
|
33
|
+
} = (0, _LavaLamp.default)((x, y) => {
|
|
34
|
+
guideConfig.current.posIncrement = [x - guideConfig.current.x, y - guideConfig.current.y];
|
|
35
|
+
guideConfig.current.x = x;
|
|
36
|
+
guideConfig.current.y = y;
|
|
37
|
+
guideConfig.current.posTimestamp = Date.now();
|
|
38
|
+
}, _size => {
|
|
39
|
+
const size = _size * 1.2;
|
|
40
|
+
guideConfig.current.sizeIncrement = guideConfig.current.size === 0 ? 0 : size - guideConfig.current.size;
|
|
41
|
+
guideConfig.current.size = size;
|
|
42
|
+
guideConfig.current.sizeTimestamp = Date.now();
|
|
43
|
+
});
|
|
44
|
+
const _canvasRef = (0, _react.useRef)(null);
|
|
45
|
+
const canvasRef = (0, _useMergeRefs.default)(_canvasRef, relativeTo);
|
|
46
|
+
(0, _react.useEffect)(() => {
|
|
47
|
+
if (!d) return;
|
|
48
|
+
const fc = canvasRef.current;
|
|
49
|
+
const baseColor = getComputedStyle(relativeTo.current).getPropertyValue("--digital-blue") || "#000000";
|
|
50
|
+
var c = document.createElement("canvas"),
|
|
51
|
+
w = c.width = fc.width = d.width,
|
|
52
|
+
h = c.height = fc.height = d.height,
|
|
53
|
+
ctx = c.getContext("2d"),
|
|
54
|
+
fctx = fc.getContext("2d"),
|
|
55
|
+
// f means final
|
|
56
|
+
opts = {
|
|
57
|
+
orbCount: circlesConfig.length,
|
|
58
|
+
baseVel: Math.max(d.width * 0.001, 1),
|
|
59
|
+
addedVel: Math.max(d.width * 0.001, 1),
|
|
60
|
+
alphaThreshold: 200
|
|
61
|
+
},
|
|
62
|
+
orbs = [];
|
|
63
|
+
class CanvasOrbDrawer {
|
|
64
|
+
newGradient(color, radius) {
|
|
65
|
+
const gradient = ctx.createRadialGradient(0, 0, 0, 0, 0, radius);
|
|
66
|
+
gradient.addColorStop(0, "".concat(color, "ff"));
|
|
67
|
+
gradient.addColorStop(0.8, "".concat(color, "cc"));
|
|
68
|
+
gradient.addColorStop(1, "".concat(color, "00"));
|
|
69
|
+
return gradient;
|
|
70
|
+
}
|
|
71
|
+
oldDrawCircle(x, y, radius) {
|
|
72
|
+
var _this$gradient;
|
|
73
|
+
ctx.fillStyle = (_this$gradient = this.gradient) !== null && _this$gradient !== void 0 ? _this$gradient : this.newGradient(baseColor, radius);
|
|
74
|
+
ctx.translate(x | 0, y | 0);
|
|
75
|
+
ctx.beginPath();
|
|
76
|
+
ctx.arc(0, 0, radius, 0, Math.PI * 2);
|
|
77
|
+
ctx.fill();
|
|
78
|
+
ctx.translate(-x | 0, -y | 0);
|
|
79
|
+
}
|
|
80
|
+
drawOrb(x, y, radius) {
|
|
81
|
+
this.oldDrawCircle(x, y, radius);
|
|
82
|
+
}
|
|
83
|
+
constructor(gradientRadius) {
|
|
84
|
+
if (gradientRadius) this.gradient = this.newGradient(baseColor, gradientRadius);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
let animFrame;
|
|
88
|
+
function anim() {
|
|
89
|
+
animFrame = window.requestAnimationFrame(anim);
|
|
90
|
+
ctx.clearRect(0, 0, w, h);
|
|
91
|
+
fctx.fillStyle = "#0000";
|
|
92
|
+
fctx.fillRect(0, 0, w, h);
|
|
93
|
+
for (var i = 0; i < orbs.length; i++) {
|
|
94
|
+
const thisOrb = orbs[i];
|
|
95
|
+
if (thisOrb instanceof _Orbs.Orb) {
|
|
96
|
+
thisOrb.step();
|
|
97
|
+
} else {
|
|
98
|
+
thisOrb.step(guideConfig.current.size, guideConfig.current.sizeIncrement, guideConfig.current.sizeTimestamp, guideConfig.current.posTimestamp, guideConfig.current, {
|
|
99
|
+
x: guideConfig.current.posIncrement[0],
|
|
100
|
+
y: guideConfig.current.posIncrement[1]
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
var image = ctx.getImageData(0, 0, w, h),
|
|
105
|
+
data = new Uint8Array(image.data.buffer);
|
|
106
|
+
for (var i = 3; i < data.length; i += 4) data[i] /= data[i] < opts.alphaThreshold ? 6 : 1;
|
|
107
|
+
fctx.putImageData(image, 0, 0);
|
|
108
|
+
}
|
|
109
|
+
function randomVelocity() {
|
|
110
|
+
return opts.baseVel + opts.addedVel * Math.random() | 0;
|
|
111
|
+
}
|
|
112
|
+
const orbBounds = {
|
|
113
|
+
width: w,
|
|
114
|
+
height: h
|
|
115
|
+
};
|
|
116
|
+
for (let circleConfig of circlesConfig) {
|
|
117
|
+
const radius = circleConfig.baseSize * 1.5;
|
|
118
|
+
const randomRadius = radius + radius / 2 * Math.random() | 0;
|
|
119
|
+
const drawerInstance = new CanvasOrbDrawer(randomRadius);
|
|
120
|
+
orbs.push(new _Orbs.Orb(drawerInstance, randomVelocity(), orbBounds, randomRadius));
|
|
121
|
+
}
|
|
122
|
+
const guideOrbInstance = new _Orbs.GuideOrb(new CanvasOrbDrawer(), _LavaLamp.transitionPositionMs);
|
|
123
|
+
let guideOrbAutoInstance;
|
|
124
|
+
orbs.push(guideOrbInstance);
|
|
125
|
+
canvasRef.current.parentElement.onmouseleave = () => {
|
|
126
|
+
const indexOfGuide = orbs.indexOf(guideOrbInstance);
|
|
127
|
+
if (indexOfGuide !== -1) {
|
|
128
|
+
const drawerInstance = new CanvasOrbDrawer(guideOrbInstance.lastRadius);
|
|
129
|
+
guideOrbAutoInstance = new _Orbs.Orb(drawerInstance, randomVelocity(), orbBounds, guideOrbInstance.lastRadius);
|
|
130
|
+
guideOrbAutoInstance.radius = guideOrbInstance.lastRadius;
|
|
131
|
+
guideOrbAutoInstance.x = guideOrbInstance.lastX;
|
|
132
|
+
guideOrbAutoInstance.y = guideOrbInstance.lastY;
|
|
133
|
+
orbs.splice(indexOfGuide, 1);
|
|
134
|
+
orbs.push(guideOrbAutoInstance);
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
canvasRef.current.parentElement.onmouseenter = () => {
|
|
138
|
+
if (orbs.indexOf(guideOrbInstance) === -1) {
|
|
139
|
+
orbs.push(guideOrbInstance);
|
|
140
|
+
orbs.splice(orbs.indexOf(guideOrbAutoInstance), 1);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
anim();
|
|
144
|
+
return () => {
|
|
145
|
+
window.cancelAnimationFrame(animFrame);
|
|
146
|
+
};
|
|
147
|
+
}, [circlesConfig]);
|
|
148
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
149
|
+
className: "".concat(className, " ").concat(_LavaLampModule.default.root)
|
|
150
|
+
}, /*#__PURE__*/_react.default.createElement("canvas", {
|
|
151
|
+
ref: canvasRef
|
|
152
|
+
}), /*#__PURE__*/_react.default.createElement("div", null, children));
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlTWVyZ2VSZWZzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9MYXZhTGFtcCIsIl9MYXZhTGFtcE1vZHVsZSIsIl9PcmJzIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkxhdmFMYW1wIiwiX3JlZiIsImNsYXNzTmFtZSIsImNoaWxkcmVuIiwiZ3VpZGVDb25maWciLCJ1c2VSZWYiLCJzaXplIiwic2l6ZVRpbWVzdGFtcCIsIkRhdGUiLCJub3ciLCJzaXplSW5jcmVtZW50IiwieCIsInkiLCJwb3NUaW1lc3RhbXAiLCJwb3NJbmNyZW1lbnQiLCJyZWxhdGl2ZVRvIiwiY2lyY2xlc0NvbmZpZyIsImQiLCJ1c2VMYXZhTGFtcFNldHVwIiwiY3VycmVudCIsIl9zaXplIiwiX2NhbnZhc1JlZiIsImNhbnZhc1JlZiIsInVzZU1lcmdlUmVmcyIsInVzZUVmZmVjdCIsImZjIiwiYmFzZUNvbG9yIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImdldFByb3BlcnR5VmFsdWUiLCJjIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwidyIsIndpZHRoIiwiaCIsImhlaWdodCIsImN0eCIsImdldENvbnRleHQiLCJmY3R4Iiwib3B0cyIsIm9yYkNvdW50IiwibGVuZ3RoIiwiYmFzZVZlbCIsIk1hdGgiLCJtYXgiLCJhZGRlZFZlbCIsImFscGhhVGhyZXNob2xkIiwib3JicyIsIkNhbnZhc09yYkRyYXdlciIsIm5ld0dyYWRpZW50IiwiY29sb3IiLCJyYWRpdXMiLCJncmFkaWVudCIsImNyZWF0ZVJhZGlhbEdyYWRpZW50IiwiYWRkQ29sb3JTdG9wIiwiY29uY2F0Iiwib2xkRHJhd0NpcmNsZSIsIl90aGlzJGdyYWRpZW50IiwiZmlsbFN0eWxlIiwidHJhbnNsYXRlIiwiYmVnaW5QYXRoIiwiYXJjIiwiUEkiLCJmaWxsIiwiZHJhd09yYiIsImNvbnN0cnVjdG9yIiwiZ3JhZGllbnRSYWRpdXMiLCJhbmltRnJhbWUiLCJhbmltIiwid2luZG93IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY2xlYXJSZWN0IiwiZmlsbFJlY3QiLCJpIiwidGhpc09yYiIsIk9yYiIsInN0ZXAiLCJpbWFnZSIsImdldEltYWdlRGF0YSIsImRhdGEiLCJVaW50OEFycmF5IiwiYnVmZmVyIiwicHV0SW1hZ2VEYXRhIiwicmFuZG9tVmVsb2NpdHkiLCJyYW5kb20iLCJvcmJCb3VuZHMiLCJjaXJjbGVDb25maWciLCJiYXNlU2l6ZSIsInJhbmRvbVJhZGl1cyIsImRyYXdlckluc3RhbmNlIiwicHVzaCIsImd1aWRlT3JiSW5zdGFuY2UiLCJHdWlkZU9yYiIsInRyYW5zaXRpb25Qb3NpdGlvbk1zIiwiZ3VpZGVPcmJBdXRvSW5zdGFuY2UiLCJwYXJlbnRFbGVtZW50Iiwib25tb3VzZWxlYXZlIiwiaW5kZXhPZkd1aWRlIiwiaW5kZXhPZiIsImxhc3RSYWRpdXMiLCJsYXN0WCIsImxhc3RZIiwic3BsaWNlIiwib25tb3VzZWVudGVyIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJTdHlsZXMiLCJyb290IiwicmVmIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTGF2YUxhbXAvdjIvTGF2YUxhbXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQcm9wc1dpdGhDaGlsZHJlbiwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB1c2VNZXJnZVJlZnMgZnJvbSBcIi4uLy4uLy4uL2hvb2tzL3VzZU1lcmdlUmVmc1wiO1xuaW1wb3J0IHVzZUxhdmFMYW1wU2V0dXAsIHsgdHJhbnNpdGlvblBvc2l0aW9uTXMgfSBmcm9tIFwiLi4vTGF2YUxhbXAuZGF0YVwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9MYXZhTGFtcC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgR3VpZGVPcmIsIE9yYiwgT3JiRHJhd2VyIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9PcmJzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExhdmFMYW1wKHtcbiAgY2xhc3NOYW1lLFxuICBjaGlsZHJlbixcbn06IFByb3BzV2l0aENoaWxkcmVuPHsgY2xhc3NOYW1lOiBzdHJpbmcgfT4pIHtcbiAgY29uc3QgZ3VpZGVDb25maWcgPSB1c2VSZWY8e1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gICAgcG9zVGltZXN0YW1wOiBudW1iZXI7XG4gICAgcG9zSW5jcmVtZW50OiBbeDogbnVtYmVyLCB5OiBudW1iZXJdO1xuXG4gICAgc2l6ZTogbnVtYmVyO1xuICAgIHNpemVUaW1lc3RhbXA6IG51bWJlcjtcbiAgICBzaXplSW5jcmVtZW50OiBudW1iZXI7XG4gIH0+KHtcbiAgICBzaXplOiAwLFxuICAgIHNpemVUaW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgc2l6ZUluY3JlbWVudDogMCxcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gICAgcG9zVGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgIHBvc0luY3JlbWVudDogWzAsIDBdLFxuICB9KTtcbiAgY29uc3QgeyByZWxhdGl2ZVRvLCBjaXJjbGVzQ29uZmlnLCBkIH0gPSB1c2VMYXZhTGFtcFNldHVwKFxuICAgICh4LCB5KSA9PiB7XG4gICAgICBndWlkZUNvbmZpZy5jdXJyZW50LnBvc0luY3JlbWVudCA9IFtcbiAgICAgICAgeCAtIGd1aWRlQ29uZmlnLmN1cnJlbnQueCxcbiAgICAgICAgeSAtIGd1aWRlQ29uZmlnLmN1cnJlbnQueSxcbiAgICAgIF07XG4gICAgICBndWlkZUNvbmZpZy5jdXJyZW50LnggPSB4O1xuICAgICAgZ3VpZGVDb25maWcuY3VycmVudC55ID0geTtcbiAgICAgIGd1aWRlQ29uZmlnLmN1cnJlbnQucG9zVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9LFxuICAgIChfc2l6ZSkgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IF9zaXplICogMS4yO1xuICAgICAgZ3VpZGVDb25maWcuY3VycmVudC5zaXplSW5jcmVtZW50ID1cbiAgICAgICAgZ3VpZGVDb25maWcuY3VycmVudC5zaXplID09PSAwID8gMCA6IHNpemUgLSBndWlkZUNvbmZpZy5jdXJyZW50LnNpemU7XG4gICAgICBndWlkZUNvbmZpZy5jdXJyZW50LnNpemUgPSBzaXplO1xuICAgICAgZ3VpZGVDb25maWcuY3VycmVudC5zaXplVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG4gICk7XG4gIGNvbnN0IF9jYW52YXNSZWYgPSB1c2VSZWY8SFRNTENhbnZhc0VsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBjYW52YXNSZWYgPSB1c2VNZXJnZVJlZnMoXG4gICAgX2NhbnZhc1JlZixcbiAgICByZWxhdGl2ZVRvIGFzIHVua25vd24gYXMgdHlwZW9mIF9jYW52YXNSZWZcbiAgKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWQpIHJldHVybjtcbiAgICBjb25zdCBmYyA9IGNhbnZhc1JlZi5jdXJyZW50ITtcblxuICAgIGNvbnN0IGJhc2VDb2xvciA9XG4gICAgICBnZXRDb21wdXRlZFN0eWxlKHJlbGF0aXZlVG8uY3VycmVudCEpLmdldFByb3BlcnR5VmFsdWUoXG4gICAgICAgIFwiLS1kaWdpdGFsLWJsdWVcIlxuICAgICAgKSB8fCBcIiMwMDAwMDBcIjtcblxuICAgIHZhciBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKSxcbiAgICAgIHcgPSAoYy53aWR0aCA9IGZjLndpZHRoID0gZC53aWR0aCksXG4gICAgICBoID0gKGMuaGVpZ2h0ID0gZmMuaGVpZ2h0ID0gZC5oZWlnaHQpLFxuICAgICAgY3R4ID0gYy5nZXRDb250ZXh0KFwiMmRcIikhLFxuICAgICAgZmN0eCA9IGZjLmdldENvbnRleHQoXCIyZFwiKSEsIC8vIGYgbWVhbnMgZmluYWxcbiAgICAgIG9wdHMgPSB7XG4gICAgICAgIG9yYkNvdW50OiBjaXJjbGVzQ29uZmlnLmxlbmd0aCxcbiAgICAgICAgYmFzZVZlbDogTWF0aC5tYXgoZC53aWR0aCAqIDAuMDAxLCAxKSxcbiAgICAgICAgYWRkZWRWZWw6IE1hdGgubWF4KGQud2lkdGggKiAwLjAwMSwgMSksXG5cbiAgICAgICAgYWxwaGFUaHJlc2hvbGQ6IDIwMCxcbiAgICAgIH0sXG4gICAgICBvcmJzID0gW10gYXMgKE9yYiB8IEd1aWRlT3JiKVtdO1xuICAgIGNsYXNzIENhbnZhc09yYkRyYXdlciBpbXBsZW1lbnRzIE9yYkRyYXdlciB7XG4gICAgICBwcm90ZWN0ZWQgZ3JhZGllbnQ/OiBDYW52YXNHcmFkaWVudDtcblxuICAgICAgcHJpdmF0ZSBuZXdHcmFkaWVudChjb2xvcjogc3RyaW5nLCByYWRpdXM6IG51bWJlcikge1xuICAgICAgICBjb25zdCBncmFkaWVudCA9IGN0eC5jcmVhdGVSYWRpYWxHcmFkaWVudCgwLCAwLCAwLCAwLCAwLCByYWRpdXMpO1xuICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMCwgYCR7Y29sb3J9ZmZgKTtcbiAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuOCwgYCR7Y29sb3J9Y2NgKTtcbiAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDEsIGAke2NvbG9yfTAwYCk7XG5cbiAgICAgICAgcmV0dXJuIGdyYWRpZW50O1xuICAgICAgfVxuXG4gICAgICBwcml2YXRlIG9sZERyYXdDaXJjbGUoeDogbnVtYmVyLCB5OiBudW1iZXIsIHJhZGl1czogbnVtYmVyKSB7XG4gICAgICAgIGN0eC5maWxsU3R5bGUgPSB0aGlzLmdyYWRpZW50ID8/IHRoaXMubmV3R3JhZGllbnQoYmFzZUNvbG9yLCByYWRpdXMpO1xuICAgICAgICBjdHgudHJhbnNsYXRlKHggfCAwLCB5IHwgMCk7XG4gICAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgICAgY3R4LmFyYygwLCAwLCByYWRpdXMsIDAsIE1hdGguUEkgKiAyKTtcbiAgICAgICAgY3R4LmZpbGwoKTtcbiAgICAgICAgY3R4LnRyYW5zbGF0ZSgteCB8IDAsIC15IHwgMCk7XG4gICAgICB9XG4gICAgICBkcmF3T3JiKHg6IG51bWJlciwgeTogbnVtYmVyLCByYWRpdXM6IG51bWJlcikge1xuICAgICAgICB0aGlzLm9sZERyYXdDaXJjbGUoeCwgeSwgcmFkaXVzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3RydWN0b3IoZ3JhZGllbnRSYWRpdXM/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGdyYWRpZW50UmFkaXVzKVxuICAgICAgICAgIHRoaXMuZ3JhZGllbnQgPSB0aGlzLm5ld0dyYWRpZW50KGJhc2VDb2xvciwgZ3JhZGllbnRSYWRpdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBhbmltRnJhbWU6IG51bWJlcjtcbiAgICBmdW5jdGlvbiBhbmltKCkge1xuICAgICAgYW5pbUZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltKTtcblxuICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCB3LCBoKTtcbiAgICAgIGZjdHguZmlsbFN0eWxlID0gXCIjMDAwMFwiO1xuICAgICAgZmN0eC5maWxsUmVjdCgwLCAwLCB3LCBoKTtcblxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcmJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRoaXNPcmIgPSBvcmJzW2ldO1xuICAgICAgICBpZiAodGhpc09yYiBpbnN0YW5jZW9mIE9yYikge1xuICAgICAgICAgIHRoaXNPcmIuc3RlcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXNPcmIuc3RlcChcbiAgICAgICAgICAgIGd1aWRlQ29uZmlnLmN1cnJlbnQhLnNpemUsXG4gICAgICAgICAgICBndWlkZUNvbmZpZy5jdXJyZW50IS5zaXplSW5jcmVtZW50LFxuICAgICAgICAgICAgZ3VpZGVDb25maWcuY3VycmVudCEuc2l6ZVRpbWVzdGFtcCxcbiAgICAgICAgICAgIGd1aWRlQ29uZmlnLmN1cnJlbnQucG9zVGltZXN0YW1wLFxuICAgICAgICAgICAgZ3VpZGVDb25maWcuY3VycmVudCEsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHg6IGd1aWRlQ29uZmlnLmN1cnJlbnQhLnBvc0luY3JlbWVudFswXSxcbiAgICAgICAgICAgICAgeTogZ3VpZGVDb25maWcuY3VycmVudCEucG9zSW5jcmVtZW50WzFdLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIGltYWdlID0gY3R4LmdldEltYWdlRGF0YSgwLCAwLCB3LCBoKSxcbiAgICAgICAgZGF0YSA9IG5ldyBVaW50OEFycmF5KGltYWdlLmRhdGEuYnVmZmVyKTtcblxuICAgICAgZm9yICh2YXIgaSA9IDM7IGkgPCBkYXRhLmxlbmd0aDsgaSArPSA0KVxuICAgICAgICBkYXRhW2ldIC89IGRhdGFbaV0gPCBvcHRzLmFscGhhVGhyZXNob2xkID8gNiA6IDE7XG5cbiAgICAgIGZjdHgucHV0SW1hZ2VEYXRhKGltYWdlLCAwLCAwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByYW5kb21WZWxvY2l0eSgpIHtcbiAgICAgIHJldHVybiAob3B0cy5iYXNlVmVsICsgb3B0cy5hZGRlZFZlbCAqIE1hdGgucmFuZG9tKCkpIHwgMDtcbiAgICB9XG4gICAgY29uc3Qgb3JiQm91bmRzID0geyB3aWR0aDogdywgaGVpZ2h0OiBoIH07XG5cbiAgICBmb3IgKGxldCBjaXJjbGVDb25maWcgb2YgY2lyY2xlc0NvbmZpZykge1xuICAgICAgY29uc3QgcmFkaXVzID0gY2lyY2xlQ29uZmlnLmJhc2VTaXplICogMS41O1xuICAgICAgY29uc3QgcmFuZG9tUmFkaXVzID0gKHJhZGl1cyArIChyYWRpdXMgLyAyKSAqIE1hdGgucmFuZG9tKCkpIHwgMDtcbiAgICAgIGNvbnN0IGRyYXdlckluc3RhbmNlID0gbmV3IENhbnZhc09yYkRyYXdlcihyYW5kb21SYWRpdXMpO1xuICAgICAgb3Jicy5wdXNoKFxuICAgICAgICBuZXcgT3JiKGRyYXdlckluc3RhbmNlLCByYW5kb21WZWxvY2l0eSgpLCBvcmJCb3VuZHMsIHJhbmRvbVJhZGl1cylcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGd1aWRlT3JiSW5zdGFuY2UgPSBuZXcgR3VpZGVPcmIoXG4gICAgICBuZXcgQ2FudmFzT3JiRHJhd2VyKCksXG4gICAgICB0cmFuc2l0aW9uUG9zaXRpb25Nc1xuICAgICk7XG4gICAgbGV0IGd1aWRlT3JiQXV0b0luc3RhbmNlOiBPcmI7XG4gICAgb3Jicy5wdXNoKGd1aWRlT3JiSW5zdGFuY2UpO1xuXG4gICAgY2FudmFzUmVmLmN1cnJlbnQhLnBhcmVudEVsZW1lbnQhLm9ubW91c2VsZWF2ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGluZGV4T2ZHdWlkZSA9IG9yYnMuaW5kZXhPZihndWlkZU9yYkluc3RhbmNlKTtcbiAgICAgIGlmIChpbmRleE9mR3VpZGUgIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IGRyYXdlckluc3RhbmNlID0gbmV3IENhbnZhc09yYkRyYXdlcihndWlkZU9yYkluc3RhbmNlLmxhc3RSYWRpdXMpO1xuICAgICAgICBndWlkZU9yYkF1dG9JbnN0YW5jZSA9IG5ldyBPcmIoXG4gICAgICAgICAgZHJhd2VySW5zdGFuY2UsXG4gICAgICAgICAgcmFuZG9tVmVsb2NpdHkoKSxcbiAgICAgICAgICBvcmJCb3VuZHMsXG4gICAgICAgICAgZ3VpZGVPcmJJbnN0YW5jZS5sYXN0UmFkaXVzXG4gICAgICAgICk7XG4gICAgICAgIGd1aWRlT3JiQXV0b0luc3RhbmNlLnJhZGl1cyA9IGd1aWRlT3JiSW5zdGFuY2UubGFzdFJhZGl1cztcbiAgICAgICAgZ3VpZGVPcmJBdXRvSW5zdGFuY2UueCA9IGd1aWRlT3JiSW5zdGFuY2UubGFzdFg7XG4gICAgICAgIGd1aWRlT3JiQXV0b0luc3RhbmNlLnkgPSBndWlkZU9yYkluc3RhbmNlLmxhc3RZO1xuICAgICAgICBvcmJzLnNwbGljZShpbmRleE9mR3VpZGUsIDEpO1xuICAgICAgICBvcmJzLnB1c2goZ3VpZGVPcmJBdXRvSW5zdGFuY2UpO1xuICAgICAgfVxuICAgIH07XG4gICAgY2FudmFzUmVmLmN1cnJlbnQhLnBhcmVudEVsZW1lbnQhLm9ubW91c2VlbnRlciA9ICgpID0+IHtcbiAgICAgIGlmIChvcmJzLmluZGV4T2YoZ3VpZGVPcmJJbnN0YW5jZSkgPT09IC0xKSB7XG4gICAgICAgIG9yYnMucHVzaChndWlkZU9yYkluc3RhbmNlKTtcbiAgICAgICAgb3Jicy5zcGxpY2Uob3Jicy5pbmRleE9mKGd1aWRlT3JiQXV0b0luc3RhbmNlKSwgMSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGFuaW0oKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoYW5pbUZyYW1lKTtcbiAgICB9O1xuICB9LCBbY2lyY2xlc0NvbmZpZ10pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Ake2NsYXNzTmFtZX0gJHtTdHlsZXMucm9vdH1gfT5cbiAgICAgIDxjYW52YXMgcmVmPXtjYW52YXNSZWZ9IC8+XG4gICAgICA8ZGl2PntjaGlsZHJlbn08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsYUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FB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
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@use 'sass:math';
|
|
2
|
+
|
|
3
|
+
$transitionMs: math.div(1000, 5);
|
|
4
|
+
$transitionPositionMs: math.div($transitionMs, 2);
|
|
5
|
+
@value transitionMs #{$transitionMs};
|
|
6
|
+
@value transitionPositionMs #{$transitionPositionMs};
|
|
7
|
+
|
|
8
|
+
.root {
|
|
9
|
+
position: relative;
|
|
10
|
+
> canvas {
|
|
11
|
+
position: absolute;
|
|
12
|
+
top: 0;
|
|
13
|
+
left: 0;
|
|
14
|
+
bottom: 0;
|
|
15
|
+
right: 0;
|
|
16
|
+
width: 100%;
|
|
17
|
+
height: 100%;
|
|
18
|
+
}
|
|
19
|
+
> div {
|
|
20
|
+
position: relative;
|
|
21
|
+
z-index: 1;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = LinkToId;
|
|
7
|
+
exports.scrollToId = scrollToId;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _LinkToIdModule = _interopRequireDefault(require("./LinkToId.module.scss"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
function scrollToId(id) {
|
|
12
|
+
let shouldScrollToCenter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
13
|
+
const el = document.getElementById(id);
|
|
14
|
+
if (el) {
|
|
15
|
+
const elStyles = window.getComputedStyle(el);
|
|
16
|
+
const padding = Number(elStyles.paddingTop.replace(/[^0-9]+/g, ""));
|
|
17
|
+
const elementPosition = el.offsetTop;
|
|
18
|
+
const elementHeight = el.clientHeight;
|
|
19
|
+
window.scrollTo({
|
|
20
|
+
behavior: "smooth",
|
|
21
|
+
//Go to element, scroll half the screen height scrollback half the element height
|
|
22
|
+
top: shouldScrollToCenter ? elementPosition + elementHeight / 2 - window.innerHeight / 2 : elementPosition + padding
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* This component creates an interactive element that, when clicked, either scrolls to a section on the page or opens a link in a new tab.
|
|
29
|
+
**/
|
|
30
|
+
function LinkToId(_ref) {
|
|
31
|
+
let {
|
|
32
|
+
children,
|
|
33
|
+
id,
|
|
34
|
+
link,
|
|
35
|
+
scrollToCenter = false
|
|
36
|
+
} = _ref;
|
|
37
|
+
return link ? /*#__PURE__*/_react.default.createElement("span", {
|
|
38
|
+
className: _LinkToIdModule.default.root,
|
|
39
|
+
onClick: () => window.open(link, "_blank")
|
|
40
|
+
}, children) : /*#__PURE__*/_react.default.createElement("span", {
|
|
41
|
+
className: _LinkToIdModule.default.root,
|
|
42
|
+
onClick: () => scrollToId(id, scrollToCenter)
|
|
43
|
+
}, children);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9MaW5rVG9JZE1vZHVsZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwic2Nyb2xsVG9JZCIsImlkIiwic2hvdWxkU2Nyb2xsVG9DZW50ZXIiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJlbCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJlbFN0eWxlcyIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJwYWRkaW5nIiwiTnVtYmVyIiwicGFkZGluZ1RvcCIsInJlcGxhY2UiLCJlbGVtZW50UG9zaXRpb24iLCJvZmZzZXRUb3AiLCJlbGVtZW50SGVpZ2h0IiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsVG8iLCJiZWhhdmlvciIsInRvcCIsImlubmVySGVpZ2h0IiwiTGlua1RvSWQiLCJfcmVmIiwiY2hpbGRyZW4iLCJsaW5rIiwic2Nyb2xsVG9DZW50ZXIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiU3R5bGVzIiwicm9vdCIsIm9uQ2xpY2siLCJvcGVuIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTGlua1RvSWQvTGlua1RvSWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9MaW5rVG9JZC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgRnJvbU9uZVBlcmNlbnRVdGlsaXR5IH0gZnJvbSBcIi4uLy4uL3R5cGUtdXRpbHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNjcm9sbFRvSWQoXG4gIGlkOiBGcm9tT25lUGVyY2VudFV0aWxpdHk8J1BhZ2VTZWN0aW9ucyc+LFxuICBzaG91bGRTY3JvbGxUb0NlbnRlcjogYm9vbGVhbiA9IGZhbHNlXG4pIHtcbiAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG5cbiAgaWYgKGVsKSB7XG4gICAgY29uc3QgZWxTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCk7XG4gICAgY29uc3QgcGFkZGluZyA9IE51bWJlcihlbFN0eWxlcy5wYWRkaW5nVG9wLnJlcGxhY2UoL1teMC05XSsvZywgXCJcIikpO1xuICAgIGNvbnN0IGVsZW1lbnRQb3NpdGlvbiA9IGVsLm9mZnNldFRvcDtcbiAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID0gZWwuY2xpZW50SGVpZ2h0O1xuXG4gICAgd2luZG93LnNjcm9sbFRvKHtcbiAgICAgIGJlaGF2aW9yOiBcInNtb290aFwiLFxuICAgICAgLy9HbyB0byBlbGVtZW50LCBzY3JvbGwgaGFsZiB0aGUgc2NyZWVuIGhlaWdodCBzY3JvbGxiYWNrIGhhbGYgdGhlIGVsZW1lbnQgaGVpZ2h0XG4gICAgICB0b3A6IHNob3VsZFNjcm9sbFRvQ2VudGVyXG4gICAgICAgID8gZWxlbWVudFBvc2l0aW9uICsgZWxlbWVudEhlaWdodCAvIDIgLSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyXG4gICAgICAgIDogZWxlbWVudFBvc2l0aW9uICsgcGFkZGluZyxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGNyZWF0ZXMgYW4gaW50ZXJhY3RpdmUgZWxlbWVudCB0aGF0LCB3aGVuIGNsaWNrZWQsIGVpdGhlciBzY3JvbGxzIHRvIGEgc2VjdGlvbiBvbiB0aGUgcGFnZSBvciBvcGVucyBhIGxpbmsgaW4gYSBuZXcgdGFiLlxuICoqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTGlua1RvSWQoe1xuICBjaGlsZHJlbixcbiAgaWQsXG4gIGxpbmssXG4gIHNjcm9sbFRvQ2VudGVyID0gZmFsc2UsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGlkPzogRnJvbU9uZVBlcmNlbnRVdGlsaXR5PCdQYWdlU2VjdGlvbnMnPjtcbiAgbGluaz86IHN0cmluZztcbiAgc2Nyb2xsVG9DZW50ZXI/OiBib29sZWFuO1xufT4pIHtcbiAgcmV0dXJuIGxpbmsgPyAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPXtTdHlsZXMucm9vdH0gb25DbGljaz17KCkgPT4gd2luZG93Lm9wZW4obGluaywgXCJfYmxhbmtcIil9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvc3Bhbj5cbiAgKSA6IChcbiAgICA8c3BhblxuICAgICAgY2xhc3NOYW1lPXtTdHlsZXMucm9vdH1cbiAgICAgIG9uQ2xpY2s9eygpID0+IHNjcm9sbFRvSWQoaWQhLCBzY3JvbGxUb0NlbnRlcil9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvc3Bhbj5cbiAgKTtcbn0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxlQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFBNEMsU0FBQUQsdUJBQUFHLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFHckMsU0FBU0csVUFBVUEsQ0FDeEJDLEVBQXlDLEVBRXpDO0VBQUEsSUFEQUMsb0JBQTZCLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEtBQUs7RUFFckMsTUFBTUcsRUFBRSxHQUFHQyxRQUFRLENBQUNDLGNBQWMsQ0FBQ1AsRUFBRSxDQUFDO0VBRXRDLElBQUlLLEVBQUUsRUFBRTtJQUNOLE1BQU1HLFFBQVEsR0FBR0MsTUFBTSxDQUFDQyxnQkFBZ0IsQ0FBQ0wsRUFBRSxDQUFDO0lBQzVDLE1BQU1NLE9BQU8sR0FBR0MsTUFBTSxDQUFDSixRQUFRLENBQUNLLFVBQVUsQ0FBQ0MsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuRSxNQUFNQyxlQUFlLEdBQUdWLEVBQUUsQ0FBQ1csU0FBUztJQUNwQyxNQUFNQyxhQUFhLEdBQUdaLEVBQUUsQ0FBQ2EsWUFBWTtJQUVyQ1QsTUFBTSxDQUFDVSxRQUFRLENBQUM7TUFDZEMsUUFBUSxFQUFFLFFBQVE7TUFDbEI7TUFDQUMsR0FBRyxFQUFFcEIsb0JBQW9CLEdBQ3JCYyxlQUFlLEdBQUdFLGFBQWEsR0FBRyxDQUFDLEdBQUdSLE1BQU0sQ0FBQ2EsV0FBVyxHQUFHLENBQUMsR0FDNURQLGVBQWUsR0FBR0o7SUFDeEIsQ0FBQyxDQUFDO0VBQ0o7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDZSxTQUFTWSxRQUFRQSxDQUFBQyxJQUFBLEVBUzVCO0VBQUEsSUFUNkI7SUFDL0JDLFFBQVE7SUFDUnpCLEVBQUU7SUFDRjBCLElBQUk7SUFDSkMsY0FBYyxHQUFHO0VBS2xCLENBQUMsR0FBQUgsSUFBQTtFQUNBLE9BQU9FLElBQUksZ0JBQ1RsQyxNQUFBLENBQUFNLE9BQUEsQ0FBQThCLGFBQUE7SUFBTUMsU0FBUyxFQUFFQyx1QkFBTSxDQUFDQyxJQUFLO0lBQUNDLE9BQU8sRUFBRUEsQ0FBQSxLQUFNdkIsTUFBTSxDQUFDd0IsSUFBSSxDQUFDUCxJQUFJLEVBQUUsUUFBUTtFQUFFLEdBQ3RFRCxRQUNHLENBQUMsZ0JBRVBqQyxNQUFBLENBQUFNLE9BQUEsQ0FBQThCLGFBQUE7SUFDRUMsU0FBUyxFQUFFQyx1QkFBTSxDQUFDQyxJQUFLO0lBQ3ZCQyxPQUFPLEVBQUVBLENBQUEsS0FBTWpDLFVBQVUsQ0FBQ0MsRUFBRSxFQUFHMkIsY0FBYztFQUFFLEdBRTlDRixRQUNHLENBQ1A7QUFDSCJ9
|