@mantine/hooks 7.0.0-alpha.9 → 7.0.0-beta.1
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/cjs/use-callback-ref/use-callback-ref.js +8 -5
- package/cjs/use-callback-ref/use-callback-ref.js.map +1 -1
- package/cjs/use-click-outside/use-click-outside.js +19 -21
- package/cjs/use-click-outside/use-click-outside.js.map +1 -1
- package/cjs/use-clipboard/use-clipboard.js +22 -26
- package/cjs/use-clipboard/use-clipboard.js.map +1 -1
- package/cjs/use-color-scheme/use-color-scheme.js +1 -3
- package/cjs/use-color-scheme/use-color-scheme.js.map +1 -1
- package/cjs/use-counter/use-counter.js +25 -9
- package/cjs/use-counter/use-counter.js.map +1 -1
- package/cjs/use-debounced-callback/use-debounced-callback.js +7 -7
- package/cjs/use-debounced-callback/use-debounced-callback.js.map +1 -1
- package/cjs/use-debounced-state/use-debounced-state.js +18 -19
- package/cjs/use-debounced-state/use-debounced-state.js.map +1 -1
- package/cjs/use-debounced-value/use-debounced-value.js +24 -25
- package/cjs/use-debounced-value/use-debounced-value.js.map +1 -1
- package/cjs/use-did-update/use-did-update.js +14 -11
- package/cjs/use-did-update/use-did-update.js.map +1 -1
- package/cjs/use-disclosure/use-disclosure.js +24 -24
- package/cjs/use-disclosure/use-disclosure.js.map +1 -1
- package/cjs/use-document-title/use-document-title.js +5 -5
- package/cjs/use-document-title/use-document-title.js.map +1 -1
- package/cjs/use-document-visibility/use-document-visibility.js +7 -7
- package/cjs/use-document-visibility/use-document-visibility.js.map +1 -1
- package/cjs/use-event-listener/use-event-listener.js +12 -9
- package/cjs/use-event-listener/use-event-listener.js.map +1 -1
- package/cjs/use-eye-dropper/use-eye-dropper.js +15 -12
- package/cjs/use-eye-dropper/use-eye-dropper.js.map +1 -1
- package/cjs/use-favicon/use-favicon.js +25 -23
- package/cjs/use-favicon/use-favicon.js.map +1 -1
- package/cjs/use-focus-return/use-focus-return.js +25 -29
- package/cjs/use-focus-return/use-focus-return.js.map +1 -1
- package/cjs/use-focus-trap/create-aria-hider.js +36 -36
- package/cjs/use-focus-trap/create-aria-hider.js.map +1 -1
- package/cjs/use-focus-trap/scope-tab.js +15 -15
- package/cjs/use-focus-trap/scope-tab.js.map +1 -1
- package/cjs/use-focus-trap/tabbable.js +33 -35
- package/cjs/use-focus-trap/tabbable.js.map +1 -1
- package/cjs/use-focus-trap/use-focus-trap.js +67 -67
- package/cjs/use-focus-trap/use-focus-trap.js.map +1 -1
- package/cjs/use-focus-within/use-focus-within.js +40 -37
- package/cjs/use-focus-within/use-focus-within.js.map +1 -1
- package/cjs/use-force-update/use-force-update.js +3 -3
- package/cjs/use-force-update/use-force-update.js.map +1 -1
- package/cjs/use-fullscreen/use-fullscreen.js +79 -83
- package/cjs/use-fullscreen/use-fullscreen.js.map +1 -1
- package/cjs/use-hash/use-hash.js +16 -16
- package/cjs/use-hash/use-hash.js.map +1 -1
- package/cjs/use-headroom/use-headroom.js +23 -23
- package/cjs/use-headroom/use-headroom.js.map +1 -1
- package/cjs/use-hotkeys/parse-hotkey.js +64 -49
- package/cjs/use-hotkeys/parse-hotkey.js.map +1 -1
- package/cjs/use-hotkeys/use-hotkeys.js +21 -22
- package/cjs/use-hotkeys/use-hotkeys.js.map +1 -1
- package/cjs/use-hover/use-hover.js +17 -17
- package/cjs/use-hover/use-hover.js.map +1 -1
- package/cjs/use-id/use-id.js +12 -12
- package/cjs/use-id/use-id.js.map +1 -1
- package/cjs/use-id/use-react-id.js +3 -3
- package/cjs/use-id/use-react-id.js.map +1 -1
- package/cjs/use-idle/use-idle.js +42 -26
- package/cjs/use-idle/use-idle.js.map +1 -1
- package/cjs/use-input-state/use-input-state.js +18 -22
- package/cjs/use-input-state/use-input-state.js.map +1 -1
- package/cjs/use-intersection/use-intersection.js +20 -17
- package/cjs/use-intersection/use-intersection.js.map +1 -1
- package/cjs/use-interval/use-interval.js +27 -28
- package/cjs/use-interval/use-interval.js.map +1 -1
- package/cjs/use-isomorphic-effect/use-isomorphic-effect.js +1 -3
- package/cjs/use-isomorphic-effect/use-isomorphic-effect.js.map +1 -1
- package/cjs/use-list-state/use-list-state.js +76 -55
- package/cjs/use-list-state/use-list-state.js.map +1 -1
- package/cjs/use-local-storage/create-storage.js +79 -71
- package/cjs/use-local-storage/create-storage.js.map +1 -1
- package/cjs/use-local-storage/use-local-storage.js +1 -1
- package/cjs/use-local-storage/use-local-storage.js.map +1 -1
- package/cjs/use-logger/use-logger.js +8 -9
- package/cjs/use-logger/use-logger.js.map +1 -1
- package/cjs/use-media-query/use-media-query.js +28 -31
- package/cjs/use-media-query/use-media-query.js.map +1 -1
- package/cjs/use-merged-ref/use-merged-ref.js +9 -11
- package/cjs/use-merged-ref/use-merged-ref.js.map +1 -1
- package/cjs/use-mouse/use-mouse.js +46 -25
- package/cjs/use-mouse/use-mouse.js.map +1 -1
- package/cjs/use-move/use-move.js +87 -88
- package/cjs/use-move/use-move.js.map +1 -1
- package/cjs/use-network/use-network.js +51 -32
- package/cjs/use-network/use-network.js.map +1 -1
- package/cjs/use-os/use-os.js +30 -30
- package/cjs/use-os/use-os.js.map +1 -1
- package/cjs/use-page-leave/use-page-leave.js +4 -4
- package/cjs/use-page-leave/use-page-leave.js.map +1 -1
- package/cjs/use-pagination/use-pagination.js +63 -58
- package/cjs/use-pagination/use-pagination.js.map +1 -1
- package/cjs/use-previous/use-previous.js +5 -5
- package/cjs/use-previous/use-previous.js.map +1 -1
- package/cjs/use-queue/use-queue.js +24 -24
- package/cjs/use-queue/use-queue.js.map +1 -1
- package/cjs/use-reduced-motion/use-reduced-motion.js +1 -1
- package/cjs/use-reduced-motion/use-reduced-motion.js.map +1 -1
- package/cjs/use-resize-observer/use-resize-observer.js +39 -38
- package/cjs/use-resize-observer/use-resize-observer.js.map +1 -1
- package/cjs/use-scroll-into-view/use-scroll-into-view.js +78 -75
- package/cjs/use-scroll-into-view/use-scroll-into-view.js.map +1 -1
- package/cjs/use-scroll-into-view/utils/ease-in-out-quad.js +1 -1
- package/cjs/use-scroll-into-view/utils/ease-in-out-quad.js.map +1 -1
- package/cjs/use-scroll-into-view/utils/get-relative-position.js +53 -46
- package/cjs/use-scroll-into-view/utils/get-relative-position.js.map +1 -1
- package/cjs/use-scroll-into-view/utils/get-scroll-start.js +9 -10
- package/cjs/use-scroll-into-view/utils/get-scroll-start.js.map +1 -1
- package/cjs/use-scroll-into-view/utils/set-scroll-param.js +11 -14
- package/cjs/use-scroll-into-view/utils/set-scroll-param.js.map +1 -1
- package/cjs/use-session-storage/use-session-storage.js +1 -1
- package/cjs/use-session-storage/use-session-storage.js.map +1 -1
- package/cjs/use-set-state/use-set-state.js +22 -3
- package/cjs/use-set-state/use-set-state.js.map +1 -1
- package/cjs/use-shallow-effect/use-shallow-effect.js +22 -22
- package/cjs/use-shallow-effect/use-shallow-effect.js.map +1 -1
- package/cjs/use-text-selection/use-text-selection.js +12 -12
- package/cjs/use-text-selection/use-text-selection.js.map +1 -1
- package/cjs/use-timeout/use-timeout.js +22 -22
- package/cjs/use-timeout/use-timeout.js.map +1 -1
- package/cjs/use-toggle/use-toggle.js +6 -6
- package/cjs/use-toggle/use-toggle.js.map +1 -1
- package/cjs/use-uncontrolled/use-uncontrolled.js +18 -10
- package/cjs/use-uncontrolled/use-uncontrolled.js.map +1 -1
- package/cjs/use-validated-state/use-validated-state.js +17 -14
- package/cjs/use-validated-state/use-validated-state.js.map +1 -1
- package/cjs/use-viewport-size/use-viewport-size.js +12 -12
- package/cjs/use-viewport-size/use-viewport-size.js.map +1 -1
- package/cjs/use-window-event/use-window-event.js +4 -4
- package/cjs/use-window-event/use-window-event.js.map +1 -1
- package/cjs/use-window-scroll/use-window-scroll.js +17 -19
- package/cjs/use-window-scroll/use-window-scroll.js.map +1 -1
- package/cjs/utils/clamp/clamp.js +10 -1
- package/cjs/utils/clamp/clamp.js.map +1 -1
- package/cjs/utils/lower-first/lower-first.js +1 -1
- package/cjs/utils/lower-first/lower-first.js.map +1 -1
- package/cjs/utils/random-id/random-id.js +1 -1
- package/cjs/utils/random-id/random-id.js.map +1 -1
- package/cjs/utils/range/range.js +2 -2
- package/cjs/utils/range/range.js.map +1 -1
- package/cjs/utils/shallow-equal/shallow-equal.js +19 -19
- package/cjs/utils/shallow-equal/shallow-equal.js.map +1 -1
- package/cjs/utils/upper-first/upper-first.js +1 -1
- package/cjs/utils/upper-first/upper-first.js.map +1 -1
- package/esm/use-callback-ref/use-callback-ref.js +8 -5
- package/esm/use-callback-ref/use-callback-ref.js.map +1 -1
- package/esm/use-click-outside/use-click-outside.js +19 -21
- package/esm/use-click-outside/use-click-outside.js.map +1 -1
- package/esm/use-clipboard/use-clipboard.js +22 -26
- package/esm/use-clipboard/use-clipboard.js.map +1 -1
- package/esm/use-color-scheme/use-color-scheme.js +1 -3
- package/esm/use-color-scheme/use-color-scheme.js.map +1 -1
- package/esm/use-counter/use-counter.js +25 -9
- package/esm/use-counter/use-counter.js.map +1 -1
- package/esm/use-debounced-callback/use-debounced-callback.js +7 -7
- package/esm/use-debounced-callback/use-debounced-callback.js.map +1 -1
- package/esm/use-debounced-state/use-debounced-state.js +18 -19
- package/esm/use-debounced-state/use-debounced-state.js.map +1 -1
- package/esm/use-debounced-value/use-debounced-value.js +24 -25
- package/esm/use-debounced-value/use-debounced-value.js.map +1 -1
- package/esm/use-did-update/use-did-update.js +14 -11
- package/esm/use-did-update/use-did-update.js.map +1 -1
- package/esm/use-disclosure/use-disclosure.js +24 -24
- package/esm/use-disclosure/use-disclosure.js.map +1 -1
- package/esm/use-document-title/use-document-title.js +5 -5
- package/esm/use-document-title/use-document-title.js.map +1 -1
- package/esm/use-document-visibility/use-document-visibility.js +7 -7
- package/esm/use-document-visibility/use-document-visibility.js.map +1 -1
- package/esm/use-event-listener/use-event-listener.js +12 -9
- package/esm/use-event-listener/use-event-listener.js.map +1 -1
- package/esm/use-eye-dropper/use-eye-dropper.js +15 -12
- package/esm/use-eye-dropper/use-eye-dropper.js.map +1 -1
- package/esm/use-favicon/use-favicon.js +25 -23
- package/esm/use-favicon/use-favicon.js.map +1 -1
- package/esm/use-focus-return/use-focus-return.js +25 -29
- package/esm/use-focus-return/use-focus-return.js.map +1 -1
- package/esm/use-focus-trap/create-aria-hider.js +36 -36
- package/esm/use-focus-trap/create-aria-hider.js.map +1 -1
- package/esm/use-focus-trap/scope-tab.js +15 -15
- package/esm/use-focus-trap/scope-tab.js.map +1 -1
- package/esm/use-focus-trap/tabbable.js +33 -35
- package/esm/use-focus-trap/tabbable.js.map +1 -1
- package/esm/use-focus-trap/use-focus-trap.js +67 -67
- package/esm/use-focus-trap/use-focus-trap.js.map +1 -1
- package/esm/use-focus-within/use-focus-within.js +40 -37
- package/esm/use-focus-within/use-focus-within.js.map +1 -1
- package/esm/use-force-update/use-force-update.js +3 -3
- package/esm/use-force-update/use-force-update.js.map +1 -1
- package/esm/use-fullscreen/use-fullscreen.js +79 -83
- package/esm/use-fullscreen/use-fullscreen.js.map +1 -1
- package/esm/use-hash/use-hash.js +16 -16
- package/esm/use-hash/use-hash.js.map +1 -1
- package/esm/use-headroom/use-headroom.js +23 -23
- package/esm/use-headroom/use-headroom.js.map +1 -1
- package/esm/use-hotkeys/parse-hotkey.js +64 -49
- package/esm/use-hotkeys/parse-hotkey.js.map +1 -1
- package/esm/use-hotkeys/use-hotkeys.js +21 -22
- package/esm/use-hotkeys/use-hotkeys.js.map +1 -1
- package/esm/use-hover/use-hover.js +17 -17
- package/esm/use-hover/use-hover.js.map +1 -1
- package/esm/use-id/use-id.js +12 -12
- package/esm/use-id/use-id.js.map +1 -1
- package/esm/use-id/use-react-id.js +3 -3
- package/esm/use-id/use-react-id.js.map +1 -1
- package/esm/use-idle/use-idle.js +42 -26
- package/esm/use-idle/use-idle.js.map +1 -1
- package/esm/use-input-state/use-input-state.js +18 -22
- package/esm/use-input-state/use-input-state.js.map +1 -1
- package/esm/use-intersection/use-intersection.js +20 -17
- package/esm/use-intersection/use-intersection.js.map +1 -1
- package/esm/use-interval/use-interval.js +27 -28
- package/esm/use-interval/use-interval.js.map +1 -1
- package/esm/use-isomorphic-effect/use-isomorphic-effect.js +1 -3
- package/esm/use-isomorphic-effect/use-isomorphic-effect.js.map +1 -1
- package/esm/use-list-state/use-list-state.js +76 -55
- package/esm/use-list-state/use-list-state.js.map +1 -1
- package/esm/use-local-storage/create-storage.js +79 -71
- package/esm/use-local-storage/create-storage.js.map +1 -1
- package/esm/use-local-storage/use-local-storage.js +1 -1
- package/esm/use-local-storage/use-local-storage.js.map +1 -1
- package/esm/use-logger/use-logger.js +8 -9
- package/esm/use-logger/use-logger.js.map +1 -1
- package/esm/use-media-query/use-media-query.js +28 -31
- package/esm/use-media-query/use-media-query.js.map +1 -1
- package/esm/use-merged-ref/use-merged-ref.js +9 -11
- package/esm/use-merged-ref/use-merged-ref.js.map +1 -1
- package/esm/use-mouse/use-mouse.js +46 -25
- package/esm/use-mouse/use-mouse.js.map +1 -1
- package/esm/use-move/use-move.js +87 -88
- package/esm/use-move/use-move.js.map +1 -1
- package/esm/use-network/use-network.js +51 -32
- package/esm/use-network/use-network.js.map +1 -1
- package/esm/use-os/use-os.js +30 -30
- package/esm/use-os/use-os.js.map +1 -1
- package/esm/use-page-leave/use-page-leave.js +4 -4
- package/esm/use-page-leave/use-page-leave.js.map +1 -1
- package/esm/use-pagination/use-pagination.js +63 -58
- package/esm/use-pagination/use-pagination.js.map +1 -1
- package/esm/use-previous/use-previous.js +5 -5
- package/esm/use-previous/use-previous.js.map +1 -1
- package/esm/use-queue/use-queue.js +24 -24
- package/esm/use-queue/use-queue.js.map +1 -1
- package/esm/use-reduced-motion/use-reduced-motion.js +1 -1
- package/esm/use-reduced-motion/use-reduced-motion.js.map +1 -1
- package/esm/use-resize-observer/use-resize-observer.js +39 -38
- package/esm/use-resize-observer/use-resize-observer.js.map +1 -1
- package/esm/use-scroll-into-view/use-scroll-into-view.js +78 -75
- package/esm/use-scroll-into-view/use-scroll-into-view.js.map +1 -1
- package/esm/use-scroll-into-view/utils/ease-in-out-quad.js +1 -1
- package/esm/use-scroll-into-view/utils/ease-in-out-quad.js.map +1 -1
- package/esm/use-scroll-into-view/utils/get-relative-position.js +53 -46
- package/esm/use-scroll-into-view/utils/get-relative-position.js.map +1 -1
- package/esm/use-scroll-into-view/utils/get-scroll-start.js +9 -10
- package/esm/use-scroll-into-view/utils/get-scroll-start.js.map +1 -1
- package/esm/use-scroll-into-view/utils/set-scroll-param.js +11 -14
- package/esm/use-scroll-into-view/utils/set-scroll-param.js.map +1 -1
- package/esm/use-session-storage/use-session-storage.js +1 -1
- package/esm/use-session-storage/use-session-storage.js.map +1 -1
- package/esm/use-set-state/use-set-state.js +22 -3
- package/esm/use-set-state/use-set-state.js.map +1 -1
- package/esm/use-shallow-effect/use-shallow-effect.js +22 -22
- package/esm/use-shallow-effect/use-shallow-effect.js.map +1 -1
- package/esm/use-text-selection/use-text-selection.js +12 -12
- package/esm/use-text-selection/use-text-selection.js.map +1 -1
- package/esm/use-timeout/use-timeout.js +22 -22
- package/esm/use-timeout/use-timeout.js.map +1 -1
- package/esm/use-toggle/use-toggle.js +6 -6
- package/esm/use-toggle/use-toggle.js.map +1 -1
- package/esm/use-uncontrolled/use-uncontrolled.js +18 -10
- package/esm/use-uncontrolled/use-uncontrolled.js.map +1 -1
- package/esm/use-validated-state/use-validated-state.js +17 -14
- package/esm/use-validated-state/use-validated-state.js.map +1 -1
- package/esm/use-viewport-size/use-viewport-size.js +12 -12
- package/esm/use-viewport-size/use-viewport-size.js.map +1 -1
- package/esm/use-window-event/use-window-event.js +4 -4
- package/esm/use-window-event/use-window-event.js.map +1 -1
- package/esm/use-window-scroll/use-window-scroll.js +17 -19
- package/esm/use-window-scroll/use-window-scroll.js.map +1 -1
- package/esm/utils/clamp/clamp.js +10 -1
- package/esm/utils/clamp/clamp.js.map +1 -1
- package/esm/utils/lower-first/lower-first.js +1 -1
- package/esm/utils/lower-first/lower-first.js.map +1 -1
- package/esm/utils/random-id/random-id.js +1 -1
- package/esm/utils/random-id/random-id.js.map +1 -1
- package/esm/utils/range/range.js +2 -2
- package/esm/utils/range/range.js.map +1 -1
- package/esm/utils/shallow-equal/shallow-equal.js +19 -19
- package/esm/utils/shallow-equal/shallow-equal.js.map +1 -1
- package/esm/utils/upper-first/upper-first.js +1 -1
- package/esm/utils/upper-first/upper-first.js.map +1 -1
- package/lib/use-hover/use-hover.d.ts +1 -0
- package/lib/use-mouse/use-mouse.d.ts +1 -0
- package/lib/use-move/use-move.d.ts +2 -1
- package/lib/use-scroll-into-view/use-scroll-into-view.d.ts +1 -0
- package/lib/utils/clamp/clamp.d.ts +1 -1
- package/package.json +5 -4
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
|
|
7
7
|
function usePageLeave(onPageLeave) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
React.useEffect(() => {
|
|
9
|
+
document.documentElement.addEventListener("mouseleave", onPageLeave);
|
|
10
|
+
return () => document.documentElement.removeEventListener("mouseleave", onPageLeave);
|
|
11
|
+
}, []);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
exports.usePageLeave = usePageLeave;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-page-leave.js","sources":["../../src/use-page-leave/use-page-leave.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nexport function usePageLeave(onPageLeave: () => void) {\n useEffect(() => {\n document.documentElement.addEventListener('mouseleave', onPageLeave);\n return () => document.documentElement.removeEventListener('mouseleave', onPageLeave);\n }, []);\n}\n"],"names":["useEffect"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"use-page-leave.js","sources":["../../src/use-page-leave/use-page-leave.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nexport function usePageLeave(onPageLeave: () => void) {\n useEffect(() => {\n document.documentElement.addEventListener('mouseleave', onPageLeave);\n return () => document.documentElement.removeEventListener('mouseleave', onPageLeave);\n }, []);\n}\n"],"names":["useEffect"],"mappings":";;;;;;AACO,SAAS,YAAY,CAAC,WAAW,EAAE;AAC1C,EAAEA,eAAS,CAAC,MAAM;AAClB,IAAI,QAAQ,CAAC,eAAe,CAAC,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AACzE,IAAI,OAAO,MAAM,QAAQ,CAAC,eAAe,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AACzF,GAAG,EAAE,EAAE,CAAC,CAAC;AACT;;;;"}
|
|
@@ -6,64 +6,69 @@ var React = require('react');
|
|
|
6
6
|
var useUncontrolled = require('../use-uncontrolled/use-uncontrolled.js');
|
|
7
7
|
var range = require('../utils/range/range.js');
|
|
8
8
|
|
|
9
|
-
const DOTS =
|
|
10
|
-
function usePagination({
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
9
|
+
const DOTS = "dots";
|
|
10
|
+
function usePagination({
|
|
11
|
+
total,
|
|
12
|
+
siblings = 1,
|
|
13
|
+
boundaries = 1,
|
|
14
|
+
page,
|
|
15
|
+
initialPage = 1,
|
|
16
|
+
onChange
|
|
17
|
+
}) {
|
|
18
|
+
const _total = Math.max(Math.trunc(total), 0);
|
|
19
|
+
const [activePage, setActivePage] = useUncontrolled.useUncontrolled({
|
|
20
|
+
value: page,
|
|
21
|
+
onChange,
|
|
22
|
+
defaultValue: initialPage,
|
|
23
|
+
finalValue: initialPage
|
|
24
|
+
});
|
|
25
|
+
const setPage = (pageNumber) => {
|
|
26
|
+
if (pageNumber <= 0) {
|
|
27
|
+
setActivePage(1);
|
|
28
|
+
} else if (pageNumber > _total) {
|
|
29
|
+
setActivePage(_total);
|
|
30
|
+
} else {
|
|
31
|
+
setActivePage(pageNumber);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const next = () => setPage(activePage + 1);
|
|
35
|
+
const previous = () => setPage(activePage - 1);
|
|
36
|
+
const first = () => setPage(1);
|
|
37
|
+
const last = () => setPage(_total);
|
|
38
|
+
const paginationRange = React.useMemo(() => {
|
|
39
|
+
const totalPageNumbers = siblings * 2 + 3 + boundaries * 2;
|
|
40
|
+
if (totalPageNumbers >= _total) {
|
|
41
|
+
return range.range(1, _total);
|
|
42
|
+
}
|
|
43
|
+
const leftSiblingIndex = Math.max(activePage - siblings, boundaries);
|
|
44
|
+
const rightSiblingIndex = Math.min(activePage + siblings, _total - boundaries);
|
|
45
|
+
const shouldShowLeftDots = leftSiblingIndex > boundaries + 2;
|
|
46
|
+
const shouldShowRightDots = rightSiblingIndex < _total - (boundaries + 1);
|
|
47
|
+
if (!shouldShowLeftDots && shouldShowRightDots) {
|
|
48
|
+
const leftItemCount = siblings * 2 + boundaries + 2;
|
|
49
|
+
return [...range.range(1, leftItemCount), DOTS, ...range.range(_total - (boundaries - 1), _total)];
|
|
50
|
+
}
|
|
51
|
+
if (shouldShowLeftDots && !shouldShowRightDots) {
|
|
52
|
+
const rightItemCount = boundaries + 1 + 2 * siblings;
|
|
53
|
+
return [...range.range(1, boundaries), DOTS, ...range.range(_total - rightItemCount, _total)];
|
|
54
|
+
}
|
|
55
|
+
return [
|
|
56
|
+
...range.range(1, boundaries),
|
|
57
|
+
DOTS,
|
|
58
|
+
...range.range(leftSiblingIndex, rightSiblingIndex),
|
|
59
|
+
DOTS,
|
|
60
|
+
...range.range(_total - boundaries + 1, _total)
|
|
61
|
+
];
|
|
62
|
+
}, [_total, siblings, activePage]);
|
|
63
|
+
return {
|
|
64
|
+
range: paginationRange,
|
|
65
|
+
active: activePage,
|
|
66
|
+
setPage,
|
|
67
|
+
next,
|
|
68
|
+
previous,
|
|
69
|
+
first,
|
|
70
|
+
last
|
|
71
|
+
};
|
|
67
72
|
}
|
|
68
73
|
|
|
69
74
|
exports.DOTS = DOTS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-pagination.js","sources":["../../src/use-pagination/use-pagination.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useUncontrolled } from '../use-uncontrolled/use-uncontrolled';\nimport { range } from '../utils';\n\nexport const DOTS = 'dots';\n\nexport interface PaginationParams {\n /** Page selected on initial render, defaults to 1 */\n initialPage?: number;\n\n /** Controlled active page number */\n page?: number;\n\n /** Total amount of pages */\n total: number;\n\n /** Siblings amount on left/right side of selected page, defaults to 1 */\n siblings?: number;\n\n /** Amount of elements visible on left/right edges, defaults to 1 */\n boundaries?: number;\n\n /** Callback fired after change of each page */\n onChange?: (page: number) => void;\n}\n\nexport function usePagination({\n total,\n siblings = 1,\n boundaries = 1,\n page,\n initialPage = 1,\n onChange,\n}: PaginationParams) {\n const _total = Math.max(Math.trunc(total), 0);\n const [activePage, setActivePage] = useUncontrolled({\n value: page,\n onChange,\n defaultValue: initialPage,\n finalValue: initialPage,\n });\n\n const setPage = (pageNumber: number) => {\n if (pageNumber <= 0) {\n setActivePage(1);\n } else if (pageNumber > _total) {\n setActivePage(_total);\n } else {\n setActivePage(pageNumber);\n }\n };\n\n const next = () => setPage(activePage + 1);\n const previous = () => setPage(activePage - 1);\n const first = () => setPage(1);\n const last = () => setPage(_total);\n\n const paginationRange = useMemo((): (number | 'dots')[] => {\n const totalPageNumbers = siblings * 2 + 3 + boundaries * 2;\n if (totalPageNumbers >= _total) {\n return range(1, _total);\n }\n\n const leftSiblingIndex = Math.max(activePage - siblings, boundaries);\n const rightSiblingIndex = Math.min(activePage + siblings, _total - boundaries);\n\n const shouldShowLeftDots = leftSiblingIndex > boundaries + 2;\n const shouldShowRightDots = rightSiblingIndex < _total - (boundaries + 1);\n\n if (!shouldShowLeftDots && shouldShowRightDots) {\n const leftItemCount = siblings * 2 + boundaries + 2;\n return [...range(1, leftItemCount), DOTS, ...range(_total - (boundaries - 1), _total)];\n }\n\n if (shouldShowLeftDots && !shouldShowRightDots) {\n const rightItemCount = boundaries + 1 + 2 * siblings;\n return [...range(1, boundaries), DOTS, ...range(_total - rightItemCount, _total)];\n }\n\n return [\n ...range(1, boundaries),\n DOTS,\n ...range(leftSiblingIndex, rightSiblingIndex),\n DOTS,\n ...range(_total - boundaries + 1, _total),\n ];\n }, [_total, siblings, activePage]);\n\n return {\n range: paginationRange,\n active: activePage,\n setPage,\n next,\n previous,\n first,\n last,\n };\n}\n"],"names":["useUncontrolled","useMemo","range"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"use-pagination.js","sources":["../../src/use-pagination/use-pagination.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useUncontrolled } from '../use-uncontrolled/use-uncontrolled';\nimport { range } from '../utils';\n\nexport const DOTS = 'dots';\n\nexport interface PaginationParams {\n /** Page selected on initial render, defaults to 1 */\n initialPage?: number;\n\n /** Controlled active page number */\n page?: number;\n\n /** Total amount of pages */\n total: number;\n\n /** Siblings amount on left/right side of selected page, defaults to 1 */\n siblings?: number;\n\n /** Amount of elements visible on left/right edges, defaults to 1 */\n boundaries?: number;\n\n /** Callback fired after change of each page */\n onChange?: (page: number) => void;\n}\n\nexport function usePagination({\n total,\n siblings = 1,\n boundaries = 1,\n page,\n initialPage = 1,\n onChange,\n}: PaginationParams) {\n const _total = Math.max(Math.trunc(total), 0);\n const [activePage, setActivePage] = useUncontrolled({\n value: page,\n onChange,\n defaultValue: initialPage,\n finalValue: initialPage,\n });\n\n const setPage = (pageNumber: number) => {\n if (pageNumber <= 0) {\n setActivePage(1);\n } else if (pageNumber > _total) {\n setActivePage(_total);\n } else {\n setActivePage(pageNumber);\n }\n };\n\n const next = () => setPage(activePage + 1);\n const previous = () => setPage(activePage - 1);\n const first = () => setPage(1);\n const last = () => setPage(_total);\n\n const paginationRange = useMemo((): (number | 'dots')[] => {\n const totalPageNumbers = siblings * 2 + 3 + boundaries * 2;\n if (totalPageNumbers >= _total) {\n return range(1, _total);\n }\n\n const leftSiblingIndex = Math.max(activePage - siblings, boundaries);\n const rightSiblingIndex = Math.min(activePage + siblings, _total - boundaries);\n\n const shouldShowLeftDots = leftSiblingIndex > boundaries + 2;\n const shouldShowRightDots = rightSiblingIndex < _total - (boundaries + 1);\n\n if (!shouldShowLeftDots && shouldShowRightDots) {\n const leftItemCount = siblings * 2 + boundaries + 2;\n return [...range(1, leftItemCount), DOTS, ...range(_total - (boundaries - 1), _total)];\n }\n\n if (shouldShowLeftDots && !shouldShowRightDots) {\n const rightItemCount = boundaries + 1 + 2 * siblings;\n return [...range(1, boundaries), DOTS, ...range(_total - rightItemCount, _total)];\n }\n\n return [\n ...range(1, boundaries),\n DOTS,\n ...range(leftSiblingIndex, rightSiblingIndex),\n DOTS,\n ...range(_total - boundaries + 1, _total),\n ];\n }, [_total, siblings, activePage]);\n\n return {\n range: paginationRange,\n active: activePage,\n setPage,\n next,\n previous,\n first,\n last,\n };\n}\n"],"names":["useUncontrolled","useMemo","range"],"mappings":";;;;;;;;AAGY,MAAC,IAAI,GAAG,OAAO;AACpB,SAAS,aAAa,CAAC;AAC9B,EAAE,KAAK;AACP,EAAE,QAAQ,GAAG,CAAC;AACd,EAAE,UAAU,GAAG,CAAC;AAChB,EAAE,IAAI;AACN,EAAE,WAAW,GAAG,CAAC;AACjB,EAAE,QAAQ;AACV,CAAC,EAAE;AACH,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,EAAE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,+BAAe,CAAC;AACtD,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,QAAQ;AACZ,IAAI,YAAY,EAAE,WAAW;AAC7B,IAAI,UAAU,EAAE,WAAW;AAC3B,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,OAAO,GAAG,CAAC,UAAU,KAAK;AAClC,IAAI,IAAI,UAAU,IAAI,CAAC,EAAE;AACzB,MAAM,aAAa,CAAC,CAAC,CAAC,CAAC;AACvB,KAAK,MAAM,IAAI,UAAU,GAAG,MAAM,EAAE;AACpC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;AAChC,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC7C,EAAE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACjD,EAAE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AACjC,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AACrC,EAAE,MAAM,eAAe,GAAGC,aAAO,CAAC,MAAM;AACxC,IAAI,MAAM,gBAAgB,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;AAC/D,IAAI,IAAI,gBAAgB,IAAI,MAAM,EAAE;AACpC,MAAM,OAAOC,WAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,EAAE,UAAU,CAAC,CAAC;AACzE,IAAI,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;AACnF,IAAI,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,UAAU,GAAG,CAAC,CAAC;AACjE,IAAI,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,MAAM,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,kBAAkB,IAAI,mBAAmB,EAAE;AACpD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;AAC1D,MAAM,OAAO,CAAC,GAAGA,WAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,GAAGA,WAAK,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7F,KAAK;AACL,IAAI,IAAI,kBAAkB,IAAI,CAAC,mBAAmB,EAAE;AACpD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;AAC3D,MAAM,OAAO,CAAC,GAAGA,WAAK,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,GAAGA,WAAK,CAAC,MAAM,GAAG,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;AACxF,KAAK;AACL,IAAI,OAAO;AACX,MAAM,GAAGA,WAAK,CAAC,CAAC,EAAE,UAAU,CAAC;AAC7B,MAAM,IAAI;AACV,MAAM,GAAGA,WAAK,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;AACnD,MAAM,IAAI;AACV,MAAM,GAAGA,WAAK,CAAC,MAAM,GAAG,UAAU,GAAG,CAAC,EAAE,MAAM,CAAC;AAC/C,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACrC,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,eAAe;AAC1B,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,IAAI;AACR,GAAG,CAAC;AACJ;;;;;"}
|
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
|
|
7
7
|
function usePrevious(value) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
const ref = React.useRef();
|
|
9
|
+
React.useEffect(() => {
|
|
10
|
+
ref.current = value;
|
|
11
|
+
}, [value]);
|
|
12
|
+
return ref.current;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
exports.usePrevious = usePrevious;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-previous.js","sources":["../../src/use-previous/use-previous.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nexport function usePrevious<T>(value: T): T | undefined {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n"],"names":["useRef","useEffect"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"use-previous.js","sources":["../../src/use-previous/use-previous.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nexport function usePrevious<T>(value: T): T | undefined {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n"],"names":["useRef","useEffect"],"mappings":";;;;;;AACO,SAAS,WAAW,CAAC,KAAK,EAAE;AACnC,EAAE,MAAM,GAAG,GAAGA,YAAM,EAAE,CAAC;AACvB,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACxB,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACd,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB;;;;"}
|
|
@@ -5,32 +5,32 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
|
|
7
7
|
function useQueue({ initialValues = [], limit }) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return {
|
|
15
|
-
state: results.slice(0, limit),
|
|
16
|
-
queue: results.slice(limit),
|
|
17
|
-
};
|
|
18
|
-
});
|
|
19
|
-
const update = (fn) => setState((current) => {
|
|
20
|
-
const results = fn([...current.state, ...current.queue]);
|
|
21
|
-
return {
|
|
22
|
-
state: results.slice(0, limit),
|
|
23
|
-
queue: results.slice(limit),
|
|
24
|
-
};
|
|
25
|
-
});
|
|
26
|
-
const cleanQueue = () => setState((current) => ({ state: current.state, queue: [] }));
|
|
8
|
+
const [{ state, queue }, setState] = React.useState({
|
|
9
|
+
state: initialValues.slice(0, limit),
|
|
10
|
+
queue: initialValues.slice(limit)
|
|
11
|
+
});
|
|
12
|
+
const add = (...items) => setState((current) => {
|
|
13
|
+
const results = [...current.state, ...current.queue, ...items];
|
|
27
14
|
return {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
add,
|
|
31
|
-
update,
|
|
32
|
-
cleanQueue,
|
|
15
|
+
state: results.slice(0, limit),
|
|
16
|
+
queue: results.slice(limit)
|
|
33
17
|
};
|
|
18
|
+
});
|
|
19
|
+
const update = (fn) => setState((current) => {
|
|
20
|
+
const results = fn([...current.state, ...current.queue]);
|
|
21
|
+
return {
|
|
22
|
+
state: results.slice(0, limit),
|
|
23
|
+
queue: results.slice(limit)
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
const cleanQueue = () => setState((current) => ({ state: current.state, queue: [] }));
|
|
27
|
+
return {
|
|
28
|
+
state,
|
|
29
|
+
queue,
|
|
30
|
+
add,
|
|
31
|
+
update,
|
|
32
|
+
cleanQueue
|
|
33
|
+
};
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
exports.useQueue = useQueue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-queue.js","sources":["../../src/use-queue/use-queue.ts"],"sourcesContent":["import { useState } from 'react';\n\nexport function useQueue<T>({ initialValues = [], limit }: { initialValues?: T[]; limit: number }) {\n const [{ state, queue }, setState] = useState({\n state: initialValues.slice(0, limit),\n queue: initialValues.slice(limit),\n });\n\n const add = (...items: T[]) =>\n setState((current) => {\n const results = [...current.state, ...current.queue, ...items];\n\n return {\n state: results.slice(0, limit),\n queue: results.slice(limit),\n };\n });\n\n const update = (fn: (state: T[]) => T[]) =>\n setState((current) => {\n const results = fn([...current.state, ...current.queue]);\n\n return {\n state: results.slice(0, limit),\n queue: results.slice(limit),\n };\n });\n\n const cleanQueue = () => setState((current) => ({ state: current.state, queue: [] }));\n\n return {\n state,\n queue,\n add,\n update,\n cleanQueue,\n };\n}\n"],"names":["useState"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"use-queue.js","sources":["../../src/use-queue/use-queue.ts"],"sourcesContent":["import { useState } from 'react';\n\nexport function useQueue<T>({ initialValues = [], limit }: { initialValues?: T[]; limit: number }) {\n const [{ state, queue }, setState] = useState({\n state: initialValues.slice(0, limit),\n queue: initialValues.slice(limit),\n });\n\n const add = (...items: T[]) =>\n setState((current) => {\n const results = [...current.state, ...current.queue, ...items];\n\n return {\n state: results.slice(0, limit),\n queue: results.slice(limit),\n };\n });\n\n const update = (fn: (state: T[]) => T[]) =>\n setState((current) => {\n const results = fn([...current.state, ...current.queue]);\n\n return {\n state: results.slice(0, limit),\n queue: results.slice(limit),\n };\n });\n\n const cleanQueue = () => setState((current) => ({ state: current.state, queue: [] }));\n\n return {\n state,\n queue,\n add,\n update,\n cleanQueue,\n };\n}\n"],"names":["useState"],"mappings":";;;;;;AACO,SAAS,QAAQ,CAAC,EAAE,aAAa,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;AACxD,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAAC;AAChD,IAAI,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;AACxC,IAAI,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;AACrC,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,OAAO,KAAK;AAClD,IAAI,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;AACnE,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;AACpC,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACjC,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,MAAM,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,OAAO,KAAK;AAC/C,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;AACpC,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACjC,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,CAAC,OAAO,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACxF,EAAE,OAAO;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,MAAM;AACV,IAAI,UAAU;AACd,GAAG,CAAC;AACJ;;;;"}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var useMediaQuery = require('../use-media-query/use-media-query.js');
|
|
6
6
|
|
|
7
7
|
function useReducedMotion(initialValue, options) {
|
|
8
|
-
|
|
8
|
+
return useMediaQuery.useMediaQuery("(prefers-reduced-motion: reduce)", initialValue, options);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
exports.useReducedMotion = useReducedMotion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-reduced-motion.js","sources":["../../src/use-reduced-motion/use-reduced-motion.ts"],"sourcesContent":["import { useMediaQuery, UseMediaQueryOptions } from '../use-media-query/use-media-query';\n\nexport function useReducedMotion(initialValue?: boolean, options?: UseMediaQueryOptions) {\n return useMediaQuery('(prefers-reduced-motion: reduce)', initialValue, options);\n}\n"],"names":["useMediaQuery"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"use-reduced-motion.js","sources":["../../src/use-reduced-motion/use-reduced-motion.ts"],"sourcesContent":["import { useMediaQuery, UseMediaQueryOptions } from '../use-media-query/use-media-query';\n\nexport function useReducedMotion(initialValue?: boolean, options?: UseMediaQueryOptions) {\n return useMediaQuery('(prefers-reduced-motion: reduce)', initialValue, options);\n}\n"],"names":["useMediaQuery"],"mappings":";;;;;;AACO,SAAS,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE;AACxD,EAAE,OAAOA,2BAAa,CAAC,kCAAkC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;AAClF;;;;"}
|
|
@@ -5,48 +5,49 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
|
|
7
7
|
const defaultState = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
x: 0,
|
|
9
|
+
y: 0,
|
|
10
|
+
width: 0,
|
|
11
|
+
height: 0,
|
|
12
|
+
top: 0,
|
|
13
|
+
left: 0,
|
|
14
|
+
bottom: 0,
|
|
15
|
+
right: 0
|
|
16
16
|
};
|
|
17
17
|
function useResizeObserver() {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
18
|
+
const frameID = React.useRef(0);
|
|
19
|
+
const ref = React.useRef(null);
|
|
20
|
+
const [rect, setRect] = React.useState(defaultState);
|
|
21
|
+
const observer = React.useMemo(
|
|
22
|
+
() => typeof window !== "undefined" ? new ResizeObserver((entries) => {
|
|
23
|
+
const entry = entries[0];
|
|
24
|
+
if (entry) {
|
|
25
|
+
cancelAnimationFrame(frameID.current);
|
|
26
|
+
frameID.current = requestAnimationFrame(() => {
|
|
27
|
+
if (ref.current) {
|
|
28
|
+
setRect(entry.contentRect);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}) : null,
|
|
33
|
+
[]
|
|
34
|
+
);
|
|
35
|
+
React.useEffect(() => {
|
|
36
|
+
if (ref.current) {
|
|
37
|
+
observer == null ? void 0 : observer.observe(ref.current);
|
|
38
|
+
}
|
|
39
|
+
return () => {
|
|
40
|
+
observer == null ? void 0 : observer.disconnect();
|
|
41
|
+
if (frameID.current) {
|
|
42
|
+
cancelAnimationFrame(frameID.current);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}, [ref.current]);
|
|
46
|
+
return [ref, rect];
|
|
46
47
|
}
|
|
47
48
|
function useElementSize() {
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
const [ref, { width, height }] = useResizeObserver();
|
|
50
|
+
return { ref, width, height };
|
|
50
51
|
}
|
|
51
52
|
|
|
52
53
|
exports.useElementSize = useElementSize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-resize-observer.js","sources":["../../src/use-resize-observer/use-resize-observer.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\n\ntype ObserverRect = Omit<DOMRectReadOnly, 'toJSON'>;\n\nconst defaultState: ObserverRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n};\n\nexport function useResizeObserver<T extends HTMLElement = any>() {\n const frameID = useRef(0);\n const ref = useRef<T>(null);\n\n const [rect, setRect] = useState<ObserverRect>(defaultState);\n\n const observer = useMemo(\n () =>\n typeof window !== 'undefined'\n ? new ResizeObserver((entries: any) => {\n const entry = entries[0];\n\n if (entry) {\n cancelAnimationFrame(frameID.current);\n\n frameID.current = requestAnimationFrame(() => {\n if (ref.current) {\n setRect(entry.contentRect);\n }\n });\n }\n })\n : null,\n []\n );\n\n useEffect(() => {\n if (ref.current) {\n observer?.observe(ref.current);\n }\n\n return () => {\n observer?.disconnect();\n\n if (frameID.current) {\n cancelAnimationFrame(frameID.current);\n }\n };\n }, [ref.current]);\n\n return [ref, rect] as const;\n}\n\nexport function useElementSize<T extends HTMLElement = any>() {\n const [ref, { width, height }] = useResizeObserver<T>();\n return { ref, width, height };\n}\n"],"names":["useRef","useState","useMemo","useEffect"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"use-resize-observer.js","sources":["../../src/use-resize-observer/use-resize-observer.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\n\ntype ObserverRect = Omit<DOMRectReadOnly, 'toJSON'>;\n\nconst defaultState: ObserverRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n};\n\nexport function useResizeObserver<T extends HTMLElement = any>() {\n const frameID = useRef(0);\n const ref = useRef<T>(null);\n\n const [rect, setRect] = useState<ObserverRect>(defaultState);\n\n const observer = useMemo(\n () =>\n typeof window !== 'undefined'\n ? new ResizeObserver((entries: any) => {\n const entry = entries[0];\n\n if (entry) {\n cancelAnimationFrame(frameID.current);\n\n frameID.current = requestAnimationFrame(() => {\n if (ref.current) {\n setRect(entry.contentRect);\n }\n });\n }\n })\n : null,\n []\n );\n\n useEffect(() => {\n if (ref.current) {\n observer?.observe(ref.current);\n }\n\n return () => {\n observer?.disconnect();\n\n if (frameID.current) {\n cancelAnimationFrame(frameID.current);\n }\n };\n }, [ref.current]);\n\n return [ref, rect] as const;\n}\n\nexport function useElementSize<T extends HTMLElement = any>() {\n const [ref, { width, height }] = useResizeObserver<T>();\n return { ref, width, height };\n}\n"],"names":["useRef","useState","useMemo","useEffect"],"mappings":";;;;;;AACA,MAAM,YAAY,GAAG;AACrB,EAAE,CAAC,EAAE,CAAC;AACN,EAAE,CAAC,EAAE,CAAC;AACN,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,KAAK,EAAE,CAAC;AACV,CAAC,CAAC;AACK,SAAS,iBAAiB,GAAG;AACpC,EAAE,MAAM,OAAO,GAAGA,YAAM,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,MAAM,GAAG,GAAGA,YAAM,CAAC,IAAI,CAAC,CAAC;AAC3B,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGC,cAAQ,CAAC,YAAY,CAAC,CAAC;AACjD,EAAE,MAAM,QAAQ,GAAGC,aAAO;AAC1B,IAAI,MAAM,OAAO,MAAM,KAAK,WAAW,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,KAAK;AAC1E,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9C,QAAQ,OAAO,CAAC,OAAO,GAAG,qBAAqB,CAAC,MAAM;AACtD,UAAU,IAAI,GAAG,CAAC,OAAO,EAAE;AAC3B,YAAY,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACvC,WAAW;AACX,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK,CAAC,GAAG,IAAI;AACb,IAAI,EAAE;AACN,GAAG,CAAC;AACJ,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE;AACrB,MAAM,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAChE,KAAK;AACL,IAAI,OAAO,MAAM;AACjB,MAAM,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;AACxD,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9C,OAAO;AACP,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACpB,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACrB,CAAC;AACM,SAAS,cAAc,GAAG;AACjC,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;AACvD,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAChC;;;;;"}
|
|
@@ -10,83 +10,86 @@ var getRelativePosition = require('./utils/get-relative-position.js');
|
|
|
10
10
|
var getScrollStart = require('./utils/get-scroll-start.js');
|
|
11
11
|
var setScrollParam = require('./utils/set-scroll-param.js');
|
|
12
12
|
|
|
13
|
-
function useScrollIntoView({
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
function useScrollIntoView({
|
|
14
|
+
duration = 1250,
|
|
15
|
+
axis = "y",
|
|
16
|
+
onScrollFinish,
|
|
17
|
+
easing = easeInOutQuad.easeInOutQuad,
|
|
18
|
+
offset = 0,
|
|
19
|
+
cancelable = true,
|
|
20
|
+
isList = false
|
|
21
|
+
} = {}) {
|
|
22
|
+
const frameID = React.useRef(0);
|
|
23
|
+
const startTime = React.useRef(0);
|
|
24
|
+
const shouldStop = React.useRef(false);
|
|
25
|
+
const scrollableRef = React.useRef(null);
|
|
26
|
+
const targetRef = React.useRef(null);
|
|
27
|
+
const reducedMotion = useReducedMotion.useReducedMotion();
|
|
28
|
+
const cancel = () => {
|
|
29
|
+
if (frameID.current) {
|
|
30
|
+
cancelAnimationFrame(frameID.current);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const scrollIntoView = React.useCallback(
|
|
34
|
+
({ alignment = "start" } = {}) => {
|
|
35
|
+
var _a;
|
|
36
|
+
shouldStop.current = false;
|
|
37
|
+
if (frameID.current) {
|
|
38
|
+
cancel();
|
|
39
|
+
}
|
|
40
|
+
const start = (_a = getScrollStart.getScrollStart({ parent: scrollableRef.current, axis })) != null ? _a : 0;
|
|
41
|
+
const change = getRelativePosition.getRelativePosition({
|
|
42
|
+
parent: scrollableRef.current,
|
|
43
|
+
target: targetRef.current,
|
|
44
|
+
axis,
|
|
45
|
+
alignment,
|
|
46
|
+
offset,
|
|
47
|
+
isList
|
|
48
|
+
}) - (scrollableRef.current ? 0 : start);
|
|
49
|
+
function animateScroll() {
|
|
50
|
+
if (startTime.current === 0) {
|
|
51
|
+
startTime.current = performance.now();
|
|
23
52
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
53
|
+
const now = performance.now();
|
|
54
|
+
const elapsed = now - startTime.current;
|
|
55
|
+
const t = reducedMotion || duration === 0 ? 1 : elapsed / duration;
|
|
56
|
+
const distance = start + change * easing(t);
|
|
57
|
+
setScrollParam.setScrollParam({
|
|
58
|
+
parent: scrollableRef.current,
|
|
59
|
+
axis,
|
|
60
|
+
distance
|
|
61
|
+
});
|
|
62
|
+
if (!shouldStop.current && t < 1) {
|
|
63
|
+
frameID.current = requestAnimationFrame(animateScroll);
|
|
64
|
+
} else {
|
|
65
|
+
typeof onScrollFinish === "function" && onScrollFinish();
|
|
66
|
+
startTime.current = 0;
|
|
67
|
+
frameID.current = 0;
|
|
68
|
+
cancel();
|
|
30
69
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (!shouldStop.current && t < 1) {
|
|
55
|
-
frameID.current = requestAnimationFrame(animateScroll);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
typeof onScrollFinish === 'function' && onScrollFinish();
|
|
59
|
-
startTime.current = 0;
|
|
60
|
-
frameID.current = 0;
|
|
61
|
-
cancel();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
animateScroll();
|
|
65
|
-
}, [axis, duration, easing, isList, offset, onScrollFinish, reducedMotion]);
|
|
66
|
-
const handleStop = () => {
|
|
67
|
-
if (cancelable) {
|
|
68
|
-
shouldStop.current = true;
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
/**
|
|
72
|
-
* detection of one of these events stops scroll animation
|
|
73
|
-
* wheel - mouse wheel / touch pad
|
|
74
|
-
* touchmove - any touchable device
|
|
75
|
-
*/
|
|
76
|
-
useWindowEvent.useWindowEvent('wheel', handleStop, {
|
|
77
|
-
passive: true,
|
|
78
|
-
});
|
|
79
|
-
useWindowEvent.useWindowEvent('touchmove', handleStop, {
|
|
80
|
-
passive: true,
|
|
81
|
-
});
|
|
82
|
-
// cleanup requestAnimationFrame
|
|
83
|
-
React.useEffect(() => cancel, []);
|
|
84
|
-
return {
|
|
85
|
-
scrollableRef,
|
|
86
|
-
targetRef,
|
|
87
|
-
scrollIntoView,
|
|
88
|
-
cancel,
|
|
89
|
-
};
|
|
70
|
+
}
|
|
71
|
+
animateScroll();
|
|
72
|
+
},
|
|
73
|
+
[axis, duration, easing, isList, offset, onScrollFinish, reducedMotion]
|
|
74
|
+
);
|
|
75
|
+
const handleStop = () => {
|
|
76
|
+
if (cancelable) {
|
|
77
|
+
shouldStop.current = true;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
useWindowEvent.useWindowEvent("wheel", handleStop, {
|
|
81
|
+
passive: true
|
|
82
|
+
});
|
|
83
|
+
useWindowEvent.useWindowEvent("touchmove", handleStop, {
|
|
84
|
+
passive: true
|
|
85
|
+
});
|
|
86
|
+
React.useEffect(() => cancel, []);
|
|
87
|
+
return {
|
|
88
|
+
scrollableRef,
|
|
89
|
+
targetRef,
|
|
90
|
+
scrollIntoView,
|
|
91
|
+
cancel
|
|
92
|
+
};
|
|
90
93
|
}
|
|
91
94
|
|
|
92
95
|
exports.useScrollIntoView = useScrollIntoView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-scroll-into-view.js","sources":["../../src/use-scroll-into-view/use-scroll-into-view.ts"],"sourcesContent":["import { useCallback, useRef, useEffect } from 'react';\nimport { useReducedMotion } from '../use-reduced-motion/use-reduced-motion';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\nimport { easeInOutQuad } from './utils/ease-in-out-quad';\nimport { getRelativePosition } from './utils/get-relative-position';\nimport { getScrollStart } from './utils/get-scroll-start';\nimport { setScrollParam } from './utils/set-scroll-param';\n\ninterface ScrollIntoViewAnimation {\n /** target element alignment relatively to parent based on current axis */\n alignment?: 'start' | 'end' | 'center';\n}\n\ninterface ScrollIntoViewParams {\n /** callback fired after scroll */\n onScrollFinish?: () => void;\n\n /** duration of scroll in milliseconds */\n duration?: number;\n\n /** axis of scroll */\n axis?: 'x' | 'y';\n\n /** custom mathematical easing function */\n easing?: (t: number) => number;\n\n /** additional distance between nearest edge and element */\n offset?: number;\n\n /** indicator if animation may be interrupted by user scrolling */\n cancelable?: boolean;\n\n /** prevents content jumping in scrolling lists with multiple targets */\n isList?: boolean;\n}\n\nexport function useScrollIntoView<\n Target extends HTMLElement,\n Parent extends HTMLElement | null = null
|
|
1
|
+
{"version":3,"file":"use-scroll-into-view.js","sources":["../../src/use-scroll-into-view/use-scroll-into-view.ts"],"sourcesContent":["import { useCallback, useRef, useEffect } from 'react';\nimport { useReducedMotion } from '../use-reduced-motion/use-reduced-motion';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\nimport { easeInOutQuad } from './utils/ease-in-out-quad';\nimport { getRelativePosition } from './utils/get-relative-position';\nimport { getScrollStart } from './utils/get-scroll-start';\nimport { setScrollParam } from './utils/set-scroll-param';\n\ninterface ScrollIntoViewAnimation {\n /** target element alignment relatively to parent based on current axis */\n alignment?: 'start' | 'end' | 'center';\n}\n\ninterface ScrollIntoViewParams {\n /** callback fired after scroll */\n onScrollFinish?: () => void;\n\n /** duration of scroll in milliseconds */\n duration?: number;\n\n /** axis of scroll */\n axis?: 'x' | 'y';\n\n /** custom mathematical easing function */\n easing?: (t: number) => number;\n\n /** additional distance between nearest edge and element */\n offset?: number;\n\n /** indicator if animation may be interrupted by user scrolling */\n cancelable?: boolean;\n\n /** prevents content jumping in scrolling lists with multiple targets */\n isList?: boolean;\n}\n\nexport function useScrollIntoView<\n Target extends HTMLElement,\n Parent extends HTMLElement | null = null,\n>({\n duration = 1250,\n axis = 'y',\n onScrollFinish,\n easing = easeInOutQuad,\n offset = 0,\n cancelable = true,\n isList = false,\n}: ScrollIntoViewParams = {}) {\n const frameID = useRef(0);\n const startTime = useRef(0);\n const shouldStop = useRef(false);\n\n const scrollableRef = useRef<Parent>(null);\n const targetRef = useRef<Target>(null);\n\n const reducedMotion = useReducedMotion();\n\n const cancel = (): void => {\n if (frameID.current) {\n cancelAnimationFrame(frameID.current);\n }\n };\n\n const scrollIntoView = useCallback(\n ({ alignment = 'start' }: ScrollIntoViewAnimation = {}) => {\n shouldStop.current = false;\n\n if (frameID.current) {\n cancel();\n }\n\n const start = getScrollStart({ parent: scrollableRef.current, axis }) ?? 0;\n\n const change =\n getRelativePosition({\n parent: scrollableRef.current,\n target: targetRef.current,\n axis,\n alignment,\n offset,\n isList,\n }) - (scrollableRef.current ? 0 : start);\n\n function animateScroll() {\n if (startTime.current === 0) {\n startTime.current = performance.now();\n }\n\n const now = performance.now();\n const elapsed = now - startTime.current;\n\n // easing timing progress\n const t = reducedMotion || duration === 0 ? 1 : elapsed / duration;\n\n const distance = start + change * easing(t);\n\n setScrollParam({\n parent: scrollableRef.current,\n axis,\n distance,\n });\n\n if (!shouldStop.current && t < 1) {\n frameID.current = requestAnimationFrame(animateScroll);\n } else {\n typeof onScrollFinish === 'function' && onScrollFinish();\n startTime.current = 0;\n frameID.current = 0;\n cancel();\n }\n }\n animateScroll();\n },\n [axis, duration, easing, isList, offset, onScrollFinish, reducedMotion]\n );\n\n const handleStop = () => {\n if (cancelable) {\n shouldStop.current = true;\n }\n };\n\n /**\n * detection of one of these events stops scroll animation\n * wheel - mouse wheel / touch pad\n * touchmove - any touchable device\n */\n\n useWindowEvent('wheel', handleStop, {\n passive: true,\n });\n\n useWindowEvent('touchmove', handleStop, {\n passive: true,\n });\n\n // cleanup requestAnimationFrame\n useEffect(() => cancel, []);\n\n return {\n scrollableRef,\n targetRef,\n scrollIntoView,\n cancel,\n };\n}\n"],"names":["easeInOutQuad","useRef","useReducedMotion","useCallback","getScrollStart","getRelativePosition","setScrollParam","useWindowEvent","useEffect"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const easeInOutQuad = (t) =>
|
|
5
|
+
const easeInOutQuad = (t) => t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
|
|
6
6
|
|
|
7
7
|
exports.easeInOutQuad = easeInOutQuad;
|
|
8
8
|
//# sourceMappingURL=ease-in-out-quad.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ease-in-out-quad.js","sources":["../../../src/use-scroll-into-view/utils/ease-in-out-quad.ts"],"sourcesContent":["export const easeInOutQuad = (t: number) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t);\n"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"ease-in-out-quad.js","sources":["../../../src/use-scroll-into-view/utils/ease-in-out-quad.ts"],"sourcesContent":["export const easeInOutQuad = (t: number) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t);\n"],"names":[],"mappings":";;;;AAAY,MAAC,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;;;;"}
|