react-simply-carousel 8.4.6 → 8.5.0
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/README.md +41 -32
- package/dist/index.d.ts +18 -9
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -131,38 +131,47 @@ export default ReactSimplyCarouselExample;
|
|
|
131
131
|
|
|
132
132
|
## Props
|
|
133
133
|
|
|
134
|
-
| Name | Type | Default Value
|
|
135
|
-
| ----------------------------------------------------------------- | ------------------------------------ |
|
|
136
|
-
| **activeSlideIndex** | number |
|
|
137
|
-
| **activeSlideProps** | object | `{}`
|
|
138
|
-
| **autoplay** | boolean | `false`
|
|
139
|
-
| **autoplayDirection** | string (`'forward'` or `'backward'`) | `'forward'`
|
|
140
|
-
| **backwardBtnProps** | object | `{}`
|
|
141
|
-
| **children** | node | `null`
|
|
142
|
-
| **containerProps** | object | `{}`
|
|
143
|
-
| **delay** | number | `0`
|
|
144
|
-
| **disableNavIfAllVisible** | boolean | `true`
|
|
145
|
-
| **easing** | string | `'linear'`
|
|
146
|
-
| **forwardBtnProps** | object | `{}`
|
|
147
|
-
| **hideNavIfAllVisible** | boolean | `true`
|
|
148
|
-
| **innerProps** | object | `{}`
|
|
149
|
-
| **itemsListProps** | object | `{}`
|
|
150
|
-
| **itemsToScroll** | number | `1`
|
|
151
|
-
| **itemsToShow** | number | `0` (automaticaly calculated)
|
|
152
|
-
| **onAfterChange** | function | `null`
|
|
153
|
-
| **onRequestChange** | function |
|
|
154
|
-
| **responsiveProps** | Array of objects | `[]`
|
|
155
|
-
| **speed** | number | `0`
|
|
156
|
-
| **updateOnItemClick** | boolean | `false`
|
|
157
|
-
| **centerMode** (disabled if `infinite` prop disabled) | boolean | `false`
|
|
158
|
-
| **infinite** | boolean | `true`
|
|
159
|
-
| **disableNavIfEdgeVisible** (disabled if `infinite` prop enabled) | boolean | `true`
|
|
160
|
-
| **disableNavIfEdgeActive** | boolean | `true`
|
|
161
|
-
| **dotsNav** (experimental) | object | `{}`
|
|
162
|
-
| **persistentChangeCallbacks** | boolean | `false`
|
|
163
|
-
| **showSlidesBeforeInit** (deprecated) | boolean | `true`
|
|
164
|
-
| **visibleSlideProps** | object | `{}`
|
|
165
|
-
| **autoplayDelay** | number | `0`
|
|
134
|
+
| Name | Type | Default Value | Description |
|
|
135
|
+
| ----------------------------------------------------------------- | ------------------------------------ | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
136
|
+
| **activeSlideIndex** | number | | Index of active slide |
|
|
137
|
+
| **activeSlideProps** | object | `{}` | DOM props for active slide element |
|
|
138
|
+
| **autoplay** | boolean | `false` | |
|
|
139
|
+
| **autoplayDirection** | string (`'forward'` or `'backward'`) | `'forward'` | |
|
|
140
|
+
| **backwardBtnProps** | object | `{}` | DOM props for carousel backward nav button element (include boolean prop `show` (for toggle button render) and node prop `children` (for render button childrens)) |
|
|
141
|
+
| **children** | node | `null` | slides array |
|
|
142
|
+
| **containerProps** | object | `{}` | DOM props for carousel container div element |
|
|
143
|
+
| **delay** | number | `0` | Slide change delay (css transition delay) in ms |
|
|
144
|
+
| **disableNavIfAllVisible** | boolean | `true` | Disable carousel nav if all slides is visible |
|
|
145
|
+
| **easing** | string | `'linear'` | Slide change easing (css transition easing) |
|
|
146
|
+
| **forwardBtnProps** | object | `{}` | DOM props for carousel forward nav button element (include boolean prop `show` (for toggle button render) and node prop `children` (for render button childrens)) |
|
|
147
|
+
| **hideNavIfAllVisible** | boolean | `true` | Hide nav buttons if all slides is visible |
|
|
148
|
+
| **innerProps** | object | `{}` | DOM props for inner div element |
|
|
149
|
+
| **itemsListProps** | object | `{}` | DOM props for items list div element |
|
|
150
|
+
| **itemsToScroll** | number | `1` | How many slides to scroll at once |
|
|
151
|
+
| **itemsToShow** | number | `0` (automaticaly calculated) | How many slides to show |
|
|
152
|
+
| **onAfterChange** | function | `null` | activeSlideIndex change callback |
|
|
153
|
+
| **onRequestChange** | function | | Callback to handle every time the active slide changes, receives the new active index as first argument and info about visible slides (`{`<br /> ` isFirstSlideVisible: boolean;`<br />`isLastSlideVisible: boolean;`<br />`visibleSlides: { slideIndex: number; isFullyVisible: boolean }[];`<br />`}`) as second. |
|
|
154
|
+
| **responsiveProps** | Array of objects | `[]` | carousel props for different window width. For example: `[{minWidth: 768, maxWidth: 992, itemsToShow: 3}, {maxWidth: 767, itemsToShow: 1}]` will show only one slide when window width is less than 767px and show 3 slides when window width is >= 768px and < 992px |
|
|
155
|
+
| **speed** | number | `0` | Carousel scroll speed (css transition speed) in ms |
|
|
156
|
+
| **updateOnItemClick** | boolean | `false` | Update active item index after click on some slide |
|
|
157
|
+
| **centerMode** (disabled if `infinite` prop disabled) | boolean | `false` | Align active slide to the center of the carousel container viewport |
|
|
158
|
+
| **infinite** | boolean | `true` | Enable infinite loop scroll |
|
|
159
|
+
| **disableNavIfEdgeVisible** (disabled if `infinite` prop enabled) | boolean | `true` | Disable carousel forward nav if last slide is visible / Disable carousel backward nav if first slide is visible |
|
|
160
|
+
| **disableNavIfEdgeActive** | boolean | `true` | Disable carousel forward nav if activeSlideIndex === lastSlideIndex / Disable carousel backward nav if activeSlideIndex === 0 |
|
|
161
|
+
| **dotsNav** (experimental) | object | `{}` | Props for carousel dots. Includes `show` (boolean) property for toggle dots nav visibility, `containerProps` (DOM Props for dots nav wrapper div) property, `itemBtnProps` (DOM props for all dots nav buttons) property and `activeItemBtnProps` (DOM props for active dots nav button) |
|
|
162
|
+
| **persistentChangeCallbacks** | boolean | `false` | Enable call `onRequestChange` prop even if activeSlideIndex equals new value |
|
|
163
|
+
| **showSlidesBeforeInit** (deprecated) | boolean | `true` | Show slides on very first (initial) carousel render |
|
|
164
|
+
| **visibleSlideProps** | object | `{}` | DOM props for visible slide element |
|
|
165
|
+
| **autoplayDelay** | number | `0` | after what period of time the auto-update function of the active slide will be launched |
|
|
166
|
+
| **preventScrollOnSwipe** | boolean | `false` | prevent vertical scroll on swipe |
|
|
167
|
+
| **disableSwipeByMouse** | boolean | `false` | disable swipe by mouse |
|
|
168
|
+
| **disableSwipeByTouch** | boolean | `false` | disable swipe by touch |
|
|
169
|
+
| **swipeTreshold** | number | half width of the active slide | minimum swipe distance in px (by touch or by mouse drag) for change slide |
|
|
170
|
+
| **touchSwipeTreshold** | number | half width of the active slide | minimum swipe distance in px (by touch) for change slide |
|
|
171
|
+
| **mouseSwipeTreshold** | number | half width of the active slide | minimum swipe distance in px (by mouse drag) for change slide |
|
|
172
|
+
| **swipeRatio** | number | `1` | swipe distance ratio (on swipe by touchmove or by mouse drag) |
|
|
173
|
+
| **touchSwipeTreshold** | number | | swipe distance ratio (on swipe by touchmove) |
|
|
174
|
+
| **mouseSwipeTreshold** | number | | swipe distance ratio (on swipe by mouse drag) |
|
|
166
175
|
|
|
167
176
|
## Demo
|
|
168
177
|
|
package/dist/index.d.ts
CHANGED
|
@@ -20,33 +20,42 @@ type VisibleSlidesState = {
|
|
|
20
20
|
type ReactSimplyCarouselStaticProps = {
|
|
21
21
|
activeSlideIndex: number;
|
|
22
22
|
activeSlideProps?: HTMLAttributes<any>;
|
|
23
|
-
visibleSlideProps?: HTMLAttributes<any>;
|
|
24
23
|
autoplay?: boolean;
|
|
24
|
+
autoplayDelay?: number;
|
|
25
25
|
autoplayDirection?: NavDirection;
|
|
26
26
|
backwardBtnProps?: NavBtnProps;
|
|
27
|
+
centerMode?: boolean;
|
|
27
28
|
children?: ReactNode;
|
|
28
29
|
containerProps?: HTMLAttributes<HTMLDivElement>;
|
|
29
30
|
delay?: number;
|
|
30
31
|
disableNavIfAllVisible?: boolean;
|
|
32
|
+
disableNavIfEdgeActive?: boolean;
|
|
33
|
+
disableNavIfEdgeVisible?: boolean;
|
|
34
|
+
disableSwipeByMouse?: boolean;
|
|
35
|
+
disableSwipeByTouch?: boolean;
|
|
36
|
+
dotsNav?: DotsNav;
|
|
31
37
|
easing?: string;
|
|
32
38
|
forwardBtnProps?: NavBtnProps;
|
|
33
39
|
hideNavIfAllVisible?: boolean;
|
|
40
|
+
infinite?: boolean;
|
|
34
41
|
innerProps?: HTMLAttributes<HTMLDivElement>;
|
|
35
42
|
itemsListProps?: HTMLAttributes<HTMLDivElement>;
|
|
36
43
|
itemsToScroll?: number;
|
|
37
44
|
itemsToShow?: number;
|
|
45
|
+
mouseSwipeRatio?: number;
|
|
46
|
+
mouseSwipeTreshold?: number;
|
|
38
47
|
onAfterChange?: (activeSlideIndex: number, deprecated_positionSlideIndex: number) => void;
|
|
39
48
|
onRequestChange: (newActiveSlideIndex: number, newVisibleSlidesState: VisibleSlidesState) => void;
|
|
40
|
-
speed?: number;
|
|
41
|
-
updateOnItemClick?: boolean;
|
|
42
|
-
centerMode?: boolean;
|
|
43
|
-
infinite?: boolean;
|
|
44
|
-
disableNavIfEdgeVisible?: boolean;
|
|
45
|
-
disableNavIfEdgeActive?: boolean;
|
|
46
|
-
dotsNav?: DotsNav;
|
|
47
49
|
persistentChangeCallbacks?: boolean;
|
|
50
|
+
preventScrollOnSwipe?: boolean;
|
|
48
51
|
showSlidesBeforeInit?: boolean;
|
|
49
|
-
|
|
52
|
+
speed?: number;
|
|
53
|
+
swipeRatio?: number;
|
|
54
|
+
swipeTreshold?: number;
|
|
55
|
+
touchSwipeRatio?: number;
|
|
56
|
+
touchSwipeTreshold?: number;
|
|
57
|
+
updateOnItemClick?: boolean;
|
|
58
|
+
visibleSlideProps?: HTMLAttributes<any>;
|
|
50
59
|
};
|
|
51
60
|
type ReactSimplyCarouselResponsiveProps = (Omit<Omit<ReactSimplyCarouselStaticProps, 'activeSlideIndex'>, 'onRequestChange'> & {
|
|
52
61
|
minWidth?: number;
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{memo as t,useState as n,useRef as r,Children as i,useCallback as o,useEffect as c}from"react";function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u.apply(this,arguments)}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,c,a=[],l=!0,d=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){d=!0,i=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(d)throw i}}return a}}(e,t)||m(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e){return function(e){if(Array.isArray(e))return h(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||m(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){if(e){if("string"==typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var b=["responsiveProps"],p=["minWidth","maxWidth"],y=["style","onClickCapture"],w=["style"],x=["style","onTouchStart","onMouseDown","onTransitionEnd"],g=["children","show"],S=["children","show"],E=["className","style"],T=["className","style"],I=["className","onClick","style"],O=["props"];function C(t){var a,d=t.responsiveProps,m=void 0===d?[]:d,h=s(t,b),C=f(n(0),2),L=C[0],j=C[1],k=f(n(h.activeSlideIndex),2),P=k[0],M=k[1],W=r(null),A=r(null),N=r(null),X=r(0),D=r(!1),F=r(!1),V=r(""),z=r(null),B=r(null),q=r(0),H=r(P),R=m.reduce((function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.minWidth,r=void 0===n?0:n,i=t.maxWidth,o=void 0===i?null:i,c=s(t,p);return L>r&&(!o||L<=o)?l(l({},e),c):e}),h),U=i.toArray(R.children),$=L?l(l({},R),{},{activeSlideIndex:Math.max(0,Math.min(R.activeSlideIndex,U.length-1)),itemsToShow:Math.min(U.length,R.itemsToShow||0),itemsToScroll:Math.min(U.length,R.itemsToScroll||1)}):h,G=$.containerProps,J=void 0===G?{}:G,K=J.style,Q=void 0===K?{}:K,Y=J.onClickCapture,Z=void 0===Y?null:Y,_=s(J,y),ee=$.innerProps,te=void 0===ee?{}:ee,ne=te.style,re=void 0===ne?{}:ne,ie=s(te,w),oe=$.itemsListProps,ce=void 0===oe?{}:oe,ae=ce.style,le=void 0===ae?{}:ae,de=ce.onTouchStart,ue=void 0===de?null:de,se=ce.onMouseDown,fe=void 0===se?null:se,ve=ce.onTransitionEnd,me=void 0===ve?null:ve,he=s(ce,x),be=$.backwardBtnProps,pe=void 0===be?{}:be,ye=pe.children,we=void 0===ye?null:ye,xe=pe.show,ge=void 0===xe||xe,Se=s(pe,g),Ee=$.forwardBtnProps,Te=void 0===Ee?{}:Ee,Ie=Te.children,Oe=void 0===Ie?null:Ie,Ce=Te.show,Le=void 0===Ce||Ce,je=s(Te,S),ke=$.activeSlideProps,Pe=void 0===ke?{}:ke,Me=Pe.className,We=void 0===Me?"":Me,Ae=Pe.style,Ne=void 0===Ae?{}:Ae,Xe=s(Pe,E),De=$.visibleSlideProps,Fe=void 0===De?{}:De,Ve=Fe.className,ze=void 0===Ve?"":Ve,Be=Fe.style,qe=void 0===Be?{}:Be,He=s(Fe,T),Re=$.updateOnItemClick,Ue=void 0!==Re&&Re,$e=$.activeSlideIndex,Ge=$.onRequestChange,Je=$.speed,Ke=void 0===Je?0:Je,Qe=$.delay,Ye=void 0===Qe?0:Qe,Ze=$.easing,_e=void 0===Ze?"linear":Ze,et=$.itemsToShow,tt=void 0===et?0:et,nt=$.itemsToScroll,rt=void 0===nt?1:nt,it=$.children,ot=$.onAfterChange,ct=$.autoplay,at=void 0!==ct&&ct,lt=$.autoplayDirection,dt=void 0===lt?"forward":lt,ut=$.disableNavIfAllVisible,st=void 0===ut||ut,ft=$.hideNavIfAllVisible,vt=void 0===ft||ft,mt=$.centerMode,ht=void 0!==mt&&mt,bt=$.infinite,pt=void 0===bt||bt,yt=$.disableNavIfEdgeVisible,wt=void 0===yt||yt,xt=$.disableNavIfEdgeActive,gt=void 0===xt||xt,St=$.dotsNav,Et=void 0===St?{}:St,Tt=$.persistentChangeCallbacks,It=void 0!==Tt&&Tt,Ot=$.autoplayDelay,Ct=void 0===Ot?0:Ot,Lt=Et||{},jt=Lt.show,kt=void 0!==jt&&jt,Pt=Lt.containerProps,Mt=void 0===Pt?{}:Pt,Wt=Lt.itemBtnProps,At=void 0===Wt?{}:Wt,Nt=Lt.activeItemBtnProps,Xt=void 0===Nt?{}:Nt,Dt=i.count(it)-1,Ft=tt===U.length,Vt=vt&&Ft,zt=st&&Ft,Bt=$e-P==0||!Ke&&!Ye?"none":"transform ".concat(Ke,"ms ").concat(_e," ").concat(Ye,"ms"),qt=o((function(e){var t,n=e.correctionSlideIndex,r=e.prevCorrectionSlideIndex,i=e.curActiveSlideIndex,o=N.current.offsetWidth,c=N.current.children,a=c.length,l=pt?v(c).slice(a/3-r,a/3-r+a/3):v(c),d=null===(t=l[i])||void 0===t?void 0:t.offsetWidth,u=tt?l.reduce((function(e,t,n){return n>=i&&n<i+tt||n<i&&n<i+tt-l.length?e+t.offsetWidth:e}),0):A.current.offsetWidth,s=o-u,f=ht&&pt?-(u-d)/2:0,m=pt?o/3:0,h=n-i==0?0:"forward"===V.current&&i<n?m:"backward"===V.current&&i>n?-m:0,b=i-n!=0,p=function(e){var t=l.reduce((function(t,n,r){return r>=e?t:t+(n.offsetWidth||0)}),0);return pt?t:Math.min(s,t)},y=b&&pt?p(n):0,w=b||!pt?p(i):0,x=zt?0:w-y+f+h+m,g="translateX(-".concat(x,"px)"),S=pt?m+f:Math.min(s,l.reduce((function(e,t,n){return n<i?e+t.offsetWidth:e}),0)),E=S+u,T=l.map((function(e,t){return{slideIndex:t,htmlElement:e}})),I=pt?[].concat(v(l.slice(i).map((function(e,t){return{slideIndex:t+i,htmlElement:e}}))),v(T),v(T),v(l.slice(0,i).map((function(e,t){return{slideIndex:t,htmlElement:e}})))):T,O=I.reduce((function(e,t){var n=t.slideIndex,r=t.htmlElement.offsetWidth;return(e.summ>=S&&e.summ<E||e.summ+r>S&&e.summ+r<=E)&&e.items.push({slideIndex:n,isFullyVisible:e.summ+r<=E&&e.summ>=S}),e.summ+=r,e}),{summ:0,items:[]}),C=!!O.items.find((function(e){return 0===e.slideIndex})),L=!!O.items.find((function(e){return e.slideIndex===l.length-1}));return{slidesHTMLElements:l,innerMaxWidth:u,itemsListMaxTranslateX:s,activeSlideWidth:d,offsetCorrectionForCenterMode:f,offsetCorrectionForInfiniteMode:m,itemsListTranslateX:x,itemsListTransform:g,visibleSlides:O.items,isFirstSlideVisible:C,isLastSlideVisible:L}}),[ht,zt,pt,tt]),Ht=L?qt({prevCorrectionSlideIndex:H.current,curActiveSlideIndex:$e,correctionSlideIndex:P}):{},Rt=Ht.innerMaxWidth,Ut=void 0===Rt?0:Rt,$t=Ht.itemsListMaxTranslateX,Gt=void 0===$t?0:$t,Jt=Ht.activeSlideWidth,Kt=void 0===Jt?0:Jt,Qt=Ht.offsetCorrectionForCenterMode,Yt=void 0===Qt?0:Qt,Zt=Ht.offsetCorrectionForInfiniteMode,_t=void 0===Zt?0:Zt,en=Ht.itemsListTranslateX,tn=void 0===en?0:en,nn=Ht.itemsListTransform,rn=void 0===nn?"none":nn,on=Ht.visibleSlides,cn=void 0===on?[]:on,an=o((function(e){if("forward"===e){var t=$e+rt;return t>Dt?pt?t-Dt-1:Dt:t}if("backward"===e){var n=$e-rt;return n<0?pt?Dt+1+n:0:n}return $e}),[$e,rt,Dt,pt]),ln=o((function(e,t){if(V.current=t,N.current.style.transition=Ke||Ye?"transform ".concat(Ke,"ms ").concat(_e," ").concat(Ye,"ms"):"none",e!==$e||It){clearTimeout(z.current);var n=qt({correctionSlideIndex:P,prevCorrectionSlideIndex:P,curActiveSlideIndex:e}),r=n.visibleSlides,i=n.isFirstSlideVisible,o=n.isLastSlideVisible;Ge(e,{visibleSlides:r,isFirstSlideVisible:i,isLastSlideVisible:o})}else X.current=0,N.current.style.transform="translateX(-".concat(Yt+_t+(pt?0:tn),"px)")}),[It,$e,Yt,Ye,_e,Ke,Ge,_t,pt,tn,P,qt]),dn=o((function(){at&&(clearTimeout(z.current),z.current=setTimeout((function(){ln(an(dt),dt)}),Ct||Ye))}),[at,dt,Ct,ln,an,Ye]),un=o((function(e){D.current&&(e.preventDefault(),e.stopPropagation(),Z&&Z(e))}),[Z]),sn=o((function(){ln(an("backward"),"backward")}),[ln,an]),fn=o((function(e){D.current=!0;var t=e.touches&&e.touches[0]?e.touches[0].clientX:e.clientX,n=X.current-t+Yt+_t+(pt?0:tn),r=N.current.offsetWidth-A.current.offsetWidth,i=Math.max(Math.min(0,-n),-r);N.current.style.transition="none",N.current.style.transform="translateX(".concat(i,"px)")}),[Yt,_t,pt,tn]),vn=o((function(e){if(N.current.removeEventListener("mouseout",vn),N.current.removeEventListener("dragstart",vn),document.removeEventListener("mousemove",fn),document.removeEventListener("mouseup",vn),document.removeEventListener("touchmove",fn),document.removeEventListener("touchend",vn),D.current){var t=e.changedTouches&&e.changedTouches.length?e.changedTouches[e.changedTouches.length-1].clientX:e.clientX,n=X.current-t,r=n>Kt/2?{index:an("forward"),direction:"forward"}:n<-Kt/2?{index:an("backward"),direction:"backward"}:{index:$e,direction:"forward"};r.index===$e&&(D.current=!1),ln(r.index,r.direction)}}),[$e,Kt,ln,an,fn]),mn=o((function(e){clearTimeout(z.current),D.current||(X.current=e.clientX,document.addEventListener("mousemove",fn),document.addEventListener("mouseup",vn),N.current.addEventListener("mouseout",vn),N.current.addEventListener("dragstart",vn)),fe&&fe(e)}),[fn,vn,fe]),hn=o((function(e){clearTimeout(z.current),D.current||(X.current=e.touches[0].clientX,document.addEventListener("touchmove",fn),document.addEventListener("touchend",vn)),ue&&ue(e)}),[fn,vn,ue]),bn=o((function(e){M($e),me&&me(e)}),[$e,me]),pn=o((function(){ln(an("forward"),"forward")}),[ln,an]),yn=function(e,t,n){return e.map((function(e,r){var i=e.props,o=void 0===i?{}:i,c=o.className,a=void 0===c?"":c,d=o.onClick,u=void 0===d?null:d,f=o.style,v=void 0===f?{}:f,m=s(o,I),h=s(e,O),b=pt?q.current>=U.length?"forward":"backward":r>=$e?"forward":"backward",p=r+t===$e,y=cn.find((function(e){return e.slideIndex===r+t})),w="".concat(a," ").concat(b," ").concat(p?We:""," ").concat(y?ze:""),x=l(l(l(l({},v),y?qe:{}),p?Ne:{}),{},{boxSizing:"border-box",margin:0}),g=!n&&Ue?function(e){var t=e.direction,n=e.index,r=e.onClick;return function(e){ln(n,t||($e<n?"forward":"")||($e>n?"backward":"")),r&&r(e)}}({direction:b,index:r+t,onClick:u}):u,S=l(l(l({role:"tabpanel",className:w,style:x,onClick:g},m),y?He:{}),p?Xe:{});return q.current+=1,l({props:S},h)}))};return c((function(){return X.current=0,P===$e&&(D.current=!1),V.current="",$e!==P?(!Ke&&!Ye||F.current)&&M($e):(ot&&ot($e,P),(pt||"forward"===dt&&$e!==Dt||"backward"===dt&&0!==$e)&&dn()),function(){clearTimeout(z.current)}}),[P,$e,ot,Ke,Ye,dn,pt,Dt,dt]),c((function(){return L&&dn(),function(){clearTimeout(z.current)}}),[L]),c((function(){var e=N.current;function t(){clearTimeout(B.current),clearTimeout(z.current),B.current=setTimeout((function(){L!==window.innerWidth&&j(window.innerWidth)}),400)}return L!==window.innerWidth&&j(window.innerWidth),window.addEventListener("resize",t),function(){clearTimeout(B.current),window.removeEventListener("resize",t),document.removeEventListener("mousemove",fn),document.removeEventListener("mouseup",vn),document.removeEventListener("touchmove",fn),document.removeEventListener("touchend",vn),e.removeEventListener("mouseout",vn),e.removeEventListener("dragstart",vn)}}),[fn,vn]),q.current=0,H.current=P,F.current=(null===(a=N.current)||void 0===a?void 0:a.style.transform)===rn,e.createElement("div",u({onClickCapture:un,style:l({display:"flex",flexFlow:"row wrap",boxSizing:"border-box",justifyContent:"center",width:"100%"},Q)},_,{ref:W}),ge&&!Vt&&e.createElement("button",u({},Se,{type:"button",onClick:(0===tn&&wt||0===$e&>)&&!pt?void 0:sn,disabled:"boolean"==typeof Se.disabled?Se.disabled:!(!(0===tn&&wt||0===$e&>)||pt)}),we),e.createElement("div",u({},ie,{style:l(l({},re),{},{display:"flex",boxSizing:"border-box",flexFlow:"row wrap",padding:"0",overflow:"hidden",maxWidth:Ut?"".concat(Ut,"px"):void 0,flex:Ut?void 0:"1 0"}),ref:A}),e.createElement("div",u({},he,{style:l(l({},le),{},{display:"flex",boxSizing:"border-box",outline:"none",transition:Bt,transform:rn}),onTouchStart:zt?void 0:hn,onMouseDown:zt?void 0:mn,onTransitionEnd:Ke||Ye?bn:void 0,tabIndex:-1,role:"presentation",ref:N}),pt&&yn(U.slice(P),P,zt),yn(U,0,zt),pt&&yn(U,0,zt),pt&&yn(U.slice(0,P),0,zt))),Le&&!Vt&&e.createElement("button",u({},je,{type:"button",onClick:(tn===Gt&&wt||$e===Dt&>)&&!pt?void 0:pn,disabled:"boolean"==typeof je.disabled?je.disabled:!(!(tn===Gt&&wt||$e===Dt&>)||pt)}),Oe),!!kt&&e.createElement("div",u({style:{width:"100%",display:"flex",justifyContent:"center"}},Mt),Array.from({length:Math.ceil(U.length/rt)}).map((function(t,n){return e.createElement("button",u({type:"button",key:n,title:"".concat(n)},At,$e>=n*rt&&$e<Math.min(rt*(n+1),Dt+1)?Xt:{},{onClick:function(){ln(Math.min(n*rt,U.length-1),Math.min(n*rt,U.length-1)>$e?"forward":"backward")}}))}))))}var L=t(C);export{L as default};
|
|
1
|
+
import e,{memo as t,useState as n,useRef as i,Children as r,useCallback as o,useEffect as d}from"react";function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},s.apply(this,arguments)}function l(e,t){if(null==e)return{};var n,i,r={},o=Object.keys(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}var a=["responsiveProps"],c=["minWidth","maxWidth"],u=["style"],v=["style"],m=["style","onTransitionEnd"],f=["children","show"],h=["children","show"],p=["className","style"],b=["className","style"],w=["className","onClick","style"],x=["props"];function y(t){var y=t.responsiveProps,g=void 0===y?[]:y,S=l(t,a),E=n(0),L=E[0],T=E[1],I=n(S.activeSlideIndex),k=I[0],C=I[1],M=i(null),W=i(null),O=i(null),j=i(!1),P=i(0),X=i(!1),N=i(""),A=i(null),F=i(null),V=i(0),z=i(k),B=g.reduce((function(e,t){var n=void 0===t?{}:t,i=n.minWidth,r=void 0===i?0:i,o=n.maxWidth,d=void 0===o?null:o,s=l(n,c);return L>r&&(!d||L<=d)?Object.assign({},e,s):e}),S),R=r.toArray(B.children),D=L?Object.assign({},B,{activeSlideIndex:Math.max(0,Math.min(B.activeSlideIndex,R.length-1)),itemsToShow:Math.min(R.length,B.itemsToShow||0),itemsToScroll:Math.min(R.length,B.itemsToScroll||1)}):S,q=D.containerProps,H=void 0===q?{}:q,G=H.style,J=void 0===G?{}:G,K=l(H,u),Q=D.innerProps,U=void 0===Q?{}:Q,Y=U.style,Z=void 0===Y?{}:Y,$=l(U,v),_=D.itemsListProps,ee=void 0===_?{}:_,te=ee.style,ne=void 0===te?{}:te,ie=ee.onTransitionEnd,re=void 0===ie?void 0:ie,oe=l(ee,m),de=D.backwardBtnProps,se=void 0===de?{}:de,le=se.children,ae=void 0===le?null:le,ce=se.show,ue=void 0===ce||ce,ve=l(se,f),me=D.forwardBtnProps,fe=void 0===me?{}:me,he=fe.children,pe=void 0===he?null:he,be=fe.show,we=void 0===be||be,xe=l(fe,h),ye=D.activeSlideProps,ge=void 0===ye?{}:ye,Se=ge.className,Ee=void 0===Se?"":Se,Le=ge.style,Te=void 0===Le?{}:Le,Ie=l(ge,p),ke=D.visibleSlideProps,Ce=void 0===ke?{}:ke,Me=Ce.className,We=void 0===Me?"":Me,Oe=Ce.style,je=void 0===Oe?{}:Oe,Pe=l(Ce,b),Xe=D.updateOnItemClick,Ne=void 0!==Xe&&Xe,Ae=D.activeSlideIndex,Fe=D.onRequestChange,Ve=D.speed,ze=void 0===Ve?0:Ve,Be=D.delay,Re=void 0===Be?0:Be,De=D.easing,qe=void 0===De?"linear":De,He=D.itemsToShow,Ge=void 0===He?0:He,Je=D.itemsToScroll,Ke=void 0===Je?1:Je,Qe=D.children,Ue=D.onAfterChange,Ye=D.autoplay,Ze=void 0!==Ye&&Ye,$e=D.autoplayDirection,_e=void 0===$e?"forward":$e,et=D.disableNavIfAllVisible,tt=void 0===et||et,nt=D.hideNavIfAllVisible,it=void 0===nt||nt,rt=D.centerMode,ot=void 0!==rt&&rt,dt=D.infinite,st=void 0===dt||dt,lt=D.disableNavIfEdgeVisible,at=void 0===lt||lt,ct=D.disableNavIfEdgeActive,ut=void 0===ct||ct,vt=D.dotsNav,mt=void 0===vt?{}:vt,ft=D.persistentChangeCallbacks,ht=void 0!==ft&&ft,pt=D.autoplayDelay,bt=void 0===pt?0:pt,wt=D.preventScrollOnSwipe,xt=void 0!==wt&&wt,yt=D.disableSwipeByMouse,gt=void 0!==yt&&yt,St=D.disableSwipeByTouch,Et=void 0!==St&&St,Lt=D.touchSwipeTreshold,Tt=D.mouseSwipeTreshold,It=D.swipeTreshold,kt=D.touchSwipeRatio,Ct=D.mouseSwipeRatio,Mt=D.swipeRatio,Wt=void 0===Mt?1:Mt,Ot=mt||{},jt=Ot.show,Pt=void 0!==jt&&jt,Xt=Ot.containerProps,Nt=void 0===Xt?{}:Xt,At=Ot.itemBtnProps,Ft=void 0===At?{}:At,Vt=Ot.activeItemBtnProps,zt=void 0===Vt?{}:Vt,Bt=r.count(Qe)-1,Rt=Ge===R.length,Dt=it&&Rt,qt=tt&&Rt,Ht=Ae-k==0||!ze&&!Re?"none":"transform "+ze+"ms "+qe+" "+Re+"ms",Gt=o((function(e){var t,n=e.correctionSlideIndex,i=e.prevCorrectionSlideIndex,r=e.curActiveSlideIndex,o=O.current.offsetWidth,d=O.current.children,s=d.length,l=st?[].concat(d).slice(s/3-i,s/3-i+s/3):[].concat(d),a=null==(t=l[r])?void 0:t.offsetWidth,c=Ge?l.reduce((function(e,t,n){return n>=r&&n<r+Ge||n<r&&n<r+Ge-l.length?e+t.offsetWidth:e}),0):W.current.offsetWidth,u=Math.min(c,W.current.offsetWidth),v=o-u,m=ot&&st?-(u-a)/2:0,f=st?o/3:0,h=n-r==0?0:"forward"===N.current&&r<n?f:"backward"===N.current&&r>n?-f:0,p=r-n!=0,b=function(e){var t=l.reduce((function(t,n,i){return i>=e?t:t+(n.offsetWidth||0)}),0);return st?t:Math.min(v,t)},w=p&&st?b(n):0,x=p||!st?b(r):0,y=qt?0:x-w+m+h+f,g="translateX(-"+y+"px)",S=st?f+m:Math.min(v,l.reduce((function(e,t,n){return n<r?e+t.offsetWidth:e}),0)),E=S+u,L=l.map((function(e,t){return{slideIndex:t,htmlElement:e}})),T=st?[].concat(l.slice(r).map((function(e,t){return{slideIndex:t+r,htmlElement:e}})),L,L,l.slice(0,r).map((function(e,t){return{slideIndex:t,htmlElement:e}}))):L,I=T.reduce((function(e,t){var n=t.slideIndex,i=t.htmlElement.offsetWidth;return(e.summ>=S&&e.summ<E||e.summ+i>S&&e.summ+i<=E)&&e.items.push({slideIndex:n,isFullyVisible:e.summ+i<=E&&e.summ>=S}),e.summ+=i,e}),{summ:0,items:[]}),k=!!I.items.find((function(e){return 0===e.slideIndex})),C=!!I.items.find((function(e){return e.slideIndex===l.length-1}));return{slidesHTMLElements:l,innerMaxWidth:c,itemsListMaxTranslateX:v,activeSlideWidth:a,offsetCorrectionForCenterMode:m,offsetCorrectionForInfiniteMode:f,itemsListTranslateX:y,itemsListTransform:g,visibleSlides:I.items,isFirstSlideVisible:k,isLastSlideVisible:C}}),[ot,qt,st,Ge]),Jt=L?Gt({prevCorrectionSlideIndex:z.current,curActiveSlideIndex:Ae,correctionSlideIndex:k}):{},Kt=Jt.innerMaxWidth,Qt=void 0===Kt?0:Kt,Ut=Jt.itemsListMaxTranslateX,Yt=void 0===Ut?0:Ut,Zt=Jt.activeSlideWidth,$t=void 0===Zt?0:Zt,_t=Jt.offsetCorrectionForCenterMode,en=void 0===_t?0:_t,tn=Jt.offsetCorrectionForInfiniteMode,nn=void 0===tn?0:tn,rn=Jt.itemsListTranslateX,on=void 0===rn?0:rn,dn=Jt.itemsListTransform,sn=void 0===dn?"none":dn,ln=Jt.visibleSlides,an=void 0===ln?[]:ln,cn=o((function(e){if("forward"===e){var t=Ae+Ke;return t>Bt?st?t-Bt-1:Bt:t}if("backward"===e){var n=Ae-Ke;return n<0?st?Bt+1+n:0:n}return Ae}),[Ae,Ke,Bt,st]),un=o((function(e,t){if(N.current=t,O.current.style.transition=ze||Re?"transform "+ze+"ms "+qe+" "+Re+"ms":"none",e!==Ae||ht){var n;clearTimeout(A.current);var i=Gt({correctionSlideIndex:k,prevCorrectionSlideIndex:k,curActiveSlideIndex:e}),r=i.visibleSlides,o=i.isFirstSlideVisible,d=i.isLastSlideVisible,s=i.itemsListTransform;e!==Ae&&(null==(n=O.current)?void 0:n.style.transform)===s&&(j.current=!0),O.current.style.transform=s,Fe(e,{visibleSlides:r,isFirstSlideVisible:o,isLastSlideVisible:d})}else O.current.style.transform="translateX(-"+(en+nn+(st?0:on))+"px)"}),[ht,Ae,en,Re,qe,ze,Fe,nn,st,on,k,Gt]),vn=o((function(){Ze&&(clearTimeout(A.current),A.current=setTimeout((function(){un(cn(_e),_e)}),bt||Re))}),[Ze,_e,bt,un,cn,Re]),mn=o((function(){un(cn("backward"),"backward")}),[un,cn]),fn=o((function(e){C(Ae),re&&re(e)}),[Ae,re]),hn=o((function(){un(cn("forward"),"forward")}),[un,cn]),pn=function(e,t,n){return e.map((function(e,i){var r=e.props,o=void 0===r?{}:r,d=o.className,s=void 0===d?"":d,a=o.onClick,c=void 0===a?null:a,u=o.style,v=void 0===u?{}:u,m=l(o,w),f=l(e,x),h=st?V.current>=R.length?"forward":"backward":i>=Ae?"forward":"backward",p=i+t===Ae,b=an.find((function(e){return e.slideIndex===i+t})),y=(s+" "+(p?Ee:"")+" "+(b?We:"")).trim()||void 0,g=Object.assign({},v,b?je:{},p?Te:{},{boxSizing:"border-box",margin:0}),S=!n&&Ne?function(e){var t=e.direction,n=e.index,i=e.onClick;return function(e){un(n,t||(Ae<n?"forward":"")||(Ae>n?"backward":"")),i&&i(e)}}({direction:h,index:i+t,onClick:c}):c,E=Object.assign({role:"tabpanel",className:y,style:g,onClick:S},m,b?Pe:{},p?Ie:{});return V.current+=1,Object.assign({props:E},f)}))};return d((function(){var e=O.current;function t(e){e.preventDefault(),e.stopPropagation()}function n(e){var t,n;X.current=!0;var i=!(null==(t=e.touches)||!t[0]),r=i?null==(n=e.touches)?void 0:n[0].clientX:e.clientX,o=(P.current-r)*((i?kt:Ct)||Wt)+en+nn+(st?0:on),d=O.current.offsetWidth,s=Math.max(-o,-d);O.current.style.transition="none",O.current.style.transform="translateX("+s+"px)"}function i(e){if(document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",i),document.removeEventListener("touchmove",n),document.removeEventListener("touchend",i),X.current){var r,o;null==(r=e.target)||r.addEventListener("click",t);var d=!(null==(o=e.changedTouches)||!o[0]),s=d?e.changedTouches[e.changedTouches.length-1].clientX:e.clientX,l=(P.current-s)*((d?kt:Ct)||Wt),a=(d?Lt:Tt)||It||$t/2,c=l>a?{index:cn("forward"),direction:"forward"}:l<-a?{index:cn("backward"),direction:"backward"}:{index:Ae,direction:"forward"};un(c.index,c.direction)}else{var u;null==(u=e.target)||u.removeEventListener("click",t)}P.current=0,X.current=!1}function r(e){var t,r;clearTimeout(A.current);var o=!(null==(t=e.touches)||!t[0]);P.current=o?null==(r=e.touches)?void 0:r[0].clientX:e.clientX,o?(document.addEventListener("touchmove",n),document.addEventListener("touchend",i)):(document.addEventListener("mousemove",n),document.addEventListener("mouseup",i))}return qt||(gt||null==e||e.addEventListener("mousedown",r),Et||null==e||e.addEventListener("touchstart",r,{passive:!0}),gt&&Et||null==e||e.addEventListener("dragstart",i)),function(){X.current=!1,P.current=0,null==e||e.removeEventListener("mousedown",r),null==e||e.removeEventListener("touchstart",r),null==e||e.removeEventListener("dragstart",i),document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",i),document.removeEventListener("touchmove",n),document.removeEventListener("touchend",i)}}),[st,on,sn,en,nn,Ae,$t,cn,un,qt,gt,Et,Lt,Tt,It,kt,Ct,Wt]),d((function(){return Ae!==k?(!ze&&!Re||j.current)&&(j.current=!1,C(Ae)):(Ue&&Ue(Ae,k),(st||"forward"===_e&&Ae!==Bt||"backward"===_e&&0!==Ae)&&vn()),function(){clearTimeout(A.current)}}),[k,Ae,Ue,ze,Re,vn,st,Bt,_e]),d((function(){return L&&vn(),function(){clearTimeout(A.current)}}),[L]),d((function(){function e(){clearTimeout(F.current),clearTimeout(A.current),F.current=setTimeout((function(){L!==window.innerWidth&&T(window.innerWidth)}),400)}return L!==window.innerWidth&&T(window.innerWidth),window.addEventListener("resize",e),function(){clearTimeout(F.current),window.removeEventListener("resize",e)}}),[L]),V.current=0,z.current=k,e.createElement("div",s({style:Object.assign({display:"flex",flexFlow:"row wrap",boxSizing:"border-box",justifyContent:"center",width:"100%"},J)},K,{ref:M}),ue&&!Dt&&e.createElement("button",s({},ve,{type:"button",onClick:(0===on&&at||0===Ae&&ut)&&!st?void 0:mn,disabled:"boolean"==typeof ve.disabled?ve.disabled:!(!(0===on&&at||0===Ae&&ut)||st)}),ae),e.createElement("div",s({},$,{style:Object.assign({width:"100%"},Z,{display:"flex",boxSizing:"border-box",flexFlow:"row wrap",padding:"0",overflow:"hidden",maxWidth:Qt?Qt+"px":void 0,flex:Qt?void 0:"1 0"}),ref:W}),e.createElement("div",s({},oe,{style:Object.assign({},ne,{display:"flex",boxSizing:"border-box",outline:"none",transition:Ht,transform:sn,touchAction:xt?"none":"auto"}),"data-transform":sn,onTransitionEnd:ze||Re?fn:re,tabIndex:-1,role:"presentation",ref:O}),st&&pn(R.slice(k),k,qt),pn(R,0,qt),st&&pn(R,0,qt),st&&pn(R.slice(0,k),0,qt))),we&&!Dt&&e.createElement("button",s({},xe,{type:"button",onClick:(on===Yt&&at||Ae===Bt&&ut)&&!st?void 0:hn,disabled:"boolean"==typeof xe.disabled?xe.disabled:!(!(on===Yt&&at||Ae===Bt&&ut)||st)}),pe),!!Pt&&e.createElement("div",s({style:{width:"100%",display:"flex",justifyContent:"center"}},Nt),Array.from({length:Math.ceil(R.length/Ke)}).map((function(t,n){return e.createElement("button",s({type:"button",key:n,title:""+n},Ft,Ae>=n*Ke&&Ae<Math.min(Ke*(n+1),Bt+1)?zt:{},{onClick:function(){un(Math.min(n*Ke,R.length-1),Math.min(n*Ke,R.length-1)>Ae?"forward":"backward")}}))}))))}var g=t(y);export{g as default};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).ReactSimplyCarousel=t(e.React)}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n<arguments.length;n++){var i=null!=arguments[n]?arguments[n]:{};n%2?t(Object(i),!0).forEach((function(t){r(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):t(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function r(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function o(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,c,l=[],a=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;a=!1}else for(;!(a=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);a=!0);}catch(e){u=!0,i=e}finally{try{if(!a&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw i}}return l}}(e,t)||a(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){if(e){if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var s=["responsiveProps"],d=["minWidth","maxWidth"],f=["style","onClickCapture"],v=["style"],m=["style","onTouchStart","onMouseDown","onTransitionEnd"],b=["children","show"],h=["children","show"],p=["className","style"],y=["className","style"],w=["className","onClick","style"],g=["props"];function x(t){var r,a=t.responsiveProps,u=void 0===a?[]:a,x=o(t,s),S=c(e.useState(0),2),C=S[0],E=S[1],k=c(e.useState(x.activeSlideIndex),2),T=k[0],I=k[1],O=e.useRef(null),L=e.useRef(null),j=e.useRef(null),P=e.useRef(0),M=e.useRef(!1),W=e.useRef(!1),A=e.useRef(""),R=e.useRef(null),N=e.useRef(null),X=e.useRef(0),D=e.useRef(T),F=u.reduce((function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minWidth,i=void 0===r?0:r,c=t.maxWidth,l=void 0===c?null:c,a=o(t,d);return C>i&&(!l||C<=l)?n(n({},e),a):e}),x),V=e.Children.toArray(F.children),z=C?n(n({},F),{},{activeSlideIndex:Math.max(0,Math.min(F.activeSlideIndex,V.length-1)),itemsToShow:Math.min(V.length,F.itemsToShow||0),itemsToScroll:Math.min(V.length,F.itemsToScroll||1)}):x,B=z.containerProps,q=void 0===B?{}:B,H=q.style,U=void 0===H?{}:H,$=q.onClickCapture,G=void 0===$?null:$,J=o(q,f),K=z.innerProps,Q=void 0===K?{}:K,Y=Q.style,Z=void 0===Y?{}:Y,_=o(Q,v),ee=z.itemsListProps,te=void 0===ee?{}:ee,ne=te.style,re=void 0===ne?{}:ne,ie=te.onTouchStart,oe=void 0===ie?null:ie,ce=te.onMouseDown,le=void 0===ce?null:ce,ae=te.onTransitionEnd,ue=void 0===ae?null:ae,se=o(te,m),de=z.backwardBtnProps,fe=void 0===de?{}:de,ve=fe.children,me=void 0===ve?null:ve,be=fe.show,he=void 0===be||be,pe=o(fe,b),ye=z.forwardBtnProps,we=void 0===ye?{}:ye,ge=we.children,xe=void 0===ge?null:ge,Se=we.show,Ce=void 0===Se||Se,Ee=o(we,h),ke=z.activeSlideProps,Te=void 0===ke?{}:ke,Ie=Te.className,Oe=void 0===Ie?"":Ie,Le=Te.style,je=void 0===Le?{}:Le,Pe=o(Te,p),Me=z.visibleSlideProps,We=void 0===Me?{}:Me,Ae=We.className,Re=void 0===Ae?"":Ae,Ne=We.style,Xe=void 0===Ne?{}:Ne,De=o(We,y),Fe=z.updateOnItemClick,Ve=void 0!==Fe&&Fe,ze=z.activeSlideIndex,Be=z.onRequestChange,qe=z.speed,He=void 0===qe?0:qe,Ue=z.delay,$e=void 0===Ue?0:Ue,Ge=z.easing,Je=void 0===Ge?"linear":Ge,Ke=z.itemsToShow,Qe=void 0===Ke?0:Ke,Ye=z.itemsToScroll,Ze=void 0===Ye?1:Ye,_e=z.children,et=z.onAfterChange,tt=z.autoplay,nt=void 0!==tt&&tt,rt=z.autoplayDirection,it=void 0===rt?"forward":rt,ot=z.disableNavIfAllVisible,ct=void 0===ot||ot,lt=z.hideNavIfAllVisible,at=void 0===lt||lt,ut=z.centerMode,st=void 0!==ut&&ut,dt=z.infinite,ft=void 0===dt||dt,vt=z.disableNavIfEdgeVisible,mt=void 0===vt||vt,bt=z.disableNavIfEdgeActive,ht=void 0===bt||bt,pt=z.dotsNav,yt=void 0===pt?{}:pt,wt=z.persistentChangeCallbacks,gt=void 0!==wt&&wt,xt=z.autoplayDelay,St=void 0===xt?0:xt,Ct=yt||{},Et=Ct.show,kt=void 0!==Et&&Et,Tt=Ct.containerProps,It=void 0===Tt?{}:Tt,Ot=Ct.itemBtnProps,Lt=void 0===Ot?{}:Ot,jt=Ct.activeItemBtnProps,Pt=void 0===jt?{}:jt,Mt=e.Children.count(_e)-1,Wt=Qe===V.length,At=at&&Wt,Rt=ct&&Wt,Nt=ze-T==0||!He&&!$e?"none":"transform ".concat(He,"ms ").concat(Je," ").concat($e,"ms"),Xt=e.useCallback((function(e){var t,n=e.correctionSlideIndex,r=e.prevCorrectionSlideIndex,i=e.curActiveSlideIndex,o=j.current.offsetWidth,c=j.current.children,a=c.length,u=ft?l(c).slice(a/3-r,a/3-r+a/3):l(c),s=null===(t=u[i])||void 0===t?void 0:t.offsetWidth,d=Qe?u.reduce((function(e,t,n){return n>=i&&n<i+Qe||n<i&&n<i+Qe-u.length?e+t.offsetWidth:e}),0):L.current.offsetWidth,f=o-d,v=st&&ft?-(d-s)/2:0,m=ft?o/3:0,b=n-i==0?0:"forward"===A.current&&i<n?m:"backward"===A.current&&i>n?-m:0,h=i-n!=0,p=function(e){var t=u.reduce((function(t,n,r){return r>=e?t:t+(n.offsetWidth||0)}),0);return ft?t:Math.min(f,t)},y=h&&ft?p(n):0,w=h||!ft?p(i):0,g=Rt?0:w-y+v+b+m,x="translateX(-".concat(g,"px)"),S=ft?m+v:Math.min(f,u.reduce((function(e,t,n){return n<i?e+t.offsetWidth:e}),0)),C=S+d,E=u.map((function(e,t){return{slideIndex:t,htmlElement:e}})),k=ft?[].concat(l(u.slice(i).map((function(e,t){return{slideIndex:t+i,htmlElement:e}}))),l(E),l(E),l(u.slice(0,i).map((function(e,t){return{slideIndex:t,htmlElement:e}})))):E,T=k.reduce((function(e,t){var n=t.slideIndex,r=t.htmlElement.offsetWidth;return(e.summ>=S&&e.summ<C||e.summ+r>S&&e.summ+r<=C)&&e.items.push({slideIndex:n,isFullyVisible:e.summ+r<=C&&e.summ>=S}),e.summ+=r,e}),{summ:0,items:[]}),I=!!T.items.find((function(e){return 0===e.slideIndex})),O=!!T.items.find((function(e){return e.slideIndex===u.length-1}));return{slidesHTMLElements:u,innerMaxWidth:d,itemsListMaxTranslateX:f,activeSlideWidth:s,offsetCorrectionForCenterMode:v,offsetCorrectionForInfiniteMode:m,itemsListTranslateX:g,itemsListTransform:x,visibleSlides:T.items,isFirstSlideVisible:I,isLastSlideVisible:O}}),[st,Rt,ft,Qe]),Dt=C?Xt({prevCorrectionSlideIndex:D.current,curActiveSlideIndex:ze,correctionSlideIndex:T}):{},Ft=Dt.innerMaxWidth,Vt=void 0===Ft?0:Ft,zt=Dt.itemsListMaxTranslateX,Bt=void 0===zt?0:zt,qt=Dt.activeSlideWidth,Ht=void 0===qt?0:qt,Ut=Dt.offsetCorrectionForCenterMode,$t=void 0===Ut?0:Ut,Gt=Dt.offsetCorrectionForInfiniteMode,Jt=void 0===Gt?0:Gt,Kt=Dt.itemsListTranslateX,Qt=void 0===Kt?0:Kt,Yt=Dt.itemsListTransform,Zt=void 0===Yt?"none":Yt,_t=Dt.visibleSlides,en=void 0===_t?[]:_t,tn=e.useCallback((function(e){if("forward"===e){var t=ze+Ze;return t>Mt?ft?t-Mt-1:Mt:t}if("backward"===e){var n=ze-Ze;return n<0?ft?Mt+1+n:0:n}return ze}),[ze,Ze,Mt,ft]),nn=e.useCallback((function(e,t){if(A.current=t,j.current.style.transition=He||$e?"transform ".concat(He,"ms ").concat(Je," ").concat($e,"ms"):"none",e!==ze||gt){clearTimeout(R.current);var n=Xt({correctionSlideIndex:T,prevCorrectionSlideIndex:T,curActiveSlideIndex:e}),r=n.visibleSlides,i=n.isFirstSlideVisible,o=n.isLastSlideVisible;Be(e,{visibleSlides:r,isFirstSlideVisible:i,isLastSlideVisible:o})}else P.current=0,j.current.style.transform="translateX(-".concat($t+Jt+(ft?0:Qt),"px)")}),[gt,ze,$t,$e,Je,He,Be,Jt,ft,Qt,T,Xt]),rn=e.useCallback((function(){nt&&(clearTimeout(R.current),R.current=setTimeout((function(){nn(tn(it),it)}),St||$e))}),[nt,it,St,nn,tn,$e]),on=e.useCallback((function(e){M.current&&(e.preventDefault(),e.stopPropagation(),G&&G(e))}),[G]),cn=e.useCallback((function(){nn(tn("backward"),"backward")}),[nn,tn]),ln=e.useCallback((function(e){M.current=!0;var t=e.touches&&e.touches[0]?e.touches[0].clientX:e.clientX,n=P.current-t+$t+Jt+(ft?0:Qt),r=j.current.offsetWidth-L.current.offsetWidth,i=Math.max(Math.min(0,-n),-r);j.current.style.transition="none",j.current.style.transform="translateX(".concat(i,"px)")}),[$t,Jt,ft,Qt]),an=e.useCallback((function(e){if(j.current.removeEventListener("mouseout",an),j.current.removeEventListener("dragstart",an),document.removeEventListener("mousemove",ln),document.removeEventListener("mouseup",an),document.removeEventListener("touchmove",ln),document.removeEventListener("touchend",an),M.current){var t=e.changedTouches&&e.changedTouches.length?e.changedTouches[e.changedTouches.length-1].clientX:e.clientX,n=P.current-t,r=n>Ht/2?{index:tn("forward"),direction:"forward"}:n<-Ht/2?{index:tn("backward"),direction:"backward"}:{index:ze,direction:"forward"};r.index===ze&&(M.current=!1),nn(r.index,r.direction)}}),[ze,Ht,nn,tn,ln]),un=e.useCallback((function(e){clearTimeout(R.current),M.current||(P.current=e.clientX,document.addEventListener("mousemove",ln),document.addEventListener("mouseup",an),j.current.addEventListener("mouseout",an),j.current.addEventListener("dragstart",an)),le&&le(e)}),[ln,an,le]),sn=e.useCallback((function(e){clearTimeout(R.current),M.current||(P.current=e.touches[0].clientX,document.addEventListener("touchmove",ln),document.addEventListener("touchend",an)),oe&&oe(e)}),[ln,an,oe]),dn=e.useCallback((function(e){I(ze),ue&&ue(e)}),[ze,ue]),fn=e.useCallback((function(){nn(tn("forward"),"forward")}),[nn,tn]),vn=function(e,t,r){return e.map((function(e,i){var c=e.props,l=void 0===c?{}:c,a=l.className,u=void 0===a?"":a,s=l.onClick,d=void 0===s?null:s,f=l.style,v=void 0===f?{}:f,m=o(l,w),b=o(e,g),h=ft?X.current>=V.length?"forward":"backward":i>=ze?"forward":"backward",p=i+t===ze,y=en.find((function(e){return e.slideIndex===i+t})),x="".concat(u," ").concat(h," ").concat(p?Oe:""," ").concat(y?Re:""),S=n(n(n(n({},v),y?Xe:{}),p?je:{}),{},{boxSizing:"border-box",margin:0}),C=!r&&Ve?function(e){var t=e.direction,n=e.index,r=e.onClick;return function(e){nn(n,t||(ze<n?"forward":"")||(ze>n?"backward":"")),r&&r(e)}}({direction:h,index:i+t,onClick:d}):d,E=n(n(n({role:"tabpanel",className:x,style:S,onClick:C},m),y?De:{}),p?Pe:{});return X.current+=1,n({props:E},b)}))};return e.useEffect((function(){return P.current=0,T===ze&&(M.current=!1),A.current="",ze!==T?(!He&&!$e||W.current)&&I(ze):(et&&et(ze,T),(ft||"forward"===it&&ze!==Mt||"backward"===it&&0!==ze)&&rn()),function(){clearTimeout(R.current)}}),[T,ze,et,He,$e,rn,ft,Mt,it]),e.useEffect((function(){return C&&rn(),function(){clearTimeout(R.current)}}),[C]),e.useEffect((function(){var e=j.current;function t(){clearTimeout(N.current),clearTimeout(R.current),N.current=setTimeout((function(){C!==window.innerWidth&&E(window.innerWidth)}),400)}return C!==window.innerWidth&&E(window.innerWidth),window.addEventListener("resize",t),function(){clearTimeout(N.current),window.removeEventListener("resize",t),document.removeEventListener("mousemove",ln),document.removeEventListener("mouseup",an),document.removeEventListener("touchmove",ln),document.removeEventListener("touchend",an),e.removeEventListener("mouseout",an),e.removeEventListener("dragstart",an)}}),[ln,an]),X.current=0,D.current=T,W.current=(null===(r=j.current)||void 0===r?void 0:r.style.transform)===Zt,e.createElement("div",i({onClickCapture:on,style:n({display:"flex",flexFlow:"row wrap",boxSizing:"border-box",justifyContent:"center",width:"100%"},U)},J,{ref:O}),he&&!At&&e.createElement("button",i({},pe,{type:"button",onClick:(0===Qt&&mt||0===ze&&ht)&&!ft?void 0:cn,disabled:"boolean"==typeof pe.disabled?pe.disabled:!(!(0===Qt&&mt||0===ze&&ht)||ft)}),me),e.createElement("div",i({},_,{style:n(n({},Z),{},{display:"flex",boxSizing:"border-box",flexFlow:"row wrap",padding:"0",overflow:"hidden",maxWidth:Vt?"".concat(Vt,"px"):void 0,flex:Vt?void 0:"1 0"}),ref:L}),e.createElement("div",i({},se,{style:n(n({},re),{},{display:"flex",boxSizing:"border-box",outline:"none",transition:Nt,transform:Zt}),onTouchStart:Rt?void 0:sn,onMouseDown:Rt?void 0:un,onTransitionEnd:He||$e?dn:void 0,tabIndex:-1,role:"presentation",ref:j}),ft&&vn(V.slice(T),T,Rt),vn(V,0,Rt),ft&&vn(V,0,Rt),ft&&vn(V.slice(0,T),0,Rt))),Ce&&!At&&e.createElement("button",i({},Ee,{type:"button",onClick:(Qt===Bt&&mt||ze===Mt&&ht)&&!ft?void 0:fn,disabled:"boolean"==typeof Ee.disabled?Ee.disabled:!(!(Qt===Bt&&mt||ze===Mt&&ht)||ft)}),xe),!!kt&&e.createElement("div",i({style:{width:"100%",display:"flex",justifyContent:"center"}},It),Array.from({length:Math.ceil(V.length/Ze)}).map((function(t,n){return e.createElement("button",i({type:"button",key:n,title:"".concat(n)},Lt,ze>=n*Ze&&ze<Math.min(Ze*(n+1),Mt+1)?Pt:{},{onClick:function(){nn(Math.min(n*Ze,V.length-1),Math.min(n*Ze,V.length-1)>ze?"forward":"backward")}}))}))))}return e.memo(x)}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).ReactSimplyCarousel=t(e.React)}(this,(function(e){"use strict";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},t.apply(this,arguments)}function n(e,t){if(null==e)return{};var n,i,r={},o=Object.keys(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}var i=["responsiveProps"],r=["minWidth","maxWidth"],o=["style"],s=["style"],d=["style","onTransitionEnd"],l=["children","show"],a=["children","show"],c=["className","style"],u=["className","style"],v=["className","onClick","style"],f=["props"];function m(m){var h=m.responsiveProps,b=void 0===h?[]:h,p=n(m,i),w=e.useState(0),x=w[0],y=w[1],S=e.useState(p.activeSlideIndex),g=S[0],E=S[1],T=e.useRef(null),C=e.useRef(null),L=e.useRef(null),k=e.useRef(!1),I=e.useRef(0),M=e.useRef(!1),W=e.useRef(""),R=e.useRef(null),O=e.useRef(null),j=e.useRef(0),P=e.useRef(g),X=b.reduce((function(e,t){var i=void 0===t?{}:t,o=i.minWidth,s=void 0===o?0:o,d=i.maxWidth,l=void 0===d?null:d,a=n(i,r);return x>s&&(!l||x<=l)?Object.assign({},e,a):e}),p),N=e.Children.toArray(X.children),A=x?Object.assign({},X,{activeSlideIndex:Math.max(0,Math.min(X.activeSlideIndex,N.length-1)),itemsToShow:Math.min(N.length,X.itemsToShow||0),itemsToScroll:Math.min(N.length,X.itemsToScroll||1)}):p,F=A.containerProps,V=void 0===F?{}:F,z=V.style,B=void 0===z?{}:z,D=n(V,o),q=A.innerProps,H=void 0===q?{}:q,G=H.style,J=void 0===G?{}:G,K=n(H,s),Q=A.itemsListProps,U=void 0===Q?{}:Q,Y=U.style,Z=void 0===Y?{}:Y,$=U.onTransitionEnd,_=void 0===$?void 0:$,ee=n(U,d),te=A.backwardBtnProps,ne=void 0===te?{}:te,ie=ne.children,re=void 0===ie?null:ie,oe=ne.show,se=void 0===oe||oe,de=n(ne,l),le=A.forwardBtnProps,ae=void 0===le?{}:le,ce=ae.children,ue=void 0===ce?null:ce,ve=ae.show,fe=void 0===ve||ve,me=n(ae,a),he=A.activeSlideProps,be=void 0===he?{}:he,pe=be.className,we=void 0===pe?"":pe,xe=be.style,ye=void 0===xe?{}:xe,Se=n(be,c),ge=A.visibleSlideProps,Ee=void 0===ge?{}:ge,Te=Ee.className,Ce=void 0===Te?"":Te,Le=Ee.style,ke=void 0===Le?{}:Le,Ie=n(Ee,u),Me=A.updateOnItemClick,We=void 0!==Me&&Me,Re=A.activeSlideIndex,Oe=A.onRequestChange,je=A.speed,Pe=void 0===je?0:je,Xe=A.delay,Ne=void 0===Xe?0:Xe,Ae=A.easing,Fe=void 0===Ae?"linear":Ae,Ve=A.itemsToShow,ze=void 0===Ve?0:Ve,Be=A.itemsToScroll,De=void 0===Be?1:Be,qe=A.children,He=A.onAfterChange,Ge=A.autoplay,Je=void 0!==Ge&&Ge,Ke=A.autoplayDirection,Qe=void 0===Ke?"forward":Ke,Ue=A.disableNavIfAllVisible,Ye=void 0===Ue||Ue,Ze=A.hideNavIfAllVisible,$e=void 0===Ze||Ze,_e=A.centerMode,et=void 0!==_e&&_e,tt=A.infinite,nt=void 0===tt||tt,it=A.disableNavIfEdgeVisible,rt=void 0===it||it,ot=A.disableNavIfEdgeActive,st=void 0===ot||ot,dt=A.dotsNav,lt=void 0===dt?{}:dt,at=A.persistentChangeCallbacks,ct=void 0!==at&&at,ut=A.autoplayDelay,vt=void 0===ut?0:ut,ft=A.preventScrollOnSwipe,mt=void 0!==ft&&ft,ht=A.disableSwipeByMouse,bt=void 0!==ht&&ht,pt=A.disableSwipeByTouch,wt=void 0!==pt&&pt,xt=A.touchSwipeTreshold,yt=A.mouseSwipeTreshold,St=A.swipeTreshold,gt=A.touchSwipeRatio,Et=A.mouseSwipeRatio,Tt=A.swipeRatio,Ct=void 0===Tt?1:Tt,Lt=lt||{},kt=Lt.show,It=void 0!==kt&&kt,Mt=Lt.containerProps,Wt=void 0===Mt?{}:Mt,Rt=Lt.itemBtnProps,Ot=void 0===Rt?{}:Rt,jt=Lt.activeItemBtnProps,Pt=void 0===jt?{}:jt,Xt=e.Children.count(qe)-1,Nt=ze===N.length,At=$e&&Nt,Ft=Ye&&Nt,Vt=Re-g==0||!Pe&&!Ne?"none":"transform "+Pe+"ms "+Fe+" "+Ne+"ms",zt=e.useCallback((function(e){var t,n=e.correctionSlideIndex,i=e.prevCorrectionSlideIndex,r=e.curActiveSlideIndex,o=L.current.offsetWidth,s=L.current.children,d=s.length,l=nt?[].concat(s).slice(d/3-i,d/3-i+d/3):[].concat(s),a=null==(t=l[r])?void 0:t.offsetWidth,c=ze?l.reduce((function(e,t,n){return n>=r&&n<r+ze||n<r&&n<r+ze-l.length?e+t.offsetWidth:e}),0):C.current.offsetWidth,u=Math.min(c,C.current.offsetWidth),v=o-u,f=et&&nt?-(u-a)/2:0,m=nt?o/3:0,h=n-r==0?0:"forward"===W.current&&r<n?m:"backward"===W.current&&r>n?-m:0,b=r-n!=0,p=function(e){var t=l.reduce((function(t,n,i){return i>=e?t:t+(n.offsetWidth||0)}),0);return nt?t:Math.min(v,t)},w=b&&nt?p(n):0,x=b||!nt?p(r):0,y=Ft?0:x-w+f+h+m,S="translateX(-"+y+"px)",g=nt?m+f:Math.min(v,l.reduce((function(e,t,n){return n<r?e+t.offsetWidth:e}),0)),E=g+u,T=l.map((function(e,t){return{slideIndex:t,htmlElement:e}})),k=nt?[].concat(l.slice(r).map((function(e,t){return{slideIndex:t+r,htmlElement:e}})),T,T,l.slice(0,r).map((function(e,t){return{slideIndex:t,htmlElement:e}}))):T,I=k.reduce((function(e,t){var n=t.slideIndex,i=t.htmlElement.offsetWidth;return(e.summ>=g&&e.summ<E||e.summ+i>g&&e.summ+i<=E)&&e.items.push({slideIndex:n,isFullyVisible:e.summ+i<=E&&e.summ>=g}),e.summ+=i,e}),{summ:0,items:[]}),M=!!I.items.find((function(e){return 0===e.slideIndex})),R=!!I.items.find((function(e){return e.slideIndex===l.length-1}));return{slidesHTMLElements:l,innerMaxWidth:c,itemsListMaxTranslateX:v,activeSlideWidth:a,offsetCorrectionForCenterMode:f,offsetCorrectionForInfiniteMode:m,itemsListTranslateX:y,itemsListTransform:S,visibleSlides:I.items,isFirstSlideVisible:M,isLastSlideVisible:R}}),[et,Ft,nt,ze]),Bt=x?zt({prevCorrectionSlideIndex:P.current,curActiveSlideIndex:Re,correctionSlideIndex:g}):{},Dt=Bt.innerMaxWidth,qt=void 0===Dt?0:Dt,Ht=Bt.itemsListMaxTranslateX,Gt=void 0===Ht?0:Ht,Jt=Bt.activeSlideWidth,Kt=void 0===Jt?0:Jt,Qt=Bt.offsetCorrectionForCenterMode,Ut=void 0===Qt?0:Qt,Yt=Bt.offsetCorrectionForInfiniteMode,Zt=void 0===Yt?0:Yt,$t=Bt.itemsListTranslateX,_t=void 0===$t?0:$t,en=Bt.itemsListTransform,tn=void 0===en?"none":en,nn=Bt.visibleSlides,rn=void 0===nn?[]:nn,on=e.useCallback((function(e){if("forward"===e){var t=Re+De;return t>Xt?nt?t-Xt-1:Xt:t}if("backward"===e){var n=Re-De;return n<0?nt?Xt+1+n:0:n}return Re}),[Re,De,Xt,nt]),sn=e.useCallback((function(e,t){if(W.current=t,L.current.style.transition=Pe||Ne?"transform "+Pe+"ms "+Fe+" "+Ne+"ms":"none",e!==Re||ct){var n;clearTimeout(R.current);var i=zt({correctionSlideIndex:g,prevCorrectionSlideIndex:g,curActiveSlideIndex:e}),r=i.visibleSlides,o=i.isFirstSlideVisible,s=i.isLastSlideVisible,d=i.itemsListTransform;e!==Re&&(null==(n=L.current)?void 0:n.style.transform)===d&&(k.current=!0),L.current.style.transform=d,Oe(e,{visibleSlides:r,isFirstSlideVisible:o,isLastSlideVisible:s})}else L.current.style.transform="translateX(-"+(Ut+Zt+(nt?0:_t))+"px)"}),[ct,Re,Ut,Ne,Fe,Pe,Oe,Zt,nt,_t,g,zt]),dn=e.useCallback((function(){Je&&(clearTimeout(R.current),R.current=setTimeout((function(){sn(on(Qe),Qe)}),vt||Ne))}),[Je,Qe,vt,sn,on,Ne]),ln=e.useCallback((function(){sn(on("backward"),"backward")}),[sn,on]),an=e.useCallback((function(e){E(Re),_&&_(e)}),[Re,_]),cn=e.useCallback((function(){sn(on("forward"),"forward")}),[sn,on]),un=function(e,t,i){return e.map((function(e,r){var o=e.props,s=void 0===o?{}:o,d=s.className,l=void 0===d?"":d,a=s.onClick,c=void 0===a?null:a,u=s.style,m=void 0===u?{}:u,h=n(s,v),b=n(e,f),p=nt?j.current>=N.length?"forward":"backward":r>=Re?"forward":"backward",w=r+t===Re,x=rn.find((function(e){return e.slideIndex===r+t})),y=(l+" "+(w?we:"")+" "+(x?Ce:"")).trim()||void 0,S=Object.assign({},m,x?ke:{},w?ye:{},{boxSizing:"border-box",margin:0}),g=!i&&We?function(e){var t=e.direction,n=e.index,i=e.onClick;return function(e){sn(n,t||(Re<n?"forward":"")||(Re>n?"backward":"")),i&&i(e)}}({direction:p,index:r+t,onClick:c}):c,E=Object.assign({role:"tabpanel",className:y,style:S,onClick:g},h,x?Ie:{},w?Se:{});return j.current+=1,Object.assign({props:E},b)}))};return e.useEffect((function(){var e=L.current;function t(e){e.preventDefault(),e.stopPropagation()}function n(e){var t,n;M.current=!0;var i=!(null==(t=e.touches)||!t[0]),r=i?null==(n=e.touches)?void 0:n[0].clientX:e.clientX,o=(I.current-r)*((i?gt:Et)||Ct)+Ut+Zt+(nt?0:_t),s=L.current.offsetWidth,d=Math.max(-o,-s);L.current.style.transition="none",L.current.style.transform="translateX("+d+"px)"}function i(e){if(document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",i),document.removeEventListener("touchmove",n),document.removeEventListener("touchend",i),M.current){var r,o;null==(r=e.target)||r.addEventListener("click",t);var s=!(null==(o=e.changedTouches)||!o[0]),d=s?e.changedTouches[e.changedTouches.length-1].clientX:e.clientX,l=(I.current-d)*((s?gt:Et)||Ct),a=(s?xt:yt)||St||Kt/2,c=l>a?{index:on("forward"),direction:"forward"}:l<-a?{index:on("backward"),direction:"backward"}:{index:Re,direction:"forward"};sn(c.index,c.direction)}else{var u;null==(u=e.target)||u.removeEventListener("click",t)}I.current=0,M.current=!1}function r(e){var t,r;clearTimeout(R.current);var o=!(null==(t=e.touches)||!t[0]);I.current=o?null==(r=e.touches)?void 0:r[0].clientX:e.clientX,o?(document.addEventListener("touchmove",n),document.addEventListener("touchend",i)):(document.addEventListener("mousemove",n),document.addEventListener("mouseup",i))}return Ft||(bt||null==e||e.addEventListener("mousedown",r),wt||null==e||e.addEventListener("touchstart",r,{passive:!0}),bt&&wt||null==e||e.addEventListener("dragstart",i)),function(){M.current=!1,I.current=0,null==e||e.removeEventListener("mousedown",r),null==e||e.removeEventListener("touchstart",r),null==e||e.removeEventListener("dragstart",i),document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",i),document.removeEventListener("touchmove",n),document.removeEventListener("touchend",i)}}),[nt,_t,tn,Ut,Zt,Re,Kt,on,sn,Ft,bt,wt,xt,yt,St,gt,Et,Ct]),e.useEffect((function(){return Re!==g?(!Pe&&!Ne||k.current)&&(k.current=!1,E(Re)):(He&&He(Re,g),(nt||"forward"===Qe&&Re!==Xt||"backward"===Qe&&0!==Re)&&dn()),function(){clearTimeout(R.current)}}),[g,Re,He,Pe,Ne,dn,nt,Xt,Qe]),e.useEffect((function(){return x&&dn(),function(){clearTimeout(R.current)}}),[x]),e.useEffect((function(){function e(){clearTimeout(O.current),clearTimeout(R.current),O.current=setTimeout((function(){x!==window.innerWidth&&y(window.innerWidth)}),400)}return x!==window.innerWidth&&y(window.innerWidth),window.addEventListener("resize",e),function(){clearTimeout(O.current),window.removeEventListener("resize",e)}}),[x]),j.current=0,P.current=g,e.createElement("div",t({style:Object.assign({display:"flex",flexFlow:"row wrap",boxSizing:"border-box",justifyContent:"center",width:"100%"},B)},D,{ref:T}),se&&!At&&e.createElement("button",t({},de,{type:"button",onClick:(0===_t&&rt||0===Re&&st)&&!nt?void 0:ln,disabled:"boolean"==typeof de.disabled?de.disabled:!(!(0===_t&&rt||0===Re&&st)||nt)}),re),e.createElement("div",t({},K,{style:Object.assign({width:"100%"},J,{display:"flex",boxSizing:"border-box",flexFlow:"row wrap",padding:"0",overflow:"hidden",maxWidth:qt?qt+"px":void 0,flex:qt?void 0:"1 0"}),ref:C}),e.createElement("div",t({},ee,{style:Object.assign({},Z,{display:"flex",boxSizing:"border-box",outline:"none",transition:Vt,transform:tn,touchAction:mt?"none":"auto"}),"data-transform":tn,onTransitionEnd:Pe||Ne?an:_,tabIndex:-1,role:"presentation",ref:L}),nt&&un(N.slice(g),g,Ft),un(N,0,Ft),nt&&un(N,0,Ft),nt&&un(N.slice(0,g),0,Ft))),fe&&!At&&e.createElement("button",t({},me,{type:"button",onClick:(_t===Gt&&rt||Re===Xt&&st)&&!nt?void 0:cn,disabled:"boolean"==typeof me.disabled?me.disabled:!(!(_t===Gt&&rt||Re===Xt&&st)||nt)}),ue),!!It&&e.createElement("div",t({style:{width:"100%",display:"flex",justifyContent:"center"}},Wt),Array.from({length:Math.ceil(N.length/De)}).map((function(n,i){return e.createElement("button",t({type:"button",key:i,title:""+i},Ot,Re>=i*De&&Re<Math.min(De*(i+1),Xt+1)?Pt:{},{onClick:function(){sn(Math.min(i*De,N.length-1),Math.min(i*De,N.length-1)>Re?"forward":"backward")}}))}))))}return e.memo(m)}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-simply-carousel",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.5.0",
|
|
4
4
|
"description": "A simple, lightweight, fully controlled isomorphic (with SSR support) React.js carousel component. Touch enabled and responsive. With support for autoplay and infinity options. Fully customizable",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/"
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
65
65
|
"husky": ">=6",
|
|
66
66
|
"lint-staged": ">=13.1.0",
|
|
67
|
-
"prettier": "2.8.
|
|
67
|
+
"prettier": "2.8.4",
|
|
68
68
|
"react": "^18.2.0",
|
|
69
69
|
"react-dom": "^18.2.0",
|
|
70
70
|
"rollup": "^3.13.0",
|