react-simply-carousel 9.1.17 → 10.0.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/dist/index.d.ts +3 -3
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.test.d.ts +1 -0
- package/package.json +49 -29
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { HTMLAttributes, ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
2
|
type NavDirection = 'forward' | 'backward';
|
|
3
3
|
type NavBtnProps = ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
4
4
|
show?: boolean;
|
|
@@ -65,6 +65,6 @@ type ReactSimplyCarouselResponsiveProps = (Omit<Omit<ReactSimplyCarouselStaticPr
|
|
|
65
65
|
export type ReactSimplyCarouselProps = ReactSimplyCarouselStaticProps & {
|
|
66
66
|
responsiveProps?: ReactSimplyCarouselResponsiveProps;
|
|
67
67
|
};
|
|
68
|
-
declare function ReactSimplyCarousel({ responsiveProps, ...props }: ReactSimplyCarouselProps):
|
|
69
|
-
declare const _default:
|
|
68
|
+
declare function ReactSimplyCarousel({ responsiveProps, ...props }: ReactSimplyCarouselProps): import("react/jsx-runtime").JSX.Element;
|
|
69
|
+
declare const _default: import("react").MemoExoticComponent<typeof ReactSimplyCarousel>;
|
|
70
70
|
export default _default;
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{memo as t,useState as n,useRef as i,Children as r,useCallback as o,useEffect as d}from"react";var c=function(){return c=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},c.apply(this,arguments)};function l(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}function s(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,o=n.call(e),d=[];try{for(;(void 0===t||t-- >0)&&!(i=o.next()).done;)d.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return d}function a(e,t,n){if(n||2===arguments.length)for(var i,r=0,o=t.length;r<o;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var u=t(function(t){var u,v,m=t.responsiveProps,f=void 0===m?[]:m,h=l(t,["responsiveProps"]),p=s(n(0),2),b=p[0],w=p[1],y=s(n(h.activeSlideIndex),2),x=y[0],S=y[1],E=i(null),g=i(null),L=i(null),T=i(!1),I=i(0),k=i(!1),M=i(""),C=i(null),W=i(null),P=i(0),O=i(x),X=f.reduce(function(e,t){void 0===t&&(t={});var n=t.minWidth,i=void 0===n?0:n,r=t.maxWidth,o=void 0===r?null:r,d=l(t,["minWidth","maxWidth"]);return b>i&&(!o||b<=o)?c(c({},e),d):e},h),A=r.toArray(X.children),N=b?c(c({},X),{activeSlideIndex:Math.max(0,Math.min(X.activeSlideIndex,A.length-1)),itemsToShow:Math.min(A.length,X.itemsToShow||0),itemsToScroll:Math.min(A.length,X.itemsToScroll||1)}):h,F=N.containerProps,V=void 0===F?{}:F,j=V.style,z=void 0===j?{}:j,B=l(V,["style"]),R=N.innerProps,D=void 0===R?{}:R,q=D.style,H=void 0===q?{}:q,G=l(D,["style"]),J=N.itemsListProps,K=void 0===J?{}:J,Q=K.style,U=void 0===Q?{}:Q,Y=K.onTransitionEnd,Z=void 0===Y?void 0:Y,$=l(K,["style","onTransitionEnd"]),_=N.backwardBtnProps,ee=void 0===_?{}:_,te=ee.children,ne=void 0===te?null:te,ie=ee.show,re=void 0===ie||ie,oe=l(ee,["children","show"]),de=N.forwardBtnProps,ce=void 0===de?{}:de,le=ce.children,se=void 0===le?null:le,ae=ce.show,ue=void 0===ae||ae,ve=l(ce,["children","show"]),me=N.activeSlideProps,fe=void 0===me?{}:me,he=fe.className,pe=void 0===he?"":he,be=fe.style,we=void 0===be?{}:be,ye=l(fe,["className","style"]),xe=N.visibleSlideProps,Se=void 0===xe?{}:xe,Ee=Se.className,ge=void 0===Ee?"":Ee,Le=Se.style,Te=void 0===Le?{}:Le,Ie=l(Se,["className","style"]),ke=N.updateOnItemClick,Me=void 0!==ke&&ke,Ce=N.activeSlideIndex,We=N.onRequestChange,Pe=N.speed,Oe=void 0===Pe?0:Pe,Xe=N.delay,Ae=void 0===Xe?0:Xe,Ne=N.easing,Fe=void 0===Ne?"linear":Ne,Ve=N.itemsToShow,je=void 0===Ve?0:Ve,ze=N.itemsToScroll,Be=void 0===ze?1:ze,Re=N.children,De=N.onAfterChange,qe=N.autoplay,He=void 0!==qe&&qe,Ge=N.autoplayDirection,Je=void 0===Ge?"forward":Ge,Ke=N.disableNavIfAllVisible,Qe=void 0===Ke||Ke,Ue=N.hideNavIfAllVisible,Ye=void 0===Ue||Ue,Ze=N.centerMode,$e=void 0!==Ze&&Ze,_e=N.infinite,et=void 0===_e||_e,tt=N.disableNavIfEdgeVisible,nt=void 0===tt||tt,it=N.disableNavIfEdgeActive,rt=void 0===it||it,ot=N.dotsNav,dt=void 0===ot?{}:ot,ct=N.persistentChangeCallbacks,lt=void 0!==ct&&ct,st=N.autoplayDelay,at=void 0===st?0:st,ut=N.preventScrollOnSwipe,vt=void 0!==ut&&ut,mt=N.disableSwipeByMouse,ft=void 0!==mt&&mt,ht=N.disableSwipeByTouch,pt=void 0!==ht&&ht,bt=N.touchSwipeTreshold,wt=N.mouseSwipeTreshold,yt=N.swipeTreshold,xt=N.touchSwipeRatio,St=N.mouseSwipeRatio,Et=N.swipeRatio,gt=void 0===Et?1:Et,Lt=N.dirRTL,Tt=void 0!==Lt&&Lt,It=dt||{},kt=It.show,Mt=void 0!==kt&&kt,Ct=It.containerProps,Wt=void 0===Ct?{}:Ct,Pt=It.itemBtnProps,Ot=void 0===Pt?{}:Pt,Xt=It.activeItemBtnProps,At=void 0===Xt?{}:Xt,Nt=r.count(Re)-1,Ft=!!b&&(null===(u=g.current)||void 0===u?void 0:u.offsetWidth)>=(null===(v=L.current)||void 0===v?void 0:v.offsetWidth),Vt=Ye&&Ft,jt=Qe&&Ft,zt=Ce-x===0||!Oe&&!Ae?"none":"transform ".concat(Oe,"ms ").concat(Fe," ").concat(Ae,"ms"),Bt=o(function(e){var t,n=e.correctionSlideIndex,i=e.prevCorrectionSlideIndex,r=e.curActiveSlideIndex,o=L.current.offsetWidth,d=L.current.children,c=d.length,l=et?a([],s(d),!1).slice(c/3-i,c/3-i+c/3):a([],s(d),!1),u=null===(t=l[r])||void 0===t?void 0:t.offsetWidth,v=je?l.reduce(function(e,t,n){return n>=r&&n<r+je||n<r&&n<r+je-l.length?e+t.offsetWidth:e},0):g.current.offsetWidth,m=Math.min(v,g.current.offsetWidth),f=o-m,h=$e&&et?-(m-u)/2:0,p=et?o/3:0,b=n-r===0?0:"forward"===M.current&&r<n?p:"backward"===M.current&&r>n?-p:0,w=r-n!==0,y=function(e){var t=l.reduce(function(t,n,i){return i>=e?t:t+(n.offsetWidth||0)},0);return et?t:Math.min(f,t)},x=w&&et?y(n):0,S=w||!et?y(r):0,E=jt?0:S-x+h+b+p,T="translateX(".concat(Tt?"":"-").concat(E,"px)"),I=et?p+h:Math.min(f,l.reduce(function(e,t,n){return n<r?e+t.offsetWidth:e},0)),k=I+m,C=l.map(function(e,t){return{slideIndex:t,htmlElement:e}}),W=et?a(a(a(a([],s(l.slice(r).map(function(e,t){return{slideIndex:t+r,htmlElement:e}})),!1),s(C),!1),s(C),!1),s(l.slice(0,r).map(function(e,t){return{slideIndex:t,htmlElement:e}})),!1):C,P=W.reduce(function(e,t){var n=t.slideIndex,i=t.htmlElement.offsetWidth;return(e.summ>=I&&e.summ<k||e.summ+i>I&&e.summ+i<=k)&&e.items.push({slideIndex:n,isFullyVisible:e.summ+i<=k&&e.summ>=I}),e.summ+=i,e},{summ:0,items:[]}),O=!!P.items.find(function(e){return 0===e.slideIndex}),X=!!P.items.find(function(e){return e.slideIndex===l.length-1});return{slidesHTMLElements:l,innerMaxWidth:v,itemsListMaxTranslateX:f,activeSlideWidth:u,offsetCorrectionForCenterMode:h,offsetCorrectionForInfiniteMode:p,itemsListTranslateX:E,itemsListTransform:T,visibleSlides:P.items,isFirstSlideVisible:O,isLastSlideVisible:X}},[$e,jt,et,je,Tt]),Rt=b?Bt({prevCorrectionSlideIndex:O.current,curActiveSlideIndex:Ce,correctionSlideIndex:x}):{},Dt=Rt.innerMaxWidth,qt=void 0===Dt?0:Dt,Ht=Rt.itemsListMaxTranslateX,Gt=void 0===Ht?0:Ht,Jt=Rt.activeSlideWidth,Kt=void 0===Jt?0:Jt,Qt=Rt.offsetCorrectionForCenterMode,Ut=void 0===Qt?0:Qt,Yt=Rt.offsetCorrectionForInfiniteMode,Zt=void 0===Yt?0:Yt,$t=Rt.itemsListTranslateX,_t=void 0===$t?0:$t,en=Rt.itemsListTransform,tn=void 0===en?"none":en,nn=Rt.visibleSlides,rn=void 0===nn?[]:nn,on=o(function(e){var t;return"forward"===e?(t=Ce+Be)>Nt?et?t-Nt-1:Nt:t:"backward"===e?(t=Ce-Be)<0?et?Nt+1+t:0:t:Ce},[Ce,Be,Nt,et]),dn=o(function(e,t){var n;if(M.current=t,L.current.style.transition=Oe||Ae?"transform ".concat(Oe,"ms ").concat(Fe," ").concat(Ae,"ms"):"none",e!==Ce||lt){clearTimeout(C.current);var i=Bt({correctionSlideIndex:x,prevCorrectionSlideIndex:x,curActiveSlideIndex:e}),r=i.visibleSlides,o=i.isFirstSlideVisible,d=i.isLastSlideVisible,c=i.itemsListTransform;e!==Ce&&(null===(n=L.current)||void 0===n?void 0:n.style.transform)===c&&(T.current=!0),L.current.style.transform=c,We(e,{visibleSlides:r,isFirstSlideVisible:o,isLastSlideVisible:d})}else L.current.style.transform="translateX(".concat(Tt?"":"-").concat(Ut+Zt+(et?0:_t),"px)")},[lt,Ce,Ut,Ae,Fe,Oe,We,Zt,et,_t,x,Bt,Tt]),cn=o(function(){He&&(clearTimeout(C.current),C.current=setTimeout(function(){dn(on(Je),Je)},at||Ae))},[He,Je,at,dn,on,Ae]),ln=o(function(){dn(on("backward"),"backward")},[dn,on]),sn=o(function(e){S(Ce),Z&&Z(e)},[Ce,Z]),an=o(function(){dn(on("forward"),"forward")},[dn,on]),un=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,u=void 0===a?null:a,v=o.style,m=void 0===v?{}:v,f=l(o,["className","onClick","style"]),h=l(e,["props"]),p=et?P.current>=A.length?"forward":"backward":i>=Ce?"forward":"backward",b=i+t===Ce,w=rn.find(function(e){return e.slideIndex===i+t}),y="".concat(s," ").concat(b?pe:""," ").concat(w?ge:"").trim()||void 0,x=c(c(c(c({},m),w?Te:{}),b?we:{}),{boxSizing:"border-box",margin:0}),S=!n&&Me?function(e){var t=e.direction,n=e.index,i=e.onClick;return function(e){dn(n,t||(Ce<n?"forward":"")||(Ce>n?"backward":"")),i&&i(e)}}({direction:p,index:i+t,onClick:u}):u,E=c(c(c({role:"tabpanel",className:y,style:x,onClick:S},f),w?Ie:{}),b?ye:{});return P.current+=1,c({props:E},h)})};return d(function(){var e=L.current,t={capture:!0,once:!0};function n(e){e.preventDefault(),e.stopPropagation()}function i(e){var t,n,i=!!(null===(t=e.touches)||void 0===t?void 0:t[0]),r=i?null===(n=e.touches)||void 0===n?void 0:n[0].clientX:e.clientX,o=I.current-r;if(k.current||!(Math.abs(o)<=5)){k.current=!0;var d=o*((i?xt:St)||gt)+Ut+Zt+(et?0:_t),c=L.current.offsetWidth,l=Math.max(-d,-c);L.current.style.transition="none",L.current.style.transform="translateX(".concat((Tt?-1:1)*l,"px)")}}function r(o){var d;if(document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",r),document.removeEventListener("touchmove",i),document.removeEventListener("touchend",r),k.current){var c=!!(null===(d=o.changedTouches)||void 0===d?void 0:d[0]),l=c?o.changedTouches[o.changedTouches.length-1].clientX:o.clientX,s=(I.current-l)*((c?xt:St)||gt);Math.abs(I.current-l)>5&&(null==e||e.removeEventListener("click",n,t),null==e||e.addEventListener("click",n,t));var a=(c?bt:wt)||yt||Kt/2,u=s>a?{index:on("forward"),direction:"forward"}:s<-a?{index:on("backward"),direction:"backward"}:{index:Ce,direction:"forward"};dn(u.index,u.direction)}I.current=0,k.current=!1}function o(e){var t,n;clearTimeout(C.current);var o=!!(null===(t=e.touches)||void 0===t?void 0:t[0]);k.current=!1,I.current=o?null===(n=e.touches)||void 0===n?void 0:n[0].clientX:e.clientX,o?(document.addEventListener("touchmove",i),document.addEventListener("touchend",r)):(document.addEventListener("mousemove",i),document.addEventListener("mouseup",r))}return jt||(ft||null==e||e.addEventListener("mousedown",o),pt||null==e||e.addEventListener("touchstart",o,{passive:!0}),ft&&pt||null==e||e.addEventListener("dragstart",r)),function(){k.current=!1,I.current=0,null==e||e.removeEventListener("click",n,t),null==e||e.removeEventListener("mousedown",o),null==e||e.removeEventListener("touchstart",o),null==e||e.removeEventListener("dragstart",r),document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",r),document.removeEventListener("touchmove",i),document.removeEventListener("touchend",r)}},[et,_t,tn,Ut,Zt,Ce,Kt,on,dn,jt,ft,pt,bt,wt,yt,xt,St,gt,Tt]),d(function(){return Ce!==x?(!Oe&&!Ae||T.current)&&(T.current=!1,S(Ce)):(De&&De(Ce,x),(et||"forward"===Je&&Ce!==Nt||"backward"===Je&&0!==Ce)&&cn()),function(){clearTimeout(C.current)}},[x,Ce,De,Oe,Ae,cn,et,Nt,Je]),d(function(){return b&&cn(),function(){clearTimeout(C.current)}},[b]),d(function(){function e(){clearTimeout(W.current),clearTimeout(C.current),W.current=setTimeout(function(){b!==window.innerWidth&&w(0)},400)}return b!==window.innerWidth&&w(window.innerWidth),window.addEventListener("resize",e),function(){clearTimeout(W.current),window.removeEventListener("resize",e)}},[b]),P.current=0,O.current=x,e.createElement("div",c({style:c({display:"flex",flexFlow:"row wrap",boxSizing:"border-box",justifyContent:"center",width:"100%"},z)},B,{ref:E}),re&&!Vt&&e.createElement("button",c({},oe,{type:"button",onClick:(0===_t&&nt||0===Ce&&rt)&&!et?void 0:ln,disabled:"boolean"==typeof oe.disabled?oe.disabled:!(!(0===_t&&nt||0===Ce&&rt)||et)}),ne),e.createElement("div",c({},G,{style:c(c({width:"100%"},H),{display:"flex",boxSizing:"border-box",flexFlow:"row wrap",padding:"0",overflow:"hidden",maxWidth:qt?"".concat(qt,"px"):void 0,flex:qt?void 0:"1 0 auto"}),ref:g}),e.createElement("div",c({},$,{style:c(c({},U),{display:"flex",boxSizing:"border-box",outline:"none",transition:zt,transform:tn,touchAction:vt?"none":"auto"}),onTransitionEnd:Oe||Ae?sn:Z,tabIndex:-1,role:"presentation",ref:L}),et&&un(A.slice(x),x,jt),un(A,0,jt),et&&un(A,0,jt),et&&un(A.slice(0,x),0,jt))),ue&&!Vt&&e.createElement("button",c({},ve,{type:"button",onClick:(_t===Gt&&nt||Ce===Nt&&rt)&&!et?void 0:an,disabled:"boolean"==typeof ve.disabled?ve.disabled:!(!(_t===Gt&&nt||Ce===Nt&&rt)||et)}),se),!!Mt&&e.createElement("div",c({style:{width:"100%",display:"flex",justifyContent:"center"}},Wt),Array.from({length:Math.ceil(A.length/Be)}).map(function(t,n){return e.createElement("button",c({type:"button",key:n,title:"".concat(n)},Ot,Ce>=n*Be&&Ce<Math.min(Be*(n+1),Nt+1)?At:{},{onClick:function(){dn(Math.min(n*Be,A.length-1),Math.min(n*Be,A.length-1)>Ce?"forward":"backward")}}))})))});export{u as default};
|
|
1
|
+
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{memo as n,useState as i,useRef as r,Children as o,useCallback as s,useEffect as l}from"react";function d(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}"function"==typeof SuppressedError&&SuppressedError;var c=n(function(n){var c,a,{responsiveProps:u=[]}=n,m=d(n,["responsiveProps"]);const[v,h]=i(0),[f,b]=i(m.activeSlideIndex),p=r(null),w=r(null),x=r(null),g=r(!1),y=r(0),S=r(!1),E=r(""),L=r(null),O=r(null),T=r(0),j=r(f),I=u.reduce((e,t={})=>{var{minWidth:n=0,maxWidth:i=null}=t,r=d(t,["minWidth","maxWidth"]);return v>n&&(!i||v<=i)?Object.assign(Object.assign({},e),r):e},m),M=o.toArray(I.children),k=v?Object.assign(Object.assign({},I),{activeSlideIndex:Math.max(0,Math.min(I.activeSlideIndex,M.length-1)),itemsToShow:Math.min(M.length,I.itemsToShow||0),itemsToScroll:Math.min(M.length,I.itemsToScroll||1)}):m,C=k.containerProps,W=void 0===C?{}:C,{style:P={}}=W,$=d(W,["style"]),X=k.innerProps,N=void 0===X?{}:X,{style:A={}}=N,F=d(N,["style"]),V=k.itemsListProps,z=void 0===V?{}:V,{style:B={},onTransitionEnd:R}=z,D=d(z,["style","onTransitionEnd"]),q=k.backwardBtnProps,H=void 0===q?{}:q,{children:G=null,show:J=!0}=H,K=d(H,["children","show"]),Q=k.forwardBtnProps,U=void 0===Q?{}:Q,{children:Y=null,show:Z=!0}=U,_=d(U,["children","show"]),ee=k.activeSlideProps,te=void 0===ee?{}:ee,{className:ne="",style:ie={}}=te,re=d(te,["className","style"]),oe=k.visibleSlideProps,se=void 0===oe?{}:oe,{className:le="",style:de={}}=se,ce=d(se,["className","style"]),{updateOnItemClick:ae=!1,activeSlideIndex:ue,onRequestChange:me,speed:ve=0,delay:he=0,easing:fe="linear",itemsToShow:be=0,itemsToScroll:pe=1,children:we,onAfterChange:xe,autoplay:ge=!1,autoplayDirection:ye="forward",disableNavIfAllVisible:Se=!0,hideNavIfAllVisible:Ee=!0,centerMode:Le=!1,infinite:Oe=!0,disableNavIfEdgeVisible:Te=!0,disableNavIfEdgeActive:je=!0,dotsNav:Ie={},persistentChangeCallbacks:Me=!1,autoplayDelay:ke=0,preventScrollOnSwipe:Ce=!1,disableSwipeByMouse:We=!1,disableSwipeByTouch:Pe=!1,touchSwipeTreshold:$e,mouseSwipeTreshold:Xe,swipeTreshold:Ne,touchSwipeRatio:Ae,mouseSwipeRatio:Fe,swipeRatio:Ve=1,dirRTL:ze=!1}=k,{show:Be=!1,containerProps:Re={},itemBtnProps:De={},activeItemBtnProps:qe={}}=Ie||{},He=o.count(we)-1,Ge=!!v&&(null===(c=w.current)||void 0===c?void 0:c.offsetWidth)>=(null===(a=x.current)||void 0===a?void 0:a.offsetWidth),Je=Ee&&Ge,Ke=Se&&Ge,Qe=ue-f===0||!ve&&!he?"none":`transform ${ve}ms ${fe} ${he}ms`,Ue=s(({correctionSlideIndex:e,prevCorrectionSlideIndex:t,curActiveSlideIndex:n})=>{var i;const r=x.current.offsetWidth,o=x.current.children,s=o.length,l=Oe?[...o].slice(s/3-t,s/3-t+s/3):[...o],d=null===(i=l[n])||void 0===i?void 0:i.offsetWidth,c=be?l.reduce((e,t,i)=>i>=n&&i<n+be||i<n&&i<n+be-l.length?e+t.offsetWidth:e,0):w.current.offsetWidth,a=Math.min(c,w.current.offsetWidth),u=r-a,m=Le&&Oe?-(a-d)/2:0,v=Oe?r/3:0,h=e-n===0?0:"forward"===E.current&&n<e?v:"backward"===E.current&&n>e?-v:0,f=n-e!==0,b=e=>{const t=l.reduce((t,n,i)=>i>=e?t:t+(n.offsetWidth||0),0);return Oe?t:Math.min(u,t)},p=f&&Oe?b(e):0,g=f||!Oe?b(n):0,y=Ke?0:g-p+m+h+v,S=`translateX(${ze?"":"-"}${y}px)`,L=Oe?v+m:Math.min(u,l.reduce((e,t,i)=>i<n?e+t.offsetWidth:e,0)),O=L+a,T=l.map((e,t)=>({slideIndex:t,htmlElement:e})),j=Oe?[...l.slice(n).map((e,t)=>({slideIndex:t+n,htmlElement:e})),...T,...T,...l.slice(0,n).map((e,t)=>({slideIndex:t,htmlElement:e}))]:T,I=j.reduce((e,{slideIndex:t,htmlElement:n})=>{const i=n.offsetWidth;return(e.summ>=L&&e.summ<O||e.summ+i>L&&e.summ+i<=O)&&e.items.push({slideIndex:t,isFullyVisible:e.summ+i<=O&&e.summ>=L}),e.summ+=i,e},{summ:0,items:[]}),M=!!I.items.find(e=>0===e.slideIndex),k=!!I.items.find(e=>e.slideIndex===l.length-1);return{slidesHTMLElements:l,innerMaxWidth:c,itemsListMaxTranslateX:u,activeSlideWidth:d,offsetCorrectionForCenterMode:m,offsetCorrectionForInfiniteMode:v,itemsListTranslateX:y,itemsListTransform:S,visibleSlides:I.items,isFirstSlideVisible:M,isLastSlideVisible:k}},[Le,Ke,Oe,be,ze]),{innerMaxWidth:Ye=0,itemsListMaxTranslateX:Ze=0,activeSlideWidth:_e=0,offsetCorrectionForCenterMode:et=0,offsetCorrectionForInfiniteMode:tt=0,itemsListTranslateX:nt=0,itemsListTransform:it="none",visibleSlides:rt=[]}=v?Ue({prevCorrectionSlideIndex:j.current,curActiveSlideIndex:ue,correctionSlideIndex:f}):{},ot=s(e=>{if("forward"===e){const e=ue+pe;return e>He?Oe?e-He-1:He:e}if("backward"===e){const e=ue-pe;return e<0?Oe?He+1+e:0:e}return ue},[ue,pe,He,Oe]),st=s((e,t)=>{var n;if(E.current=t,x.current.style.transition=ve||he?`transform ${ve}ms ${fe} ${he}ms`:"none",e!==ue||Me){clearTimeout(L.current);const{visibleSlides:t,isFirstSlideVisible:i,isLastSlideVisible:r,itemsListTransform:o}=Ue({correctionSlideIndex:f,prevCorrectionSlideIndex:f,curActiveSlideIndex:e});e!==ue&&(null===(n=x.current)||void 0===n?void 0:n.style.transform)===o&&(g.current=!0),x.current.style.transform=o,me(e,{visibleSlides:t,isFirstSlideVisible:i,isLastSlideVisible:r})}else x.current.style.transform=`translateX(${ze?"":"-"}${et+tt+(Oe?0:nt)}px)`},[Me,ue,et,he,fe,ve,me,tt,Oe,nt,f,Ue,ze]),lt=s(()=>{ge&&(clearTimeout(L.current),L.current=setTimeout(()=>{st(ot(ye),ye)},ke||he))},[ge,ye,ke,st,ot,he]),dt=s(()=>{st(ot("backward"),"backward")},[st,ot]),ct=s(e=>{b(ue),R&&R(e)},[ue,R]),at=s(()=>{st(ot("forward"),"forward")},[st,ot]),ut=(e,t,n)=>e.map((e,i)=>{const r=e.props,o=void 0===r?{}:r,{className:s="",onClick:l=null,style:c={}}=o,a=d(o,["className","onClick","style"]),u=d(e,["props"]),m=Oe?T.current>=M.length?"forward":"backward":i>=ue?"forward":"backward",v=i+t===ue,h=rt.find(e=>e.slideIndex===i+t),f=`${s} ${v?ne:""} ${h?le:""}`.trim()||void 0,b=Object.assign(Object.assign(Object.assign(Object.assign({},c),h?de:{}),v?ie:{}),{boxSizing:"border-box",margin:0}),p=!n&&ae?(({direction:e,index:t,onClick:n})=>i=>{st(t,e),n&&n(i)})({direction:m,index:i+t,onClick:l}):l,w=Object.assign(Object.assign(Object.assign({role:"tabpanel",className:f,style:b,onClick:p},a),h?ce:{}),v?re:{});return T.current+=1,Object.assign({props:w},u)});return l(()=>{const e=x.current,t={capture:!0,once:!0};function n(e){e.preventDefault(),e.stopPropagation()}function i(e){var t,n;const i=!!(null===(t=e.touches)||void 0===t?void 0:t[0]),r=i?null===(n=e.touches)||void 0===n?void 0:n[0].clientX:e.clientX,o=y.current-r;if(!S.current&&Math.abs(o)<=5)return;S.current=!0;const s=o*((i?Ae:Fe)||Ve)+et+tt+(Oe?0:nt),l=x.current.offsetWidth,d=Math.max(-s,-l);x.current.style.transition="none",x.current.style.transform=`translateX(${(ze?-1:1)*d}px)`}function r(o){var s;if(document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",r),document.removeEventListener("touchmove",i),document.removeEventListener("touchend",r),S.current){const i=!!(null===(s=o.changedTouches)||void 0===s?void 0:s[0]),r=i?o.changedTouches[o.changedTouches.length-1].clientX:o.clientX,l=(y.current-r)*((i?Ae:Fe)||Ve);Math.abs(y.current-r)>5&&(null==e||e.removeEventListener("click",n,t),null==e||e.addEventListener("click",n,t));const d=(i?$e:Xe)||Ne||_e/2,c=l>d?{index:ot("forward"),direction:"forward"}:l<-d?{index:ot("backward"),direction:"backward"}:{index:ue,direction:"forward"};st(c.index,c.direction)}y.current=0,S.current=!1}function o(e){var t,n;clearTimeout(L.current);const o=!!(null===(t=e.touches)||void 0===t?void 0:t[0]);S.current=!1,y.current=o?null===(n=e.touches)||void 0===n?void 0:n[0].clientX:e.clientX,o?(document.addEventListener("touchmove",i),document.addEventListener("touchend",r)):(document.addEventListener("mousemove",i),document.addEventListener("mouseup",r))}return Ke||(We||null==e||e.addEventListener("mousedown",o),Pe||null==e||e.addEventListener("touchstart",o,{passive:!0}),We&&Pe||null==e||e.addEventListener("dragstart",r)),()=>{S.current=!1,y.current=0,null==e||e.removeEventListener("click",n,t),null==e||e.removeEventListener("mousedown",o),null==e||e.removeEventListener("touchstart",o),null==e||e.removeEventListener("dragstart",r),document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",r),document.removeEventListener("touchmove",i),document.removeEventListener("touchend",r)}},[Oe,nt,it,et,tt,ue,_e,ot,st,Ke,We,Pe,$e,Xe,Ne,Ae,Fe,Ve,ze]),l(()=>(ue!==f?(!ve&&!he||g.current)&&(g.current=!1,b(ue)):(xe&&xe(ue,f),(Oe||"forward"===ye&&ue!==He||"backward"===ye&&0!==ue)&<()),()=>{clearTimeout(L.current)}),[f,ue,xe,ve,he,lt,Oe,He,ye]),l(()=>(v&<(),()=>{clearTimeout(L.current)}),[v]),l(()=>{function e(){clearTimeout(O.current),clearTimeout(L.current),O.current=setTimeout(()=>{v!==window.innerWidth&&h(0)},400)}return v!==window.innerWidth&&h(window.innerWidth),window.addEventListener("resize",e),()=>{clearTimeout(O.current),window.removeEventListener("resize",e)}},[v]),T.current=0,j.current=f,e("div",Object.assign({style:Object.assign({display:"flex",flexFlow:"row wrap",boxSizing:"border-box",justifyContent:"center",width:"100%"},P)},$,{ref:p,children:[J&&!Je&&t("button",Object.assign({},K,{type:"button",onClick:(0===nt&&Te||0===ue&&je)&&!Oe?void 0:dt,disabled:"boolean"==typeof K.disabled?K.disabled:!(!(0===nt&&Te||0===ue&&je)||Oe),children:G})),t("div",Object.assign({},F,{style:Object.assign(Object.assign({width:"100%"},A),{display:"flex",boxSizing:"border-box",flexFlow:"row wrap",padding:"0",overflow:"hidden",maxWidth:Ye?`${Ye}px`:void 0,flex:Ye?void 0:"1 0 auto"}),ref:w,children:e("div",Object.assign({},D,{style:Object.assign(Object.assign({},B),{display:"flex",boxSizing:"border-box",outline:"none",transition:Qe,transform:it,touchAction:Ce?"none":"auto"}),onTransitionEnd:ve||he?ct:R,tabIndex:-1,role:"presentation",ref:x,children:[Oe&&ut(M.slice(f),f,Ke),ut(M,0,Ke),Oe&&ut(M,0,Ke),Oe&&ut(M.slice(0,f),0,Ke)]}))})),Z&&!Je&&t("button",Object.assign({},_,{type:"button",onClick:(nt===Ze&&Te||ue===He&&je)&&!Oe?void 0:at,disabled:"boolean"==typeof _.disabled?_.disabled:!(!(nt===Ze&&Te||ue===He&&je)||Oe),children:Y})),!!Be&&t("div",Object.assign({style:{width:"100%",display:"flex",justifyContent:"center"}},Re,{children:Array.from({length:Math.ceil(M.length/pe)}).map((e,n)=>t("button",Object.assign({type:"button",title:`${n}`},De,ue>=n*pe&&ue<Math.min(pe*(n+1),He+1)?qe:{},{onClick:()=>{st(Math.min(n*pe,M.length-1),Math.min(n*pe,M.length-1)>ue?"forward":"backward")}}),n))}))]}))});export{c 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";var t=function(){return t=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},t.apply(this,arguments)};function n(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,o=n.call(e),d=[];try{for(;(void 0===t||t-- >0)&&!(i=o.next()).done;)d.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return d}function r(e,t,n){if(n||2===arguments.length)for(var i,r=0,o=t.length;r<o;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}return"function"==typeof SuppressedError&&SuppressedError,e.memo(function(o){var d,l,c=o.responsiveProps,s=void 0===c?[]:c,a=n(o,["responsiveProps"]),u=i(e.useState(0),2),v=u[0],f=u[1],m=i(e.useState(a.activeSlideIndex),2),h=m[0],p=m[1],b=e.useRef(null),y=e.useRef(null),w=e.useRef(null),x=e.useRef(!1),S=e.useRef(0),E=e.useRef(!1),g=e.useRef(""),T=e.useRef(null),L=e.useRef(null),C=e.useRef(0),k=e.useRef(h),I=s.reduce(function(e,i){void 0===i&&(i={});var r=i.minWidth,o=void 0===r?0:r,d=i.maxWidth,l=void 0===d?null:d,c=n(i,["minWidth","maxWidth"]);return v>o&&(!l||v<=l)?t(t({},e),c):e},a),M=e.Children.toArray(I.children),W=v?t(t({},I),{activeSlideIndex:Math.max(0,Math.min(I.activeSlideIndex,M.length-1)),itemsToShow:Math.min(M.length,I.itemsToShow||0),itemsToScroll:Math.min(M.length,I.itemsToScroll||1)}):a,R=W.containerProps,P=void 0===R?{}:R,O=P.style,X=void 0===O?{}:O,A=n(P,["style"]),N=W.innerProps,F=void 0===N?{}:N,V=F.style,j=void 0===V?{}:V,z=n(F,["style"]),B=W.itemsListProps,D=void 0===B?{}:B,q=D.style,H=void 0===q?{}:q,G=D.onTransitionEnd,J=void 0===G?void 0:G,K=n(D,["style","onTransitionEnd"]),Q=W.backwardBtnProps,U=void 0===Q?{}:Q,Y=U.children,Z=void 0===Y?null:Y,$=U.show,_=void 0===$||$,ee=n(U,["children","show"]),te=W.forwardBtnProps,ne=void 0===te?{}:te,ie=ne.children,re=void 0===ie?null:ie,oe=ne.show,de=void 0===oe||oe,le=n(ne,["children","show"]),ce=W.activeSlideProps,se=void 0===ce?{}:ce,ae=se.className,ue=void 0===ae?"":ae,ve=se.style,fe=void 0===ve?{}:ve,me=n(se,["className","style"]),he=W.visibleSlideProps,pe=void 0===he?{}:he,be=pe.className,ye=void 0===be?"":be,we=pe.style,xe=void 0===we?{}:we,Se=n(pe,["className","style"]),Ee=W.updateOnItemClick,ge=void 0!==Ee&&Ee,Te=W.activeSlideIndex,Le=W.onRequestChange,Ce=W.speed,ke=void 0===Ce?0:Ce,Ie=W.delay,Me=void 0===Ie?0:Ie,We=W.easing,Re=void 0===We?"linear":We,Pe=W.itemsToShow,Oe=void 0===Pe?0:Pe,Xe=W.itemsToScroll,Ae=void 0===Xe?1:Xe,Ne=W.children,Fe=W.onAfterChange,Ve=W.autoplay,je=void 0!==Ve&&Ve,ze=W.autoplayDirection,Be=void 0===ze?"forward":ze,De=W.disableNavIfAllVisible,qe=void 0===De||De,He=W.hideNavIfAllVisible,Ge=void 0===He||He,Je=W.centerMode,Ke=void 0!==Je&&Je,Qe=W.infinite,Ue=void 0===Qe||Qe,Ye=W.disableNavIfEdgeVisible,Ze=void 0===Ye||Ye,$e=W.disableNavIfEdgeActive,_e=void 0===$e||$e,et=W.dotsNav,tt=void 0===et?{}:et,nt=W.persistentChangeCallbacks,it=void 0!==nt&&nt,rt=W.autoplayDelay,ot=void 0===rt?0:rt,dt=W.preventScrollOnSwipe,lt=void 0!==dt&&dt,ct=W.disableSwipeByMouse,st=void 0!==ct&&ct,at=W.disableSwipeByTouch,ut=void 0!==at&&at,vt=W.touchSwipeTreshold,ft=W.mouseSwipeTreshold,mt=W.swipeTreshold,ht=W.touchSwipeRatio,pt=W.mouseSwipeRatio,bt=W.swipeRatio,yt=void 0===bt?1:bt,wt=W.dirRTL,xt=void 0!==wt&&wt,St=tt||{},Et=St.show,gt=void 0!==Et&&Et,Tt=St.containerProps,Lt=void 0===Tt?{}:Tt,Ct=St.itemBtnProps,kt=void 0===Ct?{}:Ct,It=St.activeItemBtnProps,Mt=void 0===It?{}:It,Wt=e.Children.count(Ne)-1,Rt=!!v&&(null===(d=y.current)||void 0===d?void 0:d.offsetWidth)>=(null===(l=w.current)||void 0===l?void 0:l.offsetWidth),Pt=Ge&&Rt,Ot=qe&&Rt,Xt=Te-h===0||!ke&&!Me?"none":"transform ".concat(ke,"ms ").concat(Re," ").concat(Me,"ms"),At=e.useCallback(function(e){var t,n=e.correctionSlideIndex,o=e.prevCorrectionSlideIndex,d=e.curActiveSlideIndex,l=w.current.offsetWidth,c=w.current.children,s=c.length,a=Ue?r([],i(c),!1).slice(s/3-o,s/3-o+s/3):r([],i(c),!1),u=null===(t=a[d])||void 0===t?void 0:t.offsetWidth,v=Oe?a.reduce(function(e,t,n){return n>=d&&n<d+Oe||n<d&&n<d+Oe-a.length?e+t.offsetWidth:e},0):y.current.offsetWidth,f=Math.min(v,y.current.offsetWidth),m=l-f,h=Ke&&Ue?-(f-u)/2:0,p=Ue?l/3:0,b=n-d===0?0:"forward"===g.current&&d<n?p:"backward"===g.current&&d>n?-p:0,x=d-n!==0,S=function(e){var t=a.reduce(function(t,n,i){return i>=e?t:t+(n.offsetWidth||0)},0);return Ue?t:Math.min(m,t)},E=x&&Ue?S(n):0,T=x||!Ue?S(d):0,L=Ot?0:T-E+h+b+p,C="translateX(".concat(xt?"":"-").concat(L,"px)"),k=Ue?p+h:Math.min(m,a.reduce(function(e,t,n){return n<d?e+t.offsetWidth:e},0)),I=k+f,M=a.map(function(e,t){return{slideIndex:t,htmlElement:e}}),W=Ue?r(r(r(r([],i(a.slice(d).map(function(e,t){return{slideIndex:t+d,htmlElement:e}})),!1),i(M),!1),i(M),!1),i(a.slice(0,d).map(function(e,t){return{slideIndex:t,htmlElement:e}})),!1):M,R=W.reduce(function(e,t){var n=t.slideIndex,i=t.htmlElement.offsetWidth;return(e.summ>=k&&e.summ<I||e.summ+i>k&&e.summ+i<=I)&&e.items.push({slideIndex:n,isFullyVisible:e.summ+i<=I&&e.summ>=k}),e.summ+=i,e},{summ:0,items:[]}),P=!!R.items.find(function(e){return 0===e.slideIndex}),O=!!R.items.find(function(e){return e.slideIndex===a.length-1});return{slidesHTMLElements:a,innerMaxWidth:v,itemsListMaxTranslateX:m,activeSlideWidth:u,offsetCorrectionForCenterMode:h,offsetCorrectionForInfiniteMode:p,itemsListTranslateX:L,itemsListTransform:C,visibleSlides:R.items,isFirstSlideVisible:P,isLastSlideVisible:O}},[Ke,Ot,Ue,Oe,xt]),Nt=v?At({prevCorrectionSlideIndex:k.current,curActiveSlideIndex:Te,correctionSlideIndex:h}):{},Ft=Nt.innerMaxWidth,Vt=void 0===Ft?0:Ft,jt=Nt.itemsListMaxTranslateX,zt=void 0===jt?0:jt,Bt=Nt.activeSlideWidth,Dt=void 0===Bt?0:Bt,qt=Nt.offsetCorrectionForCenterMode,Ht=void 0===qt?0:qt,Gt=Nt.offsetCorrectionForInfiniteMode,Jt=void 0===Gt?0:Gt,Kt=Nt.itemsListTranslateX,Qt=void 0===Kt?0:Kt,Ut=Nt.itemsListTransform,Yt=void 0===Ut?"none":Ut,Zt=Nt.visibleSlides,$t=void 0===Zt?[]:Zt,_t=e.useCallback(function(e){var t;return"forward"===e?(t=Te+Ae)>Wt?Ue?t-Wt-1:Wt:t:"backward"===e?(t=Te-Ae)<0?Ue?Wt+1+t:0:t:Te},[Te,Ae,Wt,Ue]),en=e.useCallback(function(e,t){var n;if(g.current=t,w.current.style.transition=ke||Me?"transform ".concat(ke,"ms ").concat(Re," ").concat(Me,"ms"):"none",e!==Te||it){clearTimeout(T.current);var i=At({correctionSlideIndex:h,prevCorrectionSlideIndex:h,curActiveSlideIndex:e}),r=i.visibleSlides,o=i.isFirstSlideVisible,d=i.isLastSlideVisible,l=i.itemsListTransform;e!==Te&&(null===(n=w.current)||void 0===n?void 0:n.style.transform)===l&&(x.current=!0),w.current.style.transform=l,Le(e,{visibleSlides:r,isFirstSlideVisible:o,isLastSlideVisible:d})}else w.current.style.transform="translateX(".concat(xt?"":"-").concat(Ht+Jt+(Ue?0:Qt),"px)")},[it,Te,Ht,Me,Re,ke,Le,Jt,Ue,Qt,h,At,xt]),tn=e.useCallback(function(){je&&(clearTimeout(T.current),T.current=setTimeout(function(){en(_t(Be),Be)},ot||Me))},[je,Be,ot,en,_t,Me]),nn=e.useCallback(function(){en(_t("backward"),"backward")},[en,_t]),rn=e.useCallback(function(e){p(Te),J&&J(e)},[Te,J]),on=e.useCallback(function(){en(_t("forward"),"forward")},[en,_t]),dn=function(e,i,r){return e.map(function(e,o){var d=e.props,l=void 0===d?{}:d,c=l.className,s=void 0===c?"":c,a=l.onClick,u=void 0===a?null:a,v=l.style,f=void 0===v?{}:v,m=n(l,["className","onClick","style"]),h=n(e,["props"]),p=Ue?C.current>=M.length?"forward":"backward":o>=Te?"forward":"backward",b=o+i===Te,y=$t.find(function(e){return e.slideIndex===o+i}),w="".concat(s," ").concat(b?ue:""," ").concat(y?ye:"").trim()||void 0,x=t(t(t(t({},f),y?xe:{}),b?fe:{}),{boxSizing:"border-box",margin:0}),S=!r&&ge?function(e){var t=e.direction,n=e.index,i=e.onClick;return function(e){en(n,t||(Te<n?"forward":"")||(Te>n?"backward":"")),i&&i(e)}}({direction:p,index:o+i,onClick:u}):u,E=t(t(t({role:"tabpanel",className:w,style:x,onClick:S},m),y?Se:{}),b?me:{});return C.current+=1,t({props:E},h)})};return e.useEffect(function(){var e=w.current,t={capture:!0,once:!0};function n(e){e.preventDefault(),e.stopPropagation()}function i(e){var t,n,i=!!(null===(t=e.touches)||void 0===t?void 0:t[0]),r=i?null===(n=e.touches)||void 0===n?void 0:n[0].clientX:e.clientX,o=S.current-r;if(E.current||!(Math.abs(o)<=5)){E.current=!0;var d=o*((i?ht:pt)||yt)+Ht+Jt+(Ue?0:Qt),l=w.current.offsetWidth,c=Math.max(-d,-l);w.current.style.transition="none",w.current.style.transform="translateX(".concat((xt?-1:1)*c,"px)")}}function r(o){var d;if(document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",r),document.removeEventListener("touchmove",i),document.removeEventListener("touchend",r),E.current){var l=!!(null===(d=o.changedTouches)||void 0===d?void 0:d[0]),c=l?o.changedTouches[o.changedTouches.length-1].clientX:o.clientX,s=(S.current-c)*((l?ht:pt)||yt);Math.abs(S.current-c)>5&&(null==e||e.removeEventListener("click",n,t),null==e||e.addEventListener("click",n,t));var a=(l?vt:ft)||mt||Dt/2,u=s>a?{index:_t("forward"),direction:"forward"}:s<-a?{index:_t("backward"),direction:"backward"}:{index:Te,direction:"forward"};en(u.index,u.direction)}S.current=0,E.current=!1}function o(e){var t,n;clearTimeout(T.current);var o=!!(null===(t=e.touches)||void 0===t?void 0:t[0]);E.current=!1,S.current=o?null===(n=e.touches)||void 0===n?void 0:n[0].clientX:e.clientX,o?(document.addEventListener("touchmove",i),document.addEventListener("touchend",r)):(document.addEventListener("mousemove",i),document.addEventListener("mouseup",r))}return Ot||(st||null==e||e.addEventListener("mousedown",o),ut||null==e||e.addEventListener("touchstart",o,{passive:!0}),st&&ut||null==e||e.addEventListener("dragstart",r)),function(){E.current=!1,S.current=0,null==e||e.removeEventListener("click",n,t),null==e||e.removeEventListener("mousedown",o),null==e||e.removeEventListener("touchstart",o),null==e||e.removeEventListener("dragstart",r),document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",r),document.removeEventListener("touchmove",i),document.removeEventListener("touchend",r)}},[Ue,Qt,Yt,Ht,Jt,Te,Dt,_t,en,Ot,st,ut,vt,ft,mt,ht,pt,yt,xt]),e.useEffect(function(){return Te!==h?(!ke&&!Me||x.current)&&(x.current=!1,p(Te)):(Fe&&Fe(Te,h),(Ue||"forward"===Be&&Te!==Wt||"backward"===Be&&0!==Te)&&tn()),function(){clearTimeout(T.current)}},[h,Te,Fe,ke,Me,tn,Ue,Wt,Be]),e.useEffect(function(){return v&&tn(),function(){clearTimeout(T.current)}},[v]),e.useEffect(function(){function e(){clearTimeout(L.current),clearTimeout(T.current),L.current=setTimeout(function(){v!==window.innerWidth&&f(0)},400)}return v!==window.innerWidth&&f(window.innerWidth),window.addEventListener("resize",e),function(){clearTimeout(L.current),window.removeEventListener("resize",e)}},[v]),C.current=0,k.current=h,e.createElement("div",t({style:t({display:"flex",flexFlow:"row wrap",boxSizing:"border-box",justifyContent:"center",width:"100%"},X)},A,{ref:b}),_&&!Pt&&e.createElement("button",t({},ee,{type:"button",onClick:(0===Qt&&Ze||0===Te&&_e)&&!Ue?void 0:nn,disabled:"boolean"==typeof ee.disabled?ee.disabled:!(!(0===Qt&&Ze||0===Te&&_e)||Ue)}),Z),e.createElement("div",t({},z,{style:t(t({width:"100%"},j),{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 auto"}),ref:y}),e.createElement("div",t({},K,{style:t(t({},H),{display:"flex",boxSizing:"border-box",outline:"none",transition:Xt,transform:Yt,touchAction:lt?"none":"auto"}),onTransitionEnd:ke||Me?rn:J,tabIndex:-1,role:"presentation",ref:w}),Ue&&dn(M.slice(h),h,Ot),dn(M,0,Ot),Ue&&dn(M,0,Ot),Ue&&dn(M.slice(0,h),0,Ot))),de&&!Pt&&e.createElement("button",t({},le,{type:"button",onClick:(Qt===zt&&Ze||Te===Wt&&_e)&&!Ue?void 0:on,disabled:"boolean"==typeof le.disabled?le.disabled:!(!(Qt===zt&&Ze||Te===Wt&&_e)||Ue)}),re),!!gt&&e.createElement("div",t({style:{width:"100%",display:"flex",justifyContent:"center"}},Lt),Array.from({length:Math.ceil(M.length/Ae)}).map(function(n,i){return e.createElement("button",t({type:"button",key:i,title:"".concat(i)},kt,Te>=i*Ae&&Te<Math.min(Ae*(i+1),Wt+1)?Mt:{},{onClick:function(){en(Math.min(i*Ae,M.length-1),Math.min(i*Ae,M.length-1)>Te?"forward":"backward")}}))})))})});
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),t=require("react");function n(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}"function"==typeof SuppressedError&&SuppressedError;var i=t.memo(function(i){var r,s,{responsiveProps:o=[]}=i,l=n(i,["responsiveProps"]);const[d,c]=t.useState(0),[a,u]=t.useState(l.activeSlideIndex),m=t.useRef(null),f=t.useRef(null),v=t.useRef(null),h=t.useRef(!1),b=t.useRef(0),p=t.useRef(!1),x=t.useRef(""),w=t.useRef(null),g=t.useRef(null),y=t.useRef(0),S=t.useRef(a),E=o.reduce((e,t={})=>{var{minWidth:i=0,maxWidth:r=null}=t,s=n(t,["minWidth","maxWidth"]);return d>i&&(!r||d<=r)?Object.assign(Object.assign({},e),s):e},l),j=t.Children.toArray(E.children),L=d?Object.assign(Object.assign({},E),{activeSlideIndex:Math.max(0,Math.min(E.activeSlideIndex,j.length-1)),itemsToShow:Math.min(j.length,E.itemsToShow||0),itemsToScroll:Math.min(j.length,E.itemsToScroll||1)}):l,O=L.containerProps,T=void 0===O?{}:O,{style:C={}}=T,k=n(T,["style"]),I=L.innerProps,M=void 0===I?{}:I,{style:W={}}=M,P=n(M,["style"]),R=L.itemsListProps,$=void 0===R?{}:R,{style:X={},onTransitionEnd:N}=$,A=n($,["style","onTransitionEnd"]),F=L.backwardBtnProps,V=void 0===F?{}:F,{children:z=null,show:B=!0}=V,q=n(V,["children","show"]),D=L.forwardBtnProps,H=void 0===D?{}:D,{children:G=null,show:J=!0}=H,K=n(H,["children","show"]),Q=L.activeSlideProps,U=void 0===Q?{}:Q,{className:Y="",style:Z={}}=U,_=n(U,["className","style"]),ee=L.visibleSlideProps,te=void 0===ee?{}:ee,{className:ne="",style:ie={}}=te,re=n(te,["className","style"]),{updateOnItemClick:se=!1,activeSlideIndex:oe,onRequestChange:le,speed:de=0,delay:ce=0,easing:ae="linear",itemsToShow:ue=0,itemsToScroll:me=1,children:fe,onAfterChange:ve,autoplay:he=!1,autoplayDirection:be="forward",disableNavIfAllVisible:pe=!0,hideNavIfAllVisible:xe=!0,centerMode:we=!1,infinite:ge=!0,disableNavIfEdgeVisible:ye=!0,disableNavIfEdgeActive:Se=!0,dotsNav:Ee={},persistentChangeCallbacks:je=!1,autoplayDelay:Le=0,preventScrollOnSwipe:Oe=!1,disableSwipeByMouse:Te=!1,disableSwipeByTouch:Ce=!1,touchSwipeTreshold:ke,mouseSwipeTreshold:Ie,swipeTreshold:Me,touchSwipeRatio:We,mouseSwipeRatio:Pe,swipeRatio:Re=1,dirRTL:$e=!1}=L,{show:Xe=!1,containerProps:Ne={},itemBtnProps:Ae={},activeItemBtnProps:Fe={}}=Ee||{},Ve=t.Children.count(fe)-1,ze=!!d&&(null===(r=f.current)||void 0===r?void 0:r.offsetWidth)>=(null===(s=v.current)||void 0===s?void 0:s.offsetWidth),Be=xe&&ze,qe=pe&&ze,De=oe-a===0||!de&&!ce?"none":`transform ${de}ms ${ae} ${ce}ms`,He=t.useCallback(({correctionSlideIndex:e,prevCorrectionSlideIndex:t,curActiveSlideIndex:n})=>{var i;const r=v.current.offsetWidth,s=v.current.children,o=s.length,l=ge?[...s].slice(o/3-t,o/3-t+o/3):[...s],d=null===(i=l[n])||void 0===i?void 0:i.offsetWidth,c=ue?l.reduce((e,t,i)=>i>=n&&i<n+ue||i<n&&i<n+ue-l.length?e+t.offsetWidth:e,0):f.current.offsetWidth,a=Math.min(c,f.current.offsetWidth),u=r-a,m=we&&ge?-(a-d)/2:0,h=ge?r/3:0,b=e-n===0?0:"forward"===x.current&&n<e?h:"backward"===x.current&&n>e?-h:0,p=n-e!==0,w=e=>{const t=l.reduce((t,n,i)=>i>=e?t:t+(n.offsetWidth||0),0);return ge?t:Math.min(u,t)},g=p&&ge?w(e):0,y=p||!ge?w(n):0,S=qe?0:y-g+m+b+h,E=`translateX(${$e?"":"-"}${S}px)`,j=ge?h+m:Math.min(u,l.reduce((e,t,i)=>i<n?e+t.offsetWidth:e,0)),L=j+a,O=l.map((e,t)=>({slideIndex:t,htmlElement:e})),T=ge?[...l.slice(n).map((e,t)=>({slideIndex:t+n,htmlElement:e})),...O,...O,...l.slice(0,n).map((e,t)=>({slideIndex:t,htmlElement:e}))]:O,C=T.reduce((e,{slideIndex:t,htmlElement:n})=>{const i=n.offsetWidth;return(e.summ>=j&&e.summ<L||e.summ+i>j&&e.summ+i<=L)&&e.items.push({slideIndex:t,isFullyVisible:e.summ+i<=L&&e.summ>=j}),e.summ+=i,e},{summ:0,items:[]}),k=!!C.items.find(e=>0===e.slideIndex),I=!!C.items.find(e=>e.slideIndex===l.length-1);return{slidesHTMLElements:l,innerMaxWidth:c,itemsListMaxTranslateX:u,activeSlideWidth:d,offsetCorrectionForCenterMode:m,offsetCorrectionForInfiniteMode:h,itemsListTranslateX:S,itemsListTransform:E,visibleSlides:C.items,isFirstSlideVisible:k,isLastSlideVisible:I}},[we,qe,ge,ue,$e]),{innerMaxWidth:Ge=0,itemsListMaxTranslateX:Je=0,activeSlideWidth:Ke=0,offsetCorrectionForCenterMode:Qe=0,offsetCorrectionForInfiniteMode:Ue=0,itemsListTranslateX:Ye=0,itemsListTransform:Ze="none",visibleSlides:_e=[]}=d?He({prevCorrectionSlideIndex:S.current,curActiveSlideIndex:oe,correctionSlideIndex:a}):{},et=t.useCallback(e=>{if("forward"===e){const e=oe+me;return e>Ve?ge?e-Ve-1:Ve:e}if("backward"===e){const e=oe-me;return e<0?ge?Ve+1+e:0:e}return oe},[oe,me,Ve,ge]),tt=t.useCallback((e,t)=>{var n;if(x.current=t,v.current.style.transition=de||ce?`transform ${de}ms ${ae} ${ce}ms`:"none",e!==oe||je){clearTimeout(w.current);const{visibleSlides:t,isFirstSlideVisible:i,isLastSlideVisible:r,itemsListTransform:s}=He({correctionSlideIndex:a,prevCorrectionSlideIndex:a,curActiveSlideIndex:e});e!==oe&&(null===(n=v.current)||void 0===n?void 0:n.style.transform)===s&&(h.current=!0),v.current.style.transform=s,le(e,{visibleSlides:t,isFirstSlideVisible:i,isLastSlideVisible:r})}else v.current.style.transform=`translateX(${$e?"":"-"}${Qe+Ue+(ge?0:Ye)}px)`},[je,oe,Qe,ce,ae,de,le,Ue,ge,Ye,a,He,$e]),nt=t.useCallback(()=>{he&&(clearTimeout(w.current),w.current=setTimeout(()=>{tt(et(be),be)},Le||ce))},[he,be,Le,tt,et,ce]),it=t.useCallback(()=>{tt(et("backward"),"backward")},[tt,et]),rt=t.useCallback(e=>{u(oe),N&&N(e)},[oe,N]),st=t.useCallback(()=>{tt(et("forward"),"forward")},[tt,et]),ot=(e,t,i)=>e.map((e,r)=>{const s=e.props,o=void 0===s?{}:s,{className:l="",onClick:d=null,style:c={}}=o,a=n(o,["className","onClick","style"]),u=n(e,["props"]),m=ge?y.current>=j.length?"forward":"backward":r>=oe?"forward":"backward",f=r+t===oe,v=_e.find(e=>e.slideIndex===r+t),h=`${l} ${f?Y:""} ${v?ne:""}`.trim()||void 0,b=Object.assign(Object.assign(Object.assign(Object.assign({},c),v?ie:{}),f?Z:{}),{boxSizing:"border-box",margin:0}),p=!i&&se?(({direction:e,index:t,onClick:n})=>i=>{tt(t,e),n&&n(i)})({direction:m,index:r+t,onClick:d}):d,x=Object.assign(Object.assign(Object.assign({role:"tabpanel",className:h,style:b,onClick:p},a),v?re:{}),f?_:{});return y.current+=1,Object.assign({props:x},u)});return t.useEffect(()=>{const e=v.current,t={capture:!0,once:!0};function n(e){e.preventDefault(),e.stopPropagation()}function i(e){var t,n;const i=!!(null===(t=e.touches)||void 0===t?void 0:t[0]),r=i?null===(n=e.touches)||void 0===n?void 0:n[0].clientX:e.clientX,s=b.current-r;if(!p.current&&Math.abs(s)<=5)return;p.current=!0;const o=s*((i?We:Pe)||Re)+Qe+Ue+(ge?0:Ye),l=v.current.offsetWidth,d=Math.max(-o,-l);v.current.style.transition="none",v.current.style.transform=`translateX(${($e?-1:1)*d}px)`}function r(s){var o;if(document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",r),document.removeEventListener("touchmove",i),document.removeEventListener("touchend",r),p.current){const i=!!(null===(o=s.changedTouches)||void 0===o?void 0:o[0]),r=i?s.changedTouches[s.changedTouches.length-1].clientX:s.clientX,l=(b.current-r)*((i?We:Pe)||Re);Math.abs(b.current-r)>5&&(null==e||e.removeEventListener("click",n,t),null==e||e.addEventListener("click",n,t));const d=(i?ke:Ie)||Me||Ke/2,c=l>d?{index:et("forward"),direction:"forward"}:l<-d?{index:et("backward"),direction:"backward"}:{index:oe,direction:"forward"};tt(c.index,c.direction)}b.current=0,p.current=!1}function s(e){var t,n;clearTimeout(w.current);const s=!!(null===(t=e.touches)||void 0===t?void 0:t[0]);p.current=!1,b.current=s?null===(n=e.touches)||void 0===n?void 0:n[0].clientX:e.clientX,s?(document.addEventListener("touchmove",i),document.addEventListener("touchend",r)):(document.addEventListener("mousemove",i),document.addEventListener("mouseup",r))}return qe||(Te||null==e||e.addEventListener("mousedown",s),Ce||null==e||e.addEventListener("touchstart",s,{passive:!0}),Te&&Ce||null==e||e.addEventListener("dragstart",r)),()=>{p.current=!1,b.current=0,null==e||e.removeEventListener("click",n,t),null==e||e.removeEventListener("mousedown",s),null==e||e.removeEventListener("touchstart",s),null==e||e.removeEventListener("dragstart",r),document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",r),document.removeEventListener("touchmove",i),document.removeEventListener("touchend",r)}},[ge,Ye,Ze,Qe,Ue,oe,Ke,et,tt,qe,Te,Ce,ke,Ie,Me,We,Pe,Re,$e]),t.useEffect(()=>(oe!==a?(!de&&!ce||h.current)&&(h.current=!1,u(oe)):(ve&&ve(oe,a),(ge||"forward"===be&&oe!==Ve||"backward"===be&&0!==oe)&&nt()),()=>{clearTimeout(w.current)}),[a,oe,ve,de,ce,nt,ge,Ve,be]),t.useEffect(()=>(d&&nt(),()=>{clearTimeout(w.current)}),[d]),t.useEffect(()=>{function e(){clearTimeout(g.current),clearTimeout(w.current),g.current=setTimeout(()=>{d!==window.innerWidth&&c(0)},400)}return d!==window.innerWidth&&c(window.innerWidth),window.addEventListener("resize",e),()=>{clearTimeout(g.current),window.removeEventListener("resize",e)}},[d]),y.current=0,S.current=a,e.jsxs("div",Object.assign({style:Object.assign({display:"flex",flexFlow:"row wrap",boxSizing:"border-box",justifyContent:"center",width:"100%"},C)},k,{ref:m,children:[B&&!Be&&e.jsx("button",Object.assign({},q,{type:"button",onClick:(0===Ye&&ye||0===oe&&Se)&&!ge?void 0:it,disabled:"boolean"==typeof q.disabled?q.disabled:!(!(0===Ye&&ye||0===oe&&Se)||ge),children:z})),e.jsx("div",Object.assign({},P,{style:Object.assign(Object.assign({width:"100%"},W),{display:"flex",boxSizing:"border-box",flexFlow:"row wrap",padding:"0",overflow:"hidden",maxWidth:Ge?`${Ge}px`:void 0,flex:Ge?void 0:"1 0 auto"}),ref:f,children:e.jsxs("div",Object.assign({},A,{style:Object.assign(Object.assign({},X),{display:"flex",boxSizing:"border-box",outline:"none",transition:De,transform:Ze,touchAction:Oe?"none":"auto"}),onTransitionEnd:de||ce?rt:N,tabIndex:-1,role:"presentation",ref:v,children:[ge&&ot(j.slice(a),a,qe),ot(j,0,qe),ge&&ot(j,0,qe),ge&&ot(j.slice(0,a),0,qe)]}))})),J&&!Be&&e.jsx("button",Object.assign({},K,{type:"button",onClick:(Ye===Je&&ye||oe===Ve&&Se)&&!ge?void 0:st,disabled:"boolean"==typeof K.disabled?K.disabled:!(!(Ye===Je&&ye||oe===Ve&&Se)||ge),children:G})),!!Xe&&e.jsx("div",Object.assign({style:{width:"100%",display:"flex",justifyContent:"center"}},Ne,{children:Array.from({length:Math.ceil(j.length/me)}).map((t,n)=>e.jsx("button",Object.assign({type:"button",title:`${n}`},Ae,oe>=n*me&&oe<Math.min(me*(n+1),Ve+1)?Fe:{},{onClick:()=>{tt(Math.min(n*me,j.length-1),Math.min(n*me,j.length-1)>oe?"forward":"backward")}}),n))}))]}))});module.exports=i;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-simply-carousel",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.0.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/"
|
|
@@ -8,6 +8,14 @@
|
|
|
8
8
|
"main": "dist/index.js",
|
|
9
9
|
"module": "dist/index.esm.js",
|
|
10
10
|
"types": "dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.esm.js",
|
|
15
|
+
"require": "./dist/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./package.json": "./package.json"
|
|
18
|
+
},
|
|
11
19
|
"sideEffects": false,
|
|
12
20
|
"keywords": [
|
|
13
21
|
"react",
|
|
@@ -35,34 +43,44 @@
|
|
|
35
43
|
},
|
|
36
44
|
"homepage": "https://github.com/vadymshymko/react-simply-carousel#readme",
|
|
37
45
|
"devDependencies": {
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
40
|
-
"@rollup/plugin-
|
|
41
|
-
"@rollup/plugin-
|
|
42
|
-
"@
|
|
43
|
-
"@
|
|
44
|
-
"@
|
|
45
|
-
"@
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"eslint-plugin
|
|
52
|
-
"eslint
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"react
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
46
|
+
"@eslint/compat": "^2.0.5",
|
|
47
|
+
"@eslint/js": "^10.0.1",
|
|
48
|
+
"@rollup/plugin-commonjs": "^29.0.2",
|
|
49
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
50
|
+
"@rollup/plugin-terser": "^1.0.0",
|
|
51
|
+
"@rollup/plugin-typescript": "^12.3.0",
|
|
52
|
+
"@testing-library/dom": "^10.4.1",
|
|
53
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
54
|
+
"@testing-library/react": "^16.3.2",
|
|
55
|
+
"@testing-library/user-event": "^14.6.1",
|
|
56
|
+
"@types/jest": "^30.0.0",
|
|
57
|
+
"@types/react": "^19.2.14",
|
|
58
|
+
"@types/react-dom": "^19.2.3",
|
|
59
|
+
"@typescript-eslint/eslint-plugin": "^8.59.0",
|
|
60
|
+
"@typescript-eslint/parser": "^8.59.0",
|
|
61
|
+
"eslint": "^10.2.1",
|
|
62
|
+
"eslint-config-prettier": "^10.1.8",
|
|
63
|
+
"eslint-plugin-import": "^2.32.0",
|
|
64
|
+
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
65
|
+
"eslint-plugin-react": "^7.37.5",
|
|
66
|
+
"eslint-plugin-react-hooks": "^7.1.1",
|
|
67
|
+
"globals": "^17.5.0",
|
|
68
|
+
"husky": "^9.1.7",
|
|
69
|
+
"jest": "^30.3.0",
|
|
70
|
+
"jest-environment-jsdom": "^30.3.0",
|
|
71
|
+
"lint-staged": "^16.3.2",
|
|
72
|
+
"prettier": "3.8.3",
|
|
73
|
+
"react": "^19.2.5",
|
|
74
|
+
"react-dom": "^19.2.5",
|
|
75
|
+
"rollup": "^4.60.2",
|
|
76
|
+
"ts-jest": "^29.4.9",
|
|
77
|
+
"tslib": "^2.8.1",
|
|
78
|
+
"typescript": "6.0.3"
|
|
61
79
|
},
|
|
62
80
|
"peerDependencies": {
|
|
63
|
-
"@types/react": "^
|
|
64
|
-
"react": "^
|
|
65
|
-
"react-dom": "^
|
|
81
|
+
"@types/react": "^17 || ^18 || ^19",
|
|
82
|
+
"react": "^17 || ^18 || ^19",
|
|
83
|
+
"react-dom": "^17 || ^18 || ^19"
|
|
66
84
|
},
|
|
67
85
|
"peerDependenciesMeta": {
|
|
68
86
|
"@types/react": {
|
|
@@ -78,8 +96,10 @@
|
|
|
78
96
|
},
|
|
79
97
|
"scripts": {
|
|
80
98
|
"build": "rm -rf dist && pnpm lint && rollup -c",
|
|
81
|
-
"lint": "eslint
|
|
99
|
+
"lint": "eslint src --ext .tsx --quiet",
|
|
82
100
|
"prepublish": "pnpm build",
|
|
83
|
-
"check-types": "tsc --noEmit"
|
|
101
|
+
"check-types": "tsc --noEmit",
|
|
102
|
+
"test": "jest",
|
|
103
|
+
"test:watch": "jest --watch"
|
|
84
104
|
}
|
|
85
105
|
}
|