farm-react 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/styles/style.css +26254 -0
- package/dist/assets/styles/style.css.map +1 -0
- package/dist/cjs/Utils/index.d.ts +4 -0
- package/dist/cjs/Utils/index.js +8 -0
- package/dist/cjs/Utils/index.js.map +1 -0
- package/dist/cjs/components/Accordion.js +7 -6
- package/dist/cjs/components/Accordion.js.map +1 -1
- package/dist/cjs/components/Alert.d.ts +32 -0
- package/dist/cjs/components/Alert.js +50 -0
- package/dist/cjs/components/Alert.js.map +1 -0
- package/dist/cjs/components/Badge.d.ts +22 -0
- package/dist/cjs/components/Badge.js +36 -0
- package/dist/cjs/components/Badge.js.map +1 -0
- package/dist/cjs/components/BrokenPage.d.ts +35 -0
- package/dist/cjs/components/BrokenPage.js +59 -0
- package/dist/cjs/components/BrokenPage.js.map +1 -0
- package/dist/cjs/components/Button.d.ts +29 -2
- package/dist/cjs/components/Button.js +53 -4
- package/dist/cjs/components/Button.js.map +1 -1
- package/dist/cjs/components/Card.d.ts +77 -0
- package/dist/cjs/components/Card.js +77 -0
- package/dist/cjs/components/Card.js.map +1 -0
- package/dist/cjs/components/Checkbox.d.ts +25 -0
- package/dist/cjs/components/Checkbox.js +23 -0
- package/dist/cjs/components/Checkbox.js.map +1 -0
- package/dist/cjs/components/ConfirmPoup.d.ts +21 -0
- package/dist/cjs/components/ConfirmPoup.js +47 -0
- package/dist/cjs/components/ConfirmPoup.js.map +1 -0
- package/dist/cjs/components/Dropdown.d.ts +35 -0
- package/dist/cjs/components/Dropdown.js +54 -0
- package/dist/cjs/components/Dropdown.js.map +1 -0
- package/dist/cjs/components/Label.d.ts +1 -1
- package/dist/cjs/components/Label.js +8 -6
- package/dist/cjs/components/Label.js.map +1 -1
- package/dist/cjs/components/Layout/Footer.js +11 -2
- package/dist/cjs/components/Layout/Footer.js.map +1 -1
- package/dist/cjs/components/Layout/Header.d.ts +2 -1
- package/dist/cjs/components/Layout/Header.js +15 -4
- package/dist/cjs/components/Layout/Header.js.map +1 -1
- package/dist/cjs/components/Layout/Sidebar.d.ts +2 -1
- package/dist/cjs/components/Layout/Sidebar.js +5 -3
- package/dist/cjs/components/Layout/Sidebar.js.map +1 -1
- package/dist/cjs/components/MultiCheckbox.d.ts +39 -0
- package/dist/cjs/components/MultiCheckbox.js +56 -0
- package/dist/cjs/components/MultiCheckbox.js.map +1 -0
- package/dist/cjs/components/MultiRadio.d.ts +30 -0
- package/dist/cjs/components/MultiRadio.js +41 -0
- package/dist/cjs/components/MultiRadio.js.map +1 -0
- package/dist/cjs/components/NumberInput.d.ts +38 -0
- package/dist/cjs/components/NumberInput.js +34 -0
- package/dist/cjs/components/NumberInput.js.map +1 -0
- package/dist/cjs/components/Radio.d.ts +24 -0
- package/dist/cjs/components/Radio.js +24 -0
- package/dist/cjs/components/Radio.js.map +1 -0
- package/dist/cjs/components/RangeSlider.d.ts +30 -0
- package/dist/cjs/components/RangeSlider.js +48 -0
- package/dist/cjs/components/RangeSlider.js.map +1 -0
- package/dist/cjs/components/RatingDisplay.js +7 -4
- package/dist/cjs/components/RatingDisplay.js.map +1 -1
- package/dist/cjs/components/Select.d.ts +41 -0
- package/dist/cjs/components/Select.js +48 -0
- package/dist/cjs/components/Select.js.map +1 -0
- package/dist/cjs/components/SkeletonLoader.d.ts +39 -0
- package/dist/cjs/components/SkeletonLoader.js +76 -0
- package/dist/cjs/components/SkeletonLoader.js.map +1 -0
- package/dist/cjs/components/Slider/SlickSlider.d.ts +74 -0
- package/dist/cjs/components/Slider/SlickSlider.js +211 -0
- package/dist/cjs/components/Slider/SlickSlider.js.map +1 -0
- package/dist/cjs/components/Slider/Slider/SlickSlider.d.ts +74 -0
- package/dist/cjs/components/Slider/Slider/SlickSlider.js +212 -0
- package/dist/cjs/components/Slider/Slider/SlickSlider.js.map +1 -0
- package/dist/cjs/components/Slider/Slider/useCenterMode.d.ts +24 -0
- package/dist/cjs/components/Slider/Slider/useCenterMode.js +40 -0
- package/dist/cjs/components/Slider/Slider/useCenterMode.js.map +1 -0
- package/dist/cjs/components/Slider/Slider/useSlider.d.ts +65 -0
- package/dist/cjs/components/Slider/Slider/useSlider.js +164 -0
- package/dist/cjs/components/Slider/Slider/useSlider.js.map +1 -0
- package/dist/cjs/components/Slider/Slider/useSliderAutoPlay.d.ts +33 -0
- package/dist/cjs/components/Slider/Slider/useSliderAutoPlay.js +73 -0
- package/dist/cjs/components/Slider/Slider/useSliderAutoPlay.js.map +1 -0
- package/dist/cjs/components/Slider/Slider/useSliderBreakpoint.d.ts +38 -0
- package/dist/cjs/components/Slider/Slider/useSliderBreakpoint.js +53 -0
- package/dist/cjs/components/Slider/Slider/useSliderBreakpoint.js.map +1 -0
- package/dist/cjs/components/Slider/Slider/useSliderDimension.d.ts +41 -0
- package/dist/cjs/components/Slider/Slider/useSliderDimension.js +91 -0
- package/dist/cjs/components/Slider/Slider/useSliderDimension.js.map +1 -0
- package/dist/cjs/components/Slider/Slider/useSliderDraggable.d.ts +43 -0
- package/dist/cjs/components/Slider/Slider/useSliderDraggable.js +146 -0
- package/dist/cjs/components/Slider/Slider/useSliderDraggable.js.map +1 -0
- package/dist/cjs/components/Slider/Slider/useSliderNavigation.d.ts +41 -0
- package/dist/cjs/components/Slider/Slider/useSliderNavigation.js +136 -0
- package/dist/cjs/components/Slider/Slider/useSliderNavigation.js.map +1 -0
- package/dist/cjs/components/Slider/Slider/useSliderTransform.d.ts +17 -0
- package/dist/cjs/components/Slider/Slider/useSliderTransform.js +71 -0
- package/dist/cjs/components/Slider/Slider/useSliderTransform.js.map +1 -0
- package/dist/cjs/components/Slider/useCenterMode.d.ts +24 -0
- package/dist/cjs/components/Slider/useCenterMode.js +40 -0
- package/dist/cjs/components/Slider/useCenterMode.js.map +1 -0
- package/dist/cjs/components/Slider/useSlider.d.ts +65 -0
- package/dist/cjs/components/Slider/useSlider.js +159 -0
- package/dist/cjs/components/Slider/useSlider.js.map +1 -0
- package/dist/cjs/components/Slider/useSliderAutoPlay.d.ts +33 -0
- package/dist/cjs/components/Slider/useSliderAutoPlay.js +73 -0
- package/dist/cjs/components/Slider/useSliderAutoPlay.js.map +1 -0
- package/dist/cjs/components/Slider/useSliderBreakpoint.d.ts +23 -0
- package/dist/cjs/components/Slider/useSliderBreakpoint.js +92 -0
- package/dist/cjs/components/Slider/useSliderBreakpoint.js.map +1 -0
- package/dist/cjs/components/Slider/useSliderDimension.d.ts +41 -0
- package/dist/cjs/components/Slider/useSliderDimension.js +92 -0
- package/dist/cjs/components/Slider/useSliderDimension.js.map +1 -0
- package/dist/cjs/components/Slider/useSliderDraggable.d.ts +43 -0
- package/dist/cjs/components/Slider/useSliderDraggable.js +146 -0
- package/dist/cjs/components/Slider/useSliderDraggable.js.map +1 -0
- package/dist/cjs/components/Slider/useSliderNavigation.d.ts +41 -0
- package/dist/cjs/components/Slider/useSliderNavigation.js +136 -0
- package/dist/cjs/components/Slider/useSliderNavigation.js.map +1 -0
- package/dist/cjs/components/Slider/useSliderTransform.d.ts +17 -0
- package/dist/cjs/components/Slider/useSliderTransform.js +71 -0
- package/dist/cjs/components/Slider/useSliderTransform.js.map +1 -0
- package/dist/cjs/components/TextInput.d.ts +31 -3
- package/dist/cjs/components/TextInput.js +31 -12
- package/dist/cjs/components/TextInput.js.map +1 -1
- package/dist/cjs/components/ThreeDotsLoader.d.ts +24 -0
- package/dist/cjs/components/ThreeDotsLoader.js +25 -0
- package/dist/cjs/components/ThreeDotsLoader.js.map +1 -0
- package/dist/cjs/constants/app.d.ts +2 -0
- package/dist/cjs/constants/app.js +3 -1
- package/dist/cjs/constants/app.js.map +1 -1
- package/dist/cjs/constants/icons.d.ts +7 -0
- package/dist/cjs/constants/icons.js +11 -0
- package/dist/cjs/constants/icons.js.map +1 -0
- package/dist/cjs/helpers/app.d.ts +39 -2
- package/dist/cjs/helpers/app.js +83 -5
- package/dist/cjs/helpers/app.js.map +1 -1
- package/dist/cjs/helpers/index.d.ts +1 -0
- package/dist/cjs/helpers/index.js +3 -0
- package/dist/cjs/helpers/index.js.map +1 -1
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.js +4 -0
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/useLocalStorage.d.ts +7 -0
- package/dist/cjs/hooks/useLocalStorage.js +57 -0
- package/dist/cjs/hooks/useLocalStorage.js.map +1 -0
- package/dist/cjs/index.d.ts +20 -5
- package/dist/cjs/index.js +41 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/strings/en.d.ts +3 -1
- package/dist/cjs/strings/en.js +5 -3
- package/dist/cjs/strings/en.js.map +1 -1
- package/dist/esm/Utils/index.d.ts +4 -0
- package/dist/esm/Utils/index.js +5 -0
- package/dist/esm/Utils/index.js.map +1 -0
- package/dist/esm/components/Accordion.js +7 -6
- package/dist/esm/components/Accordion.js.map +1 -1
- package/dist/esm/components/Alert.d.ts +32 -0
- package/dist/esm/components/Alert.js +48 -0
- package/dist/esm/components/Alert.js.map +1 -0
- package/dist/esm/components/Badge.d.ts +22 -0
- package/dist/esm/components/Badge.js +34 -0
- package/dist/esm/components/Badge.js.map +1 -0
- package/dist/esm/components/BrokenPage.d.ts +35 -0
- package/dist/esm/components/BrokenPage.js +57 -0
- package/dist/esm/components/BrokenPage.js.map +1 -0
- package/dist/esm/components/Button.d.ts +29 -2
- package/dist/esm/components/Button.js +53 -3
- package/dist/esm/components/Button.js.map +1 -1
- package/dist/esm/components/Card.d.ts +77 -0
- package/dist/esm/components/Card.js +75 -0
- package/dist/esm/components/Card.js.map +1 -0
- package/dist/esm/components/Checkbox.d.ts +25 -0
- package/dist/esm/components/Checkbox.js +21 -0
- package/dist/esm/components/Checkbox.js.map +1 -0
- package/dist/esm/components/ConfirmPoup.d.ts +21 -0
- package/dist/esm/components/ConfirmPoup.js +45 -0
- package/dist/esm/components/ConfirmPoup.js.map +1 -0
- package/dist/esm/components/Dropdown.d.ts +35 -0
- package/dist/esm/components/Dropdown.js +52 -0
- package/dist/esm/components/Dropdown.js.map +1 -0
- package/dist/esm/components/Label.d.ts +1 -1
- package/dist/esm/components/Label.js +9 -7
- package/dist/esm/components/Label.js.map +1 -1
- package/dist/esm/components/Layout/Footer.js +10 -2
- package/dist/esm/components/Layout/Footer.js.map +1 -1
- package/dist/esm/components/Layout/Header.d.ts +2 -1
- package/dist/esm/components/Layout/Header.js +14 -3
- package/dist/esm/components/Layout/Header.js.map +1 -1
- package/dist/esm/components/Layout/Sidebar.d.ts +2 -1
- package/dist/esm/components/Layout/Sidebar.js +4 -3
- package/dist/esm/components/Layout/Sidebar.js.map +1 -1
- package/dist/esm/components/MultiCheckbox.d.ts +39 -0
- package/dist/esm/components/MultiCheckbox.js +54 -0
- package/dist/esm/components/MultiCheckbox.js.map +1 -0
- package/dist/esm/components/MultiRadio.d.ts +30 -0
- package/dist/esm/components/MultiRadio.js +39 -0
- package/dist/esm/components/MultiRadio.js.map +1 -0
- package/dist/esm/components/NumberInput.d.ts +38 -0
- package/dist/esm/components/NumberInput.js +32 -0
- package/dist/esm/components/NumberInput.js.map +1 -0
- package/dist/esm/components/Radio.d.ts +24 -0
- package/dist/esm/components/Radio.js +22 -0
- package/dist/esm/components/Radio.js.map +1 -0
- package/dist/esm/components/RangeSlider.d.ts +30 -0
- package/dist/esm/components/RangeSlider.js +46 -0
- package/dist/esm/components/RangeSlider.js.map +1 -0
- package/dist/esm/components/RatingDisplay.js +7 -4
- package/dist/esm/components/RatingDisplay.js.map +1 -1
- package/dist/esm/components/Select.d.ts +41 -0
- package/dist/esm/components/Select.js +46 -0
- package/dist/esm/components/Select.js.map +1 -0
- package/dist/esm/components/SkeletonLoader.d.ts +39 -0
- package/dist/esm/components/SkeletonLoader.js +74 -0
- package/dist/esm/components/SkeletonLoader.js.map +1 -0
- package/dist/esm/components/Slider/SlickSlider.d.ts +74 -0
- package/dist/esm/components/Slider/SlickSlider.js +208 -0
- package/dist/esm/components/Slider/SlickSlider.js.map +1 -0
- package/dist/esm/components/Slider/Slider/SlickSlider.d.ts +74 -0
- package/dist/esm/components/Slider/Slider/SlickSlider.js +209 -0
- package/dist/esm/components/Slider/Slider/SlickSlider.js.map +1 -0
- package/dist/esm/components/Slider/Slider/useCenterMode.d.ts +24 -0
- package/dist/esm/components/Slider/Slider/useCenterMode.js +38 -0
- package/dist/esm/components/Slider/Slider/useCenterMode.js.map +1 -0
- package/dist/esm/components/Slider/Slider/useSlider.d.ts +65 -0
- package/dist/esm/components/Slider/Slider/useSlider.js +162 -0
- package/dist/esm/components/Slider/Slider/useSlider.js.map +1 -0
- package/dist/esm/components/Slider/Slider/useSliderAutoPlay.d.ts +33 -0
- package/dist/esm/components/Slider/Slider/useSliderAutoPlay.js +71 -0
- package/dist/esm/components/Slider/Slider/useSliderAutoPlay.js.map +1 -0
- package/dist/esm/components/Slider/Slider/useSliderBreakpoint.d.ts +38 -0
- package/dist/esm/components/Slider/Slider/useSliderBreakpoint.js +51 -0
- package/dist/esm/components/Slider/Slider/useSliderBreakpoint.js.map +1 -0
- package/dist/esm/components/Slider/Slider/useSliderDimension.d.ts +41 -0
- package/dist/esm/components/Slider/Slider/useSliderDimension.js +89 -0
- package/dist/esm/components/Slider/Slider/useSliderDimension.js.map +1 -0
- package/dist/esm/components/Slider/Slider/useSliderDraggable.d.ts +43 -0
- package/dist/esm/components/Slider/Slider/useSliderDraggable.js +144 -0
- package/dist/esm/components/Slider/Slider/useSliderDraggable.js.map +1 -0
- package/dist/esm/components/Slider/Slider/useSliderNavigation.d.ts +41 -0
- package/dist/esm/components/Slider/Slider/useSliderNavigation.js +134 -0
- package/dist/esm/components/Slider/Slider/useSliderNavigation.js.map +1 -0
- package/dist/esm/components/Slider/Slider/useSliderTransform.d.ts +17 -0
- package/dist/esm/components/Slider/Slider/useSliderTransform.js +69 -0
- package/dist/esm/components/Slider/Slider/useSliderTransform.js.map +1 -0
- package/dist/esm/components/Slider/useCenterMode.d.ts +24 -0
- package/dist/esm/components/Slider/useCenterMode.js +38 -0
- package/dist/esm/components/Slider/useCenterMode.js.map +1 -0
- package/dist/esm/components/Slider/useSlider.d.ts +65 -0
- package/dist/esm/components/Slider/useSlider.js +157 -0
- package/dist/esm/components/Slider/useSlider.js.map +1 -0
- package/dist/esm/components/Slider/useSliderAutoPlay.d.ts +33 -0
- package/dist/esm/components/Slider/useSliderAutoPlay.js +71 -0
- package/dist/esm/components/Slider/useSliderAutoPlay.js.map +1 -0
- package/dist/esm/components/Slider/useSliderBreakpoint.d.ts +23 -0
- package/dist/esm/components/Slider/useSliderBreakpoint.js +90 -0
- package/dist/esm/components/Slider/useSliderBreakpoint.js.map +1 -0
- package/dist/esm/components/Slider/useSliderDimension.d.ts +41 -0
- package/dist/esm/components/Slider/useSliderDimension.js +90 -0
- package/dist/esm/components/Slider/useSliderDimension.js.map +1 -0
- package/dist/esm/components/Slider/useSliderDraggable.d.ts +43 -0
- package/dist/esm/components/Slider/useSliderDraggable.js +144 -0
- package/dist/esm/components/Slider/useSliderDraggable.js.map +1 -0
- package/dist/esm/components/Slider/useSliderNavigation.d.ts +41 -0
- package/dist/esm/components/Slider/useSliderNavigation.js +134 -0
- package/dist/esm/components/Slider/useSliderNavigation.js.map +1 -0
- package/dist/esm/components/Slider/useSliderTransform.d.ts +17 -0
- package/dist/esm/components/Slider/useSliderTransform.js +69 -0
- package/dist/esm/components/Slider/useSliderTransform.js.map +1 -0
- package/dist/esm/components/TextInput.d.ts +31 -3
- package/dist/esm/components/TextInput.js +33 -13
- package/dist/esm/components/TextInput.js.map +1 -1
- package/dist/esm/components/ThreeDotsLoader.d.ts +24 -0
- package/dist/esm/components/ThreeDotsLoader.js +23 -0
- package/dist/esm/components/ThreeDotsLoader.js.map +1 -0
- package/dist/esm/constants/app.d.ts +2 -0
- package/dist/esm/constants/app.js +2 -0
- package/dist/esm/constants/app.js.map +1 -1
- package/dist/esm/constants/icons.d.ts +7 -0
- package/dist/esm/constants/icons.js +9 -0
- package/dist/esm/constants/icons.js.map +1 -0
- package/dist/esm/helpers/app.d.ts +39 -2
- package/dist/esm/helpers/app.js +73 -3
- package/dist/esm/helpers/app.js.map +1 -1
- package/dist/esm/helpers/index.d.ts +1 -0
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/helpers/index.js.map +1 -1
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.js +1 -1
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/useLocalStorage.d.ts +7 -0
- package/dist/esm/hooks/useLocalStorage.js +54 -0
- package/dist/esm/hooks/useLocalStorage.js.map +1 -0
- package/dist/esm/index.d.ts +20 -5
- package/dist/esm/index.js +20 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/strings/en.d.ts +3 -1
- package/dist/esm/strings/en.js +4 -2
- package/dist/esm/strings/en.js.map +1 -1
- package/dist/package.json +1 -1
- package/package.json +5 -4
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* -----------------------------------------------------------------------------
|
|
5
|
+
* @file useSliderTransform
|
|
6
|
+
* -----------------------------------------------------------------------------
|
|
7
|
+
*
|
|
8
|
+
* @description Hooks responsible for adding the Transition effect on Slider.
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Calculate the slider transited value according to slideToShow item.
|
|
12
|
+
*
|
|
13
|
+
* -----------------------------------------------------------------------------
|
|
14
|
+
* Copyright © 2025 BookingKoala. All rights reserved.
|
|
15
|
+
* -----------------------------------------------------------------------------
|
|
16
|
+
*/
|
|
17
|
+
var react_1 = require("react");
|
|
18
|
+
var helpers_1 = require("../../../helpers");
|
|
19
|
+
function useSliderTransform(_a) {
|
|
20
|
+
var animationConfig = _a.animationConfig, isAllSlidesVisible = _a.isAllSlidesVisible, isRTLMode = _a.isRTLMode, sliderObjRefs = _a.sliderObjRefs, sliderWrapperRef = _a.sliderWrapperRef, slideToShow = _a.slideToShow, variant = _a.variant;
|
|
21
|
+
// Constant
|
|
22
|
+
var isVertical = variant === 'vertical';
|
|
23
|
+
// Destruct props
|
|
24
|
+
var _b = (0, helpers_1.destructObj)(animationConfig), _c = _b.easing, easing = _c === void 0 ? 'ease' : _c, _d = _b.speed, speed = _d === void 0 ? 500 : _d;
|
|
25
|
+
/**
|
|
26
|
+
* Calculates how much the slider track should move when the slide changes.
|
|
27
|
+
* We add slideToShow to the index because extra (cloned) slides are added
|
|
28
|
+
* at the start for looping, so the real position shifts.
|
|
29
|
+
*
|
|
30
|
+
* - If the slider is vertical, the movement is calculated using slide height.
|
|
31
|
+
* - If the slider is horizontal, the movement is calculated using slide width.
|
|
32
|
+
*
|
|
33
|
+
* The returned value is negative because the track moves in the opposite
|
|
34
|
+
* direction of the slide change.
|
|
35
|
+
*/
|
|
36
|
+
var calculateTranslate = (0, react_1.useCallback)(function (index) {
|
|
37
|
+
if (!sliderObjRefs.current)
|
|
38
|
+
return 0;
|
|
39
|
+
var _a = sliderObjRefs.current, _b = _a.containerHeight, containerHeight = _b === void 0 ? 0 : _b, _c = _a.containerWidth, containerWidth = _c === void 0 ? 0 : _c;
|
|
40
|
+
var extendedIndex = index + slideToShow;
|
|
41
|
+
if (isVertical) {
|
|
42
|
+
return -extendedIndex * containerHeight;
|
|
43
|
+
}
|
|
44
|
+
var slideWidth = containerWidth / slideToShow;
|
|
45
|
+
var translate = -extendedIndex * slideWidth;
|
|
46
|
+
if (isRTLMode && !isVertical)
|
|
47
|
+
return -translate;
|
|
48
|
+
return translate;
|
|
49
|
+
}, [variant, slideToShow, sliderObjRefs, isVertical, isRTLMode]);
|
|
50
|
+
/**
|
|
51
|
+
* Applies translateX (or raw value) to the slider container,
|
|
52
|
+
* with optional transition handling.
|
|
53
|
+
*/
|
|
54
|
+
var applyTransform = (0, react_1.useCallback)(function (indexOrTranslate, withTransition, isMouseMoving) {
|
|
55
|
+
if (withTransition === void 0) { withTransition = true; }
|
|
56
|
+
if (isMouseMoving === void 0) { isMouseMoving = false; }
|
|
57
|
+
var container = sliderWrapperRef.current;
|
|
58
|
+
if ((0, helpers_1.isNullOrUndefined)(container) || isAllSlidesVisible)
|
|
59
|
+
return;
|
|
60
|
+
var translatedValue = isMouseMoving ? indexOrTranslate : calculateTranslate(indexOrTranslate);
|
|
61
|
+
var axisX = isVertical ? 0 : translatedValue;
|
|
62
|
+
var axisY = isVertical ? translatedValue : 0;
|
|
63
|
+
Object.assign(container.style, {
|
|
64
|
+
transform: variant === 'horizontal' ? "translate3d(".concat(axisX, "px, 0, 0)") : "translate3d(0,".concat(axisY, "px, 0)"),
|
|
65
|
+
transition: withTransition ? "transform ".concat(speed, "ms ").concat(easing) : 'none'
|
|
66
|
+
});
|
|
67
|
+
}, [calculateTranslate, sliderWrapperRef, speed, easing, isAllSlidesVisible, isVertical, variant]);
|
|
68
|
+
return { applyTransform: applyTransform, calculateTranslate: calculateTranslate };
|
|
69
|
+
}
|
|
70
|
+
exports.default = useSliderTransform;
|
|
71
|
+
//# sourceMappingURL=useSliderTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSliderTransform.js","sourceRoot":"","sources":["../../../../../src/components/Slider/Slider/useSliderTransform.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;EAaE;AACF,+BAAoC;AACpC,4CAAkE;AAmBlE,SAAS,kBAAkB,CAAC,EAQa;QAPxC,eAAe,qBAAA,EACf,kBAAkB,wBAAA,EAClB,SAAS,eAAA,EACT,aAAa,mBAAA,EACb,gBAAgB,sBAAA,EAChB,WAAW,iBAAA,EACX,OAAO,aAAA;IAEP,WAAW;IACX,IAAM,UAAU,GAAY,OAAO,KAAK,UAAU,CAAC;IAEnD,iBAAiB;IACX,IAAA,KAAmC,IAAA,qBAAW,EAAC,eAAe,CAAC,EAA7D,cAAe,EAAf,MAAM,mBAAG,MAAM,KAAA,EAAE,aAAW,EAAX,KAAK,mBAAG,GAAG,KAAiC,CAAC;IAEtE;;;;;;;;;;OAUG;IACH,IAAM,kBAAkB,GAAG,IAAA,mBAAW,EACrC,UAAC,KAAa;QACb,IAAI,CAAC,aAAa,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;QAC/B,IAAA,KAA8C,aAAa,CAAC,OAAO,EAAjE,uBAAmB,EAAnB,eAAe,mBAAG,CAAC,KAAA,EAAE,sBAAkB,EAAlB,cAAc,mBAAG,CAAC,KAA0B,CAAC;QAC1E,IAAM,aAAa,GAAG,KAAK,GAAG,WAAW,CAAC;QAE1C,IAAI,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,aAAa,GAAG,eAAe,CAAC;QACzC,CAAC;QACD,IAAM,UAAU,GAAG,cAAc,GAAG,WAAW,CAAC;QAChD,IAAM,SAAS,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC;QAE9C,IAAI,SAAS,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,SAAS,CAAC;QAChD,OAAO,SAAS,CAAC;IAClB,CAAC,EACD,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC,CAC5D,CAAC;IAEF;;;OAGG;IACH,IAAM,cAAc,GAAG,IAAA,mBAAW,EACjC,UAAC,gBAAwB,EAAE,cAAqB,EAAE,aAAqB;QAA5C,+BAAA,EAAA,qBAAqB;QAAE,8BAAA,EAAA,qBAAqB;QACtE,IAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAC3C,IAAI,IAAA,2BAAiB,EAAC,SAAS,CAAC,IAAI,kBAAkB;YAAE,OAAO;QAC/D,IAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QAChG,IAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QAC/C,IAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE;YAC9B,SAAS,EAAE,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,sBAAe,KAAK,cAAW,CAAC,CAAC,CAAC,wBAAiB,KAAK,WAAQ;YACtG,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,oBAAa,KAAK,gBAAM,MAAM,CAAE,CAAC,CAAC,CAAC,MAAM;SACtE,CAAC,CAAC;IACJ,CAAC,EACD,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,OAAO,CAAC,CAC9F,CAAC;IAEF,OAAO,EAAE,cAAc,gBAAA,EAAE,kBAAkB,oBAAA,EAAE,CAAC;AAC/C,CAAC;AAED,kBAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* -----------------------------------------------------------------------------
|
|
3
|
+
* @file useCenterMode
|
|
4
|
+
* -----------------------------------------------------------------------------
|
|
5
|
+
*
|
|
6
|
+
* @description Utility file - add description here
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Add key features here
|
|
10
|
+
*
|
|
11
|
+
* -----------------------------------------------------------------------------
|
|
12
|
+
* Copyright © 2026 BookingKoala. All rights reserved.
|
|
13
|
+
* -----------------------------------------------------------------------------
|
|
14
|
+
*/
|
|
15
|
+
interface UseCenterMode {
|
|
16
|
+
activeSlideIndex?: number;
|
|
17
|
+
slideToShow: number;
|
|
18
|
+
}
|
|
19
|
+
declare function useCenterMode({ activeSlideIndex, slideToShow }: UseCenterMode): number[];
|
|
20
|
+
export default useCenterMode;
|
|
21
|
+
/**
|
|
22
|
+
* Returns active slide indexes based on slideToShow and active indicator
|
|
23
|
+
* Works only when slideToShow is odd
|
|
24
|
+
*/
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function useCenterMode(_a) {
|
|
4
|
+
var _b = _a.activeSlideIndex, activeSlideIndex = _b === void 0 ? 0 : _b, slideToShow = _a.slideToShow;
|
|
5
|
+
var centerOffset = Math.floor(slideToShow / 2);
|
|
6
|
+
var centerIndex = slideToShow + activeSlideIndex + centerOffset;
|
|
7
|
+
// even slideToShow → two active slides
|
|
8
|
+
if (slideToShow === 1 || slideToShow === 2)
|
|
9
|
+
return [];
|
|
10
|
+
if (slideToShow % 2 === 0) {
|
|
11
|
+
return [centerIndex - 1, centerIndex];
|
|
12
|
+
}
|
|
13
|
+
// odd slideToShow
|
|
14
|
+
if (slideToShow === 3) {
|
|
15
|
+
return [centerIndex];
|
|
16
|
+
}
|
|
17
|
+
return [centerIndex - 1, centerIndex, centerIndex + 1];
|
|
18
|
+
}
|
|
19
|
+
exports.default = useCenterMode;
|
|
20
|
+
/**
|
|
21
|
+
* Returns active slide indexes based on slideToShow and active indicator
|
|
22
|
+
* Works only when slideToShow is odd
|
|
23
|
+
*/
|
|
24
|
+
// function getActiveSlideIndexes(): number[] {
|
|
25
|
+
// const activeSlideIndex = getActiveIndicatorIndex();
|
|
26
|
+
// if (isNullOrUndefined(activeSlideIndex)) return [];
|
|
27
|
+
// const centerOffset = Math.floor(slideToShow / 2);
|
|
28
|
+
// const centerIndex = slideToShow + activeSlideIndex + centerOffset;
|
|
29
|
+
// // even slideToShow → two active slides
|
|
30
|
+
// if (slideToShow === 1 || slideToShow === 2) return [];
|
|
31
|
+
// if (slideToShow % 2 === 0) {
|
|
32
|
+
// return [centerIndex - 1, centerIndex];
|
|
33
|
+
// }
|
|
34
|
+
// // odd slideToShow
|
|
35
|
+
// if (slideToShow === 3) {
|
|
36
|
+
// return [centerIndex];
|
|
37
|
+
// }
|
|
38
|
+
// return [centerIndex - 1, centerIndex, centerIndex + 1];
|
|
39
|
+
// }
|
|
40
|
+
//# sourceMappingURL=useCenterMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCenterMode.js","sourceRoot":"","sources":["../../../../src/components/Slider/useCenterMode.ts"],"names":[],"mappings":";;AAkBA,SAAS,aAAa,CAAC,EAAoD;QAAlD,wBAAoB,EAApB,gBAAgB,mBAAG,CAAC,KAAA,EAAE,WAAW,iBAAA;IACxD,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;IAChD,IAAM,WAAW,GAAG,WAAW,GAAG,gBAAgB,GAAG,YAAY,CAAA;IACjE,uCAAuC;IACvC,IAAI,WAAW,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACrD,IAAI,WAAW,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE,WAAW,CAAC,CAAA;IACvC,CAAC;IAED,kBAAkB;IAClB,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,WAAW,CAAC,CAAA;IACtB,CAAC;IACD,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE,WAAW,EAAE,WAAW,GAAG,CAAC,CAAC,CAAA;AACxD,CAAC;AACD,kBAAe,aAAa,CAAA;AAC5B;;;GAGG;AACH,+CAA+C;AAC/C,uDAAuD;AACvD,uDAAuD;AAEvD,qDAAqD;AACrD,sEAAsE;AACtE,2CAA2C;AAC3C,0DAA0D;AAC1D,gCAAgC;AAChC,2CAA2C;AAC3C,KAAK;AAEL,sBAAsB;AACtB,4BAA4B;AAC5B,0BAA0B;AAC1B,KAAK;AACL,2DAA2D;AAC3D,IAAI"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* -----------------------------------------------------------------------------
|
|
3
|
+
* @file useSlider
|
|
4
|
+
* -----------------------------------------------------------------------------
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* Main hook that controls all slider behavior.
|
|
8
|
+
*
|
|
9
|
+
* This hook connects multiple smaller slider hooks and makes them work
|
|
10
|
+
* together. It handles slide size calculation, navigation, animations,
|
|
11
|
+
* autoplay, draggable interactions, breakpoint-based configuration,
|
|
12
|
+
* and window resize updates.
|
|
13
|
+
*
|
|
14
|
+
* The UI layer only needs to use the values and functions returned from
|
|
15
|
+
* this hook.
|
|
16
|
+
*
|
|
17
|
+
* -----------------------------------------------------------------------------
|
|
18
|
+
* Copyright © 2025 BookingKoala. All rights reserved.
|
|
19
|
+
* -----------------------------------------------------------------------------
|
|
20
|
+
*/
|
|
21
|
+
import { type Ref } from 'react';
|
|
22
|
+
import { type SlickSliderAnimationConfig, type SlickSliderAutoPlayConfig } from './SlickSlider';
|
|
23
|
+
import { SlickSliderConfig } from './useSliderBreakpoint';
|
|
24
|
+
export interface UseSlickSliderReturn {
|
|
25
|
+
getActiveIndicatorIndex: () => number | undefined;
|
|
26
|
+
getIndicatorCount: () => number | undefined;
|
|
27
|
+
goToSlideIndicator: (index: number) => void;
|
|
28
|
+
handleNextSlide: () => void;
|
|
29
|
+
handlePrevSlide: () => void;
|
|
30
|
+
hasNextBtnDisabled: () => boolean;
|
|
31
|
+
hasPrevBtnDisabled: () => boolean;
|
|
32
|
+
sliderWrapperRef: Ref<HTMLDivElement>;
|
|
33
|
+
}
|
|
34
|
+
export interface UseSlickSliderProps {
|
|
35
|
+
activeSlide: number;
|
|
36
|
+
animationConfig: SlickSliderAnimationConfig;
|
|
37
|
+
autoPlayConfig: SlickSliderAutoPlayConfig;
|
|
38
|
+
breakpoints: SlickSliderConfig[];
|
|
39
|
+
draggable?: {
|
|
40
|
+
dragThreshold?: number;
|
|
41
|
+
enableDrag?: boolean;
|
|
42
|
+
};
|
|
43
|
+
gap: number;
|
|
44
|
+
isRTLMode: boolean;
|
|
45
|
+
loop: boolean;
|
|
46
|
+
slideToScroll: number;
|
|
47
|
+
slideToShow: number;
|
|
48
|
+
totalSlides: number;
|
|
49
|
+
variant: 'horizontal' | 'vertical';
|
|
50
|
+
}
|
|
51
|
+
export interface SlickSliderRefs {
|
|
52
|
+
containerHeight: number;
|
|
53
|
+
containerWidth: number;
|
|
54
|
+
currentIndex: number;
|
|
55
|
+
drag: {
|
|
56
|
+
isDragging: boolean;
|
|
57
|
+
startX: number;
|
|
58
|
+
startY: number;
|
|
59
|
+
translate: number;
|
|
60
|
+
};
|
|
61
|
+
isTransitionComplete: boolean;
|
|
62
|
+
totalSlides: number;
|
|
63
|
+
}
|
|
64
|
+
declare function useSlider({ activeSlide, animationConfig, autoPlayConfig, breakpoints, draggable, gap, isRTLMode, loop, slideToScroll, slideToShow, totalSlides, variant, }: Readonly<UseSlickSliderProps>): UseSlickSliderReturn;
|
|
65
|
+
export default useSlider;
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*eslint-disable*/
|
|
3
|
+
/**
|
|
4
|
+
* -----------------------------------------------------------------------------
|
|
5
|
+
* @file useSlider
|
|
6
|
+
* -----------------------------------------------------------------------------
|
|
7
|
+
*
|
|
8
|
+
* @description
|
|
9
|
+
* Main hook that controls all slider behavior.
|
|
10
|
+
*
|
|
11
|
+
* This hook connects multiple smaller slider hooks and makes them work
|
|
12
|
+
* together. It handles slide size calculation, navigation, animations,
|
|
13
|
+
* autoplay, draggable interactions, breakpoint-based configuration,
|
|
14
|
+
* and window resize updates.
|
|
15
|
+
*
|
|
16
|
+
* The UI layer only needs to use the values and functions returned from
|
|
17
|
+
* this hook.
|
|
18
|
+
*
|
|
19
|
+
* -----------------------------------------------------------------------------
|
|
20
|
+
* Copyright © 2025 BookingKoala. All rights reserved.
|
|
21
|
+
* -----------------------------------------------------------------------------
|
|
22
|
+
*/
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
var tslib_1 = require("tslib");
|
|
25
|
+
var react_1 = require("react");
|
|
26
|
+
var Utils_1 = require("../../Utils");
|
|
27
|
+
var useSliderAutoPlay_1 = tslib_1.__importDefault(require("./useSliderAutoPlay"));
|
|
28
|
+
var useSliderDimension_1 = tslib_1.__importDefault(require("./useSliderDimension"));
|
|
29
|
+
var useSliderDraggable_1 = tslib_1.__importDefault(require("./useSliderDraggable"));
|
|
30
|
+
var useSliderNavigation_1 = tslib_1.__importDefault(require("./useSliderNavigation"));
|
|
31
|
+
var useSliderTransform_1 = tslib_1.__importDefault(require("./useSliderTransform"));
|
|
32
|
+
var useSliderBreakpoint_1 = tslib_1.__importDefault(require("./useSliderBreakpoint"));
|
|
33
|
+
function useSlider(_a) {
|
|
34
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
35
|
+
var activeSlide = _a.activeSlide, animationConfig = _a.animationConfig, autoPlayConfig = _a.autoPlayConfig, breakpoints = _a.breakpoints, draggable = _a.draggable, gap = _a.gap, isRTLMode = _a.isRTLMode, loop = _a.loop, slideToScroll = _a.slideToScroll, slideToShow = _a.slideToShow, totalSlides = _a.totalSlides, variant = _a.variant;
|
|
36
|
+
var activeSlideIndex = (0, react_1.useMemo)(function () { return (totalSlides > 0 && activeSlide >= totalSlides ? 0 : activeSlide); }, [activeSlide, totalSlides]);
|
|
37
|
+
console.log('acaf', activeSlideIndex);
|
|
38
|
+
var resolvedBreakpointConfig = (0, useSliderBreakpoint_1.default)({
|
|
39
|
+
breakpoints: breakpoints,
|
|
40
|
+
config: {
|
|
41
|
+
activeSlide: activeSlideIndex,
|
|
42
|
+
animationConfig: animationConfig,
|
|
43
|
+
autoPlayConfig: autoPlayConfig,
|
|
44
|
+
draggable: draggable,
|
|
45
|
+
gap: gap,
|
|
46
|
+
loop: loop,
|
|
47
|
+
slideToScroll: slideToScroll,
|
|
48
|
+
slideToShow: slideToShow,
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* Final resolved config:
|
|
53
|
+
* base props act as defaults, breakpoint values override them.
|
|
54
|
+
* The breakpoint hook returns the resolved config directly, which is initialized
|
|
55
|
+
* correctly on mount and updates on resize.
|
|
56
|
+
*/
|
|
57
|
+
var breakPointConfig = (0, react_1.useMemo)(function () { return (tslib_1.__assign({ activeSlide: activeSlideIndex + 1, animationConfig: animationConfig, autoPlayConfig: autoPlayConfig, draggable: draggable, gap: gap, loop: loop, slideToScroll: slideToScroll, slideToShow: slideToShow }, resolvedBreakpointConfig)); }, [
|
|
58
|
+
activeSlideIndex,
|
|
59
|
+
animationConfig,
|
|
60
|
+
autoPlayConfig,
|
|
61
|
+
draggable,
|
|
62
|
+
gap,
|
|
63
|
+
loop,
|
|
64
|
+
slideToScroll,
|
|
65
|
+
slideToShow,
|
|
66
|
+
resolvedBreakpointConfig,
|
|
67
|
+
]);
|
|
68
|
+
console.log(breakPointConfig);
|
|
69
|
+
var sliderWrapperRef = (0, react_1.useRef)(null);
|
|
70
|
+
var sliderObjRefs = (0, react_1.useRef)({
|
|
71
|
+
containerHeight: 0,
|
|
72
|
+
containerWidth: 0,
|
|
73
|
+
currentIndex: 0,
|
|
74
|
+
drag: {
|
|
75
|
+
isDragging: false,
|
|
76
|
+
startX: 0,
|
|
77
|
+
startY: 0,
|
|
78
|
+
translate: 0,
|
|
79
|
+
},
|
|
80
|
+
isTransitionComplete: false,
|
|
81
|
+
totalSlides: totalSlides,
|
|
82
|
+
});
|
|
83
|
+
var calculateDimensions = (0, useSliderDimension_1.default)({
|
|
84
|
+
gap: (_b = breakPointConfig.gap) !== null && _b !== void 0 ? _b : 10,
|
|
85
|
+
sliderObjRefs: sliderObjRefs,
|
|
86
|
+
sliderWrapperRef: sliderWrapperRef,
|
|
87
|
+
slideToShow: (_c = breakPointConfig.slideToShow) !== null && _c !== void 0 ? _c : 1,
|
|
88
|
+
variant: variant,
|
|
89
|
+
}).calculateDimensions;
|
|
90
|
+
var isAllSlidesVisible = (0, react_1.useMemo)(function () { var _a; return ((_a = breakPointConfig.slideToShow) !== null && _a !== void 0 ? _a : 1) >= sliderObjRefs.current.totalSlides; }, [breakPointConfig.slideToShow, totalSlides]);
|
|
91
|
+
var _o = (0, useSliderTransform_1.default)({
|
|
92
|
+
animationConfig: (_d = breakPointConfig.animationConfig) !== null && _d !== void 0 ? _d : animationConfig,
|
|
93
|
+
isAllSlidesVisible: isAllSlidesVisible,
|
|
94
|
+
isRTLMode: isRTLMode,
|
|
95
|
+
sliderObjRefs: sliderObjRefs,
|
|
96
|
+
sliderWrapperRef: sliderWrapperRef,
|
|
97
|
+
slideToShow: (_e = breakPointConfig.slideToShow) !== null && _e !== void 0 ? _e : 1,
|
|
98
|
+
variant: variant,
|
|
99
|
+
}), applyTransform = _o.applyTransform, calculateTranslate = _o.calculateTranslate;
|
|
100
|
+
var _p = (0, useSliderNavigation_1.default)({
|
|
101
|
+
activeSlide: (_f = breakPointConfig.activeSlide) !== null && _f !== void 0 ? _f : 0,
|
|
102
|
+
applyTransform: applyTransform,
|
|
103
|
+
loop: (_g = breakPointConfig.loop) !== null && _g !== void 0 ? _g : false,
|
|
104
|
+
sliderObjRefs: sliderObjRefs,
|
|
105
|
+
sliderWrapperRef: sliderWrapperRef,
|
|
106
|
+
slideToScroll: (_h = breakPointConfig.slideToScroll) !== null && _h !== void 0 ? _h : 1,
|
|
107
|
+
slideToShow: (_j = breakPointConfig.slideToShow) !== null && _j !== void 0 ? _j : 1,
|
|
108
|
+
speed: (_k = breakPointConfig.animationConfig) === null || _k === void 0 ? void 0 : _k.speed,
|
|
109
|
+
}), getActiveIndicatorIndex = _p.getActiveIndicatorIndex, getIndicatorCount = _p.getIndicatorCount, goToSlideIndicator = _p.goToSlideIndicator, handleNextSlide = _p.handleNextSlide, handlePrevSlide = _p.handlePrevSlide, hasNextBtnDisabled = _p.hasNextBtnDisabled, hasPrevBtnDisabled = _p.hasPrevBtnDisabled;
|
|
110
|
+
(0, react_1.useEffect)(function () {
|
|
111
|
+
var _a;
|
|
112
|
+
calculateDimensions();
|
|
113
|
+
Utils_1.safeWindow === null || Utils_1.safeWindow === void 0 ? void 0 : Utils_1.safeWindow.addEventListener('resize', calculateDimensions);
|
|
114
|
+
if (sliderObjRefs.current.containerWidth > 0 || sliderObjRefs.current.containerHeight > 0) {
|
|
115
|
+
var index = (_a = breakPointConfig.activeSlide) !== null && _a !== void 0 ? _a : 0;
|
|
116
|
+
applyTransform(index, false);
|
|
117
|
+
sliderObjRefs.current.currentIndex = index;
|
|
118
|
+
}
|
|
119
|
+
return function () {
|
|
120
|
+
Utils_1.safeWindow === null || Utils_1.safeWindow === void 0 ? void 0 : Utils_1.safeWindow.removeEventListener('resize', calculateDimensions);
|
|
121
|
+
};
|
|
122
|
+
}, [
|
|
123
|
+
calculateDimensions,
|
|
124
|
+
applyTransform,
|
|
125
|
+
breakPointConfig.activeSlide,
|
|
126
|
+
breakPointConfig.slideToShow,
|
|
127
|
+
breakPointConfig.gap,
|
|
128
|
+
]);
|
|
129
|
+
(0, useSliderAutoPlay_1.default)({
|
|
130
|
+
autoPlayConfig: (_l = breakPointConfig.autoPlayConfig) !== null && _l !== void 0 ? _l : autoPlayConfig,
|
|
131
|
+
handleNextSlide: handleNextSlide,
|
|
132
|
+
isAllSlidesVisible: isAllSlidesVisible,
|
|
133
|
+
loop: (_m = breakPointConfig.loop) !== null && _m !== void 0 ? _m : false,
|
|
134
|
+
sliderWrapperRef: sliderWrapperRef,
|
|
135
|
+
});
|
|
136
|
+
(0, useSliderDraggable_1.default)({
|
|
137
|
+
applyTransform: applyTransform,
|
|
138
|
+
calculateTranslate: calculateTranslate,
|
|
139
|
+
draggable: breakPointConfig.draggable,
|
|
140
|
+
handleNextSlide: handleNextSlide,
|
|
141
|
+
handlePrevSlide: handlePrevSlide,
|
|
142
|
+
hasNextBtnDisabled: hasNextBtnDisabled,
|
|
143
|
+
hasPrevBtnDisabled: hasPrevBtnDisabled,
|
|
144
|
+
sliderObjRefs: sliderObjRefs,
|
|
145
|
+
sliderWrapperRef: sliderWrapperRef,
|
|
146
|
+
});
|
|
147
|
+
return {
|
|
148
|
+
getActiveIndicatorIndex: getActiveIndicatorIndex,
|
|
149
|
+
getIndicatorCount: getIndicatorCount,
|
|
150
|
+
goToSlideIndicator: goToSlideIndicator,
|
|
151
|
+
handleNextSlide: handleNextSlide,
|
|
152
|
+
handlePrevSlide: handlePrevSlide,
|
|
153
|
+
hasNextBtnDisabled: hasNextBtnDisabled,
|
|
154
|
+
hasPrevBtnDisabled: hasPrevBtnDisabled,
|
|
155
|
+
sliderWrapperRef: sliderWrapperRef,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
exports.default = useSlider;
|
|
159
|
+
//# sourceMappingURL=useSlider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSlider.js","sourceRoot":"","sources":["../../../../src/components/Slider/useSlider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* -----------------------------------------------------------------------------
|
|
3
|
+
* @file useSliderAutoPlay
|
|
4
|
+
* -----------------------------------------------------------------------------
|
|
5
|
+
*
|
|
6
|
+
* @description :- React hook that manages autoplay behavior for a slider component.
|
|
7
|
+
* Responsibilities:
|
|
8
|
+
* - Starts an interval-based autoplay when enabled
|
|
9
|
+
* - Stops autoplay safely on cleanup or when conditions change
|
|
10
|
+
* - Prevents multiple intervals from running simultaneously
|
|
11
|
+
* - Respects loop and transformation states to avoid invalid transitions
|
|
12
|
+
* Autoplay will:
|
|
13
|
+
* - Start only when `enable` is true
|
|
14
|
+
* - Pause automatically when the slider is transforming
|
|
15
|
+
* - Stop and clean up intervals on unmount
|
|
16
|
+
* @param autoPlayConfig Configuration object controlling autoplay behavior
|
|
17
|
+
* @param handleNextSlide Callback invoked to move to the next slide
|
|
18
|
+
*
|
|
19
|
+
* -----------------------------------------------------------------------------
|
|
20
|
+
* Copyright © 2026 BookingKoala. All rights reserved.
|
|
21
|
+
* -----------------------------------------------------------------------------
|
|
22
|
+
*/
|
|
23
|
+
import { type RefObject } from 'react';
|
|
24
|
+
import { type SlickSliderAutoPlayConfig } from './SlickSlider';
|
|
25
|
+
interface UseSlickSliderAutoplayProps {
|
|
26
|
+
autoPlayConfig: SlickSliderAutoPlayConfig;
|
|
27
|
+
handleNextSlide: () => void;
|
|
28
|
+
isAllSlidesVisible: boolean;
|
|
29
|
+
loop: boolean;
|
|
30
|
+
sliderWrapperRef?: RefObject<HTMLDivElement | null>;
|
|
31
|
+
}
|
|
32
|
+
declare function useSliderAutoplay({ autoPlayConfig, handleNextSlide, isAllSlidesVisible, loop, }: Readonly<UseSlickSliderAutoplayProps>): void;
|
|
33
|
+
export default useSliderAutoplay;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* -----------------------------------------------------------------------------
|
|
5
|
+
* @file useSliderAutoPlay
|
|
6
|
+
* -----------------------------------------------------------------------------
|
|
7
|
+
*
|
|
8
|
+
* @description :- React hook that manages autoplay behavior for a slider component.
|
|
9
|
+
* Responsibilities:
|
|
10
|
+
* - Starts an interval-based autoplay when enabled
|
|
11
|
+
* - Stops autoplay safely on cleanup or when conditions change
|
|
12
|
+
* - Prevents multiple intervals from running simultaneously
|
|
13
|
+
* - Respects loop and transformation states to avoid invalid transitions
|
|
14
|
+
* Autoplay will:
|
|
15
|
+
* - Start only when `enable` is true
|
|
16
|
+
* - Pause automatically when the slider is transforming
|
|
17
|
+
* - Stop and clean up intervals on unmount
|
|
18
|
+
* @param autoPlayConfig Configuration object controlling autoplay behavior
|
|
19
|
+
* @param handleNextSlide Callback invoked to move to the next slide
|
|
20
|
+
*
|
|
21
|
+
* -----------------------------------------------------------------------------
|
|
22
|
+
* Copyright © 2026 BookingKoala. All rights reserved.
|
|
23
|
+
* -----------------------------------------------------------------------------
|
|
24
|
+
*/
|
|
25
|
+
var react_1 = require("react");
|
|
26
|
+
var Utils_1 = require("../../Utils");
|
|
27
|
+
var helpers_1 = require("../../helpers");
|
|
28
|
+
function useSliderAutoplay(_a) {
|
|
29
|
+
var autoPlayConfig = _a.autoPlayConfig, handleNextSlide = _a.handleNextSlide, isAllSlidesVisible = _a.isAllSlidesVisible, loop = _a.loop;
|
|
30
|
+
// Destruct props
|
|
31
|
+
var _b = (0, helpers_1.destructObj)(autoPlayConfig), _c = _b.enable, enable = _c === void 0 ? false : _c, _d = _b.interval, interval = _d === void 0 ? 2000 : _d;
|
|
32
|
+
// Refs
|
|
33
|
+
var timerRef = (0, react_1.useRef)(null);
|
|
34
|
+
/**
|
|
35
|
+
* Function initializes autoplay by creating a single interval timer.
|
|
36
|
+
* On each interval tick, it triggers the handleNextSlide callback
|
|
37
|
+
* to advance the slider.
|
|
38
|
+
*/
|
|
39
|
+
var startAutoPlay = (0, react_1.useCallback)(function () {
|
|
40
|
+
if (!enable || timerRef.current)
|
|
41
|
+
return;
|
|
42
|
+
timerRef.current = Utils_1.safeWindow === null || Utils_1.safeWindow === void 0 ? void 0 : Utils_1.safeWindow.setInterval(function () {
|
|
43
|
+
handleNextSlide();
|
|
44
|
+
}, interval);
|
|
45
|
+
}, [enable, interval, handleNextSlide]);
|
|
46
|
+
/** Function stops the active autoplay interval and resets the timer reference. */
|
|
47
|
+
var clearAutoplayTimer = (0, react_1.useCallback)(function () {
|
|
48
|
+
if (!(0, helpers_1.isNullOrUndefined)(timerRef.current)) {
|
|
49
|
+
Utils_1.safeWindow === null || Utils_1.safeWindow === void 0 ? void 0 : Utils_1.safeWindow.clearInterval(timerRef.current);
|
|
50
|
+
timerRef.current = null;
|
|
51
|
+
}
|
|
52
|
+
}, []);
|
|
53
|
+
(0, react_1.useEffect)(function () {
|
|
54
|
+
if (!loop || isAllSlidesVisible)
|
|
55
|
+
return undefined;
|
|
56
|
+
startAutoPlay();
|
|
57
|
+
// TODO: Enable pause-on-hover by attaching mouseenter/mouseleave events to start and stop autoplay when hover interaction is active.
|
|
58
|
+
// const container = sliderWrapperRef?.current;
|
|
59
|
+
// if (pauseOnHover) {
|
|
60
|
+
// if (isNullOrUndefined(container)) return;
|
|
61
|
+
// container.addEventListener('mouseenter', clearAutoplayTimer);
|
|
62
|
+
// container.addEventListener('mouseleave', startAutoPlay);
|
|
63
|
+
// }
|
|
64
|
+
return function () {
|
|
65
|
+
clearAutoplayTimer();
|
|
66
|
+
// if (isNullOrUndefined(container)) return;
|
|
67
|
+
// container.removeEventListener('mouseenter', clearAutoplayTimer);
|
|
68
|
+
// container.removeEventListener('mouseleave', startAutoPlay);
|
|
69
|
+
};
|
|
70
|
+
}, [loop, isAllSlidesVisible, startAutoPlay, clearAutoplayTimer]);
|
|
71
|
+
}
|
|
72
|
+
exports.default = useSliderAutoplay;
|
|
73
|
+
//# sourceMappingURL=useSliderAutoPlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSliderAutoPlay.js","sourceRoot":"","sources":["../../../../src/components/Slider/useSliderAutoPlay.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,+BAAsE;AACtE,qCAAwC;AACxC,yCAA8D;AAW9D,SAAS,iBAAiB,CAAC,EAKa;QAJtC,cAAc,oBAAA,EACd,eAAe,qBAAA,EACf,kBAAkB,wBAAA,EAClB,IAAI,UAAA;IAEJ,iBAAiB;IACX,IAAA,KAAsC,IAAA,qBAAW,EAAC,cAAc,CAAC,EAA/D,cAAc,EAAd,MAAM,mBAAG,KAAK,KAAA,EAAE,gBAAe,EAAf,QAAQ,mBAAG,IAAI,KAAgC,CAAA;IAEvE,OAAO;IACP,IAAM,QAAQ,GAAG,IAAA,cAAM,EAA4B,IAAI,CAAC,CAAA;IAExD;;;;OAIG;IACH,IAAM,aAAa,GAAG,IAAA,mBAAW,EAAC;QAChC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO;YAAE,OAAM;QACvC,QAAQ,CAAC,OAAO,GAAG,kBAAU,aAAV,kBAAU,uBAAV,kBAAU,CAAE,WAAW,CAAC;YACzC,eAAe,EAAE,CAAA;QACnB,CAAC,EAAE,QAAQ,CAAC,CAAA;IACd,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAA;IAEvC,kFAAkF;IAClF,IAAM,kBAAkB,GAAG,IAAA,mBAAW,EAAC;QACrC,IAAI,CAAC,IAAA,2BAAiB,EAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,kBAAU,aAAV,kBAAU,uBAAV,kBAAU,CAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC3C,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAA;QACzB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,IAAI,IAAI,kBAAkB;YAAE,OAAO,SAAS,CAAA;QACjD,aAAa,EAAE,CAAA;QACf,qIAAqI;QACrI,+CAA+C;QAC/C,sBAAsB;QACtB,6CAA6C;QAC7C,iEAAiE;QACjE,4DAA4D;QAC5D,IAAI;QAEJ,OAAO;YACL,kBAAkB,EAAE,CAAA;YACpB,4CAA4C;YAC5C,mEAAmE;YACnE,8DAA8D;QAChE,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,kBAAe,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type SlickSliderAnimationConfig, type SlickSliderAutoPlayConfig } from './SlickSlider';
|
|
2
|
+
export interface SlickSliderConfig {
|
|
3
|
+
activeSlide?: number;
|
|
4
|
+
animationConfig?: SlickSliderAnimationConfig;
|
|
5
|
+
autoPlayConfig?: SlickSliderAutoPlayConfig;
|
|
6
|
+
breakpoint?: number;
|
|
7
|
+
draggable?: {
|
|
8
|
+
dragThreshold?: number;
|
|
9
|
+
enableDrag?: boolean;
|
|
10
|
+
};
|
|
11
|
+
gap?: number;
|
|
12
|
+
loop?: boolean;
|
|
13
|
+
showCtrlBtns?: boolean;
|
|
14
|
+
showIndicator?: boolean;
|
|
15
|
+
slideToScroll?: number;
|
|
16
|
+
slideToShow?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface UseSliderBreakpointProps {
|
|
19
|
+
breakpoints: SlickSliderConfig[];
|
|
20
|
+
config: SlickSliderConfig;
|
|
21
|
+
}
|
|
22
|
+
declare function useSliderBreakpoint({ breakpoints, config }: UseSliderBreakpointProps): SlickSliderConfig;
|
|
23
|
+
export default useSliderBreakpoint;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
/**
|
|
5
|
+
* -----------------------------------------------------------------------------
|
|
6
|
+
* @file useSliderBreakpoint
|
|
7
|
+
* -----------------------------------------------------------------------------
|
|
8
|
+
*
|
|
9
|
+
* @description Utility file - add description here
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
* - Add key features here
|
|
13
|
+
*
|
|
14
|
+
* -----------------------------------------------------------------------------
|
|
15
|
+
* Copyright © 2026 BookingKoala. All rights reserved.
|
|
16
|
+
* -----------------------------------------------------------------------------
|
|
17
|
+
*/
|
|
18
|
+
var react_1 = require("react");
|
|
19
|
+
var Utils_1 = require("../../Utils");
|
|
20
|
+
var helpers_1 = require("../../helpers");
|
|
21
|
+
/**
|
|
22
|
+
* Resolves the breakpoint configuration based on current viewport width.
|
|
23
|
+
* This function is used both for initial resolution and on resize.
|
|
24
|
+
*/
|
|
25
|
+
function resolveBreakpointConfig(breakpoints, config) {
|
|
26
|
+
var _a, _b, _c, _d, _e;
|
|
27
|
+
if ((0, helpers_1.isObjectEmpty)(config)) {
|
|
28
|
+
return config;
|
|
29
|
+
}
|
|
30
|
+
var viewportWidth = Utils_1.safeWindow === null || Utils_1.safeWindow === void 0 ? void 0 : Utils_1.safeWindow.innerWidth;
|
|
31
|
+
if (!viewportWidth) {
|
|
32
|
+
return config;
|
|
33
|
+
}
|
|
34
|
+
// Sort breakpoints in ascending order (smallest first).
|
|
35
|
+
// Then match the first breakpoint where viewport width is <= breakpoint.
|
|
36
|
+
// Example: viewport 500 matches 576 (not 1200).
|
|
37
|
+
var sortedBreakpoints = tslib_1.__spreadArray([], breakpoints, true).filter(function (bp) { return bp.breakpoint !== undefined; })
|
|
38
|
+
.sort(function (a, b) { var _a, _b; return ((_a = a.breakpoint) !== null && _a !== void 0 ? _a : 0) - ((_b = b.breakpoint) !== null && _b !== void 0 ? _b : 0); });
|
|
39
|
+
// Find the first breakpoint where viewport width is <= breakpoint
|
|
40
|
+
var matchedBreakpoint = sortedBreakpoints.find(function (bp) { var _a; return viewportWidth <= ((_a = bp.breakpoint) !== null && _a !== void 0 ? _a : 0); });
|
|
41
|
+
// Determine the base active slide:
|
|
42
|
+
// - if the consumer provided activeSlide, use it
|
|
43
|
+
// - otherwise align to slideToShow so the first real slide appears after any leading clones
|
|
44
|
+
var baseActiveSlide = (_b = (_a = config.activeSlide) !== null && _a !== void 0 ? _a : config.slideToShow) !== null && _b !== void 0 ? _b : 0;
|
|
45
|
+
var baseConfig = tslib_1.__assign(tslib_1.__assign({}, config), { activeSlide: baseActiveSlide });
|
|
46
|
+
console.log(baseActiveSlide);
|
|
47
|
+
// Merge base config with breakpoint overrides.
|
|
48
|
+
// If the breakpoint explicitly defines activeSlide, keep that; otherwise 0.
|
|
49
|
+
if (!(0, helpers_1.isObjectNotEmpty)(matchedBreakpoint)) {
|
|
50
|
+
return baseConfig;
|
|
51
|
+
}
|
|
52
|
+
console.log(baseActiveSlide, baseConfig);
|
|
53
|
+
var bp = matchedBreakpoint;
|
|
54
|
+
var resolvedSlideToShow = (_c = bp.slideToShow) !== null && _c !== void 0 ? _c : baseConfig.slideToShow;
|
|
55
|
+
var resolvedActiveSlide = (_e = (_d = bp.activeSlide) !== null && _d !== void 0 ? _d :
|
|
56
|
+
// Align to slideToShow so the first real slide is in view with cloned buffers
|
|
57
|
+
resolvedSlideToShow) !== null && _e !== void 0 ? _e : baseActiveSlide;
|
|
58
|
+
return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, baseConfig), bp), { activeSlide: resolvedActiveSlide });
|
|
59
|
+
}
|
|
60
|
+
function useSliderBreakpoint(_a) {
|
|
61
|
+
var breakpoints = _a.breakpoints, config = _a.config;
|
|
62
|
+
// Initialize with resolved breakpoint config immediately on mount
|
|
63
|
+
var _b = (0, react_1.useState)(function () {
|
|
64
|
+
return resolveBreakpointConfig(breakpoints, config);
|
|
65
|
+
}), resolvedConfig = _b[0], setResolvedConfig = _b[1];
|
|
66
|
+
(0, react_1.useEffect)(function () {
|
|
67
|
+
if ((0, helpers_1.isObjectEmpty)(config)) {
|
|
68
|
+
setResolvedConfig(config);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
function updateConfig() {
|
|
72
|
+
var newConfig = resolveBreakpointConfig(breakpoints, config);
|
|
73
|
+
// Avoid unnecessary updates
|
|
74
|
+
console.log(newConfig, 'yurtyertertewr');
|
|
75
|
+
setResolvedConfig(function (prevConfig) {
|
|
76
|
+
if (!(0, helpers_1.deepCompareObjects)(prevConfig, newConfig)) {
|
|
77
|
+
return newConfig;
|
|
78
|
+
}
|
|
79
|
+
return prevConfig;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
// Update config on mount and resize
|
|
83
|
+
updateConfig();
|
|
84
|
+
Utils_1.safeWindow === null || Utils_1.safeWindow === void 0 ? void 0 : Utils_1.safeWindow.addEventListener('resize', updateConfig);
|
|
85
|
+
return function () {
|
|
86
|
+
Utils_1.safeWindow === null || Utils_1.safeWindow === void 0 ? void 0 : Utils_1.safeWindow.removeEventListener('resize', updateConfig);
|
|
87
|
+
};
|
|
88
|
+
}, [config, breakpoints]);
|
|
89
|
+
return resolvedConfig;
|
|
90
|
+
}
|
|
91
|
+
exports.default = useSliderBreakpoint;
|
|
92
|
+
//# sourceMappingURL=useSliderBreakpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSliderBreakpoint.js","sourceRoot":"","sources":["../../../../src/components/Slider/useSliderBreakpoint.ts"],"names":[],"mappings":"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"}
|