@gem-sdk/components 19.0.0-staging.45 → 19.0.0-staging.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/carousel-v3/components/dot/common/helpers.js +1 -1
- package/dist/cjs/carousel-v3/components/root/Carousel.js +1 -1
- package/dist/cjs/carousel-v3/components/swiper/Swiper.js +1 -1
- package/dist/cjs/carousel-v3/hooks/useCarousel.js +1 -1
- package/dist/esm/carousel-v3/components/dot/common/helpers.js +1 -1
- package/dist/esm/carousel-v3/components/root/Carousel.js +1 -1
- package/dist/esm/carousel-v3/components/swiper/Swiper.js +1 -1
- package/dist/esm/carousel-v3/hooks/useCarousel.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("@gem-sdk/core");exports.getData=e=>{let{hiddenWhenOnlyOne:t,slideDuplicated:r}=e;return{checkHidden:e=>t&&e?.length<2,getDotItems:t=>{let{enabledSneakPeak:n,totalSlideItem:
|
|
1
|
+
"use strict";var e=require("@gem-sdk/core");exports.getData=e=>{let{hiddenWhenOnlyOne:t,slideDuplicated:r}=e;return{checkHidden:e=>t&&e?.length<2,getDotItems:t=>{let{enabledSneakPeak:n,totalSlideItem:a=0,numberOfFullWidthShow:l=0,slideItemsPerPage:o=0}=e;return Array.from({length:t?r?a/2:a:n?Math.min(a-l+1,a):Math.ceil(a/o)},(e,t)=>t)}}},exports.getUpdatedDotStyle=(t,r)=>{let n={};return e.DEVICES.forEach(a=>{let l=e.getResponsiveValueByScreen(t,a),o=e.getResponsiveValueByScreen(r,a);n={...n,[a]:l?o:"none"}}),n};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("@gem-sdk/core"),o=require("../arrow/common/helpers.js"),i=require("../../hooks/useCarousel.js"),l=require("./common/helpers.js"),s=require("./common/classes.js"),n=require("./common/styles.js"),a=require("./common/attrs.js"),d=require("../arrow/Arrow.js"),u=require("../dot/Dots.js"),c=require("../swiper/Swiper.js");require("@gem-sdk/system");const p=r.forwardRef((p,m)=>{let{children:
|
|
2
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("@gem-sdk/core"),o=require("../arrow/common/helpers.js"),i=require("../../hooks/useCarousel.js"),l=require("./common/helpers.js"),s=require("./common/classes.js"),n=require("./common/styles.js"),a=require("./common/attrs.js"),d=require("../arrow/Arrow.js"),u=require("../dot/Dots.js"),c=require("../swiper/Swiper.js");require("@gem-sdk/system");const p=r.forwardRef((p,m)=>{let{children:v,builderAttrs:C,builderProps:h,styles:S,isHiddenArrowWhenDisabled:w=!0,hiddenDotWhenOnlyOne:y,elmRef:k,isEnableCheckHasScrollableContent:g,onSwiperReady:j}=p,f=o.mappingNavigationCarousel(p.setting),b={...p,setting:f},q=r.Children.count(t.filterToolbarPreview(v))??0,[x,P]=r.useState(null),{arrowButtonSize:E,arrowBackgroundColor:O,arrowGapToEachSide:T="16",roundedArrow:A,arrowIconSize:D,arrowCustomColor:I,arrowBorder:N,arrowShadow:z,showWhenHover:M}=f??{},R=r.useRef({prevOrder:"",prevContent:"",version:0}),V=r.useMemo(()=>{let e=f?.childItem||[],r=e.join("|"),t=[...e].sort().join("|"),o=R.current;return o.prevOrder&&o.prevContent&&t===o.prevContent&&r!==o.prevOrder&&o.version++,o.prevOrder=r,o.prevContent=t,`reorder-${o.version}`},[f?.childItem]),{isInfinity:W,localRef:$,sliderSettings:B,sneakPeak:H,totalSlideItem:F,currentSlide:G,isRenderDots:_,isNavigationEnabled:J,isNavigationVisible:K,isScrollToStart:U,isScrollToEnd:L,handleDotClick:Q,getItemsPerPage:X,handleNextAndPrevSlide:Y,dispatchEventSelectSlide:Z,getNumberOfFullWidthShow:ee,shouldDuplicateSlides:er,swiperIsBeginning:et,swiperIsEnd:eo,handleSwiperReset:ei}=i.useCarousel(b,m,x,q),{loopConfig:el,arrowShowConfig:es}=l.getData(b),{rootClassRender:en,wrapperClassRender:ea,wrapperInnerClass:ed,sliderClass:eu}=s.getClass(b),{rootStyleRender:ec,wrapperStyleRender:ep,wrapperInnerStyle:em}=n.getStyle(b),{rootAttrRender:ev,sliderAttr:eC}=a.getAttr(b),eh=t.useCurrentDevice(),eS=f?.sneakPeak?.[eh],ew=(r,t)=>{let o="next"===r;return!t||q<=1?null:e.jsx(d.default,{uid:h?.uid,custom:f?.arrowCustom??"",showArrow:es,arrowButtonSize:E||{},arrowIconSize:D||{},arrowBackgroundColor:O||"",arrowCustomColor:I,gapToEachSize:T,showWhenHover:M,arrowBorder:N||{},arrowCorner:A||{},arrowShadow:z||{},onClick:e=>{e.stopPropagation(),Y(r)},left:!o,disabled:!K||!W&&(o?g?L:eo:g?U:et),vertical:f?.vertical,isHiddenWhenDisabled:w,rootId:p?.parentClass})},ey=r.useCallback(e=>{P(e),j?.(e)},[]),ek=r.Children.toArray(t.filterToolbarPreview(v)).filter(r.isValidElement),eg=er(q),ej=eg?2*q:q,ef=r.useMemo(()=>{if(!eg)return ek;let e=ek.map((e,t)=>{if(!r.isValidElement(e))return e;let o=e.key,i=o?`${o}-duplicate-${t}`:`duplicate-${t}`;return r.cloneElement(e,{...e.props||{},key:i})});return[...ek,...e]},[eg,ek]),eb=r.useMemo(()=>{let e=r.Children.toArray(v),t=e[0];return r.isValidElement(t)?t.key:""},[v]),eq=JSON.stringify(B.autoplay),ex=r.useMemo(()=>{let e=[q,V,ef.length,eb,B.dir,B.loop,B.direction,B.isSneakPeekCenter,H,eq];return e.join("-")},[q,V,ef.length,eb,B.dir,B.loop,B.direction,B.isSneakPeekCenter,H,eq]);return e.jsx("div",{ref:k,...ev,className:en,style:ec,children:e.jsxs("div",{ref:$,...C,className:ea,style:ep,children:[e.jsxs("div",{className:ed,style:em,children:[ew("prev",J),r.createElement(c.Swiper,{...eC,...B,sliderClass:eu,thumbsSwiper:p?.thumbsSwiper,onSwiperReady:ey,totalSlides:F,key:ex,sliderOrder:V,onSwiperReset:ei},t.isEmptyChildren(v)?e.jsx("div",{children:"No Slider"}):e.jsx(e.Fragment,{children:ef.map((e,t)=>{if(!r.isValidElement(e))return null;let o=e.props??{};return r.createElement(e.type,{...o,key:e.key,indexKey:t.toString(),parentSettings:f,parentStyle:S,background:f?.background,parentUid:h?.uid,dispatchEventSelectSlide:Z})})})),ew("next",J)]}),_&&e.jsx(u.default,{dotStyle:f?.dotStyle,dotGapToCarousel:f?.dotGapToCarousel,vertical:f?.vertical,showDots:f?.dot,slideItemsPerPage:X(),enabledSneakPeak:eS,dotColor:f?.dotColor,dotActiveColor:f?.dotActiveColor,dotSize:f?.dotSize,sneakPeakType:f?.sneakPeakType,totalSlideItem:ej,hiddenWhenOnlyOne:y,currentSlide:G,loop:el,numberOfFullWidthShow:ee(eh),onHandleClick:Q,slideDuplicated:eg}),t.filterToolbarPreview(v,!0)]})})});exports.default=p;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./common/styles.js");require("@gem-sdk/swiper/element/bundle").register(),exports.Swiper=function(
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./common/styles.js");require("@gem-sdk/swiper/element/bundle").register(),exports.Swiper=function(n){let i=r.useRef(null),s=r.useRef(null),{children:u,totalSlides:c,onSwiperReset:l,onSwiperReady:a,sliderClass:p,sliderOrder:w,thumbsSwiper:o,...d}=n,f=r.useMemo(()=>o?{"thumbs-swiper":o}:{},[o]),m=t.getStyleSwiperContainer(),y=(e,r)=>{if(!e?.wrapperEl)return!1;let t=e.el,n=r||e.width||t?.clientWidth||t?.parentElement?.clientWidth||0;return!(n<=0)&&(e.wrapperEl.style.setProperty("width",`${n}px`),!0)},b=r.useCallback(({width:e}={})=>{!y(i.current?.swiper,e)&&"undefined"!=typeof window&&i.current&&(s.current&&cancelAnimationFrame(s.current),s.current=window.requestAnimationFrame(()=>{s.current=null,y(i.current?.swiper,e)}))},[]);return r.useEffect(()=>{let e;let r=i.current;if(!r)return;Object.assign(r,d),r.initialize?.(),a?.(r.swiper),b(),r.swiper?.on?.("resize",b);let t=r.parentElement;return t&&"undefined"!=typeof ResizeObserver&&(e=new ResizeObserver(()=>{let e=i.current?.swiper;e&&!(e.width>0)&&(b(),e.update?.())})).observe(t),()=>{r.swiper?.off?.("resize",b),e?.disconnect(),l(),s.current&&(cancelAnimationFrame(s.current),s.current=null)}},[]),r.useEffect(()=>{let e=i.current,r=e?.swiper;e&&r&&!r.destroyed&&(Object.assign(e,d),r.update(),b())},[JSON.stringify(d)]),r.useEffect(()=>{l()},[w,l]),e.jsx("swiper-container",{init:!1,ref:i,class:p,style:{...m},...f,children:u})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("react"),t=require("@gem-sdk/core"),r=require("./useTrackPreviewPause.js");exports.useCarousel=(n,s,a,i)=>{let l;let{builderProps:u,moveToIdx:o,styles:c,setting:p,isHiddenArrowWhenDisabled:d=!0,elmRef:f,isEnableCheckHasScrollableContent:m,onClickArrow:y,onHandleChangeSlideByInteraction:v,onChangeActive:g}=n,[k,S]=e.useState(!0),[h,V]=e.useState(!0),[B,R]=e.useState(!1),{loop:b,navigationEnable:P={desktop:!0},navigationStyle:w}=p??{},[T,N]=e.useState(i),[E,x]=e.useState(p?.defaultCurrentSlider??0),{isFirstPreviewClicked:C}=r.default(p?.runPreview),M=e.useRef(),I=e.useRef(o??0),O=t.useCurrentDevice(),L=t.useEditorMode(),{onListener:D,saveToElementInteractionData:z,getInteractionPreviousData:q,trigger:A}=t.useInteraction(),H=e.useMemo(()=>t.getResponsiveValueByScreen(b,O,!1),[b,O]),$=e.useCallback(()=>{if(!p?.slidesToShow)return null;let e={};return t.DEVICES.forEach(r=>{let n=t.getResponsiveValueByScreen(p?.slidesToShow,r);e[r]=n?"auto"===n?4:Math.floor(n):0}),e},[p?.slidesToShow]),j=e.useCallback(()=>{if(!p?.slidesToShow)return null;let e={};return t.DEVICES.forEach(r=>{let n=t.getResponsiveValueByScreen(p?.slidesToShow,r);e[r]=n?"auto"===n?4:n:0}),e},[p?.slidesToShow]),F=e.useMemo(()=>{let e=j();if(e)return e;let r={};return t.DEVICES.forEach(e=>{let n=t.getResponsiveValueByScreen(p?.sneakPeak,e),s=n?"center"===t.getResponsiveValueByScreen(p?.sneakPeakType,e)?t.getResponsiveValueByScreen(p?.sneakPeakOffsetCenter,e)??0:t.getResponsiveValueByScreen(p?.sneakPeakOffsetForward,e)??0:0,a="center"===t.getResponsiveValueByScreen(p?.sneakPeakType,e)?-2:-1,i=t.getResponsiveValueByScreen(p?.itemNumber,e);r[e]="number"==typeof i?i+s/100*a:"auto"}),r},[j,p?.itemNumber,p?.sneakPeak,p?.sneakPeakOffsetCenter,p?.sneakPeakOffsetForward,p?.sneakPeakType]),U=e.useMemo(()=>{let e=t.getResponsiveValueByScreen(F,O),r=t.getResponsiveValueByScreen(b,O,!1);return r&&Number(e??0)>i||!r&&Number(e??0)>=i},[F,O,b,i]),W=e.useMemo(()=>{let e=t.getResponsiveValueByScreen(P,O),r=t.getResponsiveValueByScreen(w,O);return e&&"none"!==r},[P,O,w]),G=e.useMemo(()=>!!a&&k&&!U,[a,k,U]),J=e.useMemo(()=>{let e=$();return e||p?.itemNumber},[$,p?.itemNumber]),K=e.useCallback(e=>{let r="center"===t.getResponsiveValueByScreen(p?.sneakPeakType,e)?2:1;return"number"==typeof t.getResponsiveValueByScreen(J,e,4)?t.getResponsiveValueByScreen(J,e,4)-r:void 0},[p?.sneakPeakType,J]),Q=()=>{let e="auto"===t.getResponsiveValueByScreen(F,O,1)?1:t.getResponsiveValueByScreen(F,O,1);return e??1},X=e.useCallback(()=>{let e=t.getResponsiveValueByScreen(F,O,1),r=K(O)??1,n=t.getResponsiveValueByScreen(p?.sneakPeak,O,!1);return Array.from({length:Math.max(H?i:n?i-r+1:"auto"===e?0:Math.ceil(i/Number(e)),0)},(e,t)=>t)},[i,F,O,K,p?.sneakPeak,H]),Y=e=>{let t=e*Q();return t>=T-Q()&&(t=T-Q()),t},Z=e=>{let r="edit"===L?{[e]:!1}:p?.enableDrag;return t.getResponsiveValueByScreen(r,e)};e.useImperativeHandle(s,()=>({nextSlideInteraction:et,previousSlideInteraction:er,moveToSlideInteraction:en,getSwiper:()=>a}));let _=e=>{a?.slideTo(e),v&&v(e)},ee=(e,t)=>{let{key:r,data:n,isRollback:s,element:i}=e,l=Math.max(a?.activeIndex??0,0);if(s&&void 0===n)return;if(s){if("specific"===t){let{previousData:e}=q(i,r);_(Number(e))}else _("next"===t?l-1:l+1);return}let u="specific"===t?Math.max(I.current,0):l;z(i,r,u.toString());let o="specific"===t?Number(n):"next"===t?l+1:l-1;_(o)},et=e=>{ee(e,"next")},er=e=>{ee(e,"previous")},en=e=>{ee(e,"specific")},es=Q(),ea=e.useMemo(()=>!!T&&a&&t.getResponsiveValueByScreen(p?.dot,O)&&!U&&i>1,[T,a,p?.dot,O,U,i]),ei=t.getResponsiveValueByScreen(p?.vertical,O,!1)?"vertical":"horizontal",el=e.useMemo(()=>t.getResponsiveValueByScreen(p?.sneakPeak,O,!1)&&"center"===t.getResponsiveValueByScreen(p?.sneakPeakType,O)&&"number"==typeof t.getResponsiveValueByScreen(p?.itemNumber,O)&&Number(t.getResponsiveValueByScreen(p?.itemNumber,O))>1,[p?.sneakPeak,p?.sneakPeakType,p?.itemNumber,O]),eu=e=>{let{swiperWidth:t,slidesPerView:r,itemNumberByDevice:n,centeredSlides:s}=e;if(!s||!n)return 0;let a=t/r,i=(Number(n)-2)/2-1;return-(a/2+i*a)},eo=e.useMemo(()=>{let e=t.getResponsiveValueByScreen(b,O,!1),r=a?.width??0,n={0:"mobile",768:"tablet",1025:"desktop"},s=Number(Object.entries(n).find(([,e])=>e===O)?.[0]??1025),i=Object.entries(n).reduce((e,[n,s])=>{if(!e)return;let a=Number(n),i=t.getResponsiveValueByScreen(p?.sneakPeak,s,!1),l=i&&"center"===t.getResponsiveValueByScreen(p?.sneakPeakType,s),u=t.getResponsiveValueByScreen(p?.itemNumber,s),c=Z(s),d=eu({swiperWidth:r,slidesPerView:es,itemNumberByDevice:u,centeredSlides:l}),f=p?.initialSlide||o||0;return e[a]={allowTouchMove:c,slidesOffsetBefore:d,slidesOffsetAfter:d,initialSlide:f,centeredSlides:l},e},{}),l=t.getResponsiveValueByScreen(p?.sneakPeak,O,!1)&&"center"===t.getResponsiveValueByScreen(p?.sneakPeakType,O)&&"number"==typeof t.getResponsiveValueByScreen(p?.itemNumber,O)&&Number(t.getResponsiveValueByScreen(p?.itemNumber,O))>1;return{speed:c?.playSpeed??500,dir:p?.rtl?"rtl":"ltr",spaceBetween:t.getResponsiveValueByScreen(c?.spacing,O)||0,loop:e,slidesPerView:"auto"===t.getResponsiveValueByScreen(F,O,1)?"auto":es,direction:ei,breakpoints:i,isSneakPeekCenter:l,slidesOffsetBefore:i?.[s]?.slidesOffsetBefore,thumbs:{slideThumbActiveClass:"gem-slider-item-active"},loopPreventsSliding:!1,touchStartPreventDefault:!1,autoplay:!!p?.autoplay&&{delay:(p?.autoplayTimeout??1)*1e3,pauseOnMouseEnter:p?.pauseOnHover,stopOnLastSlide:!e}}},[p?.autoplay,c?.playSpeed,p?.rtl,c?.spacing,O,b,es,p?.sneakPeakType,p?.pauseOnHover,p?.autoplayTimeout,a?.width,T]),ec=t.getResponsiveValueByScreen(p?.sneakPeak,O),ep=e.useCallback(e=>{let r=a&&a.params?.slidesPerView,n=r?a?.slidesPerViewDynamic():1;if(e<=1)return!1;let s="auto"===eo.slidesPerView?n:eo.slidesPerView;if(!H||e<Number(s)||!k)return!1;let i=t.getResponsiveValueByScreen(p?.sneakPeak,O,!1),l=i&&"center"===t.getResponsiveValueByScreen(p?.sneakPeakType,O),u=Number.isNaN(Number(s))?1:Math.ceil(Number(s));l&&u%2==0&&(u+=1);let o=l?Math.max(1,Math.ceil(u/2)):1;return e<u+o},[a,eo.slidesPerView,H,k,p?.sneakPeak,p?.sneakPeakType,O]);e.useEffect(()=>{let e=`[data-id="${u?.uid}"]`;D({event:"gp:change-next-slide",selector:e,elementRef:M},e=>{let{data:t,isRollback:r,uniqueStorageKey:n}=e||{};et({element:M.current,data:t,isRollback:r,key:n})}),D({event:"gp:change-previous-slide",selector:e,elementRef:M},e=>{let{data:t,isRollback:r,uniqueStorageKey:n}=e||{};er({element:M.current,data:t,isRollback:r,key:n})}),D({event:"gp:change-image-step",selector:e,elementRef:M},e=>{let{data:t,isRollback:r,uniqueStorageKey:n}=e||{};en({element:M.current,data:t,isRollback:r,key:n})}),D({event:"gp:change-index-slide",selector:e},t=>{let r=document.querySelector(e),{data:n,isRollback:s,uniqueStorageKey:a}=t||{};en({element:r,data:n,isRollback:s,key:a})})},[]),e.useEffect(()=>{N(i)},[i]),e.useEffect(()=>{if("number"==typeof o){if(I.current=o,a?.params?.loop){a?.slideToLoop(o);return}a?.slideTo(o)}},[a,o,d]);let ed=()=>{let e=t.getResponsiveValueByScreen(p?.loop,O,!1);if(!a||!el||e)return;let r=X().length;if(!r)return;let n=a.snapIndex>=r-1;a.isEnd=n,a.allowSlideNext=!n};return e.useEffect(()=>{if(!a)return;let e=()=>{N(a.slides.length),ed()},t=()=>{g&&g(a.realIndex)},r=()=>{x(a.realIndex),V(a?.translate===0),R(a?.translate<=a?.maxTranslate())};return a.on("transitionEnd",r),a.on("slideChange",e),a.on("slideChangeTransitionStart",t),()=>{a?.off("slideChange",e),a?.off("slideChangeTransitionStart",t),a?.off("transitionEnd",r)}},[eo.loop,a]),e.useEffect(()=>{a?.wrapperEl&&(a.wrapperEl.style.transitionTimingFunction=p?.animationMode??"ease")},[a,p?.animationMode]),e.useEffect(()=>{if(a&&a.autoplay){let e="edit"===L?!!C&&p?.runPreview&&p?.autoplay:p?.autoplay;e?a.autoplay.start():a.autoplay.stop()}},[a,p?.autoplay,L,C,p?.runPreview]),e.useEffect(()=>{let e=e=>{if(u?.uid!==e?.detail.componentUid)return;let t=e?.detail.index||0;a?.slideToLoop(t)};return window.addEventListener("move-to-idx",e),()=>window.removeEventListener("move-to-idx",e)},[a,u?.uid]),e.useEffect(()=>{if(!a)return;let e=a.el;e?.classList?.remove("swiper-horizontal","swiper-vertical");let r=t.getResponsiveValueByScreen(p?.vertical,O)?"swiper-vertical":"swiper-horizontal";e?.classList?.add(r),a?.slides?.forEach(e=>{e.style.width="",e.style.height=""}),a?.update(),a?.wrapperEl&&a.width&&a.wrapperEl.style.setProperty("width",`${a.width}px`)},[O,p?.vertical,a,a?.params,c?.sizeSetting,w]),e.useEffect(()=>{if(!a||!m)return;let e=()=>{let e=a?.slides?.slice(0,i)||[],t=Number(eo?.spaceBetween||0),r=e.reduce((e,t)=>e+t.offsetHeight,0)+t*(e.length-1),n=e.reduce((e,t)=>e+t.offsetWidth,0)+t*(e.length-1),s=a.params?.direction==="horizontal"?n>(a.width||0):r>(a.height||0);S(s)};return e(),a.on("resize",e),a.on("update",e),a.on("slidesLengthChange",e),a.on("orientationchange",e),()=>{a.off("resize",e),a.off("update",e),a.off("slidesLengthChange",e),a.off("orientationchange",e)}},[a]),{isInfinity:H,sliderSettings:eo,totalSlideItem:T,currentSlide:E,localRef:M,isRenderDots:ea,isNavigationEnabled:W,isNavigationVisible:G,isScrollToStart:h,isScrollToEnd:B,handleDotClick:(e,r)=>{let n=p?.sneakPeak?.[O]?e:r?e:Y(e);if(r){if(i<es){a?.slideTo(n);return}if(a?.realIndex===n)return;if(n===Number(a?.realIndex)+1||0===n&&a?.realIndex===i-1)return a?.slideNext();if(n===Number(a?.realIndex)-1||n===i-1&&a?.realIndex===0)return a?.slidePrev();let e=t.getResponsiveValueByScreen(p?.sneakPeak,O,!1)&&"center"===t.getResponsiveValueByScreen(p?.sneakPeakType,O)&&"number"==typeof t.getResponsiveValueByScreen(p?.itemNumber,O)&&Number(t.getResponsiveValueByScreen(p?.itemNumber,O))%2==0;e?a?.slideToLoopCenterSneakPeek(n):a?.slideToLoop(n)}else a?.slideTo(n);I.current=n},getItemsPerPage:Q,handleNextAndPrevSlide:e=>{"next"===e?a?.slideNext():a?.slidePrev(),y&&(l&&clearTimeout(l),l=setTimeout(()=>y&&y(),500))},dispatchEventSelectSlide:e=>{A({event:"gp:rollback:select-slide",selector:`[data-id="${u?.uid}"]`,element:f?.current}),A({event:"gp:select-slide",selector:`[data-id="${u?.uid}"]`,data:e,element:f?.current})},getNumberOfFullWidthShow:K,setCurrentSlide:x,shouldDuplicateSlides:ep,setIsScrollToStart:V,setIsScrollToEnd:R,isHideNavigation:U,sneakPeak:ec}};
|
|
1
|
+
"use strict";var e=require("react"),t=require("@gem-sdk/core"),n=require("./useTrackPreviewPause.js");exports.useCarousel=(r,s,a,i)=>{let l;let{builderProps:u,moveToIdx:o,styles:c,setting:p,isHiddenArrowWhenDisabled:d=!0,elmRef:f,isEnableCheckHasScrollableContent:m,isDisableResetSlide:y,onClickArrow:g,onHandleChangeSlideByInteraction:v,onChangeActive:k}=r,[S,h]=e.useState(!0),[V,B]=e.useState(!0),[b,R]=e.useState(!1),[P,w]=e.useState(!0),[T,N]=e.useState(!1),{loop:E,navigationEnable:x={desktop:!0},navigationStyle:C}=p??{},[M,I]=e.useState(i),[O,L]=e.useState(p?.defaultCurrentSlider??0),{isFirstPreviewClicked:D}=n.default(p?.runPreview),z=e.useRef(),q=e.useRef(o??0),A=t.useCurrentDevice(),H=t.useEditorMode(),{onListener:$,saveToElementInteractionData:j,getInteractionPreviousData:F,trigger:U}=t.useInteraction(),W=e.useMemo(()=>t.getResponsiveValueByScreen(E,A,!1),[E,A]),G=e.useCallback(()=>{if(!p?.slidesToShow)return null;let e={};return t.DEVICES.forEach(n=>{let r=t.getResponsiveValueByScreen(p?.slidesToShow,n);e[n]=r?"auto"===r?4:Math.floor(r):0}),e},[p?.slidesToShow]),J=e.useCallback(()=>{if(!p?.slidesToShow)return null;let e={};return t.DEVICES.forEach(n=>{let r=t.getResponsiveValueByScreen(p?.slidesToShow,n);e[n]=r?"auto"===r?4:r:0}),e},[p?.slidesToShow]),K=e.useMemo(()=>{let e=J();if(e)return e;let n={};return t.DEVICES.forEach(e=>{let r=t.getResponsiveValueByScreen(p?.sneakPeak,e),s=r?"center"===t.getResponsiveValueByScreen(p?.sneakPeakType,e)?t.getResponsiveValueByScreen(p?.sneakPeakOffsetCenter,e)??0:t.getResponsiveValueByScreen(p?.sneakPeakOffsetForward,e)??0:0,a="center"===t.getResponsiveValueByScreen(p?.sneakPeakType,e)?-2:-1,i=t.getResponsiveValueByScreen(p?.itemNumber,e);n[e]="number"==typeof i?i+s/100*a:"auto"}),n},[J,p?.itemNumber,p?.sneakPeak,p?.sneakPeakOffsetCenter,p?.sneakPeakOffsetForward,p?.sneakPeakType]),Q=e.useMemo(()=>{let e=t.getResponsiveValueByScreen(K,A),n=t.getResponsiveValueByScreen(E,A,!1);return n&&Number(e??0)>i||!n&&Number(e??0)>=i},[K,A,E,i]),X=e.useMemo(()=>{let e=t.getResponsiveValueByScreen(x,A),n=t.getResponsiveValueByScreen(C,A);return e&&"none"!==n},[x,A,C]),Y=e.useMemo(()=>!!a&&S&&!Q,[a,S,Q]),Z=e.useMemo(()=>{let e=G();return e||p?.itemNumber},[G,p?.itemNumber]),_=e.useCallback(e=>{let n="center"===t.getResponsiveValueByScreen(p?.sneakPeakType,e)?2:1;return"number"==typeof t.getResponsiveValueByScreen(Z,e,4)?t.getResponsiveValueByScreen(Z,e,4)-n:void 0},[p?.sneakPeakType,Z]),ee=()=>{let e="auto"===t.getResponsiveValueByScreen(K,A,1)?1:t.getResponsiveValueByScreen(K,A,1);return e??1},et=e.useCallback(()=>{let e=t.getResponsiveValueByScreen(K,A,1),n=_(A)??1,r=t.getResponsiveValueByScreen(p?.sneakPeak,A,!1);return Array.from({length:Math.max(W?i:r?Math.min(i-n+1,i):"auto"===e?0:Math.ceil(i/Number(e)),0)},(e,t)=>t)},[i,K,A,_,p?.sneakPeak,W]),en=e=>{let t=e*ee();return t>=M-ee()&&(t=M-ee()),t},er=e=>{let n="edit"===H?{[e]:!1}:p?.enableDrag;return t.getResponsiveValueByScreen(n,e)};e.useImperativeHandle(s,()=>({nextSlideInteraction:ei,previousSlideInteraction:el,moveToSlideInteraction:eu,getSwiper:()=>a}));let es=e=>{a?.slideTo(e),v&&v(e)},ea=(e,t)=>{let{key:n,data:r,isRollback:s,element:i}=e,l=Math.max(a?.activeIndex??0,0);if(s&&void 0===r)return;if(s){if("specific"===t){let{previousData:e}=F(i,n);es(Number(e))}else es("next"===t?l-1:l+1);return}let u="specific"===t?Math.max(q.current,0):l;j(i,n,u.toString());let o="specific"===t?Number(r):"next"===t?l+1:l-1;es(o)},ei=e=>{ea(e,"next")},el=e=>{ea(e,"previous")},eu=e=>{ea(e,"specific")},eo=ee(),ec=e.useMemo(()=>!!M&&a&&t.getResponsiveValueByScreen(p?.dot,A)&&!Q&&i>1,[M,a,p?.dot,A,Q,i]),ep=t.getResponsiveValueByScreen(p?.vertical,A,!1)?"vertical":"horizontal",ed=e.useMemo(()=>t.getResponsiveValueByScreen(p?.sneakPeak,A,!1)&&"center"===t.getResponsiveValueByScreen(p?.sneakPeakType,A)&&"number"==typeof t.getResponsiveValueByScreen(p?.itemNumber,A)&&Number(t.getResponsiveValueByScreen(p?.itemNumber,A))>1,[p?.sneakPeak,p?.sneakPeakType,p?.itemNumber,A]),ef=e=>{let{swiperWidth:t,slidesPerView:n,itemNumberByDevice:r,centeredSlides:s}=e;if(!s||!r)return 0;let a=t/n,i=(Number(r)-2)/2-1;return-(a/2+i*a)},em=e.useMemo(()=>{let e=t.getResponsiveValueByScreen(E,A,!1),n=a?.width??0,r={0:"mobile",768:"tablet",1025:"desktop"},s=Number(Object.entries(r).find(([,e])=>e===A)?.[0]??1025),i=Object.entries(r).reduce((e,[r,s])=>{if(!e)return;let a=Number(r),i=t.getResponsiveValueByScreen(p?.sneakPeak,s,!1),l=i&&"center"===t.getResponsiveValueByScreen(p?.sneakPeakType,s),u=t.getResponsiveValueByScreen(p?.itemNumber,s),c=er(s),d=ef({swiperWidth:n,slidesPerView:eo,itemNumberByDevice:u,centeredSlides:l}),f=p?.initialSlide||o||0;return e[a]={allowTouchMove:c,slidesOffsetBefore:d,slidesOffsetAfter:d,initialSlide:f,centeredSlides:l},e},{}),l=t.getResponsiveValueByScreen(p?.sneakPeak,A,!1)&&"center"===t.getResponsiveValueByScreen(p?.sneakPeakType,A)&&"number"==typeof t.getResponsiveValueByScreen(p?.itemNumber,A)&&Number(t.getResponsiveValueByScreen(p?.itemNumber,A))>1;return{speed:c?.playSpeed??500,dir:p?.rtl?"rtl":"ltr",spaceBetween:t.getResponsiveValueByScreen(c?.spacing,A)||0,loop:e,slidesPerView:"auto"===t.getResponsiveValueByScreen(K,A,1)?"auto":eo,direction:ep,breakpoints:i,isSneakPeekCenter:l,slidesOffsetBefore:i?.[s]?.slidesOffsetBefore,thumbs:{slideThumbActiveClass:"gem-slider-item-active"},loopPreventsSliding:!1,touchStartPreventDefault:!1,autoplay:!!p?.autoplay&&{delay:(p?.autoplayTimeout??1)*1e3,pauseOnMouseEnter:p?.pauseOnHover,stopOnLastSlide:!e}}},[p?.autoplay,c?.playSpeed,p?.rtl,c?.spacing,A,E,eo,p?.sneakPeakType,p?.pauseOnHover,p?.autoplayTimeout,a?.width,M]),ey=t.getResponsiveValueByScreen(p?.sneakPeak,A),eg=e.useCallback(e=>{let n=a&&a.params?.slidesPerView,r=n?a?.slidesPerViewDynamic():1;if(e<=1)return!1;let s="auto"===em.slidesPerView?r:em.slidesPerView;if(!W||e<Number(s)||!S)return!1;let i=t.getResponsiveValueByScreen(p?.sneakPeak,A,!1),l=i&&"center"===t.getResponsiveValueByScreen(p?.sneakPeakType,A),u=Number.isNaN(Number(s))?1:Math.ceil(Number(s));l&&u%2==0&&(u+=1);let o=l?Math.max(1,Math.ceil(u/2)):1;return e<u+o},[a,em.slidesPerView,W,S,p?.sneakPeak,p?.sneakPeakType,A]);e.useEffect(()=>{let e=`[data-id="${u?.uid}"]`;$({event:"gp:change-next-slide",selector:e,elementRef:z},e=>{let{data:t,isRollback:n,uniqueStorageKey:r}=e||{};ei({element:z.current,data:t,isRollback:n,key:r})}),$({event:"gp:change-previous-slide",selector:e,elementRef:z},e=>{let{data:t,isRollback:n,uniqueStorageKey:r}=e||{};el({element:z.current,data:t,isRollback:n,key:r})}),$({event:"gp:change-image-step",selector:e,elementRef:z},e=>{let{data:t,isRollback:n,uniqueStorageKey:r}=e||{};eu({element:z.current,data:t,isRollback:n,key:r})}),$({event:"gp:change-index-slide",selector:e},t=>{let n=document.querySelector(e),{data:r,isRollback:s,uniqueStorageKey:a}=t||{};eu({element:n,data:r,isRollback:s,key:a})})},[]),e.useEffect(()=>{I(i)},[i]);let ev=e.useCallback(()=>{y||(L(0),B(!0),R(!1),w(!0),N(!1))},[y]);e.useEffect(()=>{if("number"==typeof o){if(q.current=o,a?.params?.loop){a?.slideToLoop(o);return}a?.slideTo(o)}},[a,o,d]);let ek=e.useCallback(()=>{let e=t.getResponsiveValueByScreen(p?.loop,A,!1);if(!a||!ed||e)return;let n=et().length;if(!n)return;let r=a.snapIndex>=n-1;a.isEnd=r,a.allowSlideNext=!r},[a,p?.loop,A,ed,et]);return e.useEffect(()=>{if(!a)return;let e=()=>{I(a.slides.length),ek(),w(a.isBeginning),N(a.isEnd)},t=()=>{k&&k(a.realIndex)},n=()=>{L(a.realIndex),B(a?.translate===0),R(a?.translate<=a?.maxTranslate())};return a.on("transitionEnd",n),a.on("slideChange",e),a.on("slideChangeTransitionStart",t),()=>{a?.off("slideChange",e),a?.off("slideChangeTransitionStart",t),a?.off("transitionEnd",n)}},[em.loop,a,ek]),e.useEffect(()=>{if(!a)return;let e=ed?et().length:0;e>0&&a.snapIndex>=e&&a.slideTo(e-1,0),ek(),w(a.isBeginning),N(a.isEnd)},[Q,a,K,ed,et,ek]),e.useEffect(()=>{a?.wrapperEl&&(a.wrapperEl.style.transitionTimingFunction=p?.animationMode??"ease")},[a,p?.animationMode]),e.useEffect(()=>{if(a&&a.autoplay){let e="edit"===H?!!D&&p?.runPreview&&p?.autoplay:p?.autoplay;e?a.autoplay.start():a.autoplay.stop()}},[a,p?.autoplay,H,D,p?.runPreview]),e.useEffect(()=>{let e=e=>{if(u?.uid!==e?.detail.componentUid)return;let t=e?.detail.index||0;a?.slideToLoop(t)};return window.addEventListener("move-to-idx",e),()=>window.removeEventListener("move-to-idx",e)},[a,u?.uid]),e.useEffect(()=>{if(!a)return;let e=a.el;e?.classList?.remove("swiper-horizontal","swiper-vertical");let n=t.getResponsiveValueByScreen(p?.vertical,A)?"swiper-vertical":"swiper-horizontal";e?.classList?.add(n),a?.slides?.forEach(e=>{e.style.width="",e.style.height=""}),a?.update(),a?.wrapperEl&&a.width&&a.wrapperEl.style.setProperty("width",`${a.width}px`)},[A,p?.vertical,a,a?.params,c?.sizeSetting,C]),e.useEffect(()=>{if(!a||!m)return;let e=()=>{let e=a?.slides?.slice(0,i)||[],t=Number(em?.spaceBetween||0),n=e.reduce((e,t)=>e+t.offsetHeight,0)+t*(e.length-1),r=e.reduce((e,t)=>e+t.offsetWidth,0)+t*(e.length-1),s=a.params?.direction==="horizontal"?r>(a.width||0):n>(a.height||0);h(s)};return e(),a.on("resize",e),a.on("update",e),a.on("slidesLengthChange",e),a.on("orientationchange",e),()=>{a.off("resize",e),a.off("update",e),a.off("slidesLengthChange",e),a.off("orientationchange",e)}},[a]),{isInfinity:W,sliderSettings:em,totalSlideItem:M,currentSlide:O,localRef:z,isRenderDots:ec,isNavigationEnabled:X,isNavigationVisible:Y,isScrollToStart:V,isScrollToEnd:b,handleDotClick:(e,n)=>{let r=p?.sneakPeak?.[A]?e:n?e:en(e);if(n){if(i<eo){a?.slideTo(r);return}if(a?.realIndex===r)return;if(r===Number(a?.realIndex)+1||0===r&&a?.realIndex===i-1)return a?.slideNext();if(r===Number(a?.realIndex)-1||r===i-1&&a?.realIndex===0)return a?.slidePrev();let e=t.getResponsiveValueByScreen(p?.sneakPeak,A,!1)&&"center"===t.getResponsiveValueByScreen(p?.sneakPeakType,A)&&"number"==typeof t.getResponsiveValueByScreen(p?.itemNumber,A)&&Number(t.getResponsiveValueByScreen(p?.itemNumber,A))%2==0;e?a?.slideToLoopCenterSneakPeek(r):a?.slideToLoop(r)}else a?.slideTo(r);q.current=r},getItemsPerPage:ee,handleNextAndPrevSlide:e=>{"next"===e?a?.slideNext():a?.slidePrev(),g&&(l&&clearTimeout(l),l=setTimeout(()=>g&&g(),500))},dispatchEventSelectSlide:e=>{U({event:"gp:rollback:select-slide",selector:`[data-id="${u?.uid}"]`,element:f?.current}),U({event:"gp:select-slide",selector:`[data-id="${u?.uid}"]`,data:e,element:f?.current})},getNumberOfFullWidthShow:_,shouldDuplicateSlides:eg,isHideNavigation:Q,sneakPeak:ey,swiperIsBeginning:P,swiperIsEnd:T,handleSwiperReset:ev}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DEVICES as e,getResponsiveValueByScreen as t}from"@gem-sdk/core";let r=e=>{let{hiddenWhenOnlyOne:t,slideDuplicated:r}=e;return{checkHidden:e=>t&&e?.length<2,getDotItems:t=>{let{enabledSneakPeak:l,totalSlideItem:
|
|
1
|
+
import{DEVICES as e,getResponsiveValueByScreen as t}from"@gem-sdk/core";let r=e=>{let{hiddenWhenOnlyOne:t,slideDuplicated:r}=e;return{checkHidden:e=>t&&e?.length<2,getDotItems:t=>{let{enabledSneakPeak:l,totalSlideItem:n=0,numberOfFullWidthShow:o=0,slideItemsPerPage:a=0}=e;return Array.from({length:t?r?n/2:n:l?Math.min(n-o+1,n):Math.ceil(n/a)},(e,t)=>t)}}},l=(r,l)=>{let n={};return e.forEach(e=>{let o=t(r,e),a=t(l,e);n={...n,[e]:o?a:"none"}}),n};export{r as getData,l as getUpdatedDotStyle};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsx as e,jsxs as r,Fragment as o}from"react/jsx-runtime";import{forwardRef as t,Children as i,useState as n,useRef as l,useMemo as s,useCallback as a,isValidElement as d,cloneElement as p,createElement as m}from"react";import{filterToolbarPreview as c,useCurrentDevice as u,isEmptyChildren as S}from"@gem-sdk/core";import{mappingNavigationCarousel as h}from"../arrow/common/helpers.js";import{useCarousel as k}from"../../hooks/useCarousel.js";import{getData as v}from"./common/helpers.js";import{getClass as y}from"./common/classes.js";import{getStyle as
|
|
2
|
+
import{jsx as e,jsxs as r,Fragment as o}from"react/jsx-runtime";import{forwardRef as t,Children as i,useState as n,useRef as l,useMemo as s,useCallback as a,isValidElement as d,cloneElement as p,createElement as m}from"react";import{filterToolbarPreview as c,useCurrentDevice as u,isEmptyChildren as S}from"@gem-sdk/core";import{mappingNavigationCarousel as h}from"../arrow/common/helpers.js";import{useCarousel as k}from"../../hooks/useCarousel.js";import{getData as v}from"./common/helpers.js";import{getClass as y}from"./common/classes.js";import{getStyle as w}from"./common/styles.js";import{getAttr as C}from"./common/attrs.js";import f from"../arrow/Arrow.js";import g from"../dot/Dots.js";import{Swiper as j}from"../swiper/Swiper.js";import"@gem-sdk/system";let O=t((t,O)=>{let{children:P,builderAttrs:b,builderProps:A,styles:I,isHiddenArrowWhenDisabled:x=!0,hiddenDotWhenOnlyOne:z,elmRef:N,isEnableCheckHasScrollableContent:T,onSwiperReady:D}=t,W=h(t.setting),$={...t,setting:W},B=i.count(c(P))??0,[H,E]=n(null),{arrowButtonSize:G,arrowBackgroundColor:R,arrowGapToEachSide:F="16",roundedArrow:J,arrowIconSize:K,arrowCustomColor:U,arrowBorder:q,arrowShadow:L,showWhenHover:M}=W??{},Q=l({prevOrder:"",prevContent:"",version:0}),V=s(()=>{let e=W?.childItem||[],r=e.join("|"),o=[...e].sort().join("|"),t=Q.current;return t.prevOrder&&t.prevContent&&o===t.prevContent&&r!==t.prevOrder&&t.version++,t.prevOrder=r,t.prevContent=o,`reorder-${t.version}`},[W?.childItem]),{isInfinity:X,localRef:Y,sliderSettings:Z,sneakPeak:_,totalSlideItem:ee,currentSlide:er,isRenderDots:eo,isNavigationEnabled:et,isNavigationVisible:ei,isScrollToStart:en,isScrollToEnd:el,handleDotClick:es,getItemsPerPage:ea,handleNextAndPrevSlide:ed,dispatchEventSelectSlide:ep,getNumberOfFullWidthShow:em,shouldDuplicateSlides:ec,swiperIsBeginning:eu,swiperIsEnd:eS,handleSwiperReset:eh}=k($,O,H,B),{loopConfig:ek,arrowShowConfig:ev}=v($),{rootClassRender:ey,wrapperClassRender:ew,wrapperInnerClass:eC,sliderClass:ef}=y($),{rootStyleRender:eg,wrapperStyleRender:ej,wrapperInnerStyle:eO}=w($),{rootAttrRender:eP,sliderAttr:eb}=C($),eA=u(),eI=W?.sneakPeak?.[eA],ex=(r,o)=>{let i="next"===r;return!o||B<=1?null:e(f,{uid:A?.uid,custom:W?.arrowCustom??"",showArrow:ev,arrowButtonSize:G||{},arrowIconSize:K||{},arrowBackgroundColor:R||"",arrowCustomColor:U,gapToEachSize:F,showWhenHover:M,arrowBorder:q||{},arrowCorner:J||{},arrowShadow:L||{},onClick:e=>{e.stopPropagation(),ed(r)},left:!i,disabled:!ei||!X&&(i?T?el:eS:T?en:eu),vertical:W?.vertical,isHiddenWhenDisabled:x,rootId:t?.parentClass})},ez=a(e=>{E(e),D?.(e)},[]),eN=i.toArray(c(P)).filter(d),eT=ec(B),eD=eT?2*B:B,eW=s(()=>{if(!eT)return eN;let e=eN.map((e,r)=>{if(!d(e))return e;let o=e.key,t=o?`${o}-duplicate-${r}`:`duplicate-${r}`;return p(e,{...e.props||{},key:t})});return[...eN,...e]},[eT,eN]),e$=s(()=>{let e=i.toArray(P),r=e[0];return d(r)?r.key:""},[P]),eB=JSON.stringify(Z.autoplay),eH=s(()=>{let e=[B,V,eW.length,e$,Z.dir,Z.loop,Z.direction,Z.isSneakPeekCenter,_,eB];return e.join("-")},[B,V,eW.length,e$,Z.dir,Z.loop,Z.direction,Z.isSneakPeekCenter,_,eB]);return e("div",{ref:N,...eP,className:ey,style:eg,children:r("div",{ref:Y,...b,className:ew,style:ej,children:[r("div",{className:eC,style:eO,children:[ex("prev",et),m(j,{...eb,...Z,sliderClass:ef,thumbsSwiper:t?.thumbsSwiper,onSwiperReady:ez,totalSlides:ee,key:eH,sliderOrder:V,onSwiperReset:eh},S(P)?e("div",{children:"No Slider"}):e(o,{children:eW.map((e,r)=>{if(!d(e))return null;let o=e.props??{};return m(e.type,{...o,key:e.key,indexKey:r.toString(),parentSettings:W,parentStyle:I,background:W?.background,parentUid:A?.uid,dispatchEventSelectSlide:ep})})})),ex("next",et)]}),eo&&e(g,{dotStyle:W?.dotStyle,dotGapToCarousel:W?.dotGapToCarousel,vertical:W?.vertical,showDots:W?.dot,slideItemsPerPage:ea(),enabledSneakPeak:eI,dotColor:W?.dotColor,dotActiveColor:W?.dotActiveColor,dotSize:W?.dotSize,sneakPeakType:W?.sneakPeakType,totalSlideItem:eD,hiddenWhenOnlyOne:z,currentSlide:er,loop:ek,numberOfFullWidthShow:em(eA),onHandleClick:es,slideDuplicated:eT}),c(P,!0)]})})});export{O as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useRef as r,useMemo as t,useCallback as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useRef as r,useMemo as t,useCallback as n,useEffect as i}from"react";import{getStyleSwiperContainer as s}from"./common/styles.js";import{register as l}from"@gem-sdk/swiper/element/bundle";function u(l){let u=r(null),c=r(null),{children:p,totalSlides:o,onSwiperReset:m,onSwiperReady:a,sliderClass:w,sliderOrder:d,thumbsSwiper:f,...y}=l,b=t(()=>f?{"thumbs-swiper":f}:{},[f]),h=s(),z=(e,r)=>{if(!e?.wrapperEl)return!1;let t=e.el,n=r||e.width||t?.clientWidth||t?.parentElement?.clientWidth||0;return!(n<=0)&&(e.wrapperEl.style.setProperty("width",`${n}px`),!0)},O=n(({width:e}={})=>{!z(u.current?.swiper,e)&&"undefined"!=typeof window&&u.current&&(c.current&&cancelAnimationFrame(c.current),c.current=window.requestAnimationFrame(()=>{c.current=null,z(u.current?.swiper,e)}))},[]);return i(()=>{let e;let r=u.current;if(!r)return;Object.assign(r,y),r.initialize?.(),a?.(r.swiper),O(),r.swiper?.on?.("resize",O);let t=r.parentElement;return t&&"undefined"!=typeof ResizeObserver&&(e=new ResizeObserver(()=>{let e=u.current?.swiper;e&&!(e.width>0)&&(O(),e.update?.())})).observe(t),()=>{r.swiper?.off?.("resize",O),e?.disconnect(),m(),c.current&&(cancelAnimationFrame(c.current),c.current=null)}},[]),i(()=>{let e=u.current,r=e?.swiper;e&&r&&!r.destroyed&&(Object.assign(e,y),r.update(),O())},[JSON.stringify(y)]),i(()=>{m()},[d,m]),e("swiper-container",{init:!1,ref:u,class:w,style:{...h},...b,children:p})}l();export{u as Swiper};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useState as e,useRef as t,useMemo as r,useCallback as n,useImperativeHandle as
|
|
1
|
+
import{useState as e,useRef as t,useMemo as r,useCallback as n,useImperativeHandle as i,useEffect as a}from"react";import{useCurrentDevice as l,useEditorMode as s,useInteraction as o,getResponsiveValueByScreen as u,DEVICES as d}from"@gem-sdk/core";import p from"./useTrackPreviewPause.js";let m=(m,f,c,k)=>{let h;let{builderProps:P,moveToIdx:y,styles:b,setting:g,isHiddenArrowWhenDisabled:w=!0,elmRef:T,isEnableCheckHasScrollableContent:v,isDisableResetSlide:N,onClickArrow:x,onHandleChangeSlideByInteraction:S,onChangeActive:E}=m,[C,O]=e(!0),[M,L]=e(!0),[I,z]=e(!1),[B,V]=e(!0),[A,D]=e(!1),{loop:$,navigationEnable:j={desktop:!0},navigationStyle:F}=g??{},[H,R]=e(k),[q,U]=e(g?.defaultCurrentSlider??0),{isFirstPreviewClicked:W}=p(g?.runPreview),G=t(),J=t(y??0),K=l(),Q=s(),{onListener:X,saveToElementInteractionData:Y,getInteractionPreviousData:Z,trigger:_}=o(),ee=r(()=>u($,K,!1),[$,K]),et=n(()=>{if(!g?.slidesToShow)return null;let e={};return d.forEach(t=>{let r=u(g?.slidesToShow,t);e[t]=r?"auto"===r?4:Math.floor(r):0}),e},[g?.slidesToShow]),er=n(()=>{if(!g?.slidesToShow)return null;let e={};return d.forEach(t=>{let r=u(g?.slidesToShow,t);e[t]=r?"auto"===r?4:r:0}),e},[g?.slidesToShow]),en=r(()=>{let e=er();if(e)return e;let t={};return d.forEach(e=>{let r=u(g?.sneakPeak,e),n=r?"center"===u(g?.sneakPeakType,e)?u(g?.sneakPeakOffsetCenter,e)??0:u(g?.sneakPeakOffsetForward,e)??0:0,i="center"===u(g?.sneakPeakType,e)?-2:-1,a=u(g?.itemNumber,e);t[e]="number"==typeof a?a+n/100*i:"auto"}),t},[er,g?.itemNumber,g?.sneakPeak,g?.sneakPeakOffsetCenter,g?.sneakPeakOffsetForward,g?.sneakPeakType]),ei=r(()=>{let e=u(en,K),t=u($,K,!1);return t&&Number(e??0)>k||!t&&Number(e??0)>=k},[en,K,$,k]),ea=r(()=>{let e=u(j,K),t=u(F,K);return e&&"none"!==t},[j,K,F]),el=r(()=>!!c&&C&&!ei,[c,C,ei]),es=r(()=>{let e=et();return e||g?.itemNumber},[et,g?.itemNumber]),eo=n(e=>{let t="center"===u(g?.sneakPeakType,e)?2:1;return"number"==typeof u(es,e,4)?u(es,e,4)-t:void 0},[g?.sneakPeakType,es]),eu=()=>{let e="auto"===u(en,K,1)?1:u(en,K,1);return e??1},ed=n(()=>{let e=u(en,K,1),t=eo(K)??1,r=u(g?.sneakPeak,K,!1);return Array.from({length:Math.max(ee?k:r?Math.min(k-t+1,k):"auto"===e?0:Math.ceil(k/Number(e)),0)},(e,t)=>t)},[k,en,K,eo,g?.sneakPeak,ee]),ep=e=>{let t=e*eu();return t>=H-eu()&&(t=H-eu()),t},em=e=>{let t="edit"===Q?{[e]:!1}:g?.enableDrag;return u(t,e)};i(f,()=>({nextSlideInteraction:ek,previousSlideInteraction:eh,moveToSlideInteraction:eP,getSwiper:()=>c}));let ef=e=>{c?.slideTo(e),S&&S(e)},ec=(e,t)=>{let{key:r,data:n,isRollback:i,element:a}=e,l=Math.max(c?.activeIndex??0,0);if(i&&void 0===n)return;if(i){if("specific"===t){let{previousData:e}=Z(a,r);ef(Number(e))}else ef("next"===t?l-1:l+1);return}let s="specific"===t?Math.max(J.current,0):l;Y(a,r,s.toString());let o="specific"===t?Number(n):"next"===t?l+1:l-1;ef(o)},ek=e=>{ec(e,"next")},eh=e=>{ec(e,"previous")},eP=e=>{ec(e,"specific")},ey=eu(),eb=r(()=>!!H&&c&&u(g?.dot,K)&&!ei&&k>1,[H,c,g?.dot,K,ei,k]),eg=u(g?.vertical,K,!1)?"vertical":"horizontal",ew=r(()=>u(g?.sneakPeak,K,!1)&&"center"===u(g?.sneakPeakType,K)&&"number"==typeof u(g?.itemNumber,K)&&Number(u(g?.itemNumber,K))>1,[g?.sneakPeak,g?.sneakPeakType,g?.itemNumber,K]),eT=e=>{let{swiperWidth:t,slidesPerView:r,itemNumberByDevice:n,centeredSlides:i}=e;if(!i||!n)return 0;let a=t/r,l=(Number(n)-2)/2-1;return-(a/2+l*a)},ev=r(()=>{let e=u($,K,!1),t=c?.width??0,r={0:"mobile",768:"tablet",1025:"desktop"},n=Number(Object.entries(r).find(([,e])=>e===K)?.[0]??1025),i=Object.entries(r).reduce((e,[r,n])=>{if(!e)return;let i=Number(r),a=u(g?.sneakPeak,n,!1),l=a&&"center"===u(g?.sneakPeakType,n),s=u(g?.itemNumber,n),o=em(n),d=eT({swiperWidth:t,slidesPerView:ey,itemNumberByDevice:s,centeredSlides:l}),p=g?.initialSlide||y||0;return e[i]={allowTouchMove:o,slidesOffsetBefore:d,slidesOffsetAfter:d,initialSlide:p,centeredSlides:l},e},{}),a=u(g?.sneakPeak,K,!1)&&"center"===u(g?.sneakPeakType,K)&&"number"==typeof u(g?.itemNumber,K)&&Number(u(g?.itemNumber,K))>1;return{speed:b?.playSpeed??500,dir:g?.rtl?"rtl":"ltr",spaceBetween:u(b?.spacing,K)||0,loop:e,slidesPerView:"auto"===u(en,K,1)?"auto":ey,direction:eg,breakpoints:i,isSneakPeekCenter:a,slidesOffsetBefore:i?.[n]?.slidesOffsetBefore,thumbs:{slideThumbActiveClass:"gem-slider-item-active"},loopPreventsSliding:!1,touchStartPreventDefault:!1,autoplay:!!g?.autoplay&&{delay:(g?.autoplayTimeout??1)*1e3,pauseOnMouseEnter:g?.pauseOnHover,stopOnLastSlide:!e}}},[g?.autoplay,b?.playSpeed,g?.rtl,b?.spacing,K,$,ey,g?.sneakPeakType,g?.pauseOnHover,g?.autoplayTimeout,c?.width,H]),eN=u(g?.sneakPeak,K),ex=n(e=>{let t=c&&c.params?.slidesPerView,r=t?c?.slidesPerViewDynamic():1;if(e<=1)return!1;let n="auto"===ev.slidesPerView?r:ev.slidesPerView;if(!ee||e<Number(n)||!C)return!1;let i=u(g?.sneakPeak,K,!1),a=i&&"center"===u(g?.sneakPeakType,K),l=Number.isNaN(Number(n))?1:Math.ceil(Number(n));a&&l%2==0&&(l+=1);let s=a?Math.max(1,Math.ceil(l/2)):1;return e<l+s},[c,ev.slidesPerView,ee,C,g?.sneakPeak,g?.sneakPeakType,K]);a(()=>{let e=`[data-id="${P?.uid}"]`;X({event:"gp:change-next-slide",selector:e,elementRef:G},e=>{let{data:t,isRollback:r,uniqueStorageKey:n}=e||{};ek({element:G.current,data:t,isRollback:r,key:n})}),X({event:"gp:change-previous-slide",selector:e,elementRef:G},e=>{let{data:t,isRollback:r,uniqueStorageKey:n}=e||{};eh({element:G.current,data:t,isRollback:r,key:n})}),X({event:"gp:change-image-step",selector:e,elementRef:G},e=>{let{data:t,isRollback:r,uniqueStorageKey:n}=e||{};eP({element:G.current,data:t,isRollback:r,key:n})}),X({event:"gp:change-index-slide",selector:e},t=>{let r=document.querySelector(e),{data:n,isRollback:i,uniqueStorageKey:a}=t||{};eP({element:r,data:n,isRollback:i,key:a})})},[]),a(()=>{R(k)},[k]);let eS=n(()=>{N||(U(0),L(!0),z(!1),V(!0),D(!1))},[N]);a(()=>{if("number"==typeof y){if(J.current=y,c?.params?.loop){c?.slideToLoop(y);return}c?.slideTo(y)}},[c,y,w]);let eE=n(()=>{let e=u(g?.loop,K,!1);if(!c||!ew||e)return;let t=ed().length;if(!t)return;let r=c.snapIndex>=t-1;c.isEnd=r,c.allowSlideNext=!r},[c,g?.loop,K,ew,ed]);return a(()=>{if(!c)return;let e=()=>{R(c.slides.length),eE(),V(c.isBeginning),D(c.isEnd)},t=()=>{E&&E(c.realIndex)},r=()=>{U(c.realIndex),L(c?.translate===0),z(c?.translate<=c?.maxTranslate())};return c.on("transitionEnd",r),c.on("slideChange",e),c.on("slideChangeTransitionStart",t),()=>{c?.off("slideChange",e),c?.off("slideChangeTransitionStart",t),c?.off("transitionEnd",r)}},[ev.loop,c,eE]),a(()=>{if(!c)return;let e=ew?ed().length:0;e>0&&c.snapIndex>=e&&c.slideTo(e-1,0),eE(),V(c.isBeginning),D(c.isEnd)},[ei,c,en,ew,ed,eE]),a(()=>{c?.wrapperEl&&(c.wrapperEl.style.transitionTimingFunction=g?.animationMode??"ease")},[c,g?.animationMode]),a(()=>{if(c&&c.autoplay){let e="edit"===Q?!!W&&g?.runPreview&&g?.autoplay:g?.autoplay;e?c.autoplay.start():c.autoplay.stop()}},[c,g?.autoplay,Q,W,g?.runPreview]),a(()=>{let e=e=>{if(P?.uid!==e?.detail.componentUid)return;let t=e?.detail.index||0;c?.slideToLoop(t)};return window.addEventListener("move-to-idx",e),()=>window.removeEventListener("move-to-idx",e)},[c,P?.uid]),a(()=>{if(!c)return;let e=c.el;e?.classList?.remove("swiper-horizontal","swiper-vertical");let t=u(g?.vertical,K)?"swiper-vertical":"swiper-horizontal";e?.classList?.add(t),c?.slides?.forEach(e=>{e.style.width="",e.style.height=""}),c?.update(),c?.wrapperEl&&c.width&&c.wrapperEl.style.setProperty("width",`${c.width}px`)},[K,g?.vertical,c,c?.params,b?.sizeSetting,F]),a(()=>{if(!c||!v)return;let e=()=>{let e=c?.slides?.slice(0,k)||[],t=Number(ev?.spaceBetween||0),r=e.reduce((e,t)=>e+t.offsetHeight,0)+t*(e.length-1),n=e.reduce((e,t)=>e+t.offsetWidth,0)+t*(e.length-1),i=c.params?.direction==="horizontal"?n>(c.width||0):r>(c.height||0);O(i)};return e(),c.on("resize",e),c.on("update",e),c.on("slidesLengthChange",e),c.on("orientationchange",e),()=>{c.off("resize",e),c.off("update",e),c.off("slidesLengthChange",e),c.off("orientationchange",e)}},[c]),{isInfinity:ee,sliderSettings:ev,totalSlideItem:H,currentSlide:q,localRef:G,isRenderDots:eb,isNavigationEnabled:ea,isNavigationVisible:el,isScrollToStart:M,isScrollToEnd:I,handleDotClick:(e,t)=>{let r=g?.sneakPeak?.[K]?e:t?e:ep(e);if(t){if(k<ey){c?.slideTo(r);return}if(c?.realIndex===r)return;if(r===Number(c?.realIndex)+1||0===r&&c?.realIndex===k-1)return c?.slideNext();if(r===Number(c?.realIndex)-1||r===k-1&&c?.realIndex===0)return c?.slidePrev();let e=u(g?.sneakPeak,K,!1)&&"center"===u(g?.sneakPeakType,K)&&"number"==typeof u(g?.itemNumber,K)&&Number(u(g?.itemNumber,K))%2==0;e?c?.slideToLoopCenterSneakPeek(r):c?.slideToLoop(r)}else c?.slideTo(r);J.current=r},getItemsPerPage:eu,handleNextAndPrevSlide:e=>{"next"===e?c?.slideNext():c?.slidePrev(),x&&(h&&clearTimeout(h),h=setTimeout(()=>x&&x(),500))},dispatchEventSelectSlide:e=>{_({event:"gp:rollback:select-slide",selector:`[data-id="${P?.uid}"]`,element:T?.current}),_({event:"gp:select-slide",selector:`[data-id="${P?.uid}"]`,data:e,element:T?.current})},getNumberOfFullWidthShow:eo,shouldDuplicateSlides:ex,isHideNavigation:ei,sneakPeak:eN,swiperIsBeginning:B,swiperIsEnd:A,handleSwiperReset:eS}};export{m as useCarousel};
|