@onepercentio/one-ui 1.3.2 → 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/.github/workflows/release-browser-bundle.yml +76 -0
- package/README.md +23 -0
- 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-browser/bundle.js +83650 -0
- package/dist-browser/bundle.js.LICENSE.txt +94 -0
- package/dist-browser/bundle.js.map +1 -0
- package/dist-ts/components/AdaptiveContainer/AdaptiveContainer.js +2 -1
- package/dist-ts/components/AdaptiveContainer/AdaptiveContainer.js.map +1 -1
- 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 -2
- package/dist-ts/hooks/ui/useMouseHover.js +6 -5
- package/dist-ts/hooks/ui/useMouseHover.js.map +1 -1
- package/dist-ts/hooks/useObserve.d.ts +1 -1
- package/dist-ts/hooks/useObserve.js +1 -1
- package/dist-ts/hooks/useObserve.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/example.html +76 -0
- package/package.json +11 -4
- package/webpack.bundle.config.js +87 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = useIntersection;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
/**
|
|
9
|
+
* A hook that helps you watch when HTML or SVG elements appear on the screen.
|
|
10
|
+
* It lets you run code automatically when an element becomes visible to the user.
|
|
11
|
+
*/
|
|
12
|
+
function useIntersection() {
|
|
13
|
+
const {
|
|
14
|
+
current: targetMap
|
|
15
|
+
} = (0, _react.useRef)([]);
|
|
16
|
+
const {
|
|
17
|
+
current: observer
|
|
18
|
+
} = (0, _react.useRef)("IntersectionObserver" in window ? new IntersectionObserver(els => {
|
|
19
|
+
els.forEach((e, i) => {
|
|
20
|
+
const result = targetMap.find(el => el[0] === e.target);
|
|
21
|
+
if (result && e.isIntersecting) {
|
|
22
|
+
result[1]();
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}) : null);
|
|
26
|
+
return (0, _react.useMemo)(() => {
|
|
27
|
+
return {
|
|
28
|
+
observe: (e, cb) => {
|
|
29
|
+
targetMap.push([e, cb]);
|
|
30
|
+
if (observer) observer.observe(e);
|
|
31
|
+
},
|
|
32
|
+
unobserve: e => {
|
|
33
|
+
if (observer) observer.unobserve(e);
|
|
34
|
+
targetMap.splice(targetMap.findIndex(el => el[0] === e), 1);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}, []);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwidXNlSW50ZXJzZWN0aW9uIiwiY3VycmVudCIsInRhcmdldE1hcCIsInVzZVJlZiIsIm9ic2VydmVyIiwid2luZG93IiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJlbHMiLCJmb3JFYWNoIiwiZSIsImkiLCJyZXN1bHQiLCJmaW5kIiwiZWwiLCJ0YXJnZXQiLCJpc0ludGVyc2VjdGluZyIsInVzZU1lbW8iLCJvYnNlcnZlIiwiY2IiLCJwdXNoIiwidW5vYnNlcnZlIiwic3BsaWNlIiwiZmluZEluZGV4Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUludGVyc2VjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuLyoqXG4gKiBBIGhvb2sgdGhhdCBoZWxwcyB5b3Ugd2F0Y2ggd2hlbiBIVE1MIG9yIFNWRyBlbGVtZW50cyBhcHBlYXIgb24gdGhlIHNjcmVlbi5cbiAqIEl0IGxldHMgeW91IHJ1biBjb2RlIGF1dG9tYXRpY2FsbHkgd2hlbiBhbiBlbGVtZW50IGJlY29tZXMgdmlzaWJsZSB0byB0aGUgdXNlci5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uKCkge1xuICBjb25zdCB7IGN1cnJlbnQ6IHRhcmdldE1hcCB9ID0gdXNlUmVmPFtIVE1MT3JTVkdFbGVtZW50LCAoKSA9PiB2b2lkXVtdPihbXSk7XG4gIGNvbnN0IHsgY3VycmVudDogb2JzZXJ2ZXIgfSA9IHVzZVJlZihcbiAgICAoXCJJbnRlcnNlY3Rpb25PYnNlcnZlclwiIGluIHdpbmRvdykgPyBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVscykgPT4ge1xuICAgICAgZWxzLmZvckVhY2goKGUsIGkpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGFyZ2V0TWFwLmZpbmQoKGVsKSA9PiBlbFswXSA9PT0gZS50YXJnZXQgYXMgYW55KTtcbiAgICAgICAgaWYgKHJlc3VsdCAmJiBlLmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgcmVzdWx0WzFdKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pIDogbnVsbFxuICApO1xuICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9ic2VydmU6IChlOiBIVE1MT3JTVkdFbGVtZW50LCBjYjogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICB0YXJnZXRNYXAucHVzaChbZSwgY2JdKTtcbiAgICAgICAgaWYgKG9ic2VydmVyKVxuICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGUgYXMgYW55KTtcbiAgICAgIH0sXG4gICAgICB1bm9ic2VydmU6IChlOiBIVE1MT3JTVkdFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChvYnNlcnZlcilcbiAgICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGUgYXMgYW55KTtcbiAgICAgICAgdGFyZ2V0TWFwLnNwbGljZShcbiAgICAgICAgICB0YXJnZXRNYXAuZmluZEluZGV4KChlbCkgPT4gZWxbMF0gPT09IGUpLFxuICAgICAgICAgIDFcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfSwgW10pO1xufSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDZSxTQUFTQyxlQUFlQSxDQUFBLEVBQUc7RUFDeEMsTUFBTTtJQUFFQyxPQUFPLEVBQUVDO0VBQVUsQ0FBQyxHQUFHLElBQUFDLGFBQU0sRUFBbUMsRUFBRSxDQUFDO0VBQzNFLE1BQU07SUFBRUYsT0FBTyxFQUFFRztFQUFTLENBQUMsR0FBRyxJQUFBRCxhQUFNLEVBQ2pDLHNCQUFzQixJQUFJRSxNQUFNLEdBQUksSUFBSUMsb0JBQW9CLENBQUVDLEdBQUcsSUFBSztJQUNyRUEsR0FBRyxDQUFDQyxPQUFPLENBQUMsQ0FBQ0MsQ0FBQyxFQUFFQyxDQUFDLEtBQUs7TUFDcEIsTUFBTUMsTUFBTSxHQUFHVCxTQUFTLENBQUNVLElBQUksQ0FBRUMsRUFBRSxJQUFLQSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUtKLENBQUMsQ0FBQ0ssTUFBYSxDQUFDO01BQ2hFLElBQUlILE1BQU0sSUFBSUYsQ0FBQyxDQUFDTSxjQUFjLEVBQUU7UUFDOUJKLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO01BQ2I7SUFDRixDQUFDLENBQUM7RUFDSixDQUFDLENBQUMsR0FBRyxJQUNQLENBQUM7RUFDRCxPQUFPLElBQUFLLGNBQU8sRUFBQyxNQUFNO0lBQ25CLE9BQU87TUFDTEMsT0FBTyxFQUFFQSxDQUFDUixDQUFtQixFQUFFUyxFQUFjLEtBQUs7UUFDaERoQixTQUFTLENBQUNpQixJQUFJLENBQUMsQ0FBQ1YsQ0FBQyxFQUFFUyxFQUFFLENBQUMsQ0FBQztRQUN2QixJQUFJZCxRQUFRLEVBQ1pBLFFBQVEsQ0FBQ2EsT0FBTyxDQUFDUixDQUFRLENBQUM7TUFDNUIsQ0FBQztNQUNEVyxTQUFTLEVBQUdYLENBQW1CLElBQUs7UUFDbEMsSUFBSUwsUUFBUSxFQUNaQSxRQUFRLENBQUNnQixTQUFTLENBQUNYLENBQVEsQ0FBQztRQUM1QlAsU0FBUyxDQUFDbUIsTUFBTSxDQUNkbkIsU0FBUyxDQUFDb0IsU0FBUyxDQUFFVCxFQUFFLElBQUtBLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBS0osQ0FBQyxDQUFDLEVBQ3hDLENBQ0YsQ0FBQztNQUNIO0lBQ0YsQ0FBQztFQUNILENBQUMsRUFBRSxFQUFFLENBQUM7QUFDUiJ9
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = useMergeRefs;
|
|
7
|
+
exports.useMergeRefsFunc = useMergeRefsFunc;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
/**
|
|
10
|
+
* This hook combines multiple refs into one so they all point to the same element
|
|
11
|
+
*/ // Combines multiple refs to work together
|
|
12
|
+
function useMergeRefs(mainRef) {
|
|
13
|
+
for (var _len = arguments.length, otherRefs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
14
|
+
otherRefs[_key - 1] = arguments[_key];
|
|
15
|
+
}
|
|
16
|
+
(0, _react.useLayoutEffect)(() => {
|
|
17
|
+
for (let ref of otherRefs.filter(Boolean)) ref.current = mainRef.current;
|
|
18
|
+
}, []);
|
|
19
|
+
return mainRef;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* This function exists so we can work with multiple refs as a single one, almost immediatly
|
|
24
|
+
*/
|
|
25
|
+
// Creates a function to set all refs at once
|
|
26
|
+
function useMergeRefsFunc(mainRef) {
|
|
27
|
+
for (var _len2 = arguments.length, otherRefs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
28
|
+
otherRefs[_key2 - 1] = arguments[_key2];
|
|
29
|
+
}
|
|
30
|
+
return providedRef => {
|
|
31
|
+
if (providedRef) for (let ref of [mainRef, ...otherRefs]) {
|
|
32
|
+
if (typeof ref === "function") ref(providedRef);else ref.current = providedRef;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwidXNlTWVyZ2VSZWZzIiwibWFpblJlZiIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJvdGhlclJlZnMiLCJBcnJheSIsIl9rZXkiLCJ1c2VMYXlvdXRFZmZlY3QiLCJyZWYiLCJmaWx0ZXIiLCJCb29sZWFuIiwiY3VycmVudCIsInVzZU1lcmdlUmVmc0Z1bmMiLCJfbGVuMiIsIl9rZXkyIiwicHJvdmlkZWRSZWYiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlTWVyZ2VSZWZzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZk9iamVjdCwgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuLyoqXG4gKiBUaGlzIGhvb2sgY29tYmluZXMgbXVsdGlwbGUgcmVmcyBpbnRvIG9uZSBzbyB0aGV5IGFsbCBwb2ludCB0byB0aGUgc2FtZSBlbGVtZW50XG4gKi9cbi8vIENvbWJpbmVzIG11bHRpcGxlIHJlZnMgdG8gd29yayB0b2dldGhlclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlTWVyZ2VSZWZzPFQgZXh0ZW5kcyBSZXR1cm5UeXBlPHR5cGVvZiB1c2VSZWY+PihcbiAgbWFpblJlZjogVCxcbiAgLi4ub3RoZXJSZWZzOiAoVCB8IHVuZGVmaW5lZClbXVxuKSB7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgZm9yIChsZXQgcmVmIG9mIG90aGVyUmVmcy5maWx0ZXIoQm9vbGVhbikpIHJlZiEuY3VycmVudCA9IG1haW5SZWYuY3VycmVudDtcbiAgfSwgW10pO1xuICByZXR1cm4gbWFpblJlZjtcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBzbyB3ZSBjYW4gd29yayB3aXRoIG11bHRpcGxlIHJlZnMgYXMgYSBzaW5nbGUgb25lLCBhbG1vc3QgaW1tZWRpYXRseVxuICovXG4vLyBDcmVhdGVzIGEgZnVuY3Rpb24gdG8gc2V0IGFsbCByZWZzIGF0IG9uY2VcbmV4cG9ydCBmdW5jdGlvbiB1c2VNZXJnZVJlZnNGdW5jPFxuICBUIGV4dGVuZHMgUmV0dXJuVHlwZTx0eXBlb2YgdXNlUmVmPiB8ICgocmVmOiBhbnkpID0+IHZvaWQpXG4+KG1haW5SZWY6IFQsIC4uLm90aGVyUmVmczogVFtdKSB7XG4gIHJldHVybiAocHJvdmlkZWRSZWY6IGFueSkgPT4ge1xuICAgIGlmIChwcm92aWRlZFJlZilcbiAgICAgIGZvciAobGV0IHJlZiBvZiBbbWFpblJlZiwgLi4ub3RoZXJSZWZzXSkge1xuICAgICAgICBpZiAodHlwZW9mIHJlZiA9PT0gXCJmdW5jdGlvblwiKSByZWYocHJvdmlkZWRSZWYpO1xuICAgICAgICBlbHNlIHJlZi5jdXJyZW50ID0gcHJvdmlkZWRSZWY7XG4gICAgICB9XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQTtBQUNBO0FBQ0EsR0FGQSxDQUdBO0FBQ2UsU0FBU0MsWUFBWUEsQ0FDbENDLE9BQVUsRUFFVjtFQUFBLFNBQUFDLElBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBREdDLFNBQVMsT0FBQUMsS0FBQSxDQUFBSixJQUFBLE9BQUFBLElBQUEsV0FBQUssSUFBQSxNQUFBQSxJQUFBLEdBQUFMLElBQUEsRUFBQUssSUFBQTtJQUFURixTQUFTLENBQUFFLElBQUEsUUFBQUosU0FBQSxDQUFBSSxJQUFBO0VBQUE7RUFFWixJQUFBQyxzQkFBZSxFQUFDLE1BQU07SUFDcEIsS0FBSyxJQUFJQyxHQUFHLElBQUlKLFNBQVMsQ0FBQ0ssTUFBTSxDQUFDQyxPQUFPLENBQUMsRUFBRUYsR0FBRyxDQUFFRyxPQUFPLEdBQUdYLE9BQU8sQ0FBQ1csT0FBTztFQUMzRSxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBQ04sT0FBT1gsT0FBTztBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNZLGdCQUFnQkEsQ0FFOUJaLE9BQVUsRUFBcUI7RUFBQSxTQUFBYSxLQUFBLEdBQUFYLFNBQUEsQ0FBQUMsTUFBQSxFQUFoQkMsU0FBUyxPQUFBQyxLQUFBLENBQUFRLEtBQUEsT0FBQUEsS0FBQSxXQUFBQyxLQUFBLE1BQUFBLEtBQUEsR0FBQUQsS0FBQSxFQUFBQyxLQUFBO0lBQVRWLFNBQVMsQ0FBQVUsS0FBQSxRQUFBWixTQUFBLENBQUFZLEtBQUE7RUFBQTtFQUN4QixPQUFRQyxXQUFnQixJQUFLO0lBQzNCLElBQUlBLFdBQVcsRUFDYixLQUFLLElBQUlQLEdBQUcsSUFBSSxDQUFDUixPQUFPLEVBQUUsR0FBR0ksU0FBUyxDQUFDLEVBQUU7TUFDdkMsSUFBSSxPQUFPSSxHQUFHLEtBQUssVUFBVSxFQUFFQSxHQUFHLENBQUNPLFdBQVcsQ0FBQyxDQUFDLEtBQzNDUCxHQUFHLENBQUNHLE9BQU8sR0FBR0ksV0FBVztJQUNoQztFQUNKLENBQUM7QUFDSCJ9
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = useObserve;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
require("./shims/ObjectWatchShim");
|
|
9
|
+
/**
|
|
10
|
+
* A React hook that watches for changes to specific properties of an object.
|
|
11
|
+
* When the watched properties change, it triggers a re-render.
|
|
12
|
+
*/
|
|
13
|
+
function useObserve(toObserve, keysToObserve) {
|
|
14
|
+
const [_, ss] = (0, _react.useState)(0);
|
|
15
|
+
(0, _react.useLayoutEffect)(() => {
|
|
16
|
+
const arr = Array.isArray(toObserve) ? toObserve : [toObserve];
|
|
17
|
+
const unwatchers = arr.map(object => object.watch(keysToObserve, () => {
|
|
18
|
+
ss(p => {
|
|
19
|
+
return p + 1;
|
|
20
|
+
});
|
|
21
|
+
}));
|
|
22
|
+
return () => unwatchers.forEach(unwatch => unwatch());
|
|
23
|
+
}, [toObserve]);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwidXNlT2JzZXJ2ZSIsInRvT2JzZXJ2ZSIsImtleXNUb09ic2VydmUiLCJfIiwic3MiLCJ1c2VTdGF0ZSIsInVzZUxheW91dEVmZmVjdCIsImFyciIsIkFycmF5IiwiaXNBcnJheSIsInVud2F0Y2hlcnMiLCJtYXAiLCJvYmplY3QiLCJ3YXRjaCIsInAiLCJmb3JFYWNoIiwidW53YXRjaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VPYnNlcnZlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFwiLi9zaGltcy9PYmplY3RXYXRjaFNoaW1cIjtcblxuaW50ZXJmYWNlIE9iamVjdCB7XG4gIHdhdGNoPFQgZXh0ZW5kcyBPYmplY3Q+KHByb3A6IChrZXlvZiBUKVtdLCBoYW5kbGVyOiAoKSA9PiB2b2lkKTogKCkgPT4gdm9pZDtcbiAgdW53YXRjaCgpOiB2b2lkO1xufVxuXG4vKipcbiAqIEEgUmVhY3QgaG9vayB0aGF0IHdhdGNoZXMgZm9yIGNoYW5nZXMgdG8gc3BlY2lmaWMgcHJvcGVydGllcyBvZiBhbiBvYmplY3QuXG4gKiBXaGVuIHRoZSB3YXRjaGVkIHByb3BlcnRpZXMgY2hhbmdlLCBpdCB0cmlnZ2VycyBhIHJlLXJlbmRlci5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlT2JzZXJ2ZTxUIGV4dGVuZHMgYW55PihcbiAgdG9PYnNlcnZlOiBUIHwgVFtdLFxuICBrZXlzVG9PYnNlcnZlOiAoa2V5b2YgVClbXVxuKSB7XG4gIGNvbnN0IFtfLCBzc10gPSB1c2VTdGF0ZSgwKTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBhcnIgPSBBcnJheS5pc0FycmF5KHRvT2JzZXJ2ZSkgPyB0b09ic2VydmUgOiBbdG9PYnNlcnZlXVxuICAgIGNvbnN0IHVud2F0Y2hlcnMgPSBhcnIubWFwKG9iamVjdCA9PiAob2JqZWN0IGFzIE9iamVjdCkud2F0Y2goa2V5c1RvT2JzZXJ2ZSBhcyBhbnksICgpID0+IHtcbiAgICAgIHNzKChwKSA9PiB7XG4gICAgICAgIHJldHVybiBwICsgMVxuICAgICAgfSk7XG4gICAgfSkpXG5cbiAgICByZXR1cm4gKCkgPT4gdW53YXRjaGVycy5mb3JFYWNoKHVud2F0Y2ggPT4gdW53YXRjaCgpKVxuICB9LCBbdG9PYnNlcnZlXSk7XG59Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQUEsT0FBQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ2UsU0FBU0MsVUFBVUEsQ0FDaENDLFNBQWtCLEVBQ2xCQyxhQUEwQixFQUMxQjtFQUNBLE1BQU0sQ0FBQ0MsQ0FBQyxFQUFFQyxFQUFFLENBQUMsR0FBRyxJQUFBQyxlQUFRLEVBQUMsQ0FBQyxDQUFDO0VBQzNCLElBQUFDLHNCQUFlLEVBQUMsTUFBTTtJQUNwQixNQUFNQyxHQUFHLEdBQUdDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDUixTQUFTLENBQUMsR0FBR0EsU0FBUyxHQUFHLENBQUNBLFNBQVMsQ0FBQztJQUM5RCxNQUFNUyxVQUFVLEdBQUdILEdBQUcsQ0FBQ0ksR0FBRyxDQUFDQyxNQUFNLElBQUtBLE1BQU0sQ0FBWUMsS0FBSyxDQUFDWCxhQUFhLEVBQVMsTUFBTTtNQUN4RkUsRUFBRSxDQUFFVSxDQUFDLElBQUs7UUFDUixPQUFPQSxDQUFDLEdBQUcsQ0FBQztNQUNkLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFNSixVQUFVLENBQUNLLE9BQU8sQ0FBQ0MsT0FBTyxJQUFJQSxPQUFPLENBQUMsQ0FBQyxDQUFDO0VBQ3ZELENBQUMsRUFBRSxDQUFDZixTQUFTLENBQUMsQ0FBQztBQUNqQiJ9
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = usePagination;
|
|
7
|
+
exports.useContainerPagination = useContainerPagination;
|
|
8
|
+
exports.useLocalPagination = useLocalPagination;
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _useAsyncControl2 = _interopRequireDefault(require("./useAsyncControl"));
|
|
11
|
+
var _throttle = _interopRequireDefault(require("lodash/throttle"));
|
|
12
|
+
const _excluded = ["process"];
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
18
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
19
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
20
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
21
|
+
/**
|
|
22
|
+
* This hook helps manage loading and showing items in pages.
|
|
23
|
+
* It handles fetching new items when the user scrolls or clicks next page,
|
|
24
|
+
* and keeps track of whether all items have been loaded.
|
|
25
|
+
*/
|
|
26
|
+
function usePagination(request) {
|
|
27
|
+
let paginationId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : () => "default";
|
|
28
|
+
let startingItems = arguments.length > 2 ? arguments[2] : undefined;
|
|
29
|
+
const paginationDataRef = (0, _react.useRef)({});
|
|
30
|
+
const {
|
|
31
|
+
current: paginationData
|
|
32
|
+
} = paginationDataRef;
|
|
33
|
+
const paginationIdFactory = (0, _react.useMemo)(() => {
|
|
34
|
+
if (typeof paginationId === "object") {
|
|
35
|
+
const randId = Math.random();
|
|
36
|
+
return () => randId.toString();
|
|
37
|
+
} else return paginationId;
|
|
38
|
+
}, Array.isArray(paginationId) ? paginationId : [paginationId]);
|
|
39
|
+
const [items, setItems] = (0, _react.useState)();
|
|
40
|
+
const [id, setId] = (0, _react.useState)(() => paginationIdFactory());
|
|
41
|
+
(0, _react.useEffect)(() => {
|
|
42
|
+
setId(paginationIdFactory());
|
|
43
|
+
if (startingItems) setItems([paginationIdFactory(), startingItems]);else setItems(undefined);
|
|
44
|
+
}, [paginationIdFactory()]);
|
|
45
|
+
const _useAsyncControl = (0, _useAsyncControl2.default)(),
|
|
46
|
+
{
|
|
47
|
+
process
|
|
48
|
+
} = _useAsyncControl,
|
|
49
|
+
control = _objectWithoutProperties(_useAsyncControl, _excluded);
|
|
50
|
+
function updateItems(cb) {
|
|
51
|
+
setItems(prev => [prev[0], cb()]);
|
|
52
|
+
}
|
|
53
|
+
const derivateCurrentPage = pageSize => {
|
|
54
|
+
var _items$1$length;
|
|
55
|
+
if (items === undefined) return 0;
|
|
56
|
+
const currentPage = Math.floor(((_items$1$length = items === null || items === void 0 ? void 0 : items[1].length) !== null && _items$1$length !== void 0 ? _items$1$length : 0) / pageSize) - 1;
|
|
57
|
+
return currentPage;
|
|
58
|
+
};
|
|
59
|
+
const _requestPage = (0, _react.useCallback)(function (page, pageSize) {
|
|
60
|
+
var _paginationData$id;
|
|
61
|
+
const id = paginationIdFactory();
|
|
62
|
+
if ((_paginationData$id = paginationData[id]) !== null && _paginationData$id !== void 0 && _paginationData$id.finished) return;
|
|
63
|
+
process(async () => {
|
|
64
|
+
const result = await request(page, pageSize, (items === null || items === void 0 ? void 0 : items[0]) === id && page !== 0 ? pageSize === "all" ? undefined : items === null || items === void 0 ? void 0 : items[1].slice(0, page * pageSize) : undefined);
|
|
65
|
+
paginationData[id] = {
|
|
66
|
+
finished: result.finished,
|
|
67
|
+
totalItems: result.totalItems
|
|
68
|
+
};
|
|
69
|
+
setItems(prev => {
|
|
70
|
+
if (page === 0) return [id, result.items];else if (!prev || id === prev[0]) return [id, result.items];
|
|
71
|
+
return prev;
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
}, [items, request]);
|
|
75
|
+
return {
|
|
76
|
+
updateItems,
|
|
77
|
+
getNextPage: pageSize => {
|
|
78
|
+
_requestPage(derivateCurrentPage(pageSize) + 1, pageSize);
|
|
79
|
+
},
|
|
80
|
+
getPage: _requestPage,
|
|
81
|
+
getAll: () => {
|
|
82
|
+
_requestPage(0, "all");
|
|
83
|
+
},
|
|
84
|
+
refreshCurrentPage: pageSize => {
|
|
85
|
+
_requestPage(derivateCurrentPage(pageSize), pageSize);
|
|
86
|
+
},
|
|
87
|
+
totalItems: () => {
|
|
88
|
+
var _paginationData$pagin;
|
|
89
|
+
return (_paginationData$pagin = paginationData[paginationIdFactory()]) === null || _paginationData$pagin === void 0 ? void 0 : _paginationData$pagin.totalItems;
|
|
90
|
+
},
|
|
91
|
+
id: () => id,
|
|
92
|
+
loading: control.loading,
|
|
93
|
+
error: control.error,
|
|
94
|
+
items: items === null || items === void 0 ? void 0 : items[1],
|
|
95
|
+
setError: control.setError
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* This returns a ref to be bound to an elements so it can be able to detect when a pagination whould occur
|
|
100
|
+
*/
|
|
101
|
+
function useContainerPagination(cb, pageSize) {
|
|
102
|
+
let direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "v";
|
|
103
|
+
const scrollableRef = (0, _react.useRef)(undefined);
|
|
104
|
+
const customOptionsRef = (0, _react.useRef)(undefined);
|
|
105
|
+
(0, _react.useEffect)(() => {
|
|
106
|
+
const el = scrollableRef.current;
|
|
107
|
+
const scrollElement = el.scrollingElement || el;
|
|
108
|
+
const calculateIfReachedLimit = (0, _throttle.default)(e => {
|
|
109
|
+
var _customOptionsRef$cur;
|
|
110
|
+
if (e.target !== el) return;
|
|
111
|
+
const {
|
|
112
|
+
offsetBottom = 0,
|
|
113
|
+
offsetLeft = 0
|
|
114
|
+
} = ((_customOptionsRef$cur = customOptionsRef.current) === null || _customOptionsRef$cur === void 0 ? void 0 : _customOptionsRef$cur.call(customOptionsRef)) || {};
|
|
115
|
+
const offsetLimit = direction === "v" ? scrollElement.scrollHeight - offsetBottom - scrollElement.clientHeight * 0.6 : scrollElement.scrollWidth - offsetLeft - scrollElement.clientWidth * 0.6;
|
|
116
|
+
const offset = direction === "v" ? scrollElement.clientHeight + scrollElement.scrollTop : scrollElement.clientWidth + scrollElement.scrollLeft;
|
|
117
|
+
if (offset >= offsetLimit) {
|
|
118
|
+
cb(pageSize);
|
|
119
|
+
}
|
|
120
|
+
}, 250, {
|
|
121
|
+
leading: false,
|
|
122
|
+
trailing: true
|
|
123
|
+
});
|
|
124
|
+
el.addEventListener("scroll", calculateIfReachedLimit, {
|
|
125
|
+
passive: true
|
|
126
|
+
});
|
|
127
|
+
return () => el.removeEventListener("scroll", calculateIfReachedLimit);
|
|
128
|
+
}, [cb, pageSize]);
|
|
129
|
+
return {
|
|
130
|
+
scrollableRef,
|
|
131
|
+
customOptionsRef
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* This function receives an amount of local instances and paginates it
|
|
137
|
+
*/
|
|
138
|
+
function useLocalPagination(items) {
|
|
139
|
+
const instanceID = (0, _react.useMemo)(() => Date.now(), [items]);
|
|
140
|
+
const cb = (0, _react.useCallback)(function (page, pageSize) {
|
|
141
|
+
let currItems = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
142
|
+
if (!items) return Promise.resolve({
|
|
143
|
+
finished: false,
|
|
144
|
+
totalItems: 0,
|
|
145
|
+
items: []
|
|
146
|
+
});
|
|
147
|
+
if (pageSize === "all") pageSize = items.length;
|
|
148
|
+
const from = pageSize * page;
|
|
149
|
+
const newArray = [...currItems, ...items.slice(from, from + pageSize)];
|
|
150
|
+
return Promise.resolve({
|
|
151
|
+
finished: newArray.length === items.length,
|
|
152
|
+
totalItems: items.length,
|
|
153
|
+
items: newArray
|
|
154
|
+
});
|
|
155
|
+
}, [items]);
|
|
156
|
+
const pagination = usePagination(cb, () => "".concat(instanceID));
|
|
157
|
+
const pagSrc = (0, _react.useMemo)(() => items, [pagination.items]);
|
|
158
|
+
return _objectSpread(_objectSpread({}, pagination), {}, {
|
|
159
|
+
loading: items === undefined,
|
|
160
|
+
src: pagSrc
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3VzZUFzeW5jQ29udHJvbDIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3Rocm90dGxlIiwiX2V4Y2x1ZGVkIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwib2JqZWN0IiwiZW51bWVyYWJsZU9ubHkiLCJrZXlzIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwic3ltYm9scyIsImZpbHRlciIsInN5bSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImZvckVhY2giLCJrZXkiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiYXJnIiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwidW5kZWZpbmVkIiwicmVzIiwiY2FsbCIsIlR5cGVFcnJvciIsIk51bWJlciIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsImV4Y2x1ZGVkIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJzb3VyY2VTeW1ib2xLZXlzIiwiaW5kZXhPZiIsInByb3RvdHlwZSIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwic291cmNlS2V5cyIsInVzZVBhZ2luYXRpb24iLCJyZXF1ZXN0IiwicGFnaW5hdGlvbklkIiwic3RhcnRpbmdJdGVtcyIsInBhZ2luYXRpb25EYXRhUmVmIiwidXNlUmVmIiwiY3VycmVudCIsInBhZ2luYXRpb25EYXRhIiwicGFnaW5hdGlvbklkRmFjdG9yeSIsInVzZU1lbW8iLCJyYW5kSWQiLCJNYXRoIiwicmFuZG9tIiwidG9TdHJpbmciLCJBcnJheSIsImlzQXJyYXkiLCJpdGVtcyIsInNldEl0ZW1zIiwidXNlU3RhdGUiLCJpZCIsInNldElkIiwidXNlRWZmZWN0IiwiX3VzZUFzeW5jQ29udHJvbCIsInVzZUFzeW5jQ29udHJvbCIsInByb2Nlc3MiLCJjb250cm9sIiwidXBkYXRlSXRlbXMiLCJjYiIsInByZXYiLCJkZXJpdmF0ZUN1cnJlbnRQYWdlIiwicGFnZVNpemUiLCJfaXRlbXMkMSRsZW5ndGgiLCJjdXJyZW50UGFnZSIsImZsb29yIiwiX3JlcXVlc3RQYWdlIiwidXNlQ2FsbGJhY2siLCJwYWdlIiwiX3BhZ2luYXRpb25EYXRhJGlkIiwiZmluaXNoZWQiLCJyZXN1bHQiLCJzbGljZSIsInRvdGFsSXRlbXMiLCJnZXROZXh0UGFnZSIsImdldFBhZ2UiLCJnZXRBbGwiLCJyZWZyZXNoQ3VycmVudFBhZ2UiLCJfcGFnaW5hdGlvbkRhdGEkcGFnaW4iLCJsb2FkaW5nIiwiZXJyb3IiLCJzZXRFcnJvciIsInVzZUNvbnRhaW5lclBhZ2luYXRpb24iLCJkaXJlY3Rpb24iLCJzY3JvbGxhYmxlUmVmIiwiY3VzdG9tT3B0aW9uc1JlZiIsImVsIiwic2Nyb2xsRWxlbWVudCIsInNjcm9sbGluZ0VsZW1lbnQiLCJjYWxjdWxhdGVJZlJlYWNoZWRMaW1pdCIsInRocm90dGxlIiwiZSIsIl9jdXN0b21PcHRpb25zUmVmJGN1ciIsIm9mZnNldEJvdHRvbSIsIm9mZnNldExlZnQiLCJvZmZzZXRMaW1pdCIsInNjcm9sbEhlaWdodCIsImNsaWVudEhlaWdodCIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJvZmZzZXQiLCJzY3JvbGxUb3AiLCJzY3JvbGxMZWZ0IiwibGVhZGluZyIsInRyYWlsaW5nIiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidXNlTG9jYWxQYWdpbmF0aW9uIiwiaW5zdGFuY2VJRCIsIkRhdGUiLCJub3ciLCJjdXJySXRlbXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsImZyb20iLCJuZXdBcnJheSIsInBhZ2luYXRpb24iLCJjb25jYXQiLCJwYWdTcmMiLCJzcmMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlUGFnaW5hdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHVzZUFzeW5jQ29udHJvbCBmcm9tIFwiLi91c2VBc3luY0NvbnRyb2xcIjtcbmltcG9ydCB0aHJvdHRsZSBmcm9tIFwibG9kYXNoL3Rocm90dGxlXCI7XG5cbnR5cGUgVXBkYXRlRXZlbnQ8SSBleHRlbmRzIGFueT4gPSB7XG4gIGZpbmlzaGVkOiBib29sZWFuO1xuICBpdGVtczogSVtdO1xuICB0b3RhbEl0ZW1zOiBudW1iZXI7XG59O1xuXG4vKipcbiAqIFRoaXMgaG9vayBoZWxwcyBtYW5hZ2UgbG9hZGluZyBhbmQgc2hvd2luZyBpdGVtcyBpbiBwYWdlcy5cbiAqIEl0IGhhbmRsZXMgZmV0Y2hpbmcgbmV3IGl0ZW1zIHdoZW4gdGhlIHVzZXIgc2Nyb2xscyBvciBjbGlja3MgbmV4dCBwYWdlLFxuICogYW5kIGtlZXBzIHRyYWNrIG9mIHdoZXRoZXIgYWxsIGl0ZW1zIGhhdmUgYmVlbiBsb2FkZWQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVBhZ2luYXRpb248SSBleHRlbmRzIGFueT4oXG4gIHJlcXVlc3Q6IChcbiAgICBwYWdlOiBudW1iZXIsXG4gICAgcGFnZVNpemU6IG51bWJlciB8IFwiYWxsXCIsXG4gICAgY3Vyckl0ZW1zPzogSVtdXG4gICkgPT4gUHJvbWlzZTxVcGRhdGVFdmVudDxJPj4sXG4gIHBhZ2luYXRpb25JZDogb2JqZWN0IHwgYW55W10gfCAoKCkgPT4gc3RyaW5nKSA9ICgpID0+IFwiZGVmYXVsdFwiLFxuICBzdGFydGluZ0l0ZW1zPzogSVtdXG4pOiBQYWdpbmFibGU8ST4ge1xuICBjb25zdCBwYWdpbmF0aW9uRGF0YVJlZiA9IHVzZVJlZjx7XG4gICAgW2Q6IHN0cmluZ106XG4gICAgICB8IHtcbiAgICAgICAgICBmaW5pc2hlZDogYm9vbGVhbjtcbiAgICAgICAgICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gICAgICAgIH1cbiAgICAgIHwgdW5kZWZpbmVkO1xuICB9Pih7fSk7XG4gIGNvbnN0IHsgY3VycmVudDogcGFnaW5hdGlvbkRhdGEgfSA9IHBhZ2luYXRpb25EYXRhUmVmO1xuICBjb25zdCBwYWdpbmF0aW9uSWRGYWN0b3J5ID0gdXNlTWVtbyhcbiAgICAoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHBhZ2luYXRpb25JZCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBjb25zdCByYW5kSWQgPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICByZXR1cm4gKCkgPT4gcmFuZElkLnRvU3RyaW5nKCk7XG4gICAgICB9IGVsc2UgcmV0dXJuIHBhZ2luYXRpb25JZDtcbiAgICB9LFxuICAgIEFycmF5LmlzQXJyYXkocGFnaW5hdGlvbklkKSA/IHBhZ2luYXRpb25JZCA6IFtwYWdpbmF0aW9uSWRdXG4gICk7XG5cbiAgY29uc3QgW2l0ZW1zLCBzZXRJdGVtc10gPSB1c2VTdGF0ZTxcbiAgICBbcGFnaW5hdGlvbklkOiBzdHJpbmcsIGl0ZW1zOiBJW11dIHwgdW5kZWZpbmVkXG4gID4oKTtcblxuICBjb25zdCBbaWQsIHNldElkXSA9IHVzZVN0YXRlKCgpID0+IHBhZ2luYXRpb25JZEZhY3RvcnkoKSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRJZChwYWdpbmF0aW9uSWRGYWN0b3J5KCkpO1xuICAgIGlmIChzdGFydGluZ0l0ZW1zKSBzZXRJdGVtcyhbcGFnaW5hdGlvbklkRmFjdG9yeSgpLCBzdGFydGluZ0l0ZW1zXSk7XG4gICAgZWxzZSBzZXRJdGVtcyh1bmRlZmluZWQpO1xuICB9LCBbcGFnaW5hdGlvbklkRmFjdG9yeSgpXSk7XG5cbiAgY29uc3QgeyBwcm9jZXNzLCAuLi5jb250cm9sIH0gPSB1c2VBc3luY0NvbnRyb2woKTtcblxuICBmdW5jdGlvbiB1cGRhdGVJdGVtcyhjYjogKHByZXZJdGVtcz86IEkpID0+IFVwZGF0ZUV2ZW50PEk+W1wiaXRlbXNcIl0pIHtcbiAgICBzZXRJdGVtcygocHJldikgPT4gW3ByZXYhWzBdLCBjYigpXSk7XG4gIH1cblxuICBjb25zdCBkZXJpdmF0ZUN1cnJlbnRQYWdlID0gKHBhZ2VTaXplOiBudW1iZXIpID0+IHtcbiAgICBpZiAoaXRlbXMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIDA7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSBNYXRoLmZsb29yKChpdGVtcz8uWzFdLmxlbmd0aCA/PyAwKSAvIHBhZ2VTaXplKSAtIDE7XG4gICAgcmV0dXJuIGN1cnJlbnRQYWdlO1xuICB9O1xuXG4gIGNvbnN0IF9yZXF1ZXN0UGFnZSA9IHVzZUNhbGxiYWNrKFxuICAgIGZ1bmN0aW9uIChwYWdlOiBudW1iZXIsIHBhZ2VTaXplOiBudW1iZXIgfCBcImFsbFwiKSB7XG4gICAgICBjb25zdCBpZCA9IHBhZ2luYXRpb25JZEZhY3RvcnkoKTtcbiAgICAgIGlmIChwYWdpbmF0aW9uRGF0YVtpZF0/LmZpbmlzaGVkKSByZXR1cm47XG4gICAgICBwcm9jZXNzKGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVxdWVzdChcbiAgICAgICAgICBwYWdlLFxuICAgICAgICAgIHBhZ2VTaXplLFxuICAgICAgICAgIGl0ZW1zPy5bMF0gPT09IGlkICYmIHBhZ2UgIT09IDBcbiAgICAgICAgICAgID8gcGFnZVNpemUgPT09IFwiYWxsXCJcbiAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgOiBpdGVtcz8uWzFdLnNsaWNlKDAsIHBhZ2UgKiBwYWdlU2l6ZSlcbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICk7XG4gICAgICAgIHBhZ2luYXRpb25EYXRhW2lkXSA9IHtcbiAgICAgICAgICBmaW5pc2hlZDogcmVzdWx0LmZpbmlzaGVkLFxuICAgICAgICAgIHRvdGFsSXRlbXM6IHJlc3VsdC50b3RhbEl0ZW1zLFxuICAgICAgICB9O1xuICAgICAgICBzZXRJdGVtcygocHJldikgPT4ge1xuICAgICAgICAgIGlmIChwYWdlID09PSAwKSByZXR1cm4gW2lkLCByZXN1bHQuaXRlbXNdO1xuICAgICAgICAgIGVsc2UgaWYgKCFwcmV2IHx8IGlkID09PSBwcmV2WzBdKSByZXR1cm4gW2lkLCByZXN1bHQuaXRlbXNdO1xuICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW2l0ZW1zLCByZXF1ZXN0XVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgdXBkYXRlSXRlbXMsXG4gICAgZ2V0TmV4dFBhZ2U6IChwYWdlU2l6ZTogbnVtYmVyKSA9PiB7XG4gICAgICBfcmVxdWVzdFBhZ2UoZGVyaXZhdGVDdXJyZW50UGFnZShwYWdlU2l6ZSkgKyAxLCBwYWdlU2l6ZSk7XG4gICAgfSxcbiAgICBnZXRQYWdlOiBfcmVxdWVzdFBhZ2UsXG4gICAgZ2V0QWxsOiAoKSA9PiB7XG4gICAgICBfcmVxdWVzdFBhZ2UoMCwgXCJhbGxcIik7XG4gICAgfSxcbiAgICByZWZyZXNoQ3VycmVudFBhZ2U6IChwYWdlU2l6ZTogbnVtYmVyKSA9PiB7XG4gICAgICBfcmVxdWVzdFBhZ2UoZGVyaXZhdGVDdXJyZW50UGFnZShwYWdlU2l6ZSksIHBhZ2VTaXplKTtcbiAgICB9LFxuICAgIHRvdGFsSXRlbXM6ICgpID0+IHBhZ2luYXRpb25EYXRhW3BhZ2luYXRpb25JZEZhY3RvcnkoKV0/LnRvdGFsSXRlbXMsXG4gICAgaWQ6ICgpID0+IGlkLFxuICAgIGxvYWRpbmc6IGNvbnRyb2wubG9hZGluZyxcbiAgICBlcnJvcjogY29udHJvbC5lcnJvcixcbiAgICBpdGVtczogaXRlbXM/LlsxXSxcbiAgICBzZXRFcnJvcjogY29udHJvbC5zZXRFcnJvcixcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgUGFnaW5hYmxlPEkgZXh0ZW5kcyBhbnksIEUgZXh0ZW5kcyBhbnkgPSBhbnk+ID0ge1xuICB1cGRhdGVJdGVtczogKGNiOiAocHJldkl0ZW1zPzogSSkgPT4gVXBkYXRlRXZlbnQ8ST5bXCJpdGVtc1wiXSkgPT4gdm9pZDtcbiAgZ2V0TmV4dFBhZ2U6IChwYWdlU2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuICByZWZyZXNoQ3VycmVudFBhZ2U6IChwYWdlU2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuICBnZXRQYWdlOiAocGFnZTogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuICBnZXRBbGw6ICgpID0+IHZvaWQ7XG4gIHRvdGFsSXRlbXM6ICgpID0+IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgZXJyb3I6IEUgfCBFcnJvciB8IHVuZGVmaW5lZDtcbiAgaXRlbXM6IElbXSB8IHVuZGVmaW5lZDtcbiAgc2V0RXJyb3I6IFJldHVyblR5cGU8dHlwZW9mIHVzZUFzeW5jQ29udHJvbD5bXCJzZXRFcnJvclwiXTtcbiAgaWQ6ICgpID0+IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIExvY2FsUGFnaW5hYmxlPEkgZXh0ZW5kcyBhbnksIEUgZXh0ZW5kcyBhbnkgPSBhbnk+ID0gUGFnaW5hYmxlPFxuICBJLFxuICBFXG4+ICYge1xuICBzcmM6IEk7XG59O1xuXG4vKipcbiAqIFRoaXMgcmV0dXJucyBhIHJlZiB0byBiZSBib3VuZCB0byBhbiBlbGVtZW50cyBzbyBpdCBjYW4gYmUgYWJsZSB0byBkZXRlY3Qgd2hlbiBhIHBhZ2luYXRpb24gd2hvdWxkIG9jY3VyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDb250YWluZXJQYWdpbmF0aW9uKFxuICBjYjogKHBhZ2VTaXplOiBudW1iZXIpID0+IHZvaWQsXG4gIHBhZ2VTaXplOiBudW1iZXIsXG4gIGRpcmVjdGlvbjogXCJoXCIgfCBcInZcIiA9IFwidlwiXG4pIHtcbiAgY29uc3Qgc2Nyb2xsYWJsZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4odW5kZWZpbmVkKTtcbiAgY29uc3QgY3VzdG9tT3B0aW9uc1JlZiA9XG4gICAgdXNlUmVmPCgpID0+IHsgb2Zmc2V0Qm90dG9tPzogbnVtYmVyOyBvZmZzZXRMZWZ0PzogbnVtYmVyIH0+KHVuZGVmaW5lZCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbCA9IHNjcm9sbGFibGVSZWYuY3VycmVudCE7XG4gICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9XG4gICAgICAoZWwgYXMgdW5rbm93biBhcyB0eXBlb2Ygd2luZG93LmRvY3VtZW50KS5zY3JvbGxpbmdFbGVtZW50IHx8IGVsO1xuICAgIGNvbnN0IGNhbGN1bGF0ZUlmUmVhY2hlZExpbWl0ID0gdGhyb3R0bGUoXG4gICAgICAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSBlbCkgcmV0dXJuO1xuICAgICAgICBjb25zdCB7IG9mZnNldEJvdHRvbSA9IDAsIG9mZnNldExlZnQgPSAwIH0gPVxuICAgICAgICAgIGN1c3RvbU9wdGlvbnNSZWYuY3VycmVudD8uKCkgfHwge307XG4gICAgICAgIGNvbnN0IG9mZnNldExpbWl0ID1cbiAgICAgICAgICBkaXJlY3Rpb24gPT09IFwidlwiXG4gICAgICAgICAgICA/IHNjcm9sbEVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC1cbiAgICAgICAgICAgICAgb2Zmc2V0Qm90dG9tIC1cbiAgICAgICAgICAgICAgc2Nyb2xsRWxlbWVudC5jbGllbnRIZWlnaHQgKiAwLjZcbiAgICAgICAgICAgIDogc2Nyb2xsRWxlbWVudC5zY3JvbGxXaWR0aCAtXG4gICAgICAgICAgICAgIG9mZnNldExlZnQgLVxuICAgICAgICAgICAgICBzY3JvbGxFbGVtZW50LmNsaWVudFdpZHRoICogMC42O1xuICAgICAgICBjb25zdCBvZmZzZXQgPVxuICAgICAgICAgIGRpcmVjdGlvbiA9PT0gXCJ2XCJcbiAgICAgICAgICAgID8gc2Nyb2xsRWxlbWVudC5jbGllbnRIZWlnaHQgKyBzY3JvbGxFbGVtZW50LnNjcm9sbFRvcFxuICAgICAgICAgICAgOiBzY3JvbGxFbGVtZW50LmNsaWVudFdpZHRoICsgc2Nyb2xsRWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgICAgICBpZiAob2Zmc2V0ID49IG9mZnNldExpbWl0KSB7XG4gICAgICAgICAgY2IocGFnZVNpemUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgMjUwLFxuICAgICAge1xuICAgICAgICBsZWFkaW5nOiBmYWxzZSxcbiAgICAgICAgdHJhaWxpbmc6IHRydWUsXG4gICAgICB9XG4gICAgKTtcblxuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsY3VsYXRlSWZSZWFjaGVkTGltaXQsIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfSk7XG4gICAgcmV0dXJuICgpID0+IGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsY3VsYXRlSWZSZWFjaGVkTGltaXQpO1xuICB9LCBbY2IsIHBhZ2VTaXplXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBzY3JvbGxhYmxlUmVmLFxuICAgIGN1c3RvbU9wdGlvbnNSZWYsXG4gIH07XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiByZWNlaXZlcyBhbiBhbW91bnQgb2YgbG9jYWwgaW5zdGFuY2VzIGFuZCBwYWdpbmF0ZXMgaXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUxvY2FsUGFnaW5hdGlvbjxMPihpdGVtczogTFtdIHwgdW5kZWZpbmVkKSB7XG4gIGNvbnN0IGluc3RhbmNlSUQgPSB1c2VNZW1vKCgpID0+IERhdGUubm93KCksIFtpdGVtc10pO1xuICBjb25zdCBjYiA9IHVzZUNhbGxiYWNrKFxuICAgIChwYWdlOiBudW1iZXIsIHBhZ2VTaXplOiBudW1iZXIgfCBcImFsbFwiLCBjdXJySXRlbXM6IExbXSA9IFtdKSA9PiB7XG4gICAgICBpZiAoIWl0ZW1zKVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICBmaW5pc2hlZDogZmFsc2UsXG4gICAgICAgICAgdG90YWxJdGVtczogMCxcbiAgICAgICAgICBpdGVtczogW10sXG4gICAgICAgIH0pO1xuICAgICAgaWYgKHBhZ2VTaXplID09PSBcImFsbFwiKSBwYWdlU2l6ZSA9IGl0ZW1zLmxlbmd0aDtcbiAgICAgIGNvbnN0IGZyb20gPSBwYWdlU2l6ZSAqIHBhZ2U7XG4gICAgICBjb25zdCBuZXdBcnJheSA9IFsuLi5jdXJySXRlbXMsIC4uLml0ZW1zLnNsaWNlKGZyb20sIGZyb20gKyBwYWdlU2l6ZSldO1xuXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgZmluaXNoZWQ6IG5ld0FycmF5Lmxlbmd0aCA9PT0gaXRlbXMubGVuZ3RoLFxuICAgICAgICB0b3RhbEl0ZW1zOiBpdGVtcy5sZW5ndGgsXG4gICAgICAgIGl0ZW1zOiBuZXdBcnJheSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW2l0ZW1zXVxuICApO1xuICBjb25zdCBwYWdpbmF0aW9uID0gdXNlUGFnaW5hdGlvbjxMPihjYiwgKCkgPT4gYCR7aW5zdGFuY2VJRH1gKTtcbiAgY29uc3QgcGFnU3JjID0gdXNlTWVtbygoKSA9PiBpdGVtcywgW3BhZ2luYXRpb24uaXRlbXNdKTtcblxuICByZXR1cm4ge1xuICAgIC4uLnBhZ2luYXRpb24sXG4gICAgbG9hZGluZzogaXRlbXMgPT09IHVuZGVmaW5lZCxcbiAgICBzcmM6IHBhZ1NyYyxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFRQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBRCxzQkFBQSxDQUFB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
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = usePooledOperation;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _useAsyncControl = _interopRequireDefault(require("./useAsyncControl"));
|
|
9
|
+
var _usePooling = _interopRequireDefault(require("./usePooling"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
/**
|
|
12
|
+
* A toolkit hook to trigger an request to start a process and execute a pooling operation to validate when the operation is finished
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* This hook helps run a task and then check repeatedly if it's done.
|
|
16
|
+
* It combines starting a process with waiting for it to finish.
|
|
17
|
+
*/
|
|
18
|
+
function usePooledOperation() {
|
|
19
|
+
const requestOperation = (0, _react.useRef)(undefined);
|
|
20
|
+
const poolingOperation = (0, _react.useRef)(undefined);
|
|
21
|
+
const requestControl = (0, _useAsyncControl.default)();
|
|
22
|
+
const pollingControl = (0, _usePooling.default)();
|
|
23
|
+
function triggerRequest() {
|
|
24
|
+
requestControl.process(async () => {
|
|
25
|
+
await requestOperation.current();
|
|
26
|
+
triggerPooling();
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function triggerPooling() {
|
|
30
|
+
pollingControl.startPolling(poolingOperation.current);
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
/** Indicates when it's loading */
|
|
34
|
+
loading: requestControl.loading || pollingControl.isPooling,
|
|
35
|
+
/** Indicates error of pooling or request */
|
|
36
|
+
error: !!requestControl.error || !!pollingControl.failed,
|
|
37
|
+
/** Retries the operation based on the current failed step */
|
|
38
|
+
retry: requestControl.error ? triggerRequest : pollingControl.failed ? triggerPooling : undefined,
|
|
39
|
+
/** Initiates the request followed by the pooling operation */
|
|
40
|
+
start: (_requestOperation, _poolingOperation) => {
|
|
41
|
+
requestOperation.current = _requestOperation;
|
|
42
|
+
poolingOperation.current = _poolingOperation;
|
|
43
|
+
triggerRequest();
|
|
44
|
+
},
|
|
45
|
+
/** Clear any error that is registered */
|
|
46
|
+
clearError: () => {
|
|
47
|
+
requestControl.setError(undefined);
|
|
48
|
+
pollingControl.setFailed(false);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3VzZUFzeW5jQ29udHJvbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlUG9vbGluZyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidXNlUG9vbGVkT3BlcmF0aW9uIiwicmVxdWVzdE9wZXJhdGlvbiIsInVzZVJlZiIsInVuZGVmaW5lZCIsInBvb2xpbmdPcGVyYXRpb24iLCJyZXF1ZXN0Q29udHJvbCIsInVzZUFzeW5jQ29udHJvbCIsInBvbGxpbmdDb250cm9sIiwidXNlUG9vbGluZyIsInRyaWdnZXJSZXF1ZXN0IiwicHJvY2VzcyIsImN1cnJlbnQiLCJ0cmlnZ2VyUG9vbGluZyIsInN0YXJ0UG9sbGluZyIsImxvYWRpbmciLCJpc1Bvb2xpbmciLCJlcnJvciIsImZhaWxlZCIsInJldHJ5Iiwic3RhcnQiLCJfcmVxdWVzdE9wZXJhdGlvbiIsIl9wb29saW5nT3BlcmF0aW9uIiwiY2xlYXJFcnJvciIsInNldEVycm9yIiwic2V0RmFpbGVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVBvb2xlZE9wZXJhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWYsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHVzZUFzeW5jQ29udHJvbCBmcm9tIFwiLi91c2VBc3luY0NvbnRyb2xcIjtcbmltcG9ydCB1c2VQb29saW5nIGZyb20gXCIuL3VzZVBvb2xpbmdcIjtcblxuLyoqXG4gKiBBIHRvb2xraXQgaG9vayB0byB0cmlnZ2VyIGFuIHJlcXVlc3QgdG8gc3RhcnQgYSBwcm9jZXNzIGFuZCBleGVjdXRlIGEgcG9vbGluZyBvcGVyYXRpb24gdG8gdmFsaWRhdGUgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGZpbmlzaGVkXG4gKi9cblxuLyoqXG4gKiBUaGlzIGhvb2sgaGVscHMgcnVuIGEgdGFzayBhbmQgdGhlbiBjaGVjayByZXBlYXRlZGx5IGlmIGl0J3MgZG9uZS5cbiAqIEl0IGNvbWJpbmVzIHN0YXJ0aW5nIGEgcHJvY2VzcyB3aXRoIHdhaXRpbmcgZm9yIGl0IHRvIGZpbmlzaC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlUG9vbGVkT3BlcmF0aW9uKCkge1xuICBjb25zdCByZXF1ZXN0T3BlcmF0aW9uID0gdXNlUmVmPCgpID0+IFByb21pc2U8dm9pZD4+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IHBvb2xpbmdPcGVyYXRpb24gPSB1c2VSZWY8KCkgPT4gUHJvbWlzZTxib29sZWFuPj4odW5kZWZpbmVkKTtcbiAgY29uc3QgcmVxdWVzdENvbnRyb2wgPSB1c2VBc3luY0NvbnRyb2woKTtcbiAgY29uc3QgcG9sbGluZ0NvbnRyb2wgPSB1c2VQb29saW5nKCk7XG5cbiAgZnVuY3Rpb24gdHJpZ2dlclJlcXVlc3QoKSB7XG4gICAgcmVxdWVzdENvbnRyb2wucHJvY2Vzcyhhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCByZXF1ZXN0T3BlcmF0aW9uLmN1cnJlbnQhKCk7XG4gICAgICB0cmlnZ2VyUG9vbGluZygpO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gdHJpZ2dlclBvb2xpbmcoKSB7XG4gICAgcG9sbGluZ0NvbnRyb2wuc3RhcnRQb2xsaW5nKHBvb2xpbmdPcGVyYXRpb24uY3VycmVudCEpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvKiogSW5kaWNhdGVzIHdoZW4gaXQncyBsb2FkaW5nICovXG4gICAgbG9hZGluZzogcmVxdWVzdENvbnRyb2wubG9hZGluZyB8fCBwb2xsaW5nQ29udHJvbC5pc1Bvb2xpbmcsXG4gICAgLyoqIEluZGljYXRlcyBlcnJvciBvZiBwb29saW5nIG9yIHJlcXVlc3QgKi9cbiAgICBlcnJvcjogISFyZXF1ZXN0Q29udHJvbC5lcnJvciB8fCAhIXBvbGxpbmdDb250cm9sLmZhaWxlZCxcbiAgICAvKiogUmV0cmllcyB0aGUgb3BlcmF0aW9uIGJhc2VkIG9uIHRoZSBjdXJyZW50IGZhaWxlZCBzdGVwICovXG4gICAgcmV0cnk6IHJlcXVlc3RDb250cm9sLmVycm9yXG4gICAgICA/IHRyaWdnZXJSZXF1ZXN0XG4gICAgICA6IHBvbGxpbmdDb250cm9sLmZhaWxlZFxuICAgICAgPyB0cmlnZ2VyUG9vbGluZ1xuICAgICAgOiB1bmRlZmluZWQsXG4gICAgLyoqIEluaXRpYXRlcyB0aGUgcmVxdWVzdCBmb2xsb3dlZCBieSB0aGUgcG9vbGluZyBvcGVyYXRpb24gKi9cbiAgICBzdGFydDogKFxuICAgICAgLyoqIEFuIGFyYml0cmFyeSByZXF1ZXN0ICovXG4gICAgICBfcmVxdWVzdE9wZXJhdGlvbjogKCkgPT4gUHJvbWlzZTx2b2lkPixcbiAgICAgIC8qKiBSZXNvbHZlcyB0byBhIGJvb2xlYW4gdGhhdCBpbmRpY2F0ZWQgaWYgaXMgZmluaXNoZWQgKHRydWUpIG9yIG5vdCAoZmFsc2UpICovXG4gICAgICBfcG9vbGluZ09wZXJhdGlvbjogKCkgPT4gUHJvbWlzZTxib29sZWFuPlxuICAgICkgPT4ge1xuICAgICAgcmVxdWVzdE9wZXJhdGlvbi5jdXJyZW50ID0gX3JlcXVlc3RPcGVyYXRpb247XG4gICAgICBwb29saW5nT3BlcmF0aW9uLmN1cnJlbnQgPSBfcG9vbGluZ09wZXJhdGlvbjtcblxuICAgICAgdHJpZ2dlclJlcXVlc3QoKTtcbiAgICB9LFxuICAgIC8qKiBDbGVhciBhbnkgZXJyb3IgdGhhdCBpcyByZWdpc3RlcmVkICovXG4gICAgY2xlYXJFcnJvcjogKCkgPT4ge1xuICAgICAgcmVxdWVzdENvbnRyb2wuc2V0RXJyb3IodW5kZWZpbmVkKTtcbiAgICAgIHBvbGxpbmdDb250cm9sLnNldEZhaWxlZChmYWxzZSk7XG4gICAgfSxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZ0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUFzQyxTQUFBRSx1QkFBQUUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUV0QztBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNlLFNBQVNHLGtCQUFrQkEsQ0FBQSxFQUFHO0VBQzNDLE1BQU1DLGdCQUFnQixHQUFHLElBQUFDLGFBQU0sRUFBc0JDLFNBQVMsQ0FBQztFQUMvRCxNQUFNQyxnQkFBZ0IsR0FBRyxJQUFBRixhQUFNLEVBQXlCQyxTQUFTLENBQUM7RUFDbEUsTUFBTUUsY0FBYyxHQUFHLElBQUFDLHdCQUFlLEVBQUMsQ0FBQztFQUN4QyxNQUFNQyxjQUFjLEdBQUcsSUFBQUMsbUJBQVUsRUFBQyxDQUFDO0VBRW5DLFNBQVNDLGNBQWNBLENBQUEsRUFBRztJQUN4QkosY0FBYyxDQUFDSyxPQUFPLENBQUMsWUFBWTtNQUNqQyxNQUFNVCxnQkFBZ0IsQ0FBQ1UsT0FBTyxDQUFFLENBQUM7TUFDakNDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztFQUNKO0VBRUEsU0FBU0EsY0FBY0EsQ0FBQSxFQUFHO0lBQ3hCTCxjQUFjLENBQUNNLFlBQVksQ0FBQ1QsZ0JBQWdCLENBQUNPLE9BQVEsQ0FBQztFQUN4RDtFQUVBLE9BQU87SUFDTDtJQUNBRyxPQUFPLEVBQUVULGNBQWMsQ0FBQ1MsT0FBTyxJQUFJUCxjQUFjLENBQUNRLFNBQVM7SUFDM0Q7SUFDQUMsS0FBSyxFQUFFLENBQUMsQ0FBQ1gsY0FBYyxDQUFDVyxLQUFLLElBQUksQ0FBQyxDQUFDVCxjQUFjLENBQUNVLE1BQU07SUFDeEQ7SUFDQUMsS0FBSyxFQUFFYixjQUFjLENBQUNXLEtBQUssR0FDdkJQLGNBQWMsR0FDZEYsY0FBYyxDQUFDVSxNQUFNLEdBQ3JCTCxjQUFjLEdBQ2RULFNBQVM7SUFDYjtJQUNBZ0IsS0FBSyxFQUFFQSxDQUVMQyxpQkFBc0MsRUFFdENDLGlCQUF5QyxLQUN0QztNQUNIcEIsZ0JBQWdCLENBQUNVLE9BQU8sR0FBR1MsaUJBQWlCO01BQzVDaEIsZ0JBQWdCLENBQUNPLE9BQU8sR0FBR1UsaUJBQWlCO01BRTVDWixjQUFjLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ0Q7SUFDQWEsVUFBVSxFQUFFQSxDQUFBLEtBQU07TUFDaEJqQixjQUFjLENBQUNrQixRQUFRLENBQUNwQixTQUFTLENBQUM7TUFDbENJLGNBQWMsQ0FBQ2lCLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDakM7RUFDRixDQUFDO0FBQ0gifQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = usePooling;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
/**
|
|
9
|
+
* This callback should return a boolean that indicates if the pooling has finished (true) or it should continue (false)
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A hook that helps repeatedly check for updates at set intervals.
|
|
14
|
+
* It runs a function over and over until it says it's done or stops.
|
|
15
|
+
*/
|
|
16
|
+
function usePooling() {
|
|
17
|
+
let intervalMs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1000;
|
|
18
|
+
let maxPoolingTime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 60000;
|
|
19
|
+
const [intervalId, setIntervalId] = (0, _react.useState)();
|
|
20
|
+
const [failed, setFailed] = (0, _react.useState)(false);
|
|
21
|
+
const cancelPooling = () => {
|
|
22
|
+
if (intervalId) clearInterval(intervalId);
|
|
23
|
+
};
|
|
24
|
+
(0, _react.useEffect)(() => cancelPooling, [intervalId]);
|
|
25
|
+
return {
|
|
26
|
+
failed,
|
|
27
|
+
setFailed,
|
|
28
|
+
isPooling: !!intervalId,
|
|
29
|
+
/**
|
|
30
|
+
* Start checking repeatedly by running your function.
|
|
31
|
+
* Keep going until your function says it's finished or the check stops.
|
|
32
|
+
* @param cb {@link PoolingAction} - Executes and returns if has finished (true) or not (false)
|
|
33
|
+
*/
|
|
34
|
+
startPolling: cb => {
|
|
35
|
+
let poolingCount = 0;
|
|
36
|
+
const maxPoolings = maxPoolingTime !== null ? Math.ceil(maxPoolingTime / intervalMs) : undefined;
|
|
37
|
+
const intervalId = setInterval(async () => {
|
|
38
|
+
poolingCount++;
|
|
39
|
+
const finished = await cb();
|
|
40
|
+
if (finished) setIntervalId(undefined);else if (poolingCount === maxPoolings) {
|
|
41
|
+
setIntervalId(undefined);
|
|
42
|
+
setFailed(true);
|
|
43
|
+
}
|
|
44
|
+
}, intervalMs);
|
|
45
|
+
setIntervalId(intervalId);
|
|
46
|
+
setFailed(false);
|
|
47
|
+
return () => clearInterval(intervalId);
|
|
48
|
+
},
|
|
49
|
+
stop: cancelPooling
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwidXNlUG9vbGluZyIsImludGVydmFsTXMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJtYXhQb29saW5nVGltZSIsImludGVydmFsSWQiLCJzZXRJbnRlcnZhbElkIiwidXNlU3RhdGUiLCJmYWlsZWQiLCJzZXRGYWlsZWQiLCJjYW5jZWxQb29saW5nIiwiY2xlYXJJbnRlcnZhbCIsInVzZUVmZmVjdCIsImlzUG9vbGluZyIsInN0YXJ0UG9sbGluZyIsImNiIiwicG9vbGluZ0NvdW50IiwibWF4UG9vbGluZ3MiLCJNYXRoIiwiY2VpbCIsInNldEludGVydmFsIiwiZmluaXNoZWQiLCJzdG9wIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVBvb2xpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG4vKipcbiAqIFRoaXMgY2FsbGJhY2sgc2hvdWxkIHJldHVybiBhIGJvb2xlYW4gdGhhdCBpbmRpY2F0ZXMgaWYgdGhlIHBvb2xpbmcgaGFzIGZpbmlzaGVkICh0cnVlKSBvciBpdCBzaG91bGQgY29udGludWUgKGZhbHNlKVxuICovXG50eXBlIFBvb2xpbmdBY3Rpb24gPSAoKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4vKipcbiAqIEEgaG9vayB0aGF0IGhlbHBzIHJlcGVhdGVkbHkgY2hlY2sgZm9yIHVwZGF0ZXMgYXQgc2V0IGludGVydmFscy5cbiAqIEl0IHJ1bnMgYSBmdW5jdGlvbiBvdmVyIGFuZCBvdmVyIHVudGlsIGl0IHNheXMgaXQncyBkb25lIG9yIHN0b3BzLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VQb29saW5nKGludGVydmFsTXMgPSAxMDAwLCBtYXhQb29saW5nVGltZTogbnVtYmVyIHwgbnVsbCA9IDYwMDAwKSB7XG4gIGNvbnN0IFtpbnRlcnZhbElkLCBzZXRJbnRlcnZhbElkXSA9IHVzZVN0YXRlPE5vZGVKUy5UaW1lb3V0PigpO1xuICBjb25zdCBbZmFpbGVkLCBzZXRGYWlsZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0IGNhbmNlbFBvb2xpbmcgPSAoKSA9PiB7XG4gICAgaWYgKGludGVydmFsSWQpIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gIH1cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IGNhbmNlbFBvb2xpbmcsXG4gICAgW2ludGVydmFsSWRdXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBmYWlsZWQsXG4gICAgc2V0RmFpbGVkLFxuICAgIGlzUG9vbGluZzogISFpbnRlcnZhbElkLFxuICAgIC8qKlxuICAgICAqIFN0YXJ0IGNoZWNraW5nIHJlcGVhdGVkbHkgYnkgcnVubmluZyB5b3VyIGZ1bmN0aW9uLlxuICAgICAqIEtlZXAgZ29pbmcgdW50aWwgeW91ciBmdW5jdGlvbiBzYXlzIGl0J3MgZmluaXNoZWQgb3IgdGhlIGNoZWNrIHN0b3BzLlxuICAgICAqIEBwYXJhbSBjYiB7QGxpbmsgUG9vbGluZ0FjdGlvbn0gLSBFeGVjdXRlcyBhbmQgcmV0dXJucyBpZiBoYXMgZmluaXNoZWQgKHRydWUpIG9yIG5vdCAoZmFsc2UpXG4gICAgICovXG4gICAgc3RhcnRQb2xsaW5nOiAoY2I6IFBvb2xpbmdBY3Rpb24pID0+IHtcbiAgICAgIGxldCBwb29saW5nQ291bnQgPSAwO1xuICAgICAgY29uc3QgbWF4UG9vbGluZ3MgPSAobWF4UG9vbGluZ1RpbWUgIT09IG51bGwpID8gTWF0aC5jZWlsKG1heFBvb2xpbmdUaW1lIC8gaW50ZXJ2YWxNcykgOiB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBpbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xuICAgICAgICBwb29saW5nQ291bnQrKztcbiAgICAgICAgY29uc3QgZmluaXNoZWQgPSBhd2FpdCBjYigpO1xuICAgICAgICBpZiAoZmluaXNoZWQpIHNldEludGVydmFsSWQodW5kZWZpbmVkKTtcbiAgICAgICAgZWxzZSBpZiAocG9vbGluZ0NvdW50ID09PSBtYXhQb29saW5ncykge1xuICAgICAgICAgIHNldEludGVydmFsSWQodW5kZWZpbmVkKTtcbiAgICAgICAgICBzZXRGYWlsZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sIGludGVydmFsTXMpO1xuICAgICAgc2V0SW50ZXJ2YWxJZChpbnRlcnZhbElkKTtcbiAgICAgIHNldEZhaWxlZChmYWxzZSk7XG4gICAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKVxuICAgIH0sXG4gICAgc3RvcDogY2FuY2VsUG9vbGluZyxcbiAgfTtcbn0iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNlLFNBQVNDLFVBQVVBLENBQUEsRUFBMkQ7RUFBQSxJQUExREMsVUFBVSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxJQUFJO0VBQUEsSUFBRUcsY0FBNkIsR0FBQUgsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztFQUN6RixNQUFNLENBQUNJLFVBQVUsRUFBRUMsYUFBYSxDQUFDLEdBQUcsSUFBQUMsZUFBUSxFQUFpQixDQUFDO0VBQzlELE1BQU0sQ0FBQ0MsTUFBTSxFQUFFQyxTQUFTLENBQUMsR0FBRyxJQUFBRixlQUFRLEVBQVUsS0FBSyxDQUFDO0VBRXBELE1BQU1HLGFBQWEsR0FBR0EsQ0FBQSxLQUFNO0lBQzFCLElBQUlMLFVBQVUsRUFBRU0sYUFBYSxDQUFDTixVQUFVLENBQUM7RUFDM0MsQ0FBQztFQUNELElBQUFPLGdCQUFTLEVBQ1AsTUFBTUYsYUFBYSxFQUNuQixDQUFDTCxVQUFVLENBQ2IsQ0FBQztFQUVELE9BQU87SUFDTEcsTUFBTTtJQUNOQyxTQUFTO0lBQ1RJLFNBQVMsRUFBRSxDQUFDLENBQUNSLFVBQVU7SUFDdkI7QUFDSjtBQUNBO0FBQ0E7QUFDQTtJQUNJUyxZQUFZLEVBQUdDLEVBQWlCLElBQUs7TUFDbkMsSUFBSUMsWUFBWSxHQUFHLENBQUM7TUFDcEIsTUFBTUMsV0FBVyxHQUFJYixjQUFjLEtBQUssSUFBSSxHQUFJYyxJQUFJLENBQUNDLElBQUksQ0FBQ2YsY0FBYyxHQUFHSixVQUFVLENBQUMsR0FBR0csU0FBUztNQUNsRyxNQUFNRSxVQUFVLEdBQUdlLFdBQVcsQ0FBQyxZQUFZO1FBQ3pDSixZQUFZLEVBQUU7UUFDZCxNQUFNSyxRQUFRLEdBQUcsTUFBTU4sRUFBRSxDQUFDLENBQUM7UUFDM0IsSUFBSU0sUUFBUSxFQUFFZixhQUFhLENBQUNILFNBQVMsQ0FBQyxDQUFDLEtBQ2xDLElBQUlhLFlBQVksS0FBS0MsV0FBVyxFQUFFO1VBQ3JDWCxhQUFhLENBQUNILFNBQVMsQ0FBQztVQUN4Qk0sU0FBUyxDQUFDLElBQUksQ0FBQztRQUNqQjtNQUNGLENBQUMsRUFBRVQsVUFBVSxDQUFDO01BQ2RNLGFBQWEsQ0FBQ0QsVUFBVSxDQUFDO01BQ3pCSSxTQUFTLENBQUMsS0FBSyxDQUFDO01BQ2hCLE9BQU8sTUFBTUUsYUFBYSxDQUFDTixVQUFVLENBQUM7SUFDeEMsQ0FBQztJQUNEaUIsSUFBSSxFQUFFWjtFQUNSLENBQUM7QUFDSCJ9
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = useRebound;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
/**
|
|
9
|
+
* This hook adds a prop that you can toggle and returns to initial
|
|
10
|
+
* state after a defined time (usefull for notification)
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* This hook manages a value that automatically resets to its starting point after a set time.
|
|
14
|
+
* It's useful for showing temporary messages like notifications that disappear on their own.
|
|
15
|
+
*/
|
|
16
|
+
function useRebound(initialValue) {
|
|
17
|
+
let timeoutSec = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
18
|
+
const [state, setState] = (0, _react.useState)(initialValue);
|
|
19
|
+
(0, _react.useEffect)(() => {
|
|
20
|
+
if (state !== initialValue) {
|
|
21
|
+
const timeout = setTimeout(() => {
|
|
22
|
+
setState(initialValue);
|
|
23
|
+
}, timeoutSec * 1000);
|
|
24
|
+
return () => clearTimeout(timeout);
|
|
25
|
+
}
|
|
26
|
+
}, [state]);
|
|
27
|
+
return {
|
|
28
|
+
current: state,
|
|
29
|
+
setState
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwidXNlUmVib3VuZCIsImluaXRpYWxWYWx1ZSIsInRpbWVvdXRTZWMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJzdGF0ZSIsInNldFN0YXRlIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsImN1cnJlbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlUmVib3VuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcblxuLyoqXG4gKiBUaGlzIGhvb2sgYWRkcyBhIHByb3AgdGhhdCB5b3UgY2FuIHRvZ2dsZSBhbmQgcmV0dXJucyB0byBpbml0aWFsIFxuICogc3RhdGUgYWZ0ZXIgYSBkZWZpbmVkIHRpbWUgKHVzZWZ1bGwgZm9yIG5vdGlmaWNhdGlvbilcbiAqL1xuLyoqXG4gKiBUaGlzIGhvb2sgbWFuYWdlcyBhIHZhbHVlIHRoYXQgYXV0b21hdGljYWxseSByZXNldHMgdG8gaXRzIHN0YXJ0aW5nIHBvaW50IGFmdGVyIGEgc2V0IHRpbWUuXG4gKiBJdCdzIHVzZWZ1bCBmb3Igc2hvd2luZyB0ZW1wb3JhcnkgbWVzc2FnZXMgbGlrZSBub3RpZmljYXRpb25zIHRoYXQgZGlzYXBwZWFyIG9uIHRoZWlyIG93bi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlUmVib3VuZDxUIGV4dGVuZHMgYW55Pihpbml0aWFsVmFsdWU6IFQsIHRpbWVvdXRTZWM6IG51bWJlciA9IDEpIHtcbiAgICBjb25zdCBbc3RhdGUsIHNldFN0YXRlXSA9IHVzZVN0YXRlPFQ+KGluaXRpYWxWYWx1ZSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChzdGF0ZSAhPT0gaW5pdGlhbFZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0U3RhdGUoaW5pdGlhbFZhbHVlKVxuICAgICAgICAgICAgfSwgdGltZW91dFNlYyAqIDEwMDApO1xuXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgfSwgW3N0YXRlXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY3VycmVudDogc3RhdGUsXG4gICAgICAgIHNldFN0YXRlXG4gICAgfVxufSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNlLFNBQVNDLFVBQVVBLENBQWdCQyxZQUFlLEVBQTBCO0VBQUEsSUFBeEJDLFVBQWtCLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUM7RUFDckYsTUFBTSxDQUFDRyxLQUFLLEVBQUVDLFFBQVEsQ0FBQyxHQUFHLElBQUFDLGVBQVEsRUFBSVAsWUFBWSxDQUFDO0VBRW5ELElBQUFRLGdCQUFTLEVBQUMsTUFBTTtJQUNaLElBQUlILEtBQUssS0FBS0wsWUFBWSxFQUFFO01BQ3hCLE1BQU1TLE9BQU8sR0FBR0MsVUFBVSxDQUFDLE1BQU07UUFDN0JKLFFBQVEsQ0FBQ04sWUFBWSxDQUFDO01BQzFCLENBQUMsRUFBRUMsVUFBVSxHQUFHLElBQUksQ0FBQztNQUVyQixPQUFPLE1BQU1VLFlBQVksQ0FBQ0YsT0FBTyxDQUFDO0lBQ3RDO0VBQ0osQ0FBQyxFQUFFLENBQUNKLEtBQUssQ0FBQyxDQUFDO0VBQ1gsT0FBTztJQUNITyxPQUFPLEVBQUVQLEtBQUs7SUFDZEM7RUFDSixDQUFDO0FBQ0wifQ==
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = useShortIntl;
|
|
7
|
+
exports.isolateMessages = isolateMessages;
|
|
8
|
+
var _reactIntl = require("react-intl");
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
11
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
12
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
14
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
15
|
+
/**
|
|
16
|
+
* A custom hook that provides internationalization utilities.
|
|
17
|
+
* It formats messages and numbers, and includes special features for development mode.
|
|
18
|
+
*/
|
|
19
|
+
function useShortIntl() {
|
|
20
|
+
const intl = (0, _reactIntl.useIntl)();
|
|
21
|
+
const {
|
|
22
|
+
formatMessage,
|
|
23
|
+
formatNumber
|
|
24
|
+
} = intl;
|
|
25
|
+
const [devMode, setDevMode] = (0, _react.useState)(false);
|
|
26
|
+
(0, _react.useEffect)(() => {
|
|
27
|
+
if (process.env.NODE_ENV === "development") {
|
|
28
|
+
const keyDownDetect = ev => {
|
|
29
|
+
if (ev.key === "i" && ev.ctrlKey) {
|
|
30
|
+
const keyUpDetect = ev => {
|
|
31
|
+
if (ev.key === "i") {
|
|
32
|
+
setDevMode(false);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
setDevMode(true);
|
|
36
|
+
window.addEventListener("keyup", keyUpDetect);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
window.addEventListener("keydown", keyDownDetect);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
return _objectSpread(_objectSpread({}, intl), {}, {
|
|
43
|
+
txt: (id, params) => {
|
|
44
|
+
return devMode ? id : formatMessage({
|
|
45
|
+
id
|
|
46
|
+
}, params);
|
|
47
|
+
},
|
|
48
|
+
formatToDoubleDecimal(val) {
|
|
49
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
50
|
+
return formatNumber(val, _objectSpread({
|
|
51
|
+
minimumFractionDigits: 2,
|
|
52
|
+
maximumFractionDigits: 2
|
|
53
|
+
}, options));
|
|
54
|
+
},
|
|
55
|
+
formatBigNumber(bigNumber, options) {
|
|
56
|
+
const {
|
|
57
|
+
decimalSeparator
|
|
58
|
+
} = intl.formatNumberToParts(1000.1).reduce((r, a) => {
|
|
59
|
+
if (a.type === "decimal") return _objectSpread(_objectSpread({}, r), {}, {
|
|
60
|
+
decimalSeparator: a.value
|
|
61
|
+
});
|
|
62
|
+
if (a.type === "group") return _objectSpread(_objectSpread({}, r), {}, {
|
|
63
|
+
thousandSeparator: a.value
|
|
64
|
+
});
|
|
65
|
+
return r;
|
|
66
|
+
}, {});
|
|
67
|
+
const integerPart = bigNumber.integerValue(1);
|
|
68
|
+
const integer = intl.formatNumber(integerPart.toNumber(), options);
|
|
69
|
+
const decimals = bigNumber.minus(integerPart).decimalPlaces((options === null || options === void 0 ? void 0 : options.maximumFractionDigits) || bigNumber.decimalPlaces(), 5).toString().replace("0.", "");
|
|
70
|
+
return "".concat(integer).concat(decimals !== "0" ? "".concat(decimalSeparator).concat(decimals) : "");
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function isolateMessages(preffix, strings) {
|
|
75
|
+
return Object.entries(strings).reduce((r, _ref) => {
|
|
76
|
+
let [k, v] = _ref;
|
|
77
|
+
return _objectSpread(_objectSpread({}, r), {}, {
|
|
78
|
+
["".concat(preffix, ".").concat(k)]: v
|
|
79
|
+
});
|
|
80
|
+
}, {});
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RJbnRsIiwicmVxdWlyZSIsIl9yZWFjdCIsIm93bktleXMiLCJvYmplY3QiLCJlbnVtZXJhYmxlT25seSIsImtleXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzeW1ib2xzIiwiZmlsdGVyIiwic3ltIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwiZm9yRWFjaCIsImtleSIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJvYmoiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJjYWxsIiwiVHlwZUVycm9yIiwiTnVtYmVyIiwidXNlU2hvcnRJbnRsIiwiaW50bCIsInVzZUludGwiLCJmb3JtYXRNZXNzYWdlIiwiZm9ybWF0TnVtYmVyIiwiZGV2TW9kZSIsInNldERldk1vZGUiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImtleURvd25EZXRlY3QiLCJldiIsImN0cmxLZXkiLCJrZXlVcERldGVjdCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0eHQiLCJpZCIsInBhcmFtcyIsImZvcm1hdFRvRG91YmxlRGVjaW1hbCIsInZhbCIsIm9wdGlvbnMiLCJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiLCJtYXhpbXVtRnJhY3Rpb25EaWdpdHMiLCJmb3JtYXRCaWdOdW1iZXIiLCJiaWdOdW1iZXIiLCJkZWNpbWFsU2VwYXJhdG9yIiwiZm9ybWF0TnVtYmVyVG9QYXJ0cyIsInJlZHVjZSIsInIiLCJhIiwidHlwZSIsInRob3VzYW5kU2VwYXJhdG9yIiwiaW50ZWdlclBhcnQiLCJpbnRlZ2VyVmFsdWUiLCJpbnRlZ2VyIiwidG9OdW1iZXIiLCJkZWNpbWFscyIsIm1pbnVzIiwiZGVjaW1hbFBsYWNlcyIsInRvU3RyaW5nIiwicmVwbGFjZSIsImNvbmNhdCIsImlzb2xhdGVNZXNzYWdlcyIsInByZWZmaXgiLCJzdHJpbmdzIiwiZW50cmllcyIsIl9yZWYiLCJrIiwidiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTaG9ydEludGwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50bEZvcm1hdHRlcnMsIEludGxTaGFwZSwgdXNlSW50bCB9IGZyb20gXCJyZWFjdC1pbnRsXCI7XG5pbXBvcnQgeyBCaWdOdW1iZXIgfSBmcm9tIFwiYmlnbnVtYmVyLmpzXCI7XG5pbXBvcnQgeyBSZWFjdEVsZW1lbnQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZyb21PbmVQZXJjZW50VXRpbGl0eSB9IGZyb20gXCIuLi90eXBlLXV0aWxzXCI7XG5cbi8qKlxuICogQSBjdXN0b20gaG9vayB0aGF0IHByb3ZpZGVzIGludGVybmF0aW9uYWxpemF0aW9uIHV0aWxpdGllcy5cbiAqIEl0IGZvcm1hdHMgbWVzc2FnZXMgYW5kIG51bWJlcnMsIGFuZCBpbmNsdWRlcyBzcGVjaWFsIGZlYXR1cmVzIGZvciBkZXZlbG9wbWVudCBtb2RlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VTaG9ydEludGwoKTogSW50bFNoYXBlICYge1xuICB0eHQ6IDxSIGV4dGVuZHMgUmV0dXJuVHlwZTxJbnRsRm9ybWF0dGVyc1tcImZvcm1hdE1lc3NhZ2VcIl0+ID0gc3RyaW5nPihcbiAgICBpZDogRnJvbU9uZVBlcmNlbnRVdGlsaXR5PFwiSW50bElkc1wiPixcbiAgICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBSZWFjdEVsZW1lbnQ+XG4gICkgPT4gUjtcbiAgZm9ybWF0VG9Eb3VibGVEZWNpbWFsKFxuICAgIG51bWJlcjogbnVtYmVyLFxuICAgIG9wdGlvbnM/OiBQYXJhbWV0ZXJzPEludGxGb3JtYXR0ZXJzW1wiZm9ybWF0TnVtYmVyXCJdPlsxXVxuICApOiBzdHJpbmc7XG4gIGZvcm1hdEJpZ051bWJlcihcbiAgICBudW1iZXI6IEJpZ051bWJlcixcbiAgICBvcHRpb25zPzogUGFyYW1ldGVyczxJbnRsRm9ybWF0dGVyc1tcImZvcm1hdE51bWJlclwiXT5bMV1cbiAgKTogc3RyaW5nO1xufSB7XG4gIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gIGNvbnN0IHsgZm9ybWF0TWVzc2FnZSwgZm9ybWF0TnVtYmVyIH0gPSBpbnRsO1xuICBjb25zdCBbZGV2TW9kZSwgc2V0RGV2TW9kZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgY29uc3Qga2V5RG93bkRldGVjdCA9IChldjogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXYua2V5ID09PSBcImlcIiAmJiBldi5jdHJsS2V5KSB7XG4gICAgICAgICAgY29uc3Qga2V5VXBEZXRlY3QgPSAoZXY6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldi5rZXkgPT09IFwiaVwiKSB7XG4gICAgICAgICAgICAgIHNldERldk1vZGUoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgc2V0RGV2TW9kZSh0cnVlKTtcbiAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsIGtleVVwRGV0ZWN0KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBrZXlEb3duRGV0ZWN0KTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uaW50bCxcbiAgICB0eHQ6IChpZCwgcGFyYW1zKSA9PiB7XG4gICAgICByZXR1cm4gZGV2TW9kZSA/IGlkIDogKGZvcm1hdE1lc3NhZ2UoeyBpZCB9LCBwYXJhbXMgYXMgYW55KSBhcyBhbnkpO1xuICAgIH0sXG4gICAgZm9ybWF0VG9Eb3VibGVEZWNpbWFsKHZhbDogbnVtYmVyLCBvcHRpb25zID0ge30pIHtcbiAgICAgIHJldHVybiBmb3JtYXROdW1iZXIodmFsLCB7XG4gICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMixcbiAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBmb3JtYXRCaWdOdW1iZXIoYmlnTnVtYmVyLCBvcHRpb25zKSB7XG4gICAgICBjb25zdCB7IGRlY2ltYWxTZXBhcmF0b3IgfSA9IGludGxcbiAgICAgICAgLmZvcm1hdE51bWJlclRvUGFydHMoMTAwMC4xKVxuICAgICAgICAucmVkdWNlKChyLCBhKSA9PiB7XG4gICAgICAgICAgaWYgKGEudHlwZSA9PT0gXCJkZWNpbWFsXCIpIHJldHVybiB7IC4uLnIsIGRlY2ltYWxTZXBhcmF0b3I6IGEudmFsdWUgfTtcbiAgICAgICAgICBpZiAoYS50eXBlID09PSBcImdyb3VwXCIpIHJldHVybiB7IC4uLnIsIHRob3VzYW5kU2VwYXJhdG9yOiBhLnZhbHVlIH07XG4gICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0sIHt9IGFzIHsgZGVjaW1hbFNlcGFyYXRvcjogc3RyaW5nOyB0aG91c2FuZFNlcGFyYXRvcjogc3RyaW5nIH0pO1xuXG4gICAgICBjb25zdCBpbnRlZ2VyUGFydCA9IGJpZ051bWJlci5pbnRlZ2VyVmFsdWUoMSk7XG4gICAgICBjb25zdCBpbnRlZ2VyID0gaW50bC5mb3JtYXROdW1iZXIoaW50ZWdlclBhcnQudG9OdW1iZXIoKSwgb3B0aW9ucyk7XG4gICAgICBjb25zdCBkZWNpbWFscyA9IGJpZ051bWJlclxuICAgICAgICAubWludXMoaW50ZWdlclBhcnQpXG4gICAgICAgIC5kZWNpbWFsUGxhY2VzKFxuICAgICAgICAgIG9wdGlvbnM/Lm1heGltdW1GcmFjdGlvbkRpZ2l0cyB8fCBiaWdOdW1iZXIuZGVjaW1hbFBsYWNlcygpISxcbiAgICAgICAgICA1XG4gICAgICAgIClcbiAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgLnJlcGxhY2UoXCIwLlwiLCBcIlwiKTtcbiAgICAgIHJldHVybiBgJHtpbnRlZ2VyfSR7ZGVjaW1hbHMgIT09IFwiMFwiID8gYCR7ZGVjaW1hbFNlcGFyYXRvcn0ke2RlY2ltYWxzfWAgOiBcIlwiXG4gICAgICAgIH1gO1xuICAgIH0sXG4gIH07XG59XG5cbnR5cGUgU3RyTWFwID0ge1xuICBbczogc3RyaW5nXTogc3RyaW5nO1xufTtcblxudHlwZSBJc29sYXRlZE1lc3NhZ2VzPEEgZXh0ZW5kcyBzdHJpbmcsIE0gZXh0ZW5kcyBTdHJNYXAsIFAgZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICBbczEgaW4gYCR7UH0uJHtrZXlvZiBNIGV4dGVuZHMgc3RyaW5nID8ga2V5b2YgTSA6IFwiXCJ9YF06IE1ba2V5b2YgTV07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNvbGF0ZU1lc3NhZ2VzPEEgZXh0ZW5kcyBzdHJpbmcsIE0gZXh0ZW5kcyBTdHJNYXA+KFxuICBwcmVmZml4OiBBLFxuICBzdHJpbmdzOiBNXG4pIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHN0cmluZ3MpLnJlZHVjZShcbiAgICAociwgW2ssIHZdKSA9PiAoe1xuICAgICAgLi4ucixcbiAgICAgIFtgJHtwcmVmZml4fS4ke2t9YF06IHYsXG4gICAgfSksXG4gICAge30gYXMgSXNvbGF0ZWRNZXNzYWdlczxBLCBNLCB0eXBlb2YgcHJlZmZpeD5cbiAgKTtcbn0iXSwibWFwcGluZ3MiOiI7Ozs7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
|