@basic-ui/core 0.0.53 → 0.0.56
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/build/cjs/index.js +278 -505
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Accordion/Accordion.js +20 -29
- package/build/esm/Accordion/Accordion.js.map +1 -1
- package/build/esm/Accordion/AccordionBody.js +18 -32
- package/build/esm/Accordion/AccordionBody.js.map +1 -1
- package/build/esm/Accordion/AccordionHeader.js +37 -74
- package/build/esm/Accordion/AccordionHeader.js.map +1 -1
- package/build/esm/Accordion/AccordionItem.js +19 -22
- package/build/esm/Accordion/AccordionItem.js.map +1 -1
- package/build/esm/Accordion/context.js +16 -13
- package/build/esm/Accordion/context.js.map +1 -1
- package/build/esm/Accordion/index.js.map +1 -1
- package/build/esm/Accordion/scopeQuery.js.map +1 -1
- package/build/esm/CheckBox/CheckBox.js +15 -25
- package/build/esm/CheckBox/CheckBox.js.map +1 -1
- package/build/esm/CheckBox/index.js.map +1 -1
- package/build/esm/ComboBox/Combobox.d.ts +7 -7
- package/build/esm/ComboBox/Combobox.js +52 -59
- package/build/esm/ComboBox/Combobox.js.map +1 -1
- package/build/esm/ComboBox/ComboboxButton.js +23 -28
- package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
- package/build/esm/ComboBox/ComboboxInput.js +67 -70
- package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
- package/build/esm/ComboBox/ComboboxLabel.js +15 -17
- package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
- package/build/esm/ComboBox/ComboboxList.js +19 -20
- package/build/esm/ComboBox/ComboboxList.js.map +1 -1
- package/build/esm/ComboBox/ComboboxOption.js +41 -45
- package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
- package/build/esm/ComboBox/ComboboxPopover.js +22 -21
- package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
- package/build/esm/ComboBox/cities.js.map +1 -1
- package/build/esm/ComboBox/context.js +5 -6
- package/build/esm/ComboBox/context.js.map +1 -1
- package/build/esm/ComboBox/hooks.d.ts +2 -2
- package/build/esm/ComboBox/hooks.js +175 -148
- package/build/esm/ComboBox/hooks.js.map +1 -1
- package/build/esm/ComboBox/index.js.map +1 -1
- package/build/esm/ComboBox/makeHash.js +3 -6
- package/build/esm/ComboBox/makeHash.js.map +1 -1
- package/build/esm/ComboBox/scopeQuery.js.map +1 -1
- package/build/esm/FocusLock/FocusLock.js +26 -32
- package/build/esm/FocusLock/FocusLock.js.map +1 -1
- package/build/esm/FocusLock/index.js.map +1 -1
- package/build/esm/FocusLock/tabUtils.js +5 -7
- package/build/esm/FocusLock/tabUtils.js.map +1 -1
- package/build/esm/FocusLock/useFocusLock.js +14 -19
- package/build/esm/FocusLock/useFocusLock.js.map +1 -1
- package/build/esm/List/List.js +9 -11
- package/build/esm/List/List.js.map +1 -1
- package/build/esm/List/ListItem.js +9 -11
- package/build/esm/List/ListItem.js.map +1 -1
- package/build/esm/List/context.js +6 -6
- package/build/esm/List/context.js.map +1 -1
- package/build/esm/List/index.js.map +1 -1
- package/build/esm/Menu/ContextMenuTrigger.d.ts +4 -4
- package/build/esm/Menu/ContextMenuTrigger.js +32 -37
- package/build/esm/Menu/ContextMenuTrigger.js.map +1 -1
- package/build/esm/Menu/Menu.js +33 -49
- package/build/esm/Menu/Menu.js.map +1 -1
- package/build/esm/Menu/MenuButton.d.ts +4 -4
- package/build/esm/Menu/MenuButton.js +28 -44
- package/build/esm/Menu/MenuButton.js.map +1 -1
- package/build/esm/Menu/MenuItem.js +29 -38
- package/build/esm/Menu/MenuItem.js.map +1 -1
- package/build/esm/Menu/MenuList.js +61 -116
- package/build/esm/Menu/MenuList.js.map +1 -1
- package/build/esm/Menu/MenuPopover.js +16 -19
- package/build/esm/Menu/MenuPopover.js.map +1 -1
- package/build/esm/Menu/context.d.ts +1 -1
- package/build/esm/Menu/context.js +14 -12
- package/build/esm/Menu/context.js.map +1 -1
- package/build/esm/Menu/fixtures/countryList.js +1 -1
- package/build/esm/Menu/fixtures/countryList.js.map +1 -1
- package/build/esm/Menu/index.js.map +1 -1
- package/build/esm/Menu/scope.js.map +1 -1
- package/build/esm/Modal/Modal.js +13 -18
- package/build/esm/Modal/Modal.js.map +1 -1
- package/build/esm/Modal/ModalBackdrop.js +24 -33
- package/build/esm/Modal/ModalBackdrop.js.map +1 -1
- package/build/esm/Modal/index.js.map +1 -1
- package/build/esm/Popper/Popper.d.ts +3 -3
- package/build/esm/Popper/Popper.js +44 -61
- package/build/esm/Popper/Popper.js.map +1 -1
- package/build/esm/Popper/PopperArrow.js +11 -16
- package/build/esm/Popper/PopperArrow.js.map +1 -1
- package/build/esm/Popper/context.js +3 -5
- package/build/esm/Popper/context.js.map +1 -1
- package/build/esm/Popper/index.js.map +1 -1
- package/build/esm/Portal/Portal.js +9 -11
- package/build/esm/Portal/Portal.js.map +1 -1
- package/build/esm/Portal/PortalSelectorProvider.d.ts +3 -3
- package/build/esm/Portal/PortalSelectorProvider.js +6 -4
- package/build/esm/Portal/PortalSelectorProvider.js.map +1 -1
- package/build/esm/Portal/index.js.map +1 -1
- package/build/esm/RadioButton/RadioButton.js +17 -23
- package/build/esm/RadioButton/RadioButton.js.map +1 -1
- package/build/esm/RadioButton/RadioGroup.js +19 -28
- package/build/esm/RadioButton/RadioGroup.js.map +1 -1
- package/build/esm/RadioButton/context.d.ts +1 -1
- package/build/esm/RadioButton/context.js +8 -6
- package/build/esm/RadioButton/context.js.map +1 -1
- package/build/esm/RadioButton/index.js.map +1 -1
- package/build/esm/SkipNav/SkipNav.js +9 -11
- package/build/esm/SkipNav/SkipNav.js.map +1 -1
- package/build/esm/SkipNav/index.js.map +1 -1
- package/build/esm/Slider/Slider.d.ts +7 -7
- package/build/esm/Slider/Slider.js +340 -407
- package/build/esm/Slider/Slider.js.map +1 -1
- package/build/esm/Slider/index.js.map +1 -1
- package/build/esm/Spinner/Spinner.js +31 -59
- package/build/esm/Spinner/Spinner.js.map +1 -1
- package/build/esm/Spinner/SpinnerButton.js +14 -19
- package/build/esm/Spinner/SpinnerButton.js.map +1 -1
- package/build/esm/Spinner/context.js +8 -7
- package/build/esm/Spinner/context.js.map +1 -1
- package/build/esm/Spinner/index.js.map +1 -1
- package/build/esm/Tabs/Tab.js +32 -50
- package/build/esm/Tabs/Tab.js.map +1 -1
- package/build/esm/Tabs/TabList.js +24 -34
- package/build/esm/Tabs/TabList.js.map +1 -1
- package/build/esm/Tabs/TabPanel.js +16 -23
- package/build/esm/Tabs/TabPanel.js.map +1 -1
- package/build/esm/Tabs/TabPanels.js +15 -20
- package/build/esm/Tabs/TabPanels.js.map +1 -1
- package/build/esm/Tabs/Tabs.js +17 -33
- package/build/esm/Tabs/Tabs.js.map +1 -1
- package/build/esm/Tabs/context.js +16 -13
- package/build/esm/Tabs/context.js.map +1 -1
- package/build/esm/Tabs/index.js.map +1 -1
- package/build/esm/Tabs/scopeQuery.js.map +1 -1
- package/build/esm/Tooltip/Tooltip.d.ts +2 -2
- package/build/esm/Tooltip/Tooltip.js +20 -30
- package/build/esm/Tooltip/Tooltip.js.map +1 -1
- package/build/esm/Tooltip/index.js.map +1 -1
- package/build/esm/Tooltip/stateMachine.d.ts +2 -2
- package/build/esm/Tooltip/stateMachine.js +95 -81
- package/build/esm/Tooltip/stateMachine.js.map +1 -1
- package/build/esm/Tooltip/useTooltip.d.ts +2 -2
- package/build/esm/Tooltip/useTooltip.js +38 -50
- package/build/esm/Tooltip/useTooltip.js.map +1 -1
- package/build/esm/hooks/index.js.map +1 -1
- package/build/esm/hooks/useAutoFocus.js +3 -3
- package/build/esm/hooks/useAutoFocus.js.map +1 -1
- package/build/esm/hooks/useChildrenCounter.js +6 -8
- package/build/esm/hooks/useChildrenCounter.js.map +1 -1
- package/build/esm/hooks/useControlledState.js +6 -16
- package/build/esm/hooks/useControlledState.js.map +1 -1
- package/build/esm/hooks/useFocusReturn.js +8 -12
- package/build/esm/hooks/useFocusReturn.js.map +1 -1
- package/build/esm/hooks/useFocusState.d.ts +2 -2
- package/build/esm/hooks/useFocusState.js +9 -15
- package/build/esm/hooks/useFocusState.js.map +1 -1
- package/build/esm/hooks/useGestureHandlers.d.ts +1 -1
- package/build/esm/hooks/useGestureHandlers.js +80 -100
- package/build/esm/hooks/useGestureHandlers.js.map +1 -1
- package/build/esm/hooks/useMeasure.js +7 -15
- package/build/esm/hooks/useMeasure.js.map +1 -1
- package/build/esm/hooks/useOnClickOutside.js +4 -6
- package/build/esm/hooks/useOnClickOutside.js.map +1 -1
- package/build/esm/hooks/useOnKeyDown.js +3 -4
- package/build/esm/hooks/useOnKeyDown.js.map +1 -1
- package/build/esm/hooks/useReducerMachine.d.ts +1 -1
- package/build/esm/hooks/useReducerMachine.js +15 -26
- package/build/esm/hooks/useReducerMachine.js.map +1 -1
- package/build/esm/hooks/useRemoveBodyScroll.js +9 -14
- package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
- package/build/esm/hooks/useScope.d.ts +2 -2
- package/build/esm/hooks/useScope.js +12 -14
- package/build/esm/hooks/useScope.js.map +1 -1
- package/build/esm/hooks/useThrottle.js +5 -10
- package/build/esm/hooks/useThrottle.js.map +1 -1
- package/build/esm/index.js +4 -2
- package/build/esm/index.js.map +1 -1
- package/build/esm/styles.d.js +2 -0
- package/build/esm/styles.d.js.map +1 -0
- package/build/esm/utils/assign-ref.js +3 -5
- package/build/esm/utils/assign-ref.js.map +1 -1
- package/build/esm/utils/can-use-dom.js.map +1 -1
- package/build/esm/utils/clamp.js.map +1 -1
- package/build/esm/utils/context.d.ts +1 -1
- package/build/esm/utils/context.js +13 -20
- package/build/esm/utils/context.js.map +1 -1
- package/build/esm/utils/create-subscription.js +5 -10
- package/build/esm/utils/create-subscription.js.map +1 -1
- package/build/esm/utils/get-circular-index.js +0 -1
- package/build/esm/utils/get-circular-index.js.map +1 -1
- package/build/esm/utils/index.js.map +1 -1
- package/build/esm/utils/is-right-click.js.map +1 -1
- package/build/esm/utils/owner-document.js +1 -1
- package/build/esm/utils/owner-document.js.map +1 -1
- package/build/esm/utils/polymorphic.d.ts +10 -10
- package/build/esm/utils/polymorphic.js.map +1 -1
- package/build/esm/utils/rubber-band-clamp.js +2 -5
- package/build/esm/utils/rubber-band-clamp.js.map +1 -1
- package/build/esm/utils/use-stable-callback.js +8 -10
- package/build/esm/utils/use-stable-callback.js.map +1 -1
- package/build/esm/utils/wrap-event.d.ts +1 -1
- package/build/esm/utils/wrap-event.js +2 -5
- package/build/esm/utils/wrap-event.js.map +1 -1
- package/build/tsconfig-build.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/Accordion/Accordion.tsx +1 -1
- package/src/Accordion/AccordionBody.tsx +1 -1
- package/src/Accordion/AccordionHeader.tsx +1 -2
- package/src/ComboBox/Combobox.tsx +2 -2
- package/src/ComboBox/ComboboxList.tsx +1 -1
- package/src/ComboBox/ComboboxOption.tsx +0 -1
- package/src/ComboBox/hooks.tsx +0 -3
- package/src/FocusLock/useFocusLock.ts +0 -1
- package/src/Menu/Menu.tsx +2 -3
- package/src/Menu/MenuItem.tsx +1 -2
- package/src/Menu/MenuList.tsx +4 -4
- package/src/Modal/Modal.story.tsx +11 -7
- package/src/Modal/ModalBackdrop.tsx +1 -1
- package/src/Modal/NavDrawer.story.tsx +9 -6
- package/src/Popper/Popper.story.tsx +23 -7
- package/src/Popper/Popper.tsx +2 -2
- package/src/RadioButton/RadioButton.story.tsx +2 -1
- package/src/Slider/Slider.tsx +6 -11
- package/src/Spinner/Spinner.tsx +1 -1
- package/src/Tabs/TabList.tsx +1 -1
- package/src/Tooltip/Tooltip.tsx +8 -5
- package/src/Tooltip/useTooltip.ts +1 -1
- package/src/hooks/useControlledState.ts +1 -6
- package/src/hooks/useGestureHandlers.ts +0 -4
- package/src/hooks/useRemoveBodyScroll.ts +0 -1
- package/src/hooks/useScope.ts +1 -1
- package/src/styles.d.ts +1 -0
- package/src/utils/polymorphic.ts +14 -10
- package/src/utils/use-stable-callback.ts +0 -1
- package/build/esm/Carousel/Carousel.d.ts +0 -9
- package/build/esm/Carousel/Carousel.js +0 -38
- package/build/esm/Carousel/Carousel.js.map +0 -1
- package/build/esm/Carousel/Fader.d.ts +0 -14
- package/build/esm/Carousel/Fader.js +0 -76
- package/build/esm/Carousel/Fader.js.map +0 -1
- package/build/esm/Carousel/FaderItem.d.ts +0 -5
- package/build/esm/Carousel/FaderItem.js +0 -16
- package/build/esm/Carousel/FaderItem.js.map +0 -1
- package/build/esm/Carousel/Preloader.d.ts +0 -7
- package/build/esm/Carousel/Preloader.js +0 -70
- package/build/esm/Carousel/Preloader.js.map +0 -1
- package/build/esm/Carousel/Slider.d.ts +0 -14
- package/build/esm/Carousel/Slider.js +0 -212
- package/build/esm/Carousel/Slider.js.map +0 -1
- package/build/esm/Carousel/SliderItem.d.ts +0 -12
- package/build/esm/Carousel/SliderItem.js +0 -41
- package/build/esm/Carousel/SliderItem.js.map +0 -1
- package/build/esm/Carousel/context.d.ts +0 -10
- package/build/esm/Carousel/context.js +0 -8
- package/build/esm/Carousel/context.js.map +0 -1
- package/build/esm/Carousel/getSliderParams.d.ts +0 -9
- package/build/esm/Carousel/getSliderParams.js +0 -85
- package/build/esm/Carousel/getSliderParams.js.map +0 -1
- package/build/esm/Carousel/index.d.ts +0 -7
- package/build/esm/Carousel/index.js +0 -8
- package/build/esm/Carousel/index.js.map +0 -1
- package/build/esm/Carousel/useCarouselGestures.d.ts +0 -30
- package/build/esm/Carousel/useCarouselGestures.js +0 -33
- package/build/esm/Carousel/useCarouselGestures.js.map +0 -1
- package/build/esm/DatePicker/DatePicker.d.ts +0 -24
- package/build/esm/DatePicker/DatePicker.js +0 -101
- package/build/esm/DatePicker/DatePicker.js.map +0 -1
- package/build/esm/DatePicker/DatePickerSelect.d.ts +0 -8
- package/build/esm/DatePicker/DatePickerSelect.js +0 -201
- package/build/esm/DatePicker/DatePickerSelect.js.map +0 -1
- package/build/esm/DatePicker/RangeDatePicker.d.ts +0 -28
- package/build/esm/DatePicker/RangeDatePicker.js +0 -94
- package/build/esm/DatePicker/RangeDatePicker.js.map +0 -1
- package/build/esm/DatePicker/adjustDates.d.ts +0 -4
- package/build/esm/DatePicker/adjustDates.js +0 -18
- package/build/esm/DatePicker/adjustDates.js.map +0 -1
- package/build/esm/DatePicker/contexts.d.ts +0 -31
- package/build/esm/DatePicker/contexts.js +0 -15
- package/build/esm/DatePicker/contexts.js.map +0 -1
- package/build/esm/DatePicker/dateTypes.d.ts +0 -2
- package/build/esm/DatePicker/dateTypes.js +0 -2
- package/build/esm/DatePicker/dateTypes.js.map +0 -1
- package/build/esm/DatePicker/hooks.d.ts +0 -36
- package/build/esm/DatePicker/hooks.js +0 -98
- package/build/esm/DatePicker/hooks.js.map +0 -1
- package/build/esm/DatePicker/index.d.ts +0 -5
- package/build/esm/DatePicker/index.js +0 -6
- package/build/esm/DatePicker/index.js.map +0 -1
- package/build/esm/hooks/useId.d.ts +0 -1
- package/build/esm/hooks/useId.js +0 -25
- package/build/esm/hooks/useId.js.map +0 -1
- package/build/esm/utils/assignRef.d.ts +0 -3
- package/build/esm/utils/assignRef.js +0 -25
- package/build/esm/utils/assignRef.js.map +0 -1
- package/build/esm/utils/getCircularIndex.d.ts +0 -1
- package/build/esm/utils/getCircularIndex.js +0 -8
- package/build/esm/utils/getCircularIndex.js.map +0 -1
- package/build/esm/utils/rubberBandClamp.d.ts +0 -2
- package/build/esm/utils/rubberBandClamp.js +0 -20
- package/build/esm/utils/rubberBandClamp.js.map +0 -1
- package/build/esm/utils/wrapEvent.d.ts +0 -3
- package/build/esm/utils/wrapEvent.js +0 -16
- package/build/esm/utils/wrapEvent.js.map +0 -1
- package/build/tsconfig.tsbuildinfo +0 -7270
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import React, { Children, forwardRef, cloneElement, useEffect, useRef } from 'react';
|
|
2
|
-
import { useCarouselContext } from './context';
|
|
3
|
-
import { getCircularIndex } from '../utils/getCircularIndex';
|
|
4
|
-
export var Preloader = forwardRef(function Preloader(_ref, ref) {
|
|
5
|
-
var maybeSingleChildren = _ref.children,
|
|
6
|
-
_ref$preloadNextCount = _ref.preloadNextCount,
|
|
7
|
-
preloadNextCount = _ref$preloadNextCount === void 0 ? 0 : _ref$preloadNextCount,
|
|
8
|
-
_ref$preloadPrevCount = _ref.preloadPrevCount,
|
|
9
|
-
preloadPrevCount = _ref$preloadPrevCount === void 0 ? 0 : _ref$preloadPrevCount;
|
|
10
|
-
|
|
11
|
-
var _useCarouselContext = useCarouselContext(),
|
|
12
|
-
currentSlide = _useCarouselContext.currentSlide,
|
|
13
|
-
slidesToShow = _useCarouselContext.slidesToShow;
|
|
14
|
-
|
|
15
|
-
var preloadedImagesCache = useRef({});
|
|
16
|
-
var childrenRef = useRef(maybeSingleChildren);
|
|
17
|
-
useEffect(function () {
|
|
18
|
-
if (maybeSingleChildren !== childrenRef.current) {
|
|
19
|
-
// clear cache
|
|
20
|
-
childrenRef.current = maybeSingleChildren;
|
|
21
|
-
preloadedImagesCache.current = {};
|
|
22
|
-
}
|
|
23
|
-
}, [maybeSingleChildren]);
|
|
24
|
-
var children = Children.toArray(maybeSingleChildren);
|
|
25
|
-
|
|
26
|
-
if (preloadNextCount > 0 && preloadPrevCount > 0 && children.length > 0) {
|
|
27
|
-
var ret = [];
|
|
28
|
-
|
|
29
|
-
for (var i = currentSlide - preloadPrevCount; i <= currentSlide + (slidesToShow - 1) + preloadNextCount; i += 1) {
|
|
30
|
-
var idx = getCircularIndex(i, children.length);
|
|
31
|
-
|
|
32
|
-
if (!idx) {
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
if ( // ignore images currently rendered in carousel
|
|
37
|
-
i >= currentSlide && i <= currentSlide + (slidesToShow - 1) || // ignore images we've already preloaded first
|
|
38
|
-
preloadedImagesCache.current[idx]) {
|
|
39
|
-
// set images rendered as already preloaded
|
|
40
|
-
preloadedImagesCache.current[idx] = true;
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
preloadedImagesCache.current[idx] = true;
|
|
45
|
-
ret.push(cloneElement(children[idx], {
|
|
46
|
-
'data-carousel-preload': idx
|
|
47
|
-
}));
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (ret.length > 0) {
|
|
51
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
52
|
-
ref: ref,
|
|
53
|
-
"data-carousel-preloader": true,
|
|
54
|
-
"aria-hidden": true,
|
|
55
|
-
style: {
|
|
56
|
-
width: '1px',
|
|
57
|
-
height: '0px',
|
|
58
|
-
padding: '0',
|
|
59
|
-
overflow: 'hidden',
|
|
60
|
-
position: 'fixed',
|
|
61
|
-
top: '1px',
|
|
62
|
-
left: '1px'
|
|
63
|
-
}
|
|
64
|
-
}, ret);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return null;
|
|
69
|
-
});
|
|
70
|
-
//# sourceMappingURL=Preloader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Carousel/Preloader.tsx"],"names":["React","Children","forwardRef","cloneElement","useEffect","useRef","useCarouselContext","getCircularIndex","Preloader","ref","maybeSingleChildren","children","preloadNextCount","preloadPrevCount","currentSlide","slidesToShow","preloadedImagesCache","childrenRef","current","toArray","length","ret","i","idx","push","width","height","padding","overflow","position","top","left"],"mappings":"AAAA,OAAOA,KAAP,IACEC,QADF,EAEEC,UAFF,EAGEC,YAHF,EAIEC,SAJF,EAKEC,MALF,QAMO,OANP;AAOA,SAASC,kBAAT,QAAmC,WAAnC;AACA,SAASC,gBAAT,QAAiC,2BAAjC;AAQA,OAAO,IAAMC,SAAS,GAAGN,UAAU,CACjC,SAASM,SAAT,OAMEC,GANF,EAOE;AAAA,MALYC,mBAKZ,QALEC,QAKF;AAAA,mCAJEC,gBAIF;AAAA,MAJEA,gBAIF,sCAJqB,CAIrB;AAAA,mCAHEC,gBAGF;AAAA,MAHEA,gBAGF,sCAHqB,CAGrB;;AAAA,4BACuCP,kBAAkB,EADzD;AAAA,MACQQ,YADR,uBACQA,YADR;AAAA,MACsBC,YADtB,uBACsBA,YADtB;;AAEA,MAAMC,oBAAoB,GAAGX,MAAM,CAAC,EAAD,CAAnC;AACA,MAAMY,WAAW,GAAGZ,MAAM,CAACK,mBAAD,CAA1B;AAEAN,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIM,mBAAmB,KAAKO,WAAW,CAACC,OAAxC,EAAiD;AAC/C;AACAD,MAAAA,WAAW,CAACC,OAAZ,GAAsBR,mBAAtB;AACAM,MAAAA,oBAAoB,CAACE,OAArB,GAA+B,EAA/B;AACD;AACF,GANQ,EAMN,CAACR,mBAAD,CANM,CAAT;AAQA,MAAMC,QAAQ,GAAGV,QAAQ,CAACkB,OAAT,CAAiBT,mBAAjB,CAAjB;;AAEA,MAAIE,gBAAgB,GAAG,CAAnB,IAAwBC,gBAAgB,GAAG,CAA3C,IAAgDF,QAAQ,CAACS,MAAT,GAAkB,CAAtE,EAAyE;AACvE,QAAMC,GAAyB,GAAG,EAAlC;;AACA,SACE,IAAIC,CAAC,GAAGR,YAAY,GAAGD,gBADzB,EAEES,CAAC,IAAIR,YAAY,IAAIC,YAAY,GAAG,CAAnB,CAAZ,GAAoCH,gBAF3C,EAGEU,CAAC,IAAI,CAHP,EAIE;AACA,UAAMC,GAAG,GAAGhB,gBAAgB,CAACe,CAAD,EAAIX,QAAQ,CAACS,MAAb,CAA5B;;AACA,UAAI,CAACG,GAAL,EAAU;AACR;AACD;;AAED,WACE;AACCD,MAAAA,CAAC,IAAIR,YAAL,IAAqBQ,CAAC,IAAIR,YAAY,IAAIC,YAAY,GAAG,CAAnB,CAAvC,IACA;AACAC,MAAAA,oBAAoB,CAACE,OAArB,CAA6BK,GAA7B,CAJF,EAKE;AACA;AACAP,QAAAA,oBAAoB,CAACE,OAArB,CAA6BK,GAA7B,IAAoC,IAApC;AACA;AACD;;AAEDP,MAAAA,oBAAoB,CAACE,OAArB,CAA6BK,GAA7B,IAAoC,IAApC;AACAF,MAAAA,GAAG,CAACG,IAAJ,CACErB,YAAY,CAACQ,QAAQ,CAACY,GAAD,CAAT,EAA2C;AACrD,iCAAyBA;AAD4B,OAA3C,CADd;AAKD;;AAED,QAAIF,GAAG,CAACD,MAAJ,GAAa,CAAjB,EAAoB;AAClB,0BACE;AACE,QAAA,GAAG,EAAEX,GADP;AAEE,uCAFF;AAGE,2BAHF;AAIE,QAAA,KAAK,EAAE;AACLgB,UAAAA,KAAK,EAAE,KADF;AAELC,UAAAA,MAAM,EAAE,KAFH;AAGLC,UAAAA,OAAO,EAAE,GAHJ;AAILC,UAAAA,QAAQ,EAAE,QAJL;AAKLC,UAAAA,QAAQ,EAAE,OALL;AAMLC,UAAAA,GAAG,EAAE,KANA;AAOLC,UAAAA,IAAI,EAAE;AAPD;AAJT,SAcGV,GAdH,CADF;AAkBD;AACF;;AAED,SAAO,IAAP;AACD,CA7EgC,CAA5B","sourcesContent":["import React, {\n Children,\n forwardRef,\n cloneElement,\n useEffect,\n useRef,\n} from 'react';\nimport { useCarouselContext } from './context';\nimport { getCircularIndex } from '../utils/getCircularIndex';\n\nexport interface PreloaderProps {\n children: React.ReactNode[] | React.ReactNode;\n preloadNextCount?: number;\n preloadPrevCount?: number;\n}\n\nexport const Preloader = forwardRef<HTMLDivElement, PreloaderProps>(\n function Preloader(\n {\n children: maybeSingleChildren,\n preloadNextCount = 0,\n preloadPrevCount = 0,\n },\n ref\n ) {\n const { currentSlide, slidesToShow } = useCarouselContext();\n const preloadedImagesCache = useRef({});\n const childrenRef = useRef(maybeSingleChildren);\n\n useEffect(() => {\n if (maybeSingleChildren !== childrenRef.current) {\n // clear cache\n childrenRef.current = maybeSingleChildren;\n preloadedImagesCache.current = {};\n }\n }, [maybeSingleChildren]);\n\n const children = Children.toArray(maybeSingleChildren);\n\n if (preloadNextCount > 0 && preloadPrevCount > 0 && children.length > 0) {\n const ret: React.ReactElement[] = [];\n for (\n let i = currentSlide - preloadPrevCount;\n i <= currentSlide + (slidesToShow - 1) + preloadNextCount;\n i += 1\n ) {\n const idx = getCircularIndex(i, children.length);\n if (!idx) {\n continue;\n }\n\n if (\n // ignore images currently rendered in carousel\n (i >= currentSlide && i <= currentSlide + (slidesToShow - 1)) ||\n // ignore images we've already preloaded first\n preloadedImagesCache.current[idx]\n ) {\n // set images rendered as already preloaded\n preloadedImagesCache.current[idx] = true;\n continue;\n }\n\n preloadedImagesCache.current[idx] = true;\n ret.push(\n cloneElement(children[idx] as React.ReactElement<any>, {\n 'data-carousel-preload': idx,\n })\n );\n }\n\n if (ret.length > 0) {\n return (\n <div\n ref={ref}\n data-carousel-preloader\n aria-hidden\n style={{\n width: '1px',\n height: '0px',\n padding: '0',\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px',\n }}\n >\n {ret}\n </div>\n );\n }\n }\n\n return null;\n }\n);\n"],"file":"Preloader.js"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { SpringConfig } from 'react-spring';
|
|
3
|
-
import { GestureHandlersState } from '../hooks';
|
|
4
|
-
export declare const sliderConfig: SpringConfig;
|
|
5
|
-
export interface SliderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
as?: React.ElementType<any>;
|
|
7
|
-
mouseSwipe?: boolean;
|
|
8
|
-
touchSwipe?: boolean;
|
|
9
|
-
onSwipeRight?: (s: Partial<GestureHandlersState>) => void;
|
|
10
|
-
onSwipeLeft?: (s: Partial<GestureHandlersState>) => void;
|
|
11
|
-
springConfig?: SpringConfig;
|
|
12
|
-
children?: React.ReactNode[] | React.ReactNode;
|
|
13
|
-
}
|
|
14
|
-
export declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
-
import React, { useRef, useReducer, useEffect, useMemo, Children, forwardRef } from 'react';
|
|
5
|
-
import { useSpring, animated } from 'react-spring';
|
|
6
|
-
import { SliderItemRenderer } from './SliderItem';
|
|
7
|
-
import { useCarouselContext } from './context';
|
|
8
|
-
import { getSliderParams } from './getSliderParams';
|
|
9
|
-
import { useCarouselGestures } from './useCarouselGestures';
|
|
10
|
-
export var sliderConfig = {
|
|
11
|
-
tension: 230,
|
|
12
|
-
friction: 20,
|
|
13
|
-
clamp: true
|
|
14
|
-
};
|
|
15
|
-
var SET_CURRENT_SLIDER_INDEX = 'setCurrentSlideIndex';
|
|
16
|
-
var SET_SHOULD_ANIMATE_TO_REST = 'setShouldAnimateToRest';
|
|
17
|
-
var TRIGGER_RERENDER = 'triggerRerender';
|
|
18
|
-
|
|
19
|
-
function reducer(prevState, action) {
|
|
20
|
-
switch (action.type) {
|
|
21
|
-
case SET_CURRENT_SLIDER_INDEX:
|
|
22
|
-
return _extends(_extends({}, prevState), {}, {
|
|
23
|
-
currentSlideIndex: action.payload,
|
|
24
|
-
shouldAnimateToRest: false
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
case SET_SHOULD_ANIMATE_TO_REST:
|
|
28
|
-
return _extends(_extends({}, prevState), {}, {
|
|
29
|
-
shouldAnimateToRest: action.payload
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
case TRIGGER_RERENDER:
|
|
33
|
-
return _extends({}, prevState);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
var noop = function noop() {
|
|
38
|
-
/* null function to be used on onRest and onFrame */
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export var Slider = forwardRef(function Slider(_ref, ref) {
|
|
42
|
-
var _ref$as = _ref.as,
|
|
43
|
-
Comp = _ref$as === void 0 ? animated.div : _ref$as,
|
|
44
|
-
maybeSingleChildren = _ref.children,
|
|
45
|
-
_ref$springConfig = _ref.springConfig,
|
|
46
|
-
springConfig = _ref$springConfig === void 0 ? sliderConfig : _ref$springConfig,
|
|
47
|
-
mouseSwipe = _ref.mouseSwipe,
|
|
48
|
-
touchSwipe = _ref.touchSwipe,
|
|
49
|
-
onSwipeLeft = _ref.onSwipeLeft,
|
|
50
|
-
onSwipeRight = _ref.onSwipeRight,
|
|
51
|
-
style = _ref.style,
|
|
52
|
-
otherProps = _objectWithoutProperties(_ref, ["as", "children", "springConfig", "mouseSwipe", "touchSwipe", "onSwipeLeft", "onSwipeRight", "style"]);
|
|
53
|
-
|
|
54
|
-
var _useCarouselContext = useCarouselContext(),
|
|
55
|
-
_useCarouselContext$i = _useCarouselContext.isRTL,
|
|
56
|
-
isRTL = _useCarouselContext$i === void 0 ? false : _useCarouselContext$i,
|
|
57
|
-
_useCarouselContext$s = _useCarouselContext.slidesToShow,
|
|
58
|
-
slidesToShow = _useCarouselContext$s === void 0 ? 1 : _useCarouselContext$s,
|
|
59
|
-
_useCarouselContext$c = _useCarouselContext.currentSlide,
|
|
60
|
-
nextSlideIndex = _useCarouselContext$c === void 0 ? 0 : _useCarouselContext$c,
|
|
61
|
-
containerRef = _useCarouselContext.containerRef,
|
|
62
|
-
itemWidth = _useCarouselContext.itemWidth;
|
|
63
|
-
|
|
64
|
-
var _useReducer = useReducer(reducer, {
|
|
65
|
-
currentSlideIndex: nextSlideIndex,
|
|
66
|
-
shouldAnimateToRest: false
|
|
67
|
-
}),
|
|
68
|
-
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
69
|
-
_useReducer2$ = _useReducer2[0],
|
|
70
|
-
currentSlideIndex = _useReducer2$.currentSlideIndex,
|
|
71
|
-
shouldAnimateToRest = _useReducer2$.shouldAnimateToRest,
|
|
72
|
-
dispatch = _useReducer2[1]; // Convert children from possibly empty, or 1 child, to array of nodes
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
var children = useMemo(function () {
|
|
76
|
-
return Children.toArray(maybeSingleChildren);
|
|
77
|
-
}, [maybeSingleChildren]); // Keep record of animation frames
|
|
78
|
-
|
|
79
|
-
var lastAnimationX = useRef(0); // Keep record of drag positioning, to forceUpdate when dragging slides
|
|
80
|
-
|
|
81
|
-
var lastDragX = useRef(NaN); // Animation properties... will be update via setAnimationProps
|
|
82
|
-
|
|
83
|
-
var _useSpring = useSpring({
|
|
84
|
-
to: {
|
|
85
|
-
x: 0
|
|
86
|
-
},
|
|
87
|
-
config: springConfig
|
|
88
|
-
}, []),
|
|
89
|
-
_useSpring2 = _slicedToArray(_useSpring, 2),
|
|
90
|
-
animationProps = _useSpring2[0],
|
|
91
|
-
setAnimationProps = _useSpring2[1]; // Keep track of animation values, to allow
|
|
92
|
-
// us to pause animation with mouse click
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
var onChange = function onChange(e) {
|
|
96
|
-
lastAnimationX.current = e.x || 0;
|
|
97
|
-
}; // Called when the next slide animation is complete
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
var onNextSlideComplete = function onNextSlideComplete() {
|
|
101
|
-
// need this to stay in sync with setAnimationProps
|
|
102
|
-
requestAnimationFrame(function () {
|
|
103
|
-
dispatch({
|
|
104
|
-
type: SET_CURRENT_SLIDER_INDEX,
|
|
105
|
-
payload: nextSlideIndex
|
|
106
|
-
});
|
|
107
|
-
lastAnimationX.current = 0;
|
|
108
|
-
setAnimationProps({
|
|
109
|
-
x: 0,
|
|
110
|
-
immediate: true,
|
|
111
|
-
onRest: noop,
|
|
112
|
-
onChange: noop
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
}; // Called when you started dragging, but didn't drag long enough,
|
|
116
|
-
// so it will rest back to zero
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
var onRestAnimationComplete = function onRestAnimationComplete() {
|
|
120
|
-
lastAnimationX.current = 0;
|
|
121
|
-
dispatch({
|
|
122
|
-
type: SET_SHOULD_ANIMATE_TO_REST,
|
|
123
|
-
payload: false
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
var onDrag = function onDrag(s) {
|
|
128
|
-
if (s.down) {
|
|
129
|
-
var x = lastAnimationX.current + s.xDeltaPercent;
|
|
130
|
-
setAnimationProps({
|
|
131
|
-
x: x,
|
|
132
|
-
immediate: true,
|
|
133
|
-
onRest: noop,
|
|
134
|
-
onChange: noop
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
if (x === 0) {
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
if (s.xDeltaPercent !== 0 && !Object.is(Math.trunc(lastDragX.current / itemWidth), Math.trunc(x / itemWidth))) {
|
|
142
|
-
// flipping signal, or adding more async slides
|
|
143
|
-
requestAnimationFrame(function () {
|
|
144
|
-
dispatch({
|
|
145
|
-
type: SET_SHOULD_ANIMATE_TO_REST,
|
|
146
|
-
payload: true
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
lastDragX.current = x;
|
|
152
|
-
} else {
|
|
153
|
-
setAnimationProps({
|
|
154
|
-
x: 0,
|
|
155
|
-
onRest: onRestAnimationComplete,
|
|
156
|
-
onChange: onChange,
|
|
157
|
-
immediate: false
|
|
158
|
-
});
|
|
159
|
-
lastDragX.current = NaN; // force a rerender to make sure it will still work
|
|
160
|
-
// when you pause in the middle of a slide transition
|
|
161
|
-
|
|
162
|
-
dispatch({
|
|
163
|
-
type: TRIGGER_RERENDER
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
var _useCarouselGestures = useCarouselGestures({
|
|
169
|
-
isRTL: isRTL,
|
|
170
|
-
onSwipeRight: onSwipeRight,
|
|
171
|
-
onSwipeLeft: onSwipeLeft,
|
|
172
|
-
onDrag: onDrag,
|
|
173
|
-
containerRef: containerRef,
|
|
174
|
-
slidesToShow: slidesToShow
|
|
175
|
-
}),
|
|
176
|
-
handlers = _useCarouselGestures.handlers,
|
|
177
|
-
gestureState = _useCarouselGestures.state;
|
|
178
|
-
|
|
179
|
-
var deltaX = gestureState.down || shouldAnimateToRest ? lastAnimationX.current + gestureState.xDeltaPercent : 0;
|
|
180
|
-
/* Slide animation parameters */
|
|
181
|
-
|
|
182
|
-
var params = getSliderParams(children.length, currentSlideIndex, nextSlideIndex, slidesToShow, gestureState.down, deltaX, isRTL);
|
|
183
|
-
useEffect(function () {
|
|
184
|
-
if (nextSlideIndex !== currentSlideIndex) {
|
|
185
|
-
setAnimationProps({
|
|
186
|
-
x: params.targetX,
|
|
187
|
-
onRest: onNextSlideComplete,
|
|
188
|
-
onChange: onChange,
|
|
189
|
-
immediate: false
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
return /*#__PURE__*/React.createElement(Comp, _extends({
|
|
194
|
-
ref: ref,
|
|
195
|
-
onTouchStart: touchSwipe ? handlers.onTouchStart : undefined,
|
|
196
|
-
onMouseDown: mouseSwipe ? handlers.onMouseDown : undefined,
|
|
197
|
-
"aria-live": "polite",
|
|
198
|
-
"data-carousel-slider": "",
|
|
199
|
-
dir: isRTL ? 'rtl' : undefined,
|
|
200
|
-
style: _extends({
|
|
201
|
-
left: params.left,
|
|
202
|
-
paddingRight: params.paddingRight,
|
|
203
|
-
transform: animationProps.x.to(function (t) {
|
|
204
|
-
return "translateX(".concat(t, "%)");
|
|
205
|
-
})
|
|
206
|
-
}, style)
|
|
207
|
-
}, otherProps), /*#__PURE__*/React.createElement(SliderItemRenderer, {
|
|
208
|
-
startingIndex: params.startingIndex,
|
|
209
|
-
count: params.count
|
|
210
|
-
}, children));
|
|
211
|
-
});
|
|
212
|
-
//# sourceMappingURL=Slider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Carousel/Slider.tsx"],"names":["React","useRef","useReducer","useEffect","useMemo","Children","forwardRef","useSpring","animated","SliderItemRenderer","useCarouselContext","getSliderParams","useCarouselGestures","sliderConfig","tension","friction","clamp","SET_CURRENT_SLIDER_INDEX","SET_SHOULD_ANIMATE_TO_REST","TRIGGER_RERENDER","reducer","prevState","action","type","currentSlideIndex","payload","shouldAnimateToRest","noop","Slider","ref","as","Comp","div","maybeSingleChildren","children","springConfig","mouseSwipe","touchSwipe","onSwipeLeft","onSwipeRight","style","otherProps","isRTL","slidesToShow","currentSlide","nextSlideIndex","containerRef","itemWidth","dispatch","toArray","lastAnimationX","lastDragX","NaN","to","x","config","animationProps","setAnimationProps","onChange","e","current","onNextSlideComplete","requestAnimationFrame","immediate","onRest","onRestAnimationComplete","onDrag","s","down","xDeltaPercent","Object","is","Math","trunc","handlers","gestureState","state","deltaX","params","length","targetX","onTouchStart","undefined","onMouseDown","left","paddingRight","transform","t","startingIndex","count"],"mappings":"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","sourcesContent":["import React, {\n useRef,\n useReducer,\n useEffect,\n useMemo,\n Children,\n forwardRef,\n} from 'react';\nimport { useSpring, SpringConfig, animated } from 'react-spring';\nimport { SliderItemRenderer } from './SliderItem';\nimport { useCarouselContext } from './context';\nimport { getSliderParams } from './getSliderParams';\nimport { useCarouselGestures } from './useCarouselGestures';\nimport { GestureHandlersState } from '../hooks';\n\nexport const sliderConfig: SpringConfig = {\n tension: 230,\n friction: 20,\n clamp: true,\n};\n\nexport interface SliderProps extends React.HTMLAttributes<HTMLDivElement> {\n as?: React.ElementType<any>;\n mouseSwipe?: boolean;\n touchSwipe?: boolean;\n onSwipeRight?: (s: Partial<GestureHandlersState>) => void;\n onSwipeLeft?: (s: Partial<GestureHandlersState>) => void;\n springConfig?: SpringConfig;\n children?: React.ReactNode[] | React.ReactNode;\n}\n\ninterface SliderState {\n currentSlideIndex: number;\n shouldAnimateToRest: boolean;\n}\n\nconst SET_CURRENT_SLIDER_INDEX = 'setCurrentSlideIndex';\nconst SET_SHOULD_ANIMATE_TO_REST = 'setShouldAnimateToRest';\nconst TRIGGER_RERENDER = 'triggerRerender';\n\ninterface SliderSetPreviousSlideIndex {\n type: typeof SET_CURRENT_SLIDER_INDEX;\n payload: number;\n}\n\ninterface SlideSetRestAnimating {\n type: typeof SET_SHOULD_ANIMATE_TO_REST;\n payload: boolean;\n}\n\ninterface SlideTriggerRerender {\n type: typeof TRIGGER_RERENDER;\n}\n\ntype SliderAction =\n | SliderSetPreviousSlideIndex\n | SlideSetRestAnimating\n | SlideTriggerRerender;\n\nfunction reducer<T>(\n prevState: Readonly<SliderState>,\n action: SliderAction\n): SliderState {\n switch (action.type) {\n case SET_CURRENT_SLIDER_INDEX:\n return {\n ...prevState,\n currentSlideIndex: action.payload,\n shouldAnimateToRest: false,\n };\n case SET_SHOULD_ANIMATE_TO_REST:\n return { ...prevState, shouldAnimateToRest: action.payload };\n case TRIGGER_RERENDER:\n return { ...prevState };\n }\n}\n\nconst noop = () => {\n /* null function to be used on onRest and onFrame */\n};\n\nexport const Slider = forwardRef<HTMLDivElement, SliderProps>(function Slider(\n {\n as: Comp = animated.div,\n children: maybeSingleChildren,\n springConfig = sliderConfig,\n mouseSwipe,\n touchSwipe,\n onSwipeLeft,\n onSwipeRight,\n style,\n ...otherProps\n },\n ref\n) {\n const {\n isRTL = false,\n slidesToShow = 1,\n currentSlide: nextSlideIndex = 0,\n containerRef,\n itemWidth,\n } = useCarouselContext();\n\n const [{ currentSlideIndex, shouldAnimateToRest }, dispatch] = useReducer(\n reducer,\n {\n currentSlideIndex: nextSlideIndex,\n shouldAnimateToRest: false,\n }\n );\n\n // Convert children from possibly empty, or 1 child, to array of nodes\n const children = useMemo(() => Children.toArray(maybeSingleChildren), [\n maybeSingleChildren,\n ]);\n\n // Keep record of animation frames\n const lastAnimationX = useRef(0);\n\n // Keep record of drag positioning, to forceUpdate when dragging slides\n const lastDragX = useRef(NaN);\n\n // Animation properties... will be update via setAnimationProps\n const [animationProps, setAnimationProps] = useSpring<{ x: number }>(\n {\n to: { x: 0 },\n config: springConfig,\n },\n []\n );\n\n // Keep track of animation values, to allow\n // us to pause animation with mouse click\n const onChange = (e: { x: number }) => {\n lastAnimationX.current = e.x || 0;\n };\n\n // Called when the next slide animation is complete\n const onNextSlideComplete = () => {\n // need this to stay in sync with setAnimationProps\n requestAnimationFrame(() => {\n dispatch({ type: SET_CURRENT_SLIDER_INDEX, payload: nextSlideIndex });\n lastAnimationX.current = 0;\n setAnimationProps({\n x: 0,\n immediate: true,\n onRest: noop,\n onChange: noop,\n });\n });\n };\n\n // Called when you started dragging, but didn't drag long enough,\n // so it will rest back to zero\n const onRestAnimationComplete = () => {\n lastAnimationX.current = 0;\n dispatch({ type: SET_SHOULD_ANIMATE_TO_REST, payload: false });\n };\n\n const onDrag = (s: GestureHandlersState) => {\n if (s.down) {\n const x = lastAnimationX.current + s.xDeltaPercent;\n setAnimationProps({\n x,\n immediate: true,\n onRest: noop,\n onChange: noop,\n });\n\n if (x === 0) {\n return;\n }\n\n if (\n s.xDeltaPercent !== 0 &&\n !Object.is(\n Math.trunc(lastDragX.current / itemWidth),\n Math.trunc(x / itemWidth)\n )\n ) {\n // flipping signal, or adding more async slides\n requestAnimationFrame(() => {\n dispatch({ type: SET_SHOULD_ANIMATE_TO_REST, payload: true });\n });\n }\n\n lastDragX.current = x;\n } else {\n setAnimationProps({\n x: 0,\n onRest: onRestAnimationComplete,\n onChange: onChange,\n immediate: false,\n });\n\n lastDragX.current = NaN;\n\n // force a rerender to make sure it will still work\n // when you pause in the middle of a slide transition\n dispatch({ type: TRIGGER_RERENDER });\n }\n };\n\n const { handlers, state: gestureState } = useCarouselGestures({\n isRTL,\n onSwipeRight,\n onSwipeLeft,\n onDrag,\n containerRef,\n slidesToShow,\n });\n\n const deltaX =\n gestureState.down || shouldAnimateToRest\n ? lastAnimationX.current + gestureState.xDeltaPercent\n : 0;\n\n /* Slide animation parameters */\n const params = getSliderParams(\n children.length,\n currentSlideIndex,\n nextSlideIndex,\n slidesToShow,\n gestureState.down,\n deltaX,\n isRTL\n );\n\n useEffect(() => {\n if (nextSlideIndex !== currentSlideIndex) {\n setAnimationProps({\n x: params.targetX,\n onRest: onNextSlideComplete,\n onChange,\n immediate: false,\n });\n }\n });\n\n return (\n <Comp\n ref={ref}\n onTouchStart={touchSwipe ? handlers.onTouchStart : undefined}\n onMouseDown={mouseSwipe ? handlers.onMouseDown : undefined}\n aria-live=\"polite\"\n data-carousel-slider=\"\"\n dir={isRTL ? 'rtl' : undefined}\n style={{\n left: params.left,\n paddingRight: params.paddingRight,\n transform: animationProps.x.to((t) => {\n return `translateX(${t}%)`;\n }),\n ...(style as any),\n }}\n {...otherProps}\n >\n <SliderItemRenderer\n startingIndex={params.startingIndex}\n count={params.count}\n >\n {children}\n </SliderItemRenderer>\n </Comp>\n );\n});\n"],"file":"Slider.js"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export interface SliderItemProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
-
as?: React.ElementType<any>;
|
|
4
|
-
}
|
|
5
|
-
export declare const SliderItem: React.ForwardRefExoticComponent<SliderItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
-
interface SliderItemRendererProps {
|
|
7
|
-
children: React.ReactNode[];
|
|
8
|
-
startingIndex: number;
|
|
9
|
-
count: number;
|
|
10
|
-
}
|
|
11
|
-
export declare const SliderItemRenderer: ({ children, startingIndex, count, }: SliderItemRendererProps) => JSX.Element;
|
|
12
|
-
export default SliderItem;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
import React, { forwardRef } from 'react';
|
|
4
|
-
import { getCircularIndex } from '../utils/getCircularIndex';
|
|
5
|
-
export var SliderItem = forwardRef(function SliderItem(_ref, ref) {
|
|
6
|
-
var _ref$as = _ref.as,
|
|
7
|
-
Comp = _ref$as === void 0 ? 'div' : _ref$as,
|
|
8
|
-
props = _objectWithoutProperties(_ref, ["as"]);
|
|
9
|
-
|
|
10
|
-
return /*#__PURE__*/React.createElement(Comp, _extends({
|
|
11
|
-
ref: ref,
|
|
12
|
-
role: "group",
|
|
13
|
-
"aria-roledescription": "slide",
|
|
14
|
-
"data-carousel-slider-item": ""
|
|
15
|
-
}, props));
|
|
16
|
-
});
|
|
17
|
-
export var SliderItemRenderer = function SliderItemRenderer(_ref2) {
|
|
18
|
-
var children = _ref2.children,
|
|
19
|
-
startingIndex = _ref2.startingIndex,
|
|
20
|
-
count = _ref2.count;
|
|
21
|
-
var ret = [];
|
|
22
|
-
var itemsLen = children.length;
|
|
23
|
-
var finalIndex = startingIndex + count;
|
|
24
|
-
var counter = 0;
|
|
25
|
-
|
|
26
|
-
for (var i = startingIndex; i < finalIndex; i += 1, counter += 1) {
|
|
27
|
-
if (counter % itemsLen === 0) {
|
|
28
|
-
ret.push([]);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
var index = getCircularIndex(i, itemsLen);
|
|
32
|
-
|
|
33
|
-
if (index !== null) {
|
|
34
|
-
ret[ret.length - 1].push(children[index]);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, ret);
|
|
39
|
-
};
|
|
40
|
-
export default SliderItem;
|
|
41
|
-
//# sourceMappingURL=SliderItem.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Carousel/SliderItem.tsx"],"names":["React","forwardRef","getCircularIndex","SliderItem","ref","as","Comp","props","SliderItemRenderer","children","startingIndex","count","ret","itemsLen","length","finalIndex","counter","i","push","index"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,SAASC,gBAAT,QAAiC,2BAAjC;AAMA,OAAO,IAAMC,UAAU,GAAGF,UAAU,CAClC,SAASE,UAAT,OAEEC,GAFF,EAGE;AAAA,qBAFEC,EAEF;AAAA,MAFMC,IAEN,wBAFa,KAEb;AAAA,MAFuBC,KAEvB;;AACA,sBACE,oBAAC,IAAD;AACE,IAAA,GAAG,EAAEH,GADP;AAEE,IAAA,IAAI,EAAC,OAFP;AAGE,4BAAqB,OAHvB;AAIE,iCAA0B;AAJ5B,KAKMG,KALN,EADF;AASD,CAdiC,CAA7B;AAuBP,OAAO,IAAMC,kBAAkB,GAAG,SAASA,kBAAT,QAIN;AAAA,MAH1BC,QAG0B,SAH1BA,QAG0B;AAAA,MAF1BC,aAE0B,SAF1BA,aAE0B;AAAA,MAD1BC,KAC0B,SAD1BA,KAC0B;AAC1B,MAAMC,GAAwB,GAAG,EAAjC;AACA,MAAMC,QAAQ,GAAGJ,QAAQ,CAACK,MAA1B;AACA,MAAMC,UAAU,GAAGL,aAAa,GAAGC,KAAnC;AAEA,MAAIK,OAAO,GAAG,CAAd;;AACA,OAAK,IAAIC,CAAC,GAAGP,aAAb,EAA4BO,CAAC,GAAGF,UAAhC,EAA4CE,CAAC,IAAI,CAAL,EAAQD,OAAO,IAAI,CAA/D,EAAkE;AAChE,QAAIA,OAAO,GAAGH,QAAV,KAAuB,CAA3B,EAA8B;AAC5BD,MAAAA,GAAG,CAACM,IAAJ,CAAS,EAAT;AACD;;AACD,QAAMC,KAAK,GAAGjB,gBAAgB,CAACe,CAAD,EAAIJ,QAAJ,CAA9B;;AACA,QAAIM,KAAK,KAAK,IAAd,EAAoB;AAClBP,MAAAA,GAAG,CAACA,GAAG,CAACE,MAAJ,GAAa,CAAd,CAAH,CAAoBI,IAApB,CAAyBT,QAAQ,CAACU,KAAD,CAAjC;AACD;AACF;;AAED,sBAAO,oBAAC,KAAD,CAAO,QAAP,QAAiBP,GAAjB,CAAP;AACD,CArBM;AAuBP,eAAeT,UAAf","sourcesContent":["import React, { forwardRef } from 'react';\nimport { getCircularIndex } from '../utils/getCircularIndex';\n\nexport interface SliderItemProps extends React.HTMLAttributes<HTMLDivElement> {\n as?: React.ElementType<any>;\n}\n\nexport const SliderItem = forwardRef<HTMLDivElement, SliderItemProps>(\n function SliderItem(\n { as: Comp = 'div', ...props },\n ref: React.Ref<HTMLDivElement>\n ) {\n return (\n <Comp\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n data-carousel-slider-item=\"\"\n {...props}\n />\n );\n }\n);\n\ninterface SliderItemRendererProps {\n children: React.ReactNode[];\n startingIndex: number;\n count: number;\n}\n\nexport const SliderItemRenderer = function SliderItemRenderer({\n children,\n startingIndex,\n count,\n}: SliderItemRendererProps) {\n const ret: React.ReactNode[][] = [];\n const itemsLen = children.length;\n const finalIndex = startingIndex + count;\n\n let counter = 0;\n for (let i = startingIndex; i < finalIndex; i += 1, counter += 1) {\n if (counter % itemsLen === 0) {\n ret.push([]);\n }\n const index = getCircularIndex(i, itemsLen);\n if (index !== null) {\n ret[ret.length - 1].push(children[index]);\n }\n }\n\n return <React.Fragment>{ret}</React.Fragment>;\n};\n\nexport default SliderItem;\n"],"file":"SliderItem.js"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
export interface CarouselContextProps {
|
|
3
|
-
slidesToShow: number;
|
|
4
|
-
isRTL: boolean;
|
|
5
|
-
currentSlide: number;
|
|
6
|
-
itemWidth: number;
|
|
7
|
-
containerRef: React.MutableRefObject<HTMLElement | null>;
|
|
8
|
-
}
|
|
9
|
-
export declare const CarouselProvider: import("react").Provider<CarouselContextProps>;
|
|
10
|
-
export declare const useCarouselContext: () => CarouselContextProps;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { createContext, useContext } from 'react';
|
|
2
|
-
var carouselContext = createContext(null);
|
|
3
|
-
var CarouselProvider = carouselContext.Provider;
|
|
4
|
-
export { CarouselProvider };
|
|
5
|
-
export var useCarouselContext = function useCarouselContext() {
|
|
6
|
-
return useContext(carouselContext);
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Carousel/context.ts"],"names":["createContext","useContext","carouselContext","CarouselProvider","Provider","useCarouselContext"],"mappings":"AAAA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,OAA1C;AAUA,IAAMC,eAAe,GAAGF,aAAa,CAAuB,IAAvB,CAArC;IACyBG,gB,GAAqBD,e,CAA/BE,Q;;AACf,OAAO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,SAAMJ,UAAU,CAACC,eAAD,CAAhB;AAAA,CAA3B","sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface CarouselContextProps {\n slidesToShow: number;\n isRTL: boolean;\n currentSlide: number;\n itemWidth: number;\n containerRef: React.MutableRefObject<HTMLElement | null>;\n}\n\nconst carouselContext = createContext<CarouselContextProps>(null as any);\nexport const { Provider: CarouselProvider } = carouselContext;\nexport const useCarouselContext = () => useContext(carouselContext);\n"],"file":"context.js"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare function getSlidesToScroll(curSlide: number, nextSlide: number, deltaX: number, itemWidth: number): number;
|
|
2
|
-
export declare function getSliderParams(numAvailableSlides: number, curSlide: number, nextSlide: number, slidesToShow: number, dragging: boolean, deltaX: number, isRTL: boolean): {
|
|
3
|
-
startingIndex: number;
|
|
4
|
-
count: number;
|
|
5
|
-
left: string | undefined;
|
|
6
|
-
targetX: number;
|
|
7
|
-
itemWidth: number;
|
|
8
|
-
paddingRight: string | undefined;
|
|
9
|
-
};
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
var AnimationState;
|
|
2
|
-
|
|
3
|
-
(function (AnimationState) {
|
|
4
|
-
AnimationState[AnimationState["LEFT"] = -1] = "LEFT";
|
|
5
|
-
AnimationState[AnimationState["NONE"] = 0] = "NONE";
|
|
6
|
-
AnimationState[AnimationState["RIGHT"] = 1] = "RIGHT";
|
|
7
|
-
})(AnimationState || (AnimationState = {}));
|
|
8
|
-
|
|
9
|
-
function getAnimationState(animationEnabled, nextSlide, currentSlide, deltaX, isRTL) {
|
|
10
|
-
if (deltaX === 0 && (!animationEnabled || nextSlide === currentSlide)) {
|
|
11
|
-
return AnimationState.NONE;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
if (deltaX < 0 || nextSlide > currentSlide && !isRTL || nextSlide < currentSlide && isRTL) {
|
|
15
|
-
return AnimationState.RIGHT;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return AnimationState.LEFT;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function getSlideIndex(curSlide, nextSlide, deltaX, slidesToScroll, isRTL) {
|
|
22
|
-
if (deltaX > 0 && !isRTL || deltaX < 0 && isRTL) {
|
|
23
|
-
return curSlide - slidesToScroll;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return Math.min(curSlide, nextSlide);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function getLeftOffset(animationState, itemWidth, slidesToScroll, isRTL) {
|
|
30
|
-
if (animationState === AnimationState.LEFT && !isRTL) {
|
|
31
|
-
return "".concat(-itemWidth * slidesToScroll, "%");
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (animationState === AnimationState.RIGHT && isRTL) {
|
|
35
|
-
return "".concat(itemWidth * slidesToScroll, "%");
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return undefined;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function getSpringTarget(drag, deltaX, animationState, itemWidth, slidesToScroll) {
|
|
42
|
-
if (drag) {
|
|
43
|
-
return deltaX;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (animationState === AnimationState.LEFT) {
|
|
47
|
-
return itemWidth * slidesToScroll;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (animationState === AnimationState.RIGHT) {
|
|
51
|
-
return -itemWidth * slidesToScroll;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return 0;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export function getSlidesToScroll(curSlide, nextSlide, deltaX, itemWidth) {
|
|
58
|
-
var dragSlideCount = deltaX !== 0 ? 1 + Math.floor(Math.abs(deltaX) / itemWidth) : 0;
|
|
59
|
-
var slideCount = Math.abs(nextSlide - curSlide);
|
|
60
|
-
return Math.max(dragSlideCount, slideCount);
|
|
61
|
-
}
|
|
62
|
-
export function getSliderParams(numAvailableSlides, curSlide, nextSlide, slidesToShow, dragging, deltaX, isRTL) {
|
|
63
|
-
// The size in percentage that each slide will ocupy
|
|
64
|
-
var itemWidth = 100 / slidesToShow;
|
|
65
|
-
var animationEnabled = numAvailableSlides >= slidesToShow; // if we don't have enough children to animate, we will fulfill
|
|
66
|
-
// the remaining space with a padding to the right
|
|
67
|
-
|
|
68
|
-
var paddingRight = animationEnabled ? undefined : "".concat(itemWidth * (slidesToShow - numAvailableSlides), "%");
|
|
69
|
-
var animationState = getAnimationState(animationEnabled, nextSlide, curSlide, deltaX, isRTL);
|
|
70
|
-
var slidesToScroll = getSlidesToScroll(curSlide, nextSlide, deltaX, itemWidth);
|
|
71
|
-
var startingIndex = getSlideIndex(curSlide, nextSlide, deltaX, slidesToScroll, isRTL);
|
|
72
|
-
var count = slidesToShow + (animationState !== AnimationState.NONE ? slidesToScroll : 0); // shift items to the left for animation effect
|
|
73
|
-
|
|
74
|
-
var left = getLeftOffset(animationState, itemWidth, slidesToScroll, isRTL);
|
|
75
|
-
var targetX = getSpringTarget(dragging, deltaX, nextSlide !== curSlide ? animationState : AnimationState.NONE, itemWidth, Math.abs(nextSlide - curSlide));
|
|
76
|
-
return {
|
|
77
|
-
startingIndex: startingIndex,
|
|
78
|
-
count: count,
|
|
79
|
-
left: left,
|
|
80
|
-
targetX: targetX,
|
|
81
|
-
itemWidth: itemWidth,
|
|
82
|
-
paddingRight: paddingRight
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=getSliderParams.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Carousel/getSliderParams.ts"],"names":["AnimationState","getAnimationState","animationEnabled","nextSlide","currentSlide","deltaX","isRTL","NONE","RIGHT","LEFT","getSlideIndex","curSlide","slidesToScroll","Math","min","getLeftOffset","animationState","itemWidth","undefined","getSpringTarget","drag","getSlidesToScroll","dragSlideCount","floor","abs","slideCount","max","getSliderParams","numAvailableSlides","slidesToShow","dragging","paddingRight","startingIndex","count","left","targetX"],"mappings":"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","sourcesContent":["enum AnimationState {\n LEFT = -1,\n NONE = 0,\n RIGHT = 1,\n}\n\nfunction getAnimationState(\n animationEnabled: boolean,\n nextSlide: number,\n currentSlide: number,\n deltaX: number,\n isRTL: boolean\n): AnimationState {\n if (deltaX === 0 && (!animationEnabled || nextSlide === currentSlide)) {\n return AnimationState.NONE;\n }\n\n if (\n deltaX < 0 ||\n (nextSlide > currentSlide && !isRTL) ||\n (nextSlide < currentSlide && isRTL)\n ) {\n return AnimationState.RIGHT;\n }\n\n return AnimationState.LEFT;\n}\n\nfunction getSlideIndex(\n curSlide: number,\n nextSlide: number,\n deltaX: number,\n slidesToScroll: number,\n isRTL: boolean\n) {\n if ((deltaX > 0 && !isRTL) || (deltaX < 0 && isRTL)) {\n return curSlide - slidesToScroll;\n }\n\n return Math.min(curSlide, nextSlide);\n}\n\nfunction getLeftOffset(\n animationState: AnimationState,\n itemWidth: number,\n slidesToScroll: number,\n isRTL: boolean\n) {\n if (animationState === AnimationState.LEFT && !isRTL) {\n return `${-itemWidth * slidesToScroll}%`;\n }\n if (animationState === AnimationState.RIGHT && isRTL) {\n return `${itemWidth * slidesToScroll}%`;\n }\n\n return undefined;\n}\n\nfunction getSpringTarget(\n drag: boolean,\n deltaX: number,\n animationState: AnimationState,\n itemWidth: number,\n slidesToScroll: number\n) {\n if (drag) {\n return deltaX;\n }\n if (animationState === AnimationState.LEFT) {\n return itemWidth * slidesToScroll;\n }\n if (animationState === AnimationState.RIGHT) {\n return -itemWidth * slidesToScroll;\n }\n\n return 0;\n}\n\nexport function getSlidesToScroll(\n curSlide: number,\n nextSlide: number,\n deltaX: number,\n itemWidth: number\n) {\n const dragSlideCount =\n deltaX !== 0 ? 1 + Math.floor(Math.abs(deltaX) / itemWidth) : 0;\n const slideCount = Math.abs(nextSlide - curSlide);\n\n return Math.max(dragSlideCount, slideCount);\n}\n\nexport function getSliderParams(\n numAvailableSlides: number,\n curSlide: number,\n nextSlide: number,\n slidesToShow: number,\n dragging: boolean,\n deltaX: number,\n isRTL: boolean\n) {\n // The size in percentage that each slide will ocupy\n const itemWidth = 100 / slidesToShow;\n\n const animationEnabled = numAvailableSlides >= slidesToShow;\n // if we don't have enough children to animate, we will fulfill\n // the remaining space with a padding to the right\n const paddingRight = animationEnabled\n ? undefined\n : `${itemWidth * (slidesToShow - numAvailableSlides)}%`;\n\n const animationState = getAnimationState(\n animationEnabled,\n nextSlide,\n curSlide,\n deltaX,\n isRTL\n );\n\n const slidesToScroll = getSlidesToScroll(\n curSlide,\n nextSlide,\n deltaX,\n itemWidth\n );\n\n const startingIndex = getSlideIndex(\n curSlide,\n nextSlide,\n deltaX,\n slidesToScroll,\n isRTL\n );\n const count =\n slidesToShow +\n (animationState !== AnimationState.NONE ? slidesToScroll : 0);\n\n // shift items to the left for animation effect\n const left = getLeftOffset(animationState, itemWidth, slidesToScroll, isRTL);\n\n const targetX = getSpringTarget(\n dragging,\n deltaX,\n nextSlide !== curSlide ? animationState : AnimationState.NONE,\n itemWidth,\n Math.abs(nextSlide - curSlide)\n );\n\n return { startingIndex, count, left, targetX, itemWidth, paddingRight };\n}\n"],"file":"getSliderParams.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Carousel/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,cAAd;AACA,cAAc,aAAd;AACA,cAAc,aAAd;AACA,cAAc,WAAd","sourcesContent":["export * from './Carousel';\nexport * from './Slider';\nexport * from './Fader';\nexport * from './SliderItem';\nexport * from './FaderItem';\nexport * from './Preloader';\nexport * from './context';\n"],"file":"index.js"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { GestureHandlersState } from '../hooks';
|
|
3
|
-
interface UseCarouselOptions {
|
|
4
|
-
onSwipeRight?: (s: GestureHandlersState) => void;
|
|
5
|
-
onSwipeLeft?: (s: GestureHandlersState) => void;
|
|
6
|
-
onDrag?: (s: GestureHandlersState) => void;
|
|
7
|
-
slidesToShow?: number;
|
|
8
|
-
isRTL?: boolean;
|
|
9
|
-
containerRef: React.MutableRefObject<HTMLElement | null>;
|
|
10
|
-
}
|
|
11
|
-
export declare const useCarouselGestures: (props: UseCarouselOptions) => {
|
|
12
|
-
state: {
|
|
13
|
-
target: EventTarget | null;
|
|
14
|
-
x: number;
|
|
15
|
-
xDelta: number;
|
|
16
|
-
xDeltaPercent: number;
|
|
17
|
-
xInitial: number;
|
|
18
|
-
xPrev: number;
|
|
19
|
-
xVelocity: number;
|
|
20
|
-
y: number;
|
|
21
|
-
yDelta: number;
|
|
22
|
-
yDeltaPercent: number;
|
|
23
|
-
yInitial: number;
|
|
24
|
-
yPrev: number;
|
|
25
|
-
yVelocity: number;
|
|
26
|
-
down: boolean;
|
|
27
|
-
};
|
|
28
|
-
handlers: import("../hooks").GestureHandlersReturn;
|
|
29
|
-
};
|
|
30
|
-
export {};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { useGestureHandlers } from '../hooks';
|
|
2
|
-
export var useCarouselGestures = function useCarouselGestures(props) {
|
|
3
|
-
var onSwipeLeft = props.onSwipeLeft,
|
|
4
|
-
onSwipeRight = props.onSwipeRight,
|
|
5
|
-
onDrag = props.onDrag,
|
|
6
|
-
_props$slidesToShow = props.slidesToShow,
|
|
7
|
-
slidesToShow = _props$slidesToShow === void 0 ? 1 : _props$slidesToShow,
|
|
8
|
-
isRTL = props.isRTL,
|
|
9
|
-
containerRef = props.containerRef;
|
|
10
|
-
return useGestureHandlers(containerRef, function (state) {
|
|
11
|
-
var xDelta = state.xDeltaPercent,
|
|
12
|
-
xVelocity = state.xVelocity,
|
|
13
|
-
down = state.down;
|
|
14
|
-
var swipeLeft = onSwipeLeft;
|
|
15
|
-
var swipeRight = onSwipeRight;
|
|
16
|
-
|
|
17
|
-
if (isRTL) {
|
|
18
|
-
swipeLeft = onSwipeRight;
|
|
19
|
-
swipeRight = onSwipeLeft;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
if (swipeLeft && swipeRight && !down && (Math.abs(xDelta) >= 25 / slidesToShow || Math.abs(xVelocity) >= 2.5)) {
|
|
23
|
-
if (xDelta < 0) {
|
|
24
|
-
swipeRight && swipeRight(state);
|
|
25
|
-
} else {
|
|
26
|
-
swipeLeft && swipeLeft(state);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
onDrag && onDrag(state);
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=useCarouselGestures.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Carousel/useCarouselGestures.ts"],"names":["useGestureHandlers","useCarouselGestures","props","onSwipeLeft","onSwipeRight","onDrag","slidesToShow","isRTL","containerRef","state","xDelta","xDeltaPercent","xVelocity","down","swipeLeft","swipeRight","Math","abs"],"mappings":"AAAA,SAASA,kBAAT,QAAyD,UAAzD;AAWA,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,KAAD,EAA+B;AAAA,MAE9DC,WAF8D,GAQ5DD,KAR4D,CAE9DC,WAF8D;AAAA,MAG9DC,YAH8D,GAQ5DF,KAR4D,CAG9DE,YAH8D;AAAA,MAI9DC,MAJ8D,GAQ5DH,KAR4D,CAI9DG,MAJ8D;AAAA,4BAQ5DH,KAR4D,CAK9DI,YAL8D;AAAA,MAK9DA,YAL8D,oCAK/C,CAL+C;AAAA,MAM9DC,KAN8D,GAQ5DL,KAR4D,CAM9DK,KAN8D;AAAA,MAO9DC,YAP8D,GAQ5DN,KAR4D,CAO9DM,YAP8D;AAUhE,SAAOR,kBAAkB,CAACQ,YAAD,EAAe,UAACC,KAAD,EAAW;AAAA,QAC1BC,MAD0B,GACED,KADF,CACzCE,aADyC;AAAA,QAClBC,SADkB,GACEH,KADF,CAClBG,SADkB;AAAA,QACPC,IADO,GACEJ,KADF,CACPI,IADO;AAGjD,QAAIC,SAAS,GAAGX,WAAhB;AACA,QAAIY,UAAU,GAAGX,YAAjB;;AACA,QAAIG,KAAJ,EAAW;AACTO,MAAAA,SAAS,GAAGV,YAAZ;AACAW,MAAAA,UAAU,GAAGZ,WAAb;AACD;;AAED,QACEW,SAAS,IACTC,UADA,IAEA,CAACF,IAFD,KAGCG,IAAI,CAACC,GAAL,CAASP,MAAT,KAAoB,KAAKJ,YAAzB,IAAyCU,IAAI,CAACC,GAAL,CAASL,SAAT,KAAuB,GAHjE,CADF,EAKE;AACA,UAAIF,MAAM,GAAG,CAAb,EAAgB;AACdK,QAAAA,UAAU,IAAIA,UAAU,CAACN,KAAD,CAAxB;AACD,OAFD,MAEO;AACLK,QAAAA,SAAS,IAAIA,SAAS,CAACL,KAAD,CAAtB;AACD;AACF;;AAEDJ,IAAAA,MAAM,IAAIA,MAAM,CAACI,KAAD,CAAhB;AACD,GAxBwB,CAAzB;AAyBD,CAnCM","sourcesContent":["import { useGestureHandlers, GestureHandlersState } from '../hooks';\n\ninterface UseCarouselOptions {\n onSwipeRight?: (s: GestureHandlersState) => void;\n onSwipeLeft?: (s: GestureHandlersState) => void;\n onDrag?: (s: GestureHandlersState) => void;\n slidesToShow?: number;\n isRTL?: boolean;\n containerRef: React.MutableRefObject<HTMLElement | null>;\n}\n\nexport const useCarouselGestures = (props: UseCarouselOptions) => {\n const {\n onSwipeLeft,\n onSwipeRight,\n onDrag,\n slidesToShow = 1,\n isRTL,\n containerRef,\n } = props;\n\n return useGestureHandlers(containerRef, (state) => {\n const { xDeltaPercent: xDelta, xVelocity, down } = state;\n\n let swipeLeft = onSwipeLeft;\n let swipeRight = onSwipeRight;\n if (isRTL) {\n swipeLeft = onSwipeRight;\n swipeRight = onSwipeLeft;\n }\n\n if (\n swipeLeft &&\n swipeRight &&\n !down &&\n (Math.abs(xDelta) >= 25 / slidesToShow || Math.abs(xVelocity) >= 2.5)\n ) {\n if (xDelta < 0) {\n swipeRight && swipeRight(state);\n } else {\n swipeLeft && swipeLeft(state);\n }\n }\n\n onDrag && onDrag(state);\n });\n};\n"],"file":"useCarouselGestures.js"}
|