farm-react 1.0.9 → 1.0.11
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/cjs/components/Button.d.ts +2 -1
- package/dist/cjs/components/Button.js.map +1 -1
- package/dist/cjs/components/Card.js +1 -1
- package/dist/cjs/components/Card.js.map +1 -1
- package/dist/cjs/components/SlickSlider.d.ts +77 -0
- package/dist/cjs/components/SlickSlider.js +184 -0
- package/dist/cjs/components/SlickSlider.js.map +1 -0
- package/dist/cjs/components/TextInput.d.ts +6 -5
- package/dist/cjs/components/TextInput.js.map +1 -1
- package/dist/cjs/hooks/slider/useSlider.d.ts +72 -0
- package/dist/cjs/hooks/slider/useSlider.js +153 -0
- package/dist/cjs/hooks/slider/useSlider.js.map +1 -0
- package/dist/cjs/hooks/slider/useSliderAutoPlay.d.ts +33 -0
- package/dist/cjs/hooks/slider/useSliderAutoPlay.js +73 -0
- package/dist/cjs/hooks/slider/useSliderAutoPlay.js.map +1 -0
- package/dist/cjs/hooks/slider/useSliderBreakpoints.d.ts +35 -0
- package/dist/cjs/hooks/slider/useSliderBreakpoints.js +54 -0
- package/dist/cjs/hooks/slider/useSliderBreakpoints.js.map +1 -0
- package/dist/cjs/hooks/slider/useSliderDimension.d.ts +40 -0
- package/dist/cjs/hooks/slider/useSliderDimension.js +89 -0
- package/dist/cjs/hooks/slider/useSliderDimension.js.map +1 -0
- package/dist/cjs/hooks/slider/useSliderDraggable.d.ts +42 -0
- package/dist/cjs/hooks/slider/useSliderDraggable.js +143 -0
- package/dist/cjs/hooks/slider/useSliderDraggable.js.map +1 -0
- package/dist/cjs/hooks/slider/useSliderNavigation.d.ts +42 -0
- package/dist/cjs/hooks/slider/useSliderNavigation.js +124 -0
- package/dist/cjs/hooks/slider/useSliderNavigation.js.map +1 -0
- package/dist/cjs/hooks/slider/useSliderTransform.d.ts +31 -0
- package/dist/cjs/hooks/slider/useSliderTransform.js +66 -0
- package/dist/cjs/hooks/slider/useSliderTransform.js.map +1 -0
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/components/Button.d.ts +2 -1
- package/dist/esm/components/Button.js.map +1 -1
- package/dist/esm/components/Card.js +1 -1
- package/dist/esm/components/Card.js.map +1 -1
- package/dist/esm/components/SlickSlider.d.ts +77 -0
- package/dist/esm/components/SlickSlider.js +181 -0
- package/dist/esm/components/SlickSlider.js.map +1 -0
- package/dist/esm/components/TextInput.d.ts +6 -5
- package/dist/esm/components/TextInput.js.map +1 -1
- package/dist/esm/helpers.d.ts +1 -0
- package/dist/esm/helpers.js +2 -0
- package/dist/esm/helpers.js.map +1 -0
- package/dist/esm/hooks/slider/useSlider.d.ts +72 -0
- package/dist/esm/hooks/slider/useSlider.js +150 -0
- package/dist/esm/hooks/slider/useSlider.js.map +1 -0
- package/dist/esm/hooks/slider/useSliderAutoPlay.d.ts +33 -0
- package/dist/esm/hooks/slider/useSliderAutoPlay.js +71 -0
- package/dist/esm/hooks/slider/useSliderAutoPlay.js.map +1 -0
- package/dist/esm/hooks/slider/useSliderBreakpoints.d.ts +35 -0
- package/dist/esm/hooks/slider/useSliderBreakpoints.js +52 -0
- package/dist/esm/hooks/slider/useSliderBreakpoints.js.map +1 -0
- package/dist/esm/hooks/slider/useSliderDimension.d.ts +40 -0
- package/dist/esm/hooks/slider/useSliderDimension.js +87 -0
- package/dist/esm/hooks/slider/useSliderDimension.js.map +1 -0
- package/dist/esm/hooks/slider/useSliderDraggable.d.ts +42 -0
- package/dist/esm/hooks/slider/useSliderDraggable.js +141 -0
- package/dist/esm/hooks/slider/useSliderDraggable.js.map +1 -0
- package/dist/esm/hooks/slider/useSliderNavigation.d.ts +42 -0
- package/dist/esm/hooks/slider/useSliderNavigation.js +122 -0
- package/dist/esm/hooks/slider/useSliderNavigation.js.map +1 -0
- package/dist/esm/hooks/slider/useSliderTransform.d.ts +31 -0
- package/dist/esm/hooks/slider/useSliderTransform.js +64 -0
- package/dist/esm/hooks/slider/useSliderTransform.js.map +1 -0
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/package.json +14 -1
- package/package.json +15 -2
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* -----------------------------------------------------------------------------
|
|
3
|
+
* @file useSliderDraggable
|
|
4
|
+
* -----------------------------------------------------------------------------
|
|
5
|
+
*
|
|
6
|
+
* @description A custom React hook that enables pointer-based drag interactions
|
|
7
|
+
* for the Slick slider component.
|
|
8
|
+
* Responsibilities:
|
|
9
|
+
* - Attaches pointer event listeners to the slider container
|
|
10
|
+
* - Tracks drag state and movement distance
|
|
11
|
+
* - Applies real-time transforms during dragging
|
|
12
|
+
* - Determines swipe intent using a configurable threshold
|
|
13
|
+
* - Triggers next/previous slide navigation based on drag direction
|
|
14
|
+
* - Safely handles pointer cancellation and cleanup
|
|
15
|
+
* Behavior:
|
|
16
|
+
* - Dragging is enabled only when `draggable.enableDrag` is true
|
|
17
|
+
* - Horizontal movement controls slide navigation
|
|
18
|
+
* - Transitions are suppressed during drag and restored on release
|
|
19
|
+
* - Automatically cleans up listeners on unmount or ref changes
|
|
20
|
+
*
|
|
21
|
+
* -----------------------------------------------------------------------------
|
|
22
|
+
* Copyright © 2017-present BookingKoala. All rights reserved.
|
|
23
|
+
* -----------------------------------------------------------------------------
|
|
24
|
+
*/
|
|
25
|
+
import { type MutableRefObject, type RefObject } from 'react';
|
|
26
|
+
import type { SlickSliderRefs } from './useSlider';
|
|
27
|
+
export interface SliderDraggableProps {
|
|
28
|
+
applyTransform: (val: number, withTransition?: boolean, isRaw?: boolean) => void;
|
|
29
|
+
calculateTranslate: (idx: number) => number;
|
|
30
|
+
draggable?: {
|
|
31
|
+
dragThreshold?: number;
|
|
32
|
+
enableDrag?: boolean;
|
|
33
|
+
};
|
|
34
|
+
handleNextSlide: () => void;
|
|
35
|
+
handlePrevSlide: () => void;
|
|
36
|
+
hasNextBtnDisabled: () => boolean;
|
|
37
|
+
hasPrevBtnDisabled: () => boolean;
|
|
38
|
+
sliderObjRefs: MutableRefObject<SlickSliderRefs>;
|
|
39
|
+
sliderWrapperRef: RefObject<HTMLDivElement | null>;
|
|
40
|
+
}
|
|
41
|
+
declare function useSliderDraggable({ applyTransform, calculateTranslate, draggable, handleNextSlide, handlePrevSlide, hasNextBtnDisabled, hasPrevBtnDisabled, sliderObjRefs, sliderWrapperRef, }: SliderDraggableProps): void;
|
|
42
|
+
export default useSliderDraggable;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* -----------------------------------------------------------------------------
|
|
3
|
+
* @file useSliderDraggable
|
|
4
|
+
* -----------------------------------------------------------------------------
|
|
5
|
+
*
|
|
6
|
+
* @description A custom React hook that enables pointer-based drag interactions
|
|
7
|
+
* for the Slick slider component.
|
|
8
|
+
* Responsibilities:
|
|
9
|
+
* - Attaches pointer event listeners to the slider container
|
|
10
|
+
* - Tracks drag state and movement distance
|
|
11
|
+
* - Applies real-time transforms during dragging
|
|
12
|
+
* - Determines swipe intent using a configurable threshold
|
|
13
|
+
* - Triggers next/previous slide navigation based on drag direction
|
|
14
|
+
* - Safely handles pointer cancellation and cleanup
|
|
15
|
+
* Behavior:
|
|
16
|
+
* - Dragging is enabled only when `draggable.enableDrag` is true
|
|
17
|
+
* - Horizontal movement controls slide navigation
|
|
18
|
+
* - Transitions are suppressed during drag and restored on release
|
|
19
|
+
* - Automatically cleans up listeners on unmount or ref changes
|
|
20
|
+
*
|
|
21
|
+
* -----------------------------------------------------------------------------
|
|
22
|
+
* Copyright © 2017-present BookingKoala. All rights reserved.
|
|
23
|
+
* -----------------------------------------------------------------------------
|
|
24
|
+
*/
|
|
25
|
+
import { useEffect } from 'react';
|
|
26
|
+
import { destructObj, isNullOrUndefined, preventDefault } from '../../helpers';
|
|
27
|
+
function useSliderDraggable(_a) {
|
|
28
|
+
var applyTransform = _a.applyTransform, calculateTranslate = _a.calculateTranslate, draggable = _a.draggable, handleNextSlide = _a.handleNextSlide, handlePrevSlide = _a.handlePrevSlide, hasNextBtnDisabled = _a.hasNextBtnDisabled, hasPrevBtnDisabled = _a.hasPrevBtnDisabled, sliderObjRefs = _a.sliderObjRefs, sliderWrapperRef = _a.sliderWrapperRef;
|
|
29
|
+
useEffect(function () {
|
|
30
|
+
var _a = destructObj(draggable), _b = _a.dragThreshold, dragThreshold = _b === void 0 ? 200 : _b, _c = _a.enableDrag, enableDrag = _c === void 0 ? true : _c;
|
|
31
|
+
var _d = sliderObjRefs.current, currentIndex = _d.currentIndex, drag = _d.drag;
|
|
32
|
+
var container = sliderWrapperRef.current;
|
|
33
|
+
if (!enableDrag || isNullOrUndefined(container))
|
|
34
|
+
return undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Handles the pointer down event to initiate a drag interaction.
|
|
37
|
+
* - Captures the pointer to continue receiving move/up events
|
|
38
|
+
* even if the pointer leaves the container
|
|
39
|
+
* - Initializes drag state (start position and reset translate)
|
|
40
|
+
*/
|
|
41
|
+
function handlePointerDown(event) {
|
|
42
|
+
if (isNullOrUndefined(container))
|
|
43
|
+
return;
|
|
44
|
+
container.setPointerCapture(event.pointerId);
|
|
45
|
+
Object.assign(drag, {
|
|
46
|
+
isDragging: true,
|
|
47
|
+
startX: event.clientX,
|
|
48
|
+
startY: event.clientY,
|
|
49
|
+
translate: 0,
|
|
50
|
+
});
|
|
51
|
+
preventDefault(event);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Handles pointer move events during an active drag gesture.
|
|
55
|
+
* - Runs only while dragging is in progress
|
|
56
|
+
* - Calculates horizontal movement delta from the initial pointer position
|
|
57
|
+
* - Updates drag translate value for threshold / direction detection
|
|
58
|
+
* - Applies a real-time transform without transition for smooth dragging
|
|
59
|
+
*/
|
|
60
|
+
function handlePointerMove(event) {
|
|
61
|
+
if (isNullOrUndefined(container) || !drag.isDragging)
|
|
62
|
+
return;
|
|
63
|
+
var delta = event.clientX - drag.startX;
|
|
64
|
+
var base = calculateTranslate(currentIndex);
|
|
65
|
+
Object.assign(drag, { translate: delta });
|
|
66
|
+
applyTransform(delta + base, false, true);
|
|
67
|
+
preventDefault(event);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Handles the pointer up event to finalize a drag interaction.
|
|
71
|
+
* - Releases pointer capture to stop receiving pointer events
|
|
72
|
+
* - Evaluates total drag distance against the configured threshold
|
|
73
|
+
* - Triggers slide navigation based on drag direction and availability
|
|
74
|
+
* - Reverts to the current slide if the drag is insufficient or navigation is disabled
|
|
75
|
+
*/
|
|
76
|
+
function handlePointerUp(event) {
|
|
77
|
+
if (isNullOrUndefined(container) || !drag.isDragging)
|
|
78
|
+
return;
|
|
79
|
+
container.releasePointerCapture(event.pointerId);
|
|
80
|
+
var translate = drag.translate;
|
|
81
|
+
Object.assign(drag, { isDragging: false });
|
|
82
|
+
if (Math.abs(translate) <= dragThreshold) {
|
|
83
|
+
applyTransform(currentIndex, true);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (translate < 0 && !hasNextBtnDisabled()) {
|
|
87
|
+
handleNextSlide();
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (translate > 0 && !hasPrevBtnDisabled()) {
|
|
91
|
+
handlePrevSlide();
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
applyTransform(currentIndex, true);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Handles pointer cancel events to safely abort an active drag interaction.
|
|
98
|
+
* - Triggered when the browser cancels the pointer sequence
|
|
99
|
+
* (e.g., touch interruption, context menu, lost capture)
|
|
100
|
+
* - Releases pointer capture to avoid stuck pointer states
|
|
101
|
+
* - Resets dragging state
|
|
102
|
+
* - Smoothly reverts the slider back to the current active slid.
|
|
103
|
+
*/
|
|
104
|
+
function handlePointerCancel(event) {
|
|
105
|
+
if (isNullOrUndefined(container) || !drag.isDragging)
|
|
106
|
+
return;
|
|
107
|
+
container.releasePointerCapture(event.pointerId);
|
|
108
|
+
Object.assign(drag, { isDragging: false });
|
|
109
|
+
applyTransform(currentIndex, true);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Registers pointer event listeners on the slider container
|
|
113
|
+
* to enable drag-based interactions.
|
|
114
|
+
*
|
|
115
|
+
* Cleanup ensures all listeners are removed when the component
|
|
116
|
+
* unmounts or the container reference changes, preventing
|
|
117
|
+
* memory leaks and duplicate handlers.
|
|
118
|
+
*/
|
|
119
|
+
container.addEventListener('pointerdown', handlePointerDown);
|
|
120
|
+
container.addEventListener('pointermove', handlePointerMove);
|
|
121
|
+
container.addEventListener('pointerup', handlePointerUp);
|
|
122
|
+
container.addEventListener('pointercancel', handlePointerCancel);
|
|
123
|
+
/**
|
|
124
|
+
* Restrict touch gestures to vertical scrolling only (pan-y),allowing smooth page scroll while
|
|
125
|
+
* preventing horizontal touch interference during slider drag interactions.
|
|
126
|
+
*/
|
|
127
|
+
var touchActionAxis = 'pan-y';
|
|
128
|
+
Object.assign(container.style, { touchAction: touchActionAxis });
|
|
129
|
+
return function () {
|
|
130
|
+
if (isNullOrUndefined(container))
|
|
131
|
+
return;
|
|
132
|
+
container.removeEventListener('pointerdown', handlePointerDown);
|
|
133
|
+
container.removeEventListener('pointermove', handlePointerMove);
|
|
134
|
+
container.removeEventListener('pointerup', handlePointerUp);
|
|
135
|
+
container.removeEventListener('pointercancel', handlePointerCancel);
|
|
136
|
+
Object.assign(container.style, { touchAction: '' });
|
|
137
|
+
};
|
|
138
|
+
}, [sliderObjRefs, handleNextSlide, handlePrevSlide, hasNextBtnDisabled, handlePrevSlide]);
|
|
139
|
+
}
|
|
140
|
+
export default useSliderDraggable;
|
|
141
|
+
//# sourceMappingURL=useSliderDraggable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSliderDraggable.js","sourceRoot":"","sources":["../../../../src/hooks/slider/useSliderDraggable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,SAAS,EAAyC,MAAM,OAAO,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAkB9E,SAAS,kBAAkB,CAAC,EAUL;QATrB,cAAc,oBAAA,EACd,kBAAkB,wBAAA,EAClB,SAAS,eAAA,EACT,eAAe,qBAAA,EACf,eAAe,qBAAA,EACf,kBAAkB,wBAAA,EAClB,kBAAkB,wBAAA,EAClB,aAAa,mBAAA,EACb,gBAAgB,sBAAA;IAEhB,SAAS,CAAC;QACF,IAAA,KAA6C,WAAW,CAAC,SAAS,CAAC,EAAjE,qBAAmB,EAAnB,aAAa,mBAAG,GAAG,KAAA,EAAE,kBAAiB,EAAjB,UAAU,mBAAG,IAAI,KAA2B,CAAA;QACnE,IAAA,KAAyB,aAAa,CAAC,OAAO,EAA5C,YAAY,kBAAA,EAAE,IAAI,UAA0B,CAAA;QACpD,IAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAA;QAE1C,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;QAEjE;;;;;WAKG;QACH,SAAS,iBAAiB,CAAC,KAAmB;YAC5C,IAAI,iBAAiB,CAAC,SAAS,CAAC;gBAAE,OAAM;YACxC,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gBAClB,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,KAAK,CAAC,OAAO;gBACrB,MAAM,EAAE,KAAK,CAAC,OAAO;gBACrB,SAAS,EAAE,CAAC;aACb,CAAC,CAAA;YACF,cAAc,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;QAED;;;;;;WAMG;QACH,SAAS,iBAAiB,CAAC,KAAmB;YAC5C,IAAI,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAM;YAC5D,IAAM,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAA;YACzC,IAAM,IAAI,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAA;YAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;YACzC,cAAc,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;YACzC,cAAc,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;QAED;;;;;;WAMG;QACH,SAAS,eAAe,CAAC,KAAmB;YAC1C,IAAI,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAM;YAC5D,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACxC,IAAA,SAAS,GAAK,IAAI,UAAT,CAAS;YAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;YAE1C,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,aAAa,EAAE,CAAC;gBACzC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;gBAClC,OAAM;YACR,CAAC;YAED,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBAC3C,eAAe,EAAE,CAAA;gBACjB,OAAM;YACR,CAAC;YAED,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBAC3C,eAAe,EAAE,CAAA;gBACjB,OAAM;YACR,CAAC;YACD,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QACpC,CAAC;QAED;;;;;;;WAOG;QACH,SAAS,mBAAmB,CAAC,KAAmB;YAC9C,IAAI,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAM;YAC5D,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAChD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;YAC1C,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QACpC,CAAC;QAED;;;;;;;WAOG;QACH,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;QAC5D,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;QAC5D,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;QACxD,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAA;QAEhE;;;WAGG;QACH,IAAM,eAAe,GAAG,OAAO,CAAA;QAC/B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAA;QAEhE,OAAO;YACL,IAAI,iBAAiB,CAAC,SAAS,CAAC;gBAAE,OAAM;YACxC,SAAS,CAAC,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;YAC/D,SAAS,CAAC,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;YAC/D,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;YAC3D,SAAS,CAAC,mBAAmB,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAA;YACnE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAA;QACrD,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC,CAAA;AAC5F,CAAC;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* -----------------------------------------------------------------------------
|
|
3
|
+
* @file useSliderNavigation
|
|
4
|
+
* -----------------------------------------------------------------------------
|
|
5
|
+
*
|
|
6
|
+
* @description This hook is responsible for handling all slider navigation logic.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Handles next slide navigation
|
|
10
|
+
* - Handles previous slide navigation
|
|
11
|
+
* - Controls next button disabled state
|
|
12
|
+
* - Controls previous button disabled state
|
|
13
|
+
* - Provides the active indicator index
|
|
14
|
+
* - Calculates the total number of indicators
|
|
15
|
+
*
|
|
16
|
+
* -----------------------------------------------------------------------------
|
|
17
|
+
* Copyright © 2017-present BookingKoala. All rights reserved.
|
|
18
|
+
* -----------------------------------------------------------------------------
|
|
19
|
+
*/
|
|
20
|
+
import { type MutableRefObject, type RefObject } from 'react';
|
|
21
|
+
import type { SlickSliderRefs } from './useSlider';
|
|
22
|
+
interface UseSlickSliderNavigationReturn {
|
|
23
|
+
getActiveIndicatorIndex: () => number | undefined;
|
|
24
|
+
getIndicatorCount: () => number | undefined;
|
|
25
|
+
goToSlideIndicator: (indicatorIndex: number) => void;
|
|
26
|
+
handleNextSlide: () => void;
|
|
27
|
+
handlePrevSlide: () => void;
|
|
28
|
+
hasNextBtnDisabled: () => boolean;
|
|
29
|
+
hasPrevBtnDisabled: () => boolean;
|
|
30
|
+
}
|
|
31
|
+
interface UseSlickSliderDimensionsProps {
|
|
32
|
+
activeSlide: number;
|
|
33
|
+
applyTransform: (indexOrTranslate: number, withTransition?: boolean) => void;
|
|
34
|
+
loop: boolean;
|
|
35
|
+
sliderObjRefs: MutableRefObject<SlickSliderRefs>;
|
|
36
|
+
sliderWrapperRef: RefObject<HTMLDivElement | null>;
|
|
37
|
+
slideToScroll: number;
|
|
38
|
+
slideToShow: number;
|
|
39
|
+
speed?: number;
|
|
40
|
+
}
|
|
41
|
+
declare function useSliderNavigation({ activeSlide, applyTransform, loop, sliderObjRefs, slideToScroll, slideToShow, speed, }: UseSlickSliderDimensionsProps): UseSlickSliderNavigationReturn;
|
|
42
|
+
export default useSliderNavigation;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* -----------------------------------------------------------------------------
|
|
3
|
+
* @file useSliderNavigation
|
|
4
|
+
* -----------------------------------------------------------------------------
|
|
5
|
+
*
|
|
6
|
+
* @description This hook is responsible for handling all slider navigation logic.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Handles next slide navigation
|
|
10
|
+
* - Handles previous slide navigation
|
|
11
|
+
* - Controls next button disabled state
|
|
12
|
+
* - Controls previous button disabled state
|
|
13
|
+
* - Provides the active indicator index
|
|
14
|
+
* - Calculates the total number of indicators
|
|
15
|
+
*
|
|
16
|
+
* -----------------------------------------------------------------------------
|
|
17
|
+
* Copyright © 2017-present BookingKoala. All rights reserved.
|
|
18
|
+
* -----------------------------------------------------------------------------
|
|
19
|
+
*/
|
|
20
|
+
import { useCallback, useState } from 'react';
|
|
21
|
+
// this string used for the navigate with throttle
|
|
22
|
+
var ctrlBtnString = 'ctrlBtn';
|
|
23
|
+
function useSliderNavigation(_a) {
|
|
24
|
+
var activeSlide = _a.activeSlide, applyTransform = _a.applyTransform, loop = _a.loop, sliderObjRefs = _a.sliderObjRefs, slideToScroll = _a.slideToScroll, slideToShow = _a.slideToShow, _b = _a.speed, speed = _b === void 0 ? 500 : _b;
|
|
25
|
+
// State
|
|
26
|
+
var _c = useState(activeSlide), currentSlideIndex = _c[0], setCurrentSlideIndex = _c[1];
|
|
27
|
+
/**
|
|
28
|
+
* Calculates the currently active indicator index based on slide position.
|
|
29
|
+
*/
|
|
30
|
+
var getActiveIndicatorIndex = useCallback(function () { return Math.ceil(currentSlideIndex / slideToScroll); }, [currentSlideIndex, slideToScroll]);
|
|
31
|
+
/**
|
|
32
|
+
* Computes the total number of indicators required for the slider.
|
|
33
|
+
*/
|
|
34
|
+
var getIndicatorCount = useCallback(function () {
|
|
35
|
+
var totalSlides = sliderObjRefs.current.totalSlides;
|
|
36
|
+
return Math.max(1, Math.ceil(totalSlides / slideToScroll));
|
|
37
|
+
}, [sliderObjRefs, slideToScroll]);
|
|
38
|
+
/**
|
|
39
|
+
* Moves the slider to a given slide index.
|
|
40
|
+
* - Stops execution if a slide animation is already running and the action
|
|
41
|
+
* was triggered by next/prev buttons (prevents rapid clicks).
|
|
42
|
+
* - Updates internal state and refs to point to the target slide.
|
|
43
|
+
* - Applies a smooth transition to move the slider.
|
|
44
|
+
* - If looping is disabled:
|
|
45
|
+
* - Finishes after the animation and exits.
|
|
46
|
+
*
|
|
47
|
+
* - If looping is enabled (infinite slider):
|
|
48
|
+
* - Waits for the animation to finish.
|
|
49
|
+
* - Adjusts the slide index so it stays within valid bounds.
|
|
50
|
+
* - Instantly moves the slider (without animation) to the corrected position.
|
|
51
|
+
* - Updates internal state and refs.
|
|
52
|
+
*
|
|
53
|
+
* This logic creates a smooth infinite scrolling effect.
|
|
54
|
+
*/
|
|
55
|
+
var gotoSlideItem = useCallback(function (targetIndex, type) {
|
|
56
|
+
var _a = sliderObjRefs.current, isTransitionComplete = _a.isTransitionComplete, totalSlides = _a.totalSlides;
|
|
57
|
+
if (isTransitionComplete && type === 'ctrlBtn')
|
|
58
|
+
return;
|
|
59
|
+
Object.assign(sliderObjRefs.current, { currentIndex: targetIndex, isTransitionComplete: true });
|
|
60
|
+
setCurrentSlideIndex(targetIndex);
|
|
61
|
+
applyTransform(targetIndex, true);
|
|
62
|
+
if (!loop) {
|
|
63
|
+
Object.assign(sliderObjRefs.current, { isTransitionComplete: false });
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
setTimeout(function () {
|
|
67
|
+
var currentIndex = sliderObjRefs.current.currentIndex;
|
|
68
|
+
var loopedIndex = ((currentIndex % totalSlides) + totalSlides) % totalSlides;
|
|
69
|
+
var finalIndex = Math.min(loopedIndex, totalSlides);
|
|
70
|
+
applyTransform(finalIndex, false);
|
|
71
|
+
Object.assign(sliderObjRefs.current, { currentIndex: finalIndex, isTransitionComplete: false });
|
|
72
|
+
setCurrentSlideIndex(finalIndex);
|
|
73
|
+
}, speed);
|
|
74
|
+
}, [sliderObjRefs, setCurrentSlideIndex, applyTransform, loop, speed]);
|
|
75
|
+
/** Navigates to a slide based on indicator (dot) index. */
|
|
76
|
+
var goToSlideIndicator = useCallback(function (indicatorIndex) {
|
|
77
|
+
var targetSlideIndex = indicatorIndex * slideToScroll;
|
|
78
|
+
gotoSlideItem(targetSlideIndex);
|
|
79
|
+
}, [slideToScroll, gotoSlideItem]);
|
|
80
|
+
/** Function responsible for handling the next slide. */
|
|
81
|
+
var handleNextSlide = useCallback(function () {
|
|
82
|
+
var currentIdx = sliderObjRefs.current.currentIndex;
|
|
83
|
+
var nextIndex = currentIdx + slideToScroll;
|
|
84
|
+
gotoSlideItem(nextIndex, ctrlBtnString);
|
|
85
|
+
}, [gotoSlideItem, sliderObjRefs, slideToScroll]);
|
|
86
|
+
/** Function responsible for handling the prev slide. */
|
|
87
|
+
var handlePrevSlide = useCallback(function () {
|
|
88
|
+
var currentIdx = sliderObjRefs.current.currentIndex;
|
|
89
|
+
var prevIndex = currentIdx - slideToScroll;
|
|
90
|
+
gotoSlideItem(prevIndex, ctrlBtnString);
|
|
91
|
+
}, [gotoSlideItem, sliderObjRefs, slideToScroll]);
|
|
92
|
+
/**
|
|
93
|
+
* function determines whether the slider can navigate to the next set of slides.
|
|
94
|
+
* Always returns true when looping is enabled.
|
|
95
|
+
*/
|
|
96
|
+
var hasNextBtnDisabled = useCallback(function () {
|
|
97
|
+
if (loop)
|
|
98
|
+
return false;
|
|
99
|
+
var totalSlides = sliderObjRefs.current.totalSlides;
|
|
100
|
+
return currentSlideIndex >= totalSlides - slideToShow;
|
|
101
|
+
}, [currentSlideIndex, slideToShow, sliderObjRefs, loop]);
|
|
102
|
+
/**
|
|
103
|
+
* function determines whether the slider can navigate to the previous set of slides.
|
|
104
|
+
* Always returns true when looping is enabled.
|
|
105
|
+
*/
|
|
106
|
+
var hasPrevBtnDisabled = useCallback(function () {
|
|
107
|
+
if (loop)
|
|
108
|
+
return false;
|
|
109
|
+
return currentSlideIndex <= 0;
|
|
110
|
+
}, [currentSlideIndex, loop]);
|
|
111
|
+
return {
|
|
112
|
+
getActiveIndicatorIndex: getActiveIndicatorIndex,
|
|
113
|
+
getIndicatorCount: getIndicatorCount,
|
|
114
|
+
goToSlideIndicator: goToSlideIndicator,
|
|
115
|
+
handleNextSlide: handleNextSlide,
|
|
116
|
+
handlePrevSlide: handlePrevSlide,
|
|
117
|
+
hasNextBtnDisabled: hasNextBtnDisabled,
|
|
118
|
+
hasPrevBtnDisabled: hasPrevBtnDisabled,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
export default useSliderNavigation;
|
|
122
|
+
//# sourceMappingURL=useSliderNavigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSliderNavigation.js","sourceRoot":"","sources":["../../../../src/hooks/slider/useSliderNavigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* -----------------------------------------------------------------------------
|
|
3
|
+
* @file useSliderTransform
|
|
4
|
+
* -----------------------------------------------------------------------------
|
|
5
|
+
*
|
|
6
|
+
* @description Hooks responsible for adding the Transition effect on Slider.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Calculate the slider transited value according to slideToShow item.
|
|
10
|
+
*
|
|
11
|
+
* -----------------------------------------------------------------------------
|
|
12
|
+
* Copyright © 2017-present BookingKoala. All rights reserved.
|
|
13
|
+
* -----------------------------------------------------------------------------
|
|
14
|
+
*/
|
|
15
|
+
import { type MutableRefObject, type RefObject } from 'react';
|
|
16
|
+
import type { SlickSliderAnimationConfig } from '../../components/SlickSlider';
|
|
17
|
+
import type { SlickSliderRefs } from './useSlider';
|
|
18
|
+
interface SlickSliderTransformProps {
|
|
19
|
+
animationConfig: SlickSliderAnimationConfig;
|
|
20
|
+
isAllSlidesVisible: boolean;
|
|
21
|
+
orientation: 'horizontal' | 'vertical';
|
|
22
|
+
sliderObjRefs: MutableRefObject<SlickSliderRefs>;
|
|
23
|
+
sliderWrapperRef: RefObject<HTMLDivElement | null>;
|
|
24
|
+
slideToShow: number;
|
|
25
|
+
}
|
|
26
|
+
interface SlickSliderTransformReturn {
|
|
27
|
+
applyTransform: (indexOrTranslate: number, withTransition?: boolean, isMouseMoving?: boolean) => void;
|
|
28
|
+
calculateTranslate: (indexOrTranslate: number) => number;
|
|
29
|
+
}
|
|
30
|
+
declare function useSliderTransform({ animationConfig, isAllSlidesVisible, orientation, sliderObjRefs, sliderWrapperRef, slideToShow, }: Readonly<SlickSliderTransformProps>): SlickSliderTransformReturn;
|
|
31
|
+
export default useSliderTransform;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* -----------------------------------------------------------------------------
|
|
3
|
+
* @file useSliderTransform
|
|
4
|
+
* -----------------------------------------------------------------------------
|
|
5
|
+
*
|
|
6
|
+
* @description Hooks responsible for adding the Transition effect on Slider.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Calculate the slider transited value according to slideToShow item.
|
|
10
|
+
*
|
|
11
|
+
* -----------------------------------------------------------------------------
|
|
12
|
+
* Copyright © 2017-present BookingKoala. All rights reserved.
|
|
13
|
+
* -----------------------------------------------------------------------------
|
|
14
|
+
*/
|
|
15
|
+
import { useCallback } from 'react';
|
|
16
|
+
import { destructObj, isNullOrUndefined } from '../../helpers';
|
|
17
|
+
function useSliderTransform(_a) {
|
|
18
|
+
var animationConfig = _a.animationConfig, isAllSlidesVisible = _a.isAllSlidesVisible, orientation = _a.orientation, sliderObjRefs = _a.sliderObjRefs, sliderWrapperRef = _a.sliderWrapperRef, slideToShow = _a.slideToShow;
|
|
19
|
+
// Constant
|
|
20
|
+
var isVertical = orientation === 'vertical';
|
|
21
|
+
// Destruct props
|
|
22
|
+
var _b = destructObj(animationConfig), _c = _b.delay, delay = _c === void 0 ? 500 : _c, _d = _b.easing, easing = _d === void 0 ? 'ease' : _d;
|
|
23
|
+
/**
|
|
24
|
+
* Calculates how much the slider track should move when the slide changes.
|
|
25
|
+
* We add slideToShow to the index because extra (cloned) slides are added
|
|
26
|
+
* at the start for looping, so the real position shifts.
|
|
27
|
+
*
|
|
28
|
+
* - If the slider is vertical, the movement is calculated using slide height.
|
|
29
|
+
* - If the slider is horizontal, the movement is calculated using slide width.
|
|
30
|
+
*
|
|
31
|
+
* The returned value is negative because the track moves in the opposite
|
|
32
|
+
* direction of the slide change.
|
|
33
|
+
*/
|
|
34
|
+
var calculateTranslate = useCallback(function (index) {
|
|
35
|
+
var _a = sliderObjRefs.current, _b = _a.containerHeight, containerHeight = _b === void 0 ? 0 : _b, _c = _a.containerWidth, containerWidth = _c === void 0 ? 0 : _c;
|
|
36
|
+
var extendedIndex = index + slideToShow;
|
|
37
|
+
if (isVertical) {
|
|
38
|
+
return -extendedIndex * containerHeight;
|
|
39
|
+
}
|
|
40
|
+
var slideWidth = containerWidth / slideToShow;
|
|
41
|
+
return -extendedIndex * slideWidth;
|
|
42
|
+
}, [orientation, slideToShow, sliderObjRefs]);
|
|
43
|
+
/**
|
|
44
|
+
* Applies translateX (or raw value) to the slider container,
|
|
45
|
+
* with optional transition handling.
|
|
46
|
+
*/
|
|
47
|
+
var applyTransform = useCallback(function (indexOrTranslate, withTransition, isMouseMoving) {
|
|
48
|
+
if (withTransition === void 0) { withTransition = true; }
|
|
49
|
+
if (isMouseMoving === void 0) { isMouseMoving = false; }
|
|
50
|
+
var container = sliderWrapperRef.current;
|
|
51
|
+
if (isNullOrUndefined(container) || isAllSlidesVisible)
|
|
52
|
+
return;
|
|
53
|
+
var translatedValue = isMouseMoving ? indexOrTranslate : calculateTranslate(indexOrTranslate);
|
|
54
|
+
var axisX = isVertical ? 0 : translatedValue;
|
|
55
|
+
var axisY = isVertical ? translatedValue : 0;
|
|
56
|
+
Object.assign(container.style, {
|
|
57
|
+
transform: isVertical ? "translate3d(0,".concat(axisY, "px, 0)") : "translate3d(".concat(axisX, "px, 0, 0)"),
|
|
58
|
+
transition: withTransition ? "transform ".concat(delay, "ms ").concat(easing) : 'none',
|
|
59
|
+
});
|
|
60
|
+
}, [calculateTranslate, sliderWrapperRef, delay, easing, isAllSlidesVisible]);
|
|
61
|
+
return { applyTransform: applyTransform, calculateTranslate: calculateTranslate };
|
|
62
|
+
}
|
|
63
|
+
export default useSliderTransform;
|
|
64
|
+
//# sourceMappingURL=useSliderTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSliderTransform.js","sourceRoot":"","sources":["../../../../src/hooks/slider/useSliderTransform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,WAAW,EAAyC,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAmB9D,SAAS,kBAAkB,CAAC,EAOU;QANpC,eAAe,qBAAA,EACf,kBAAkB,wBAAA,EAClB,WAAW,iBAAA,EACX,aAAa,mBAAA,EACb,gBAAgB,sBAAA,EAChB,WAAW,iBAAA;IAEX,WAAW;IACX,IAAM,UAAU,GAAY,WAAW,KAAK,UAAU,CAAA;IAEtD,iBAAiB;IACX,IAAA,KAAmC,WAAW,CAAC,eAAe,CAAC,EAA7D,aAAW,EAAX,KAAK,mBAAG,GAAG,KAAA,EAAE,cAAe,EAAf,MAAM,mBAAG,MAAM,KAAiC,CAAA;IAErE;;;;;;;;;;OAUG;IACH,IAAM,kBAAkB,GAAG,WAAW,CACpC,UAAC,KAAa;QACN,IAAA,KAA8C,aAAa,CAAC,OAAO,EAAjE,uBAAmB,EAAnB,eAAe,mBAAG,CAAC,KAAA,EAAE,sBAAkB,EAAlB,cAAc,mBAAG,CAAC,KAA0B,CAAA;QACzE,IAAM,aAAa,GAAG,KAAK,GAAG,WAAW,CAAA;QAEzC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,aAAa,GAAG,eAAe,CAAA;QACzC,CAAC;QACD,IAAM,UAAU,GAAG,cAAc,GAAG,WAAW,CAAA;QAE/C,OAAO,CAAC,aAAa,GAAG,UAAU,CAAA;IACpC,CAAC,EACD,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAC1C,CAAA;IAED;;;OAGG;IACH,IAAM,cAAc,GAAG,WAAW,CAChC,UAAC,gBAAwB,EAAE,cAAqB,EAAE,aAAqB;QAA5C,+BAAA,EAAA,qBAAqB;QAAE,8BAAA,EAAA,qBAAqB;QACrE,IAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAA;QAC1C,IAAI,iBAAiB,CAAC,SAAS,CAAC,IAAI,kBAAkB;YAAE,OAAM;QAC9D,IAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;QAC/F,IAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAA;QAC9C,IAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE;YAC7B,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,wBAAiB,KAAK,WAAQ,CAAC,CAAC,CAAC,sBAAe,KAAK,cAAW;YACxF,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,oBAAa,KAAK,gBAAM,MAAM,CAAE,CAAC,CAAC,CAAC,MAAM;SACvE,CAAC,CAAA;IACJ,CAAC,EACD,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAC1E,CAAA;IAED,OAAO,EAAE,cAAc,gBAAA,EAAE,kBAAkB,oBAAA,EAAE,CAAA;AAC/C,CAAC;AAED,eAAe,kBAAkB,CAAA"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as helper from './helpers/app';
|
|
1
2
|
export { default as Accordion, type AccordionProps } from './components/Accordion';
|
|
2
3
|
export { default as Alert, type AlertProps } from './components/Alert';
|
|
3
4
|
export { default as Badge, type BadgeProps } from './components/Badge';
|
|
@@ -13,7 +14,7 @@ export { default as TextInput, type TextInputProps } from './components/TextInpu
|
|
|
13
14
|
export { default as NumberInput, type NumberInputProps } from './components/NumberInput';
|
|
14
15
|
export { default as Dropdown, type DropdownProps } from './components/Dropdown';
|
|
15
16
|
export { default as MultiCheckbox, type MultiCheckboxProps } from './components/MultiCheckbox';
|
|
16
|
-
export { default as SlickSlider, type SlickSliderProps, type SlickSliderDataProps
|
|
17
|
+
export { default as SlickSlider, type SlickSliderProps, type SlickSliderDataProps } from './components/SlickSlider';
|
|
17
18
|
export { default as MultiRadio, type MultiRadioProps } from './components/MultiRadio';
|
|
18
19
|
export { default as SkeletonLoader, type SkeletonLoaderProps } from './components/SkeletonLoader';
|
|
19
20
|
export { default as ThreeDotsLoader, type ThreeDotsLoaderProps } from './components/ThreeDotsLoader';
|
|
@@ -21,3 +22,4 @@ export { default as RangeSlider, type RangeSliderProps } from './components/Rang
|
|
|
21
22
|
export { default as RadioButtonGroup, type RadioButtonGroupProps } from './components/RadioButtonGroup';
|
|
22
23
|
export { default as Tooltip, type TooltipProps } from './components/Tooltip';
|
|
23
24
|
export { default as Search, type SearchProps } from './components/Search';
|
|
25
|
+
export { helper };
|
package/dist/esm/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as helper from './helpers/app';
|
|
1
2
|
export { default as Accordion } from './components/Accordion';
|
|
2
3
|
export { default as Alert } from './components/Alert';
|
|
3
4
|
export { default as Badge } from './components/Badge';
|
|
@@ -13,7 +14,7 @@ export { default as TextInput } from './components/TextInput';
|
|
|
13
14
|
export { default as NumberInput } from './components/NumberInput';
|
|
14
15
|
export { default as Dropdown } from './components/Dropdown';
|
|
15
16
|
export { default as MultiCheckbox } from './components/MultiCheckbox';
|
|
16
|
-
export { default as SlickSlider
|
|
17
|
+
export { default as SlickSlider } from './components/SlickSlider';
|
|
17
18
|
export { default as MultiRadio } from './components/MultiRadio';
|
|
18
19
|
export { default as SkeletonLoader } from './components/SkeletonLoader';
|
|
19
20
|
export { default as ThreeDotsLoader } from './components/ThreeDotsLoader';
|
|
@@ -21,4 +22,5 @@ export { default as RangeSlider } from './components/RangeSlider';
|
|
|
21
22
|
export { default as RadioButtonGroup } from './components/RadioButtonGroup';
|
|
22
23
|
export { default as Tooltip } from './components/Tooltip';
|
|
23
24
|
export { default as Search } from './components/Search';
|
|
25
|
+
export { helper };
|
|
24
26
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAuB,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,KAAK,EAAmB,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAmB,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAA2C,MAAM,yBAAyB,CAAA;AACxG,OAAO,EAAE,OAAO,IAAI,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAmB,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAkB,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAyB,MAAM,0BAA0B,CAAA;AACxF,OAAO,EAAE,OAAO,IAAI,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAsB,MAAM,uBAAuB,CAAA;AAC/E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAmB,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAuB,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAyB,MAAM,0BAA0B,CAAA;AACxF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAsB,MAAM,uBAAuB,CAAA;AAC/E,OAAO,EAAE,OAAO,IAAI,aAAa,EAA2B,MAAM,4BAA4B,CAAA;AAC9F,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAuB,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,KAAK,EAAmB,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAmB,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAA2C,MAAM,yBAAyB,CAAA;AACxG,OAAO,EAAE,OAAO,IAAI,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAmB,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAkB,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAyB,MAAM,0BAA0B,CAAA;AACxF,OAAO,EAAE,OAAO,IAAI,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAsB,MAAM,uBAAuB,CAAA;AAC/E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAmB,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAuB,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAyB,MAAM,0BAA0B,CAAA;AACxF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAsB,MAAM,uBAAuB,CAAA;AAC/E,OAAO,EAAE,OAAO,IAAI,aAAa,EAA2B,MAAM,4BAA4B,CAAA;AAC9F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAoD,MAAM,0BAA0B,CAAA;AACnH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAwB,MAAM,yBAAyB,CAAA;AACrF,OAAO,EAAE,OAAO,IAAI,cAAc,EAA4B,MAAM,6BAA6B,CAAA;AACjG,OAAO,EAAE,OAAO,IAAI,eAAe,EAA6B,MAAM,8BAA8B,CAAA;AACpG,OAAO,EAAE,OAAO,IAAI,WAAW,EAAyB,MAAM,0BAA0B,CAAA;AACxF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAA8B,MAAM,+BAA+B,CAAA;AACvG,OAAO,EAAE,OAAO,IAAI,OAAO,EAAqB,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
package/dist/package.json
CHANGED
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "farm-react",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
7
7
|
"types": "esm/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./esm/index.d.ts",
|
|
11
|
+
"import": "./esm/index.js",
|
|
12
|
+
"require": "./cjs/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./helpers": {
|
|
15
|
+
"types": "./esm/helpers/index.d.ts",
|
|
16
|
+
"import": "./esm/helpers/index.js",
|
|
17
|
+
"require": "./cjs/helpers/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./assets/styles/style.css": "./assets/styles/style.css"
|
|
20
|
+
},
|
|
8
21
|
"peerDependencies": {
|
|
9
22
|
"react": ">=18"
|
|
10
23
|
},
|
package/package.json
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "farm-react",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
7
7
|
"types": "dist/esm/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/esm/index.d.ts",
|
|
11
|
+
"import": "./dist/esm/index.js",
|
|
12
|
+
"require": "./dist/cjs/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./helpers": {
|
|
15
|
+
"types": "./dist/esm/helpers/index.d.ts",
|
|
16
|
+
"import": "./dist/esm/helpers/index.js",
|
|
17
|
+
"require": "./dist/cjs/helpers/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./assets/styles/style.css": "./dist/assets/styles/style.css"
|
|
20
|
+
},
|
|
8
21
|
"scripts": {
|
|
9
22
|
"prepare": "npm run build",
|
|
10
23
|
"prepublishOnly": "npm run test && npm run prettier && npm run lint",
|
|
11
24
|
"build": "npm run build:esm && npm run build:cjs && npm run build:package-json && npm run build:scss",
|
|
12
|
-
"build:package-json": "node -e \"const fs=require('fs');const pkg=require('./package.json');const distPkg={name:pkg.name,version:pkg.version,description:pkg.description,main:'cjs/index.js',module:'esm/index.js',types:'esm/index.d.ts',peerDependencies:pkg.peerDependencies,author:pkg.author,license:pkg.license};fs.writeFileSync('dist/package.json',JSON.stringify(distPkg,null,2));\"",
|
|
25
|
+
"build:package-json": "node -e \"const fs=require('fs');const pkg=require('./package.json');const distPkg={name:pkg.name,version:pkg.version,description:pkg.description,main:'cjs/index.js',module:'esm/index.js',types:'esm/index.d.ts',exports:{'.':{types:'./esm/index.d.ts',import:'./esm/index.js',require:'./cjs/index.js'},'./helpers':{types:'./esm/helpers/index.d.ts',import:'./esm/helpers/index.js',require:'./cjs/helpers/index.js'},'./assets/styles/style.css':'./assets/styles/style.css'},peerDependencies:pkg.peerDependencies,author:pkg.author,license:pkg.license};fs.writeFileSync('dist/package.json',JSON.stringify(distPkg,null,2));\"",
|
|
13
26
|
"build:esm": "tsc",
|
|
14
27
|
"build:cjs": "tsc --module commonjs --outDir dist/cjs",
|
|
15
28
|
"build:scss": "sass src/assets/styles/style.scss dist/assets/styles/style.css --style=expanded",
|