@gem-sdk/components 10.0.0 → 10.0.1

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.
@@ -1 +1 @@
1
- "use strict";var React=require("react"),core=require("@gem-sdk/core"),useTrackPreviewPause=require("./useTrackPreviewPause.js");const useCarousel=(e,t,r,s)=>{let a;let{builderProps:n,moveToIdx:i,styles:o,setting:l,isHiddenArrowWhenDisabled:u=!0,elmRef:c,isEnableCheckHasScrollableContent:d,onClickArrow:p,onHandleChangeSlideByInteraction:f,onChangeActive:m}=e,[v,y]=React.useState(!0),[g,R]=React.useState(!0),[S,k]=React.useState(!1),{loop:h,navigationEnable:V={desktop:!0},navigationStyle:P}=l??{},[b,B]=React.useState(s),[w,T]=React.useState(l?.defaultCurrentSlider??0),{isFirstPreviewClicked:E}=useTrackPreviewPause.default(l?.runPreview),N=React.useRef(),x=React.useRef(i??0),C=core.useCurrentDevice(),M=core.useEditorMode(),{onListener:O,saveToElementInteractionData:I,getInteractionPreviousData:L,trigger:z}=core.useInteraction(),D=React.useMemo(()=>core.getResponsiveValueByScreen(h,C,!1),[h,C]),q=React.useCallback(()=>{if(!l?.slidesToShow)return null;let e={};return core.DEVICES.forEach(t=>{let r=core.getResponsiveValueByScreen(l?.slidesToShow,t);e[t]=r?"auto"===r?4:Math.floor(r):0}),e},[l?.slidesToShow]),H=React.useCallback(()=>{if(!l?.slidesToShow)return null;let e={};return core.DEVICES.forEach(t=>{let r=core.getResponsiveValueByScreen(l?.slidesToShow,t);e[t]=r?"auto"===r?4:r:0}),e},[l?.slidesToShow]),j=React.useMemo(()=>{let e=H();if(e)return e;let t={};return core.DEVICES.forEach(e=>{let r=core.getResponsiveValueByScreen(l?.sneakPeak,e),s=r?"center"===core.getResponsiveValueByScreen(l?.sneakPeakType,e)?core.getResponsiveValueByScreen(l?.sneakPeakOffsetCenter,e)??0:core.getResponsiveValueByScreen(l?.sneakPeakOffsetForward,e)??0:0,a="center"===core.getResponsiveValueByScreen(l?.sneakPeakType,e)?-2:-1,n=core.getResponsiveValueByScreen(l?.itemNumber,e);t[e]="number"==typeof n?n+s/100*a:"auto"}),t},[H,l?.itemNumber,l?.sneakPeak,l?.sneakPeakOffsetCenter,l?.sneakPeakOffsetForward,l?.sneakPeakType]),F=React.useMemo(()=>{let e=core.getResponsiveValueByScreen(j,C),t=core.getResponsiveValueByScreen(h,C,!1);return t&&Number(e??0)>s||!t&&Number(e??0)>=s},[j,C,h,s]),$=React.useMemo(()=>{let e=core.getResponsiveValueByScreen(V,C),t=core.getResponsiveValueByScreen(P,C);return r&&e&&"none"!==t&&v&&!F},[V,C,P,r,v,F]),A=React.useMemo(()=>{let e=q();return e||l?.itemNumber},[q,l?.itemNumber]),U=React.useCallback(e=>{let t="center"===core.getResponsiveValueByScreen(l?.sneakPeakType,e)?2:1;return"number"==typeof core.getResponsiveValueByScreen(A,e,4)?core.getResponsiveValueByScreen(A,e,4)-t:void 0},[l?.sneakPeakType,A]),W=()=>{let e="auto"===core.getResponsiveValueByScreen(j,C,1)?1:core.getResponsiveValueByScreen(j,C,1);return e??1},G=e=>{let t=e*W();return t>=b-W()&&(t=b-W()),t},J=e=>{let t="edit"===M?{[e]:!1}:l?.enableDrag;return core.getResponsiveValueByScreen(t,e)},K=(e,t)=>{let a=l?.sneakPeak?.[C]?e:t?e:G(e);if(t){if(s<et){r?.slideTo(a);return}if(r?.realIndex===a)return;if(a===Number(r?.realIndex)+1||0===a&&r?.realIndex===s-1)return r?.slideNext();if(a===Number(r?.realIndex)-1||a===s-1&&r?.realIndex===0)return r?.slidePrev();let e="center"===core.getResponsiveValueByScreen(l?.sneakPeakType,C)&&"number"==typeof core.getResponsiveValueByScreen(l?.itemNumber,C)&&Number(core.getResponsiveValueByScreen(l?.itemNumber,C))%2==0;e?r?.slideToLoopCenterSneakPeek(a):r?.slideToLoop(a)}else r?.slideTo(a);x.current=a};React.useImperativeHandle(t,()=>({nextSlideInteraction:Z,previousSlideInteraction:_,moveToSlideInteraction:ee,getSwiper:()=>r}));let Q=e=>{z({event:"gp:rollback:select-slide",selector:`[data-id="${n?.uid}"]`,element:c?.current}),z({event:"gp:select-slide",selector:`[data-id="${n?.uid}"]`,data:e,element:c?.current})},X=e=>{r?.slideTo(e),f&&f(e)},Y=(e,t)=>{let{key:s,data:a,isRollback:n,element:i}=e,o=Math.max(r?.activeIndex??0,0);if(n&&void 0===a)return;if(n){if("specific"===t){let{previousData:e}=L(i,s);X(Number(e))}else{let e="next"===t?o-1:o+1;X(e)}return}let l="specific"===t?Math.max(x.current,0):o;I(i,s,l.toString());let u="specific"===t?Number(a):"next"===t?o+1:o-1;X(u)},Z=e=>{Y(e,"next")},_=e=>{Y(e,"previous")},ee=e=>{Y(e,"specific")},et=W(),er=React.useMemo(()=>!!b&&r&&core.getResponsiveValueByScreen(l?.dot,C)&&!F&&s>1,[b,r,l?.dot,C,F,s]),es=core.getResponsiveValueByScreen(l?.vertical,C,!1)?"vertical":"horizontal",ea=React.useMemo(()=>{let e=core.getResponsiveValueByScreen(h,C,!1),t=r?.width??0,s={0:"mobile",768:"tablet",1025:"desktop"},a=Number(Object.entries(s).find(([,e])=>e===C)?.[0]??1025),n=Object.entries(s).reduce((r,[s,a])=>{if(!r)return;let n=Number(s),o=core.getResponsiveValueByScreen(l?.sneakPeak,a,!1),u=o&&"center"===core.getResponsiveValueByScreen(l?.sneakPeakType,a),c=core.getResponsiveValueByScreen(l?.itemNumber,a),d=u&&"number"==typeof c,p=J(a),f=d?(t-t/et*(c-2))/2:0,m=d&&e?b:l?.initialSlide||i||0,v={allowTouchMove:p,slidesOffsetBefore:f,slidesOffsetAfter:f,initialSlide:m};return r[n]=v,r},{}),u="center"===core.getResponsiveValueByScreen(l?.sneakPeakType,C)&&"number"==typeof core.getResponsiveValueByScreen(l?.itemNumber,C);return{speed:o?.playSpeed??500,dir:l?.rtl?"rtl":"ltr",spaceBetween:core.getResponsiveValueByScreen(o?.spacing,C)||0,loop:e,slidesPerView:"auto"===core.getResponsiveValueByScreen(j,C,1)?"auto":et,direction:es,breakpoints:n,isSneakPeekCenter:u,slidesOffsetBefore:n?.[a]?.slidesOffsetBefore,thumbs:{slideThumbActiveClass:"gem-slider-item-active"},loopPreventsSliding:!1,autoplay:{delay:(l?.autoplayTimeout??1)*1e3,pauseOnMouseEnter:l?.pauseOnHover,stopOnLastSlide:!e}}},[o?.playSpeed,l?.rtl,o?.spacing,C,h,et,l?.sneakPeakType,l?.pauseOnHover,l?.autoplayTimeout,r?.width,b]),en=React.useCallback(e=>{let t=r&&r.params?.slidesPerView,s=t?r?.slidesPerViewDynamic():1;if(e<=1)return!1;let a="auto"===ea.slidesPerView?s:ea.slidesPerView;if(!D||e<Number(a)||!v)return!1;let n=core.getResponsiveValueByScreen(l?.sneakPeak,C,!1),i=n&&"center"===core.getResponsiveValueByScreen(l?.sneakPeakType,C),o=Number.isNaN(Number(a))?1:Math.ceil(Number(a));i&&o%2==0&&(o+=1);let u=i?Math.max(1,Math.ceil(o/2)):1;return e<o+u},[r,ea.slidesPerView,D,v,l?.sneakPeak,l?.sneakPeakType,C]);React.useEffect(()=>{let e=`[data-id="${n?.uid}"]`;O({event:"gp:change-next-slide",selector:e,elementRef:N},e=>{let{data:t,isRollback:r,uniqueStorageKey:s}=e||{};Z({element:N.current,data:t,isRollback:r,key:s})}),O({event:"gp:change-previous-slide",selector:e,elementRef:N},e=>{let{data:t,isRollback:r,uniqueStorageKey:s}=e||{};_({element:N.current,data:t,isRollback:r,key:s})}),O({event:"gp:change-image-step",selector:e,elementRef:N},e=>{let{data:t,isRollback:r,uniqueStorageKey:s}=e||{};ee({element:N.current,data:t,isRollback:r,key:s})}),O({event:"gp:change-index-slide",selector:e},t=>{let r=document.querySelector(e),{data:s,isRollback:a,uniqueStorageKey:n}=t||{};ee({element:r,data:s,isRollback:a,key:n})})},[]),React.useEffect(()=>{B(s)},[s]);let ei=e=>{"next"===e?r?.slideNext():r?.slidePrev(),p&&(a&&clearTimeout(a),a=setTimeout(()=>p&&p(),500))};return React.useEffect(()=>{if("number"==typeof i){if(x.current=i,r?.params?.loop){r?.slideToLoop(i);return}r?.slideTo(i)}},[r,i,u]),React.useEffect(()=>{if(!r)return;let e=()=>{B(r.slides.length)},t=()=>{m&&m(r.realIndex)},s=()=>{T(r.realIndex),R(r?.translate===0),k(r?.translate<=r?.maxTranslate())};return r.on("transitionEnd",s),r.on("slideChange",e),r.on("slideChangeTransitionStart",t),()=>{r?.off("slideChange",e),r?.off("slideChangeTransitionStart",t),r?.off("transitionEnd",s)}},[ea.loop,r]),React.useEffect(()=>{r?.wrapperEl&&(r.wrapperEl.style.transitionTimingFunction=l?.animationMode??"ease")},[r,l?.animationMode]),React.useEffect(()=>{if(r&&r.autoplay){let e="edit"===M?!!E&&l?.runPreview&&l?.autoplay:l?.autoplay;e?r.autoplay.start():r.autoplay.stop()}},[r,l?.autoplay,M,E,l?.runPreview]),React.useEffect(()=>{let e=e=>{if(n?.uid!==e?.detail.componentUid)return;let t=e?.detail.index||0;r?.slideToLoop(t)};return window.addEventListener("move-to-idx",e),()=>window.removeEventListener("move-to-idx",e)},[r,n?.uid]),React.useEffect(()=>{if(!r)return;let e=r.el;e?.classList?.remove("swiper-horizontal","swiper-vertical");let t=core.getResponsiveValueByScreen(l?.vertical,C)?"swiper-vertical":"swiper-horizontal";e?.classList?.add(t),r?.slides?.forEach(e=>{e.style.width="",e.style.height=""}),r?.update()},[C,l?.vertical,r,r?.params]),React.useEffect(()=>{if(!r||!d)return;let e=()=>{let e=r?.slides?.slice(0,s)||[],t=Number(ea?.spaceBetween||0),a=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=r.params?.direction==="horizontal"?n>(r.width||0):a>(r.height||0);y(i)};return e(),r.on("resize",e),r.on("update",e),r.on("slidesLengthChange",e),r.on("orientationchange",e),()=>{r.off("resize",e),r.off("update",e),r.off("slidesLengthChange",e),r.off("orientationchange",e)}},[r]),{isInfinity:D,sliderSettings:ea,totalSlideItem:b,currentSlide:w,localRef:N,isRenderDots:er,showNavigation:$,isScrollToStart:g,isScrollToEnd:S,handleDotClick:K,getItemsPerPage:W,handleNextAndPrevSlide:ei,dispatchEventSelectSlide:Q,getNumberOfFullWidthShow:U,setCurrentSlide:T,shouldDuplicateSlides:en,setIsScrollToStart:R,setIsScrollToEnd:k,isHideNavigation:F}};exports.useCarousel=useCarousel;
1
+ "use strict";var React=require("react"),core=require("@gem-sdk/core"),useTrackPreviewPause=require("./useTrackPreviewPause.js");const useCarousel=(e,t,r,s)=>{let a;let{builderProps:n,moveToIdx:i,styles:o,setting:l,isHiddenArrowWhenDisabled:u=!0,elmRef:c,isEnableCheckHasScrollableContent:d,onClickArrow:p,onHandleChangeSlideByInteraction:f,onChangeActive:m}=e,[v,y]=React.useState(!0),[g,R]=React.useState(!0),[S,k]=React.useState(!1),{loop:h,navigationEnable:V={desktop:!0},navigationStyle:b}=l??{},[B,P]=React.useState(s),[w,T]=React.useState(l?.defaultCurrentSlider??0),{isFirstPreviewClicked:N}=useTrackPreviewPause.default(l?.runPreview),E=React.useRef(),x=React.useRef(i??0),C=core.useCurrentDevice(),M=core.useEditorMode(),{onListener:O,saveToElementInteractionData:I,getInteractionPreviousData:L,trigger:z}=core.useInteraction(),D=React.useMemo(()=>core.getResponsiveValueByScreen(h,C,!1),[h,C]),q=React.useCallback(()=>{if(!l?.slidesToShow)return null;let e={};return core.DEVICES.forEach(t=>{let r=core.getResponsiveValueByScreen(l?.slidesToShow,t);e[t]=r?"auto"===r?4:Math.floor(r):0}),e},[l?.slidesToShow]),H=React.useCallback(()=>{if(!l?.slidesToShow)return null;let e={};return core.DEVICES.forEach(t=>{let r=core.getResponsiveValueByScreen(l?.slidesToShow,t);e[t]=r?"auto"===r?4:r:0}),e},[l?.slidesToShow]),j=React.useMemo(()=>{let e=H();if(e)return e;let t={};return core.DEVICES.forEach(e=>{let r=core.getResponsiveValueByScreen(l?.sneakPeak,e),s=r?"center"===core.getResponsiveValueByScreen(l?.sneakPeakType,e)?core.getResponsiveValueByScreen(l?.sneakPeakOffsetCenter,e)??0:core.getResponsiveValueByScreen(l?.sneakPeakOffsetForward,e)??0:0,a="center"===core.getResponsiveValueByScreen(l?.sneakPeakType,e)?-2:-1,n=core.getResponsiveValueByScreen(l?.itemNumber,e);t[e]="number"==typeof n?n+s/100*a:"auto"}),t},[H,l?.itemNumber,l?.sneakPeak,l?.sneakPeakOffsetCenter,l?.sneakPeakOffsetForward,l?.sneakPeakType]),F=React.useMemo(()=>{let e=core.getResponsiveValueByScreen(j,C),t=core.getResponsiveValueByScreen(h,C,!1);return t&&Number(e??0)>s||!t&&Number(e??0)>=s},[j,C,h,s]),$=React.useMemo(()=>{let e=core.getResponsiveValueByScreen(V,C),t=core.getResponsiveValueByScreen(b,C);return r&&e&&"none"!==t&&v&&!F},[V,C,b,r,v,F]),A=React.useMemo(()=>{let e=q();return e||l?.itemNumber},[q,l?.itemNumber]),U=React.useCallback(e=>{let t="center"===core.getResponsiveValueByScreen(l?.sneakPeakType,e)?2:1;return"number"==typeof core.getResponsiveValueByScreen(A,e,4)?core.getResponsiveValueByScreen(A,e,4)-t:void 0},[l?.sneakPeakType,A]),W=()=>{let e="auto"===core.getResponsiveValueByScreen(j,C,1)?1:core.getResponsiveValueByScreen(j,C,1);return e??1},G=e=>{let t=e*W();return t>=B-W()&&(t=B-W()),t},J=e=>{let t="edit"===M?{[e]:!1}:l?.enableDrag;return core.getResponsiveValueByScreen(t,e)},K=(e,t)=>{let a=l?.sneakPeak?.[C]?e:t?e:G(e);if(t){if(s<et){r?.slideTo(a);return}if(r?.realIndex===a)return;if(a===Number(r?.realIndex)+1||0===a&&r?.realIndex===s-1)return r?.slideNext();if(a===Number(r?.realIndex)-1||a===s-1&&r?.realIndex===0)return r?.slidePrev();let e="center"===core.getResponsiveValueByScreen(l?.sneakPeakType,C)&&"number"==typeof core.getResponsiveValueByScreen(l?.itemNumber,C)&&Number(core.getResponsiveValueByScreen(l?.itemNumber,C))%2==0;e?r?.slideToLoopCenterSneakPeek(a):r?.slideToLoop(a)}else r?.slideTo(a);x.current=a};React.useImperativeHandle(t,()=>({nextSlideInteraction:Z,previousSlideInteraction:_,moveToSlideInteraction:ee,getSwiper:()=>r}));let Q=e=>{z({event:"gp:rollback:select-slide",selector:`[data-id="${n?.uid}"]`,element:c?.current}),z({event:"gp:select-slide",selector:`[data-id="${n?.uid}"]`,data:e,element:c?.current})},X=e=>{r?.slideTo(e),f&&f(e)},Y=(e,t)=>{let{key:s,data:a,isRollback:n,element:i}=e,o=Math.max(r?.activeIndex??0,0);if(n&&void 0===a)return;if(n){if("specific"===t){let{previousData:e}=L(i,s);X(Number(e))}else{let e="next"===t?o-1:o+1;X(e)}return}let l="specific"===t?Math.max(x.current,0):o;I(i,s,l.toString());let u="specific"===t?Number(a):"next"===t?o+1:o-1;X(u)},Z=e=>{Y(e,"next")},_=e=>{Y(e,"previous")},ee=e=>{Y(e,"specific")},et=W(),er=React.useMemo(()=>!!B&&r&&core.getResponsiveValueByScreen(l?.dot,C)&&!F&&s>1,[B,r,l?.dot,C,F,s]),es=core.getResponsiveValueByScreen(l?.vertical,C,!1)?"vertical":"horizontal",ea=React.useMemo(()=>{let e=core.getResponsiveValueByScreen(h,C,!1),t=r?.width??0,s={0:"mobile",768:"tablet",1025:"desktop"},a=Number(Object.entries(s).find(([,e])=>e===C)?.[0]??1025),n=Object.entries(s).reduce((r,[s,a])=>{if(!r)return;let n=Number(s),o=core.getResponsiveValueByScreen(l?.sneakPeak,a,!1),u=o&&"center"===core.getResponsiveValueByScreen(l?.sneakPeakType,a),c=core.getResponsiveValueByScreen(l?.itemNumber,a),d=u&&"number"==typeof c,p=J(a),f=d?(t-t/et*(c-2))/2:0,m=d&&e?B:l?.initialSlide||i||0,v={allowTouchMove:p,slidesOffsetBefore:f,slidesOffsetAfter:f,initialSlide:m};return r[n]=v,r},{}),u="center"===core.getResponsiveValueByScreen(l?.sneakPeakType,C)&&"number"==typeof core.getResponsiveValueByScreen(l?.itemNumber,C)&&Number(core.getResponsiveValueByScreen(l?.itemNumber,C))>1;return{speed:o?.playSpeed??500,dir:l?.rtl?"rtl":"ltr",spaceBetween:core.getResponsiveValueByScreen(o?.spacing,C)||0,loop:e,slidesPerView:"auto"===core.getResponsiveValueByScreen(j,C,1)?"auto":et,direction:es,breakpoints:n,isSneakPeekCenter:u,slidesOffsetBefore:n?.[a]?.slidesOffsetBefore,thumbs:{slideThumbActiveClass:"gem-slider-item-active"},loopPreventsSliding:!1,autoplay:{delay:(l?.autoplayTimeout??1)*1e3,pauseOnMouseEnter:l?.pauseOnHover,stopOnLastSlide:!e}}},[o?.playSpeed,l?.rtl,o?.spacing,C,h,et,l?.sneakPeakType,l?.pauseOnHover,l?.autoplayTimeout,r?.width,B]),en=React.useCallback(e=>{let t=r&&r.params?.slidesPerView,s=t?r?.slidesPerViewDynamic():1;if(e<=1)return!1;let a="auto"===ea.slidesPerView?s:ea.slidesPerView;if(!D||e<Number(a)||!v)return!1;let n=core.getResponsiveValueByScreen(l?.sneakPeak,C,!1),i=n&&"center"===core.getResponsiveValueByScreen(l?.sneakPeakType,C),o=Number.isNaN(Number(a))?1:Math.ceil(Number(a));i&&o%2==0&&(o+=1);let u=i?Math.max(1,Math.ceil(o/2)):1;return e<o+u},[r,ea.slidesPerView,D,v,l?.sneakPeak,l?.sneakPeakType,C]);React.useEffect(()=>{let e=`[data-id="${n?.uid}"]`;O({event:"gp:change-next-slide",selector:e,elementRef:E},e=>{let{data:t,isRollback:r,uniqueStorageKey:s}=e||{};Z({element:E.current,data:t,isRollback:r,key:s})}),O({event:"gp:change-previous-slide",selector:e,elementRef:E},e=>{let{data:t,isRollback:r,uniqueStorageKey:s}=e||{};_({element:E.current,data:t,isRollback:r,key:s})}),O({event:"gp:change-image-step",selector:e,elementRef:E},e=>{let{data:t,isRollback:r,uniqueStorageKey:s}=e||{};ee({element:E.current,data:t,isRollback:r,key:s})}),O({event:"gp:change-index-slide",selector:e},t=>{let r=document.querySelector(e),{data:s,isRollback:a,uniqueStorageKey:n}=t||{};ee({element:r,data:s,isRollback:a,key:n})})},[]),React.useEffect(()=>{P(s)},[s]);let ei=e=>{"next"===e?r?.slideNext():r?.slidePrev(),p&&(a&&clearTimeout(a),a=setTimeout(()=>p&&p(),500))};return React.useEffect(()=>{if("number"==typeof i){if(x.current=i,r?.params?.loop){r?.slideToLoop(i);return}r?.slideTo(i)}},[r,i,u]),React.useEffect(()=>{if(!r)return;let e=()=>{P(r.slides.length)},t=()=>{m&&m(r.realIndex)},s=()=>{T(r.realIndex),R(r?.translate===0),k(r?.translate<=r?.maxTranslate())};return r.on("transitionEnd",s),r.on("slideChange",e),r.on("slideChangeTransitionStart",t),()=>{r?.off("slideChange",e),r?.off("slideChangeTransitionStart",t),r?.off("transitionEnd",s)}},[ea.loop,r]),React.useEffect(()=>{r?.wrapperEl&&(r.wrapperEl.style.transitionTimingFunction=l?.animationMode??"ease")},[r,l?.animationMode]),React.useEffect(()=>{if(r&&r.autoplay){let e="edit"===M?!!N&&l?.runPreview&&l?.autoplay:l?.autoplay;e?r.autoplay.start():r.autoplay.stop()}},[r,l?.autoplay,M,N,l?.runPreview]),React.useEffect(()=>{let e=e=>{if(n?.uid!==e?.detail.componentUid)return;let t=e?.detail.index||0;r?.slideToLoop(t)};return window.addEventListener("move-to-idx",e),()=>window.removeEventListener("move-to-idx",e)},[r,n?.uid]),React.useEffect(()=>{if(!r)return;let e=r.el;e?.classList?.remove("swiper-horizontal","swiper-vertical");let t=core.getResponsiveValueByScreen(l?.vertical,C)?"swiper-vertical":"swiper-horizontal";e?.classList?.add(t),r?.slides?.forEach(e=>{e.style.width="",e.style.height=""}),r?.update()},[C,l?.vertical,r,r?.params]),React.useEffect(()=>{if(!r||!d)return;let e=()=>{let e=r?.slides?.slice(0,s)||[],t=Number(ea?.spaceBetween||0),a=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=r.params?.direction==="horizontal"?n>(r.width||0):a>(r.height||0);y(i)};return e(),r.on("resize",e),r.on("update",e),r.on("slidesLengthChange",e),r.on("orientationchange",e),()=>{r.off("resize",e),r.off("update",e),r.off("slidesLengthChange",e),r.off("orientationchange",e)}},[r]),{isInfinity:D,sliderSettings:ea,totalSlideItem:B,currentSlide:w,localRef:E,isRenderDots:er,showNavigation:$,isScrollToStart:g,isScrollToEnd:S,handleDotClick:K,getItemsPerPage:W,handleNextAndPrevSlide:ei,dispatchEventSelectSlide:Q,getNumberOfFullWidthShow:U,setCurrentSlide:T,shouldDuplicateSlides:en,setIsScrollToStart:R,setIsScrollToEnd:k,isHideNavigation:F}};exports.useCarousel=useCarousel;
@@ -1 +1 @@
1
- "use strict";var core=require("@gem-sdk/core"),productGallery=require("./productGallery.js"),productFeaturedImage=require("./productFeaturedImage.js");const DEVICES=["desktop","mobile","tablet"],getGalleryCarouselSettingAttr=o=>{let t={desktop:"inside"===core.getResponsiveValueByScreen(o.navigationPosition,"desktop"),tablet:"inside"===core.getResponsiveValueByScreen(o.navigationPosition,"tablet"),mobile:"inside"===core.getResponsiveValueByScreen(o.navigationPosition,"mobile")},e=DEVICES.reduce((t,e)=>(o.navigationPosition?.[e]&&(t[e]="none"!==o.navigationPosition[e]),t),{});return{...o?.loop&&{loop:o.loop},itemNumber:{desktop:"auto",tablet:"auto",mobile:"auto"},dot:{desktop:!1,tablet:!1,mobile:!1},dotStyle:productGallery.getDotStyleConfig(),controlOverContent:t,...o?.dragToScroll&&{enableDrag:{desktop:o.dragToScroll,tablet:o.dragToScroll,mobile:o.dragToScroll}},vertical:productGallery.getCarouselVerticalConfigByPosition(o.position),...o?.arrowIcon&&{arrowCustom:o.arrowIcon},arrowIconSize:o.arrowIconSize||{desktop:24},...o?.arrowIconColor&&{arrowCustomColor:o.arrowIconColor},...o?.arrowNavColor&&{arrowBackgroundColor:o.arrowNavColor},...o?.arrowNavBorder&&{arrowBorder:{desktop:o.arrowNavBorder}},...o?.arrowNavRadius&&{roundedArrow:{desktop:o.arrowNavRadius}},...o?.arrowNavShadow&&{arrowShadow:{desktop:o.arrowNavShadow}},arrowGapToEachSide:"16",navigationStyle:o.navigationPosition,navigationEnable:e,arrowButtonSize:{desktop:{width:o.arrowNavSize?.width,height:o.arrowNavSize?.height,padding:o.arrowNavSize?.padding}},animationMode:o?.ftAnimationMode,enableAction:{desktop:!0}}},getFeaturedCarouselSettingAttr=o=>{let t={desktop:"inside"===core.getResponsiveValueByScreen(o.ftNavigationPosition,"desktop"),tablet:"inside"===core.getResponsiveValueByScreen(o.ftNavigationPosition,"tablet"),mobile:"inside"===core.getResponsiveValueByScreen(o.ftNavigationPosition,"mobile")},e=DEVICES.reduce((t,e)=>(o.ftNavigationPosition?.[e]&&(t[e]="none"!==o.ftNavigationPosition[e]),t),{});return{...o?.ftLoop&&{loop:o.ftLoop},itemNumber:{desktop:1},dot:productGallery.getAllowDotConfig(),dotStyle:productFeaturedImage.getDotStyleForOnlyFeaturedImage({position:o.position,dotStyle:o.ftDotStyle}),dotSize:o.ftDotSize??{desktop:12},dotGapToCarousel:o.ftDotGapToCarousel??{desktop:16},dotColor:o.ftDotColor??{desktop:"bg-1"},dotActiveColor:o.ftDotActiveColor??{desktop:"line-3"},controlOverContent:t,...o?.ftDragToScroll&&{enableDrag:{desktop:o.ftDragToScroll,tablet:o.ftDragToScroll,mobile:o.ftDragToScroll}},...o?.ftArrowIcon&&{arrowCustom:o.ftArrowIcon},arrowIconSize:o.ftArrowIconSize||{desktop:24},...o?.ftArrowIconColor&&{arrowCustomColor:o.ftArrowIconColor},...o?.ftArrowNavColor&&{arrowBackgroundColor:o.ftArrowNavColor},...o?.ftArrowNavBorder&&{arrowBorder:{desktop:o.ftArrowNavBorder}},...o?.ftArrowNavRadius&&{roundedArrow:{desktop:o.ftArrowNavRadius}},...o?.ftArrowNavShadow&&{arrowShadow:{desktop:o.ftArrowNavShadow}},sneakPeakType:{desktop:"center"},arrowGapToEachSide:"16",animationMode:o?.ftAnimationMode,...o?.ftNavigationPosition&&{navigationStyle:o.ftNavigationPosition},navigationEnable:e,arrowButtonSize:{desktop:{width:o.ftArrowNavSize?.width,height:o.ftArrowNavSize?.height,padding:o.ftArrowNavSize?.padding}},enableAction:{desktop:!0}}};exports.getFeaturedCarouselSettingAttr=getFeaturedCarouselSettingAttr,exports.getGalleryCarouselSettingAttr=getGalleryCarouselSettingAttr;
1
+ "use strict";var core=require("@gem-sdk/core"),productGallery=require("./productGallery.js"),productFeaturedImage=require("./productFeaturedImage.js");const DEVICES=["desktop","mobile","tablet"],getGalleryCarouselSettingAttr=o=>{let t={desktop:"inside"===core.getResponsiveValueByScreen(o.navigationPosition,"desktop"),tablet:"inside"===core.getResponsiveValueByScreen(o.navigationPosition,"tablet"),mobile:"inside"===core.getResponsiveValueByScreen(o.navigationPosition,"mobile")},e=DEVICES.reduce((t,e)=>(o.navigationPosition?.[e]&&(t[e]="none"!==o.navigationPosition[e]),t),{});return{...o?.loop&&{loop:o.loop},itemNumber:{desktop:"auto",tablet:"auto",mobile:"auto"},dot:{desktop:!1,tablet:!1,mobile:!1},dotStyle:productGallery.getDotStyleConfig(),controlOverContent:t,...o?.dragToScroll&&{enableDrag:{desktop:o.dragToScroll,tablet:o.dragToScroll,mobile:o.dragToScroll}},vertical:productGallery.getCarouselVerticalConfigByPosition(o.position),...o?.arrowIcon&&{arrowCustom:o.arrowIcon},arrowIconSize:o.arrowIconSize||{desktop:24},...o?.arrowIconColor&&{arrowCustomColor:o.arrowIconColor},...o?.arrowNavColor&&{arrowBackgroundColor:o.arrowNavColor},...o?.arrowNavBorder&&{arrowBorder:{desktop:o.arrowNavBorder}},...o?.arrowNavRadius&&{roundedArrow:{desktop:o.arrowNavRadius}},...o?.arrowNavShadow&&{arrowShadow:{desktop:o.arrowNavShadow}},arrowGapToEachSide:"16",navigationStyle:o.navigationPosition,navigationEnable:e,arrowButtonSize:{desktop:{width:o.arrowNavSize?.width,height:o.arrowNavSize?.height,padding:o.arrowNavSize?.padding}},animationMode:o?.ftAnimationMode,enableAction:{desktop:!0}}},getFeaturedCarouselSettingAttr=o=>{let t={desktop:"inside"===core.getResponsiveValueByScreen(o.ftNavigationPosition,"desktop"),tablet:"inside"===core.getResponsiveValueByScreen(o.ftNavigationPosition,"tablet"),mobile:"inside"===core.getResponsiveValueByScreen(o.ftNavigationPosition,"mobile")},e=DEVICES.reduce((t,e)=>(o.ftNavigationPosition?.[e]&&(t[e]="none"!==o.ftNavigationPosition[e]),t),{});return{...o?.ftLoop&&{loop:o.ftLoop},itemNumber:{desktop:1},dot:productGallery.getAllowDotConfig(),dotStyle:productFeaturedImage.getDotStyleForOnlyFeaturedImage({position:o.position,dotStyle:o.ftDotStyle}),dotSize:o.ftDotSize??{desktop:12},dotGapToCarousel:o.ftDotGapToCarousel??{desktop:16},dotColor:o.ftDotColor??{desktop:"bg-1"},dotActiveColor:o.ftDotActiveColor??{desktop:"line-3"},controlOverContent:t,...o?.ftDragToScroll&&{enableDrag:{desktop:o.ftDragToScroll,tablet:o.ftDragToScroll,mobile:o.ftDragToScroll}},...o?.ftArrowIcon&&{arrowCustom:o.ftArrowIcon},arrowIconSize:o.ftArrowIconSize||{desktop:24},...o?.ftArrowIconColor&&{arrowCustomColor:o.ftArrowIconColor},...o?.ftArrowNavColor&&{arrowBackgroundColor:o.ftArrowNavColor},...o?.ftArrowNavBorder&&{arrowBorder:{desktop:o.ftArrowNavBorder}},...o?.ftArrowNavRadius&&{roundedArrow:{desktop:o.ftArrowNavRadius}},...o?.ftArrowNavShadow&&{arrowShadow:{desktop:o.ftArrowNavShadow}},arrowGapToEachSide:"16",animationMode:o?.ftAnimationMode,...o?.ftNavigationPosition&&{navigationStyle:o.ftNavigationPosition},navigationEnable:e,arrowButtonSize:{desktop:{width:o.ftArrowNavSize?.width,height:o.ftArrowNavSize?.height,padding:o.ftArrowNavSize?.padding}},enableAction:{desktop:!0}}};exports.getFeaturedCarouselSettingAttr=getFeaturedCarouselSettingAttr,exports.getGalleryCarouselSettingAttr=getGalleryCarouselSettingAttr;
@@ -1 +1 @@
1
- import{useState as e,useRef as t,useMemo as r,useCallback as i,useImperativeHandle as n,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 useCarousel=(f,m,c,k)=>{let h;let{builderProps:y,moveToIdx:P,styles:b,setting:g,isHiddenArrowWhenDisabled:w=!0,elmRef:T,isEnableCheckHasScrollableContent:v,onClickArrow:N,onHandleChangeSlideByInteraction:x,onChangeActive:S}=f,[C,O]=e(!0),[E,L]=e(!0),[M,I]=e(!1),{loop:z,navigationEnable:V={desktop:!0},navigationStyle:B}=g??{},[j,F]=e(k),[H,R]=e(g?.defaultCurrentSlider??0),{isFirstPreviewClicked:$}=p(g?.runPreview),A=t(),D=t(P??0),q=l(),U=s(),{onListener:W,saveToElementInteractionData:G,getInteractionPreviousData:J,trigger:K}=o(),Q=r(()=>u(z,q,!1),[z,q]),X=i(()=>{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]),Y=i(()=>{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]),Z=r(()=>{let e=Y();if(e)return e;let t={};return d.forEach(e=>{let r=u(g?.sneakPeak,e),i=r?"center"===u(g?.sneakPeakType,e)?u(g?.sneakPeakOffsetCenter,e)??0:u(g?.sneakPeakOffsetForward,e)??0:0,n="center"===u(g?.sneakPeakType,e)?-2:-1,a=u(g?.itemNumber,e);t[e]="number"==typeof a?a+i/100*n:"auto"}),t},[Y,g?.itemNumber,g?.sneakPeak,g?.sneakPeakOffsetCenter,g?.sneakPeakOffsetForward,g?.sneakPeakType]),_=r(()=>{let e=u(Z,q),t=u(z,q,!1);return t&&Number(e??0)>k||!t&&Number(e??0)>=k},[Z,q,z,k]),ee=r(()=>{let e=u(V,q),t=u(B,q);return c&&e&&"none"!==t&&C&&!_},[V,q,B,c,C,_]),et=r(()=>{let e=X();return e||g?.itemNumber},[X,g?.itemNumber]),er=i(e=>{let t="center"===u(g?.sneakPeakType,e)?2:1;return"number"==typeof u(et,e,4)?u(et,e,4)-t:void 0},[g?.sneakPeakType,et]),ei=()=>{let e="auto"===u(Z,q,1)?1:u(Z,q,1);return e??1},en=e=>{let t=e*ei();return t>=j-ei()&&(t=j-ei()),t},ea=e=>{let t="edit"===U?{[e]:!1}:g?.enableDrag;return u(t,e)},el=(e,t)=>{let r=g?.sneakPeak?.[q]?e:t?e:en(e);if(t){if(k<em){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="center"===u(g?.sneakPeakType,q)&&"number"==typeof u(g?.itemNumber,q)&&Number(u(g?.itemNumber,q))%2==0;e?c?.slideToLoopCenterSneakPeek(r):c?.slideToLoop(r)}else c?.slideTo(r);D.current=r};n(m,()=>({nextSlideInteraction:ed,previousSlideInteraction:ep,moveToSlideInteraction:ef,getSwiper:()=>c}));let es=e=>{K({event:"gp:rollback:select-slide",selector:`[data-id="${y?.uid}"]`,element:T?.current}),K({event:"gp:select-slide",selector:`[data-id="${y?.uid}"]`,data:e,element:T?.current})},eo=e=>{c?.slideTo(e),x&&x(e)},eu=(e,t)=>{let{key:r,data:i,isRollback:n,element:a}=e,l=Math.max(c?.activeIndex??0,0);if(n&&void 0===i)return;if(n){if("specific"===t){let{previousData:e}=J(a,r);eo(Number(e))}else{let e="next"===t?l-1:l+1;eo(e)}return}let s="specific"===t?Math.max(D.current,0):l;G(a,r,s.toString());let o="specific"===t?Number(i):"next"===t?l+1:l-1;eo(o)},ed=e=>{eu(e,"next")},ep=e=>{eu(e,"previous")},ef=e=>{eu(e,"specific")},em=ei(),ec=r(()=>!!j&&c&&u(g?.dot,q)&&!_&&k>1,[j,c,g?.dot,q,_,k]),ek=u(g?.vertical,q,!1)?"vertical":"horizontal",eh=r(()=>{let e=u(z,q,!1),t=c?.width??0,r={0:"mobile",768:"tablet",1025:"desktop"},i=Number(Object.entries(r).find(([,e])=>e===q)?.[0]??1025),n=Object.entries(r).reduce((r,[i,n])=>{if(!r)return;let a=Number(i),l=u(g?.sneakPeak,n,!1),s=l&&"center"===u(g?.sneakPeakType,n),o=u(g?.itemNumber,n),d=s&&"number"==typeof o,p=ea(n),f=d?(t-t/em*(o-2))/2:0,m=d&&e?j:g?.initialSlide||P||0,c={allowTouchMove:p,slidesOffsetBefore:f,slidesOffsetAfter:f,initialSlide:m};return r[a]=c,r},{}),a="center"===u(g?.sneakPeakType,q)&&"number"==typeof u(g?.itemNumber,q);return{speed:b?.playSpeed??500,dir:g?.rtl?"rtl":"ltr",spaceBetween:u(b?.spacing,q)||0,loop:e,slidesPerView:"auto"===u(Z,q,1)?"auto":em,direction:ek,breakpoints:n,isSneakPeekCenter:a,slidesOffsetBefore:n?.[i]?.slidesOffsetBefore,thumbs:{slideThumbActiveClass:"gem-slider-item-active"},loopPreventsSliding:!1,autoplay:{delay:(g?.autoplayTimeout??1)*1e3,pauseOnMouseEnter:g?.pauseOnHover,stopOnLastSlide:!e}}},[b?.playSpeed,g?.rtl,b?.spacing,q,z,em,g?.sneakPeakType,g?.pauseOnHover,g?.autoplayTimeout,c?.width,j]),ey=i(e=>{let t=c&&c.params?.slidesPerView,r=t?c?.slidesPerViewDynamic():1;if(e<=1)return!1;let i="auto"===eh.slidesPerView?r:eh.slidesPerView;if(!Q||e<Number(i)||!C)return!1;let n=u(g?.sneakPeak,q,!1),a=n&&"center"===u(g?.sneakPeakType,q),l=Number.isNaN(Number(i))?1:Math.ceil(Number(i));a&&l%2==0&&(l+=1);let s=a?Math.max(1,Math.ceil(l/2)):1;return e<l+s},[c,eh.slidesPerView,Q,C,g?.sneakPeak,g?.sneakPeakType,q]);a(()=>{let e=`[data-id="${y?.uid}"]`;W({event:"gp:change-next-slide",selector:e,elementRef:A},e=>{let{data:t,isRollback:r,uniqueStorageKey:i}=e||{};ed({element:A.current,data:t,isRollback:r,key:i})}),W({event:"gp:change-previous-slide",selector:e,elementRef:A},e=>{let{data:t,isRollback:r,uniqueStorageKey:i}=e||{};ep({element:A.current,data:t,isRollback:r,key:i})}),W({event:"gp:change-image-step",selector:e,elementRef:A},e=>{let{data:t,isRollback:r,uniqueStorageKey:i}=e||{};ef({element:A.current,data:t,isRollback:r,key:i})}),W({event:"gp:change-index-slide",selector:e},t=>{let r=document.querySelector(e),{data:i,isRollback:n,uniqueStorageKey:a}=t||{};ef({element:r,data:i,isRollback:n,key:a})})},[]),a(()=>{F(k)},[k]);let eP=e=>{"next"===e?c?.slideNext():c?.slidePrev(),N&&(h&&clearTimeout(h),h=setTimeout(()=>N&&N(),500))};return a(()=>{if("number"==typeof P){if(D.current=P,c?.params?.loop){c?.slideToLoop(P);return}c?.slideTo(P)}},[c,P,w]),a(()=>{if(!c)return;let e=()=>{F(c.slides.length)},t=()=>{S&&S(c.realIndex)},r=()=>{R(c.realIndex),L(c?.translate===0),I(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)}},[eh.loop,c]),a(()=>{c?.wrapperEl&&(c.wrapperEl.style.transitionTimingFunction=g?.animationMode??"ease")},[c,g?.animationMode]),a(()=>{if(c&&c.autoplay){let e="edit"===U?!!$&&g?.runPreview&&g?.autoplay:g?.autoplay;e?c.autoplay.start():c.autoplay.stop()}},[c,g?.autoplay,U,$,g?.runPreview]),a(()=>{let e=e=>{if(y?.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,y?.uid]),a(()=>{if(!c)return;let e=c.el;e?.classList?.remove("swiper-horizontal","swiper-vertical");let t=u(g?.vertical,q)?"swiper-vertical":"swiper-horizontal";e?.classList?.add(t),c?.slides?.forEach(e=>{e.style.width="",e.style.height=""}),c?.update()},[q,g?.vertical,c,c?.params]),a(()=>{if(!c||!v)return;let e=()=>{let e=c?.slides?.slice(0,k)||[],t=Number(eh?.spaceBetween||0),r=e.reduce((e,t)=>e+t.offsetHeight,0)+t*(e.length-1),i=e.reduce((e,t)=>e+t.offsetWidth,0)+t*(e.length-1),n=c.params?.direction==="horizontal"?i>(c.width||0):r>(c.height||0);O(n)};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:Q,sliderSettings:eh,totalSlideItem:j,currentSlide:H,localRef:A,isRenderDots:ec,showNavigation:ee,isScrollToStart:E,isScrollToEnd:M,handleDotClick:el,getItemsPerPage:ei,handleNextAndPrevSlide:eP,dispatchEventSelectSlide:es,getNumberOfFullWidthShow:er,setCurrentSlide:R,shouldDuplicateSlides:ey,setIsScrollToStart:L,setIsScrollToEnd:I,isHideNavigation:_}};export{useCarousel};
1
+ import{useState as e,useRef as t,useMemo as r,useCallback as i,useImperativeHandle as n,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 useCarousel=(f,m,c,k)=>{let h;let{builderProps:b,moveToIdx:y,styles:P,setting:g,isHiddenArrowWhenDisabled:w=!0,elmRef:T,isEnableCheckHasScrollableContent:v,onClickArrow:N,onHandleChangeSlideByInteraction:x,onChangeActive:S}=f,[C,O]=e(!0),[E,L]=e(!0),[M,I]=e(!1),{loop:z,navigationEnable:V={desktop:!0},navigationStyle:B}=g??{},[j,F]=e(k),[H,R]=e(g?.defaultCurrentSlider??0),{isFirstPreviewClicked:$}=p(g?.runPreview),A=t(),D=t(y??0),q=l(),U=s(),{onListener:W,saveToElementInteractionData:G,getInteractionPreviousData:J,trigger:K}=o(),Q=r(()=>u(z,q,!1),[z,q]),X=i(()=>{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]),Y=i(()=>{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]),Z=r(()=>{let e=Y();if(e)return e;let t={};return d.forEach(e=>{let r=u(g?.sneakPeak,e),i=r?"center"===u(g?.sneakPeakType,e)?u(g?.sneakPeakOffsetCenter,e)??0:u(g?.sneakPeakOffsetForward,e)??0:0,n="center"===u(g?.sneakPeakType,e)?-2:-1,a=u(g?.itemNumber,e);t[e]="number"==typeof a?a+i/100*n:"auto"}),t},[Y,g?.itemNumber,g?.sneakPeak,g?.sneakPeakOffsetCenter,g?.sneakPeakOffsetForward,g?.sneakPeakType]),_=r(()=>{let e=u(Z,q),t=u(z,q,!1);return t&&Number(e??0)>k||!t&&Number(e??0)>=k},[Z,q,z,k]),ee=r(()=>{let e=u(V,q),t=u(B,q);return c&&e&&"none"!==t&&C&&!_},[V,q,B,c,C,_]),et=r(()=>{let e=X();return e||g?.itemNumber},[X,g?.itemNumber]),er=i(e=>{let t="center"===u(g?.sneakPeakType,e)?2:1;return"number"==typeof u(et,e,4)?u(et,e,4)-t:void 0},[g?.sneakPeakType,et]),ei=()=>{let e="auto"===u(Z,q,1)?1:u(Z,q,1);return e??1},en=e=>{let t=e*ei();return t>=j-ei()&&(t=j-ei()),t},ea=e=>{let t="edit"===U?{[e]:!1}:g?.enableDrag;return u(t,e)},el=(e,t)=>{let r=g?.sneakPeak?.[q]?e:t?e:en(e);if(t){if(k<em){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="center"===u(g?.sneakPeakType,q)&&"number"==typeof u(g?.itemNumber,q)&&Number(u(g?.itemNumber,q))%2==0;e?c?.slideToLoopCenterSneakPeek(r):c?.slideToLoop(r)}else c?.slideTo(r);D.current=r};n(m,()=>({nextSlideInteraction:ed,previousSlideInteraction:ep,moveToSlideInteraction:ef,getSwiper:()=>c}));let es=e=>{K({event:"gp:rollback:select-slide",selector:`[data-id="${b?.uid}"]`,element:T?.current}),K({event:"gp:select-slide",selector:`[data-id="${b?.uid}"]`,data:e,element:T?.current})},eo=e=>{c?.slideTo(e),x&&x(e)},eu=(e,t)=>{let{key:r,data:i,isRollback:n,element:a}=e,l=Math.max(c?.activeIndex??0,0);if(n&&void 0===i)return;if(n){if("specific"===t){let{previousData:e}=J(a,r);eo(Number(e))}else{let e="next"===t?l-1:l+1;eo(e)}return}let s="specific"===t?Math.max(D.current,0):l;G(a,r,s.toString());let o="specific"===t?Number(i):"next"===t?l+1:l-1;eo(o)},ed=e=>{eu(e,"next")},ep=e=>{eu(e,"previous")},ef=e=>{eu(e,"specific")},em=ei(),ec=r(()=>!!j&&c&&u(g?.dot,q)&&!_&&k>1,[j,c,g?.dot,q,_,k]),ek=u(g?.vertical,q,!1)?"vertical":"horizontal",eh=r(()=>{let e=u(z,q,!1),t=c?.width??0,r={0:"mobile",768:"tablet",1025:"desktop"},i=Number(Object.entries(r).find(([,e])=>e===q)?.[0]??1025),n=Object.entries(r).reduce((r,[i,n])=>{if(!r)return;let a=Number(i),l=u(g?.sneakPeak,n,!1),s=l&&"center"===u(g?.sneakPeakType,n),o=u(g?.itemNumber,n),d=s&&"number"==typeof o,p=ea(n),f=d?(t-t/em*(o-2))/2:0,m=d&&e?j:g?.initialSlide||y||0,c={allowTouchMove:p,slidesOffsetBefore:f,slidesOffsetAfter:f,initialSlide:m};return r[a]=c,r},{}),a="center"===u(g?.sneakPeakType,q)&&"number"==typeof u(g?.itemNumber,q)&&Number(u(g?.itemNumber,q))>1;return{speed:P?.playSpeed??500,dir:g?.rtl?"rtl":"ltr",spaceBetween:u(P?.spacing,q)||0,loop:e,slidesPerView:"auto"===u(Z,q,1)?"auto":em,direction:ek,breakpoints:n,isSneakPeekCenter:a,slidesOffsetBefore:n?.[i]?.slidesOffsetBefore,thumbs:{slideThumbActiveClass:"gem-slider-item-active"},loopPreventsSliding:!1,autoplay:{delay:(g?.autoplayTimeout??1)*1e3,pauseOnMouseEnter:g?.pauseOnHover,stopOnLastSlide:!e}}},[P?.playSpeed,g?.rtl,P?.spacing,q,z,em,g?.sneakPeakType,g?.pauseOnHover,g?.autoplayTimeout,c?.width,j]),eb=i(e=>{let t=c&&c.params?.slidesPerView,r=t?c?.slidesPerViewDynamic():1;if(e<=1)return!1;let i="auto"===eh.slidesPerView?r:eh.slidesPerView;if(!Q||e<Number(i)||!C)return!1;let n=u(g?.sneakPeak,q,!1),a=n&&"center"===u(g?.sneakPeakType,q),l=Number.isNaN(Number(i))?1:Math.ceil(Number(i));a&&l%2==0&&(l+=1);let s=a?Math.max(1,Math.ceil(l/2)):1;return e<l+s},[c,eh.slidesPerView,Q,C,g?.sneakPeak,g?.sneakPeakType,q]);a(()=>{let e=`[data-id="${b?.uid}"]`;W({event:"gp:change-next-slide",selector:e,elementRef:A},e=>{let{data:t,isRollback:r,uniqueStorageKey:i}=e||{};ed({element:A.current,data:t,isRollback:r,key:i})}),W({event:"gp:change-previous-slide",selector:e,elementRef:A},e=>{let{data:t,isRollback:r,uniqueStorageKey:i}=e||{};ep({element:A.current,data:t,isRollback:r,key:i})}),W({event:"gp:change-image-step",selector:e,elementRef:A},e=>{let{data:t,isRollback:r,uniqueStorageKey:i}=e||{};ef({element:A.current,data:t,isRollback:r,key:i})}),W({event:"gp:change-index-slide",selector:e},t=>{let r=document.querySelector(e),{data:i,isRollback:n,uniqueStorageKey:a}=t||{};ef({element:r,data:i,isRollback:n,key:a})})},[]),a(()=>{F(k)},[k]);let ey=e=>{"next"===e?c?.slideNext():c?.slidePrev(),N&&(h&&clearTimeout(h),h=setTimeout(()=>N&&N(),500))};return a(()=>{if("number"==typeof y){if(D.current=y,c?.params?.loop){c?.slideToLoop(y);return}c?.slideTo(y)}},[c,y,w]),a(()=>{if(!c)return;let e=()=>{F(c.slides.length)},t=()=>{S&&S(c.realIndex)},r=()=>{R(c.realIndex),L(c?.translate===0),I(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)}},[eh.loop,c]),a(()=>{c?.wrapperEl&&(c.wrapperEl.style.transitionTimingFunction=g?.animationMode??"ease")},[c,g?.animationMode]),a(()=>{if(c&&c.autoplay){let e="edit"===U?!!$&&g?.runPreview&&g?.autoplay:g?.autoplay;e?c.autoplay.start():c.autoplay.stop()}},[c,g?.autoplay,U,$,g?.runPreview]),a(()=>{let e=e=>{if(b?.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,b?.uid]),a(()=>{if(!c)return;let e=c.el;e?.classList?.remove("swiper-horizontal","swiper-vertical");let t=u(g?.vertical,q)?"swiper-vertical":"swiper-horizontal";e?.classList?.add(t),c?.slides?.forEach(e=>{e.style.width="",e.style.height=""}),c?.update()},[q,g?.vertical,c,c?.params]),a(()=>{if(!c||!v)return;let e=()=>{let e=c?.slides?.slice(0,k)||[],t=Number(eh?.spaceBetween||0),r=e.reduce((e,t)=>e+t.offsetHeight,0)+t*(e.length-1),i=e.reduce((e,t)=>e+t.offsetWidth,0)+t*(e.length-1),n=c.params?.direction==="horizontal"?i>(c.width||0):r>(c.height||0);O(n)};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:Q,sliderSettings:eh,totalSlideItem:j,currentSlide:H,localRef:A,isRenderDots:ec,showNavigation:ee,isScrollToStart:E,isScrollToEnd:M,handleDotClick:el,getItemsPerPage:ei,handleNextAndPrevSlide:ey,dispatchEventSelectSlide:es,getNumberOfFullWidthShow:er,setCurrentSlide:R,shouldDuplicateSlides:eb,setIsScrollToStart:L,setIsScrollToEnd:I,isHideNavigation:_}};export{useCarousel};
@@ -1 +1 @@
1
- import{getResponsiveValueByScreen as o}from"@gem-sdk/core";import{getDotStyleConfig as t,getCarouselVerticalConfigByPosition as r,getAllowDotConfig as a}from"./productGallery.js";import{getDotStyleForOnlyFeaturedImage as e}from"./productFeaturedImage.js";let DEVICES=["desktop","mobile","tablet"],getGalleryCarouselSettingAttr=a=>{let e={desktop:"inside"===o(a.navigationPosition,"desktop"),tablet:"inside"===o(a.navigationPosition,"tablet"),mobile:"inside"===o(a.navigationPosition,"mobile")},i=DEVICES.reduce((o,t)=>(a.navigationPosition?.[t]&&(o[t]="none"!==a.navigationPosition[t]),o),{});return{...a?.loop&&{loop:a.loop},itemNumber:{desktop:"auto",tablet:"auto",mobile:"auto"},dot:{desktop:!1,tablet:!1,mobile:!1},dotStyle:t(),controlOverContent:e,...a?.dragToScroll&&{enableDrag:{desktop:a.dragToScroll,tablet:a.dragToScroll,mobile:a.dragToScroll}},vertical:r(a.position),...a?.arrowIcon&&{arrowCustom:a.arrowIcon},arrowIconSize:a.arrowIconSize||{desktop:24},...a?.arrowIconColor&&{arrowCustomColor:a.arrowIconColor},...a?.arrowNavColor&&{arrowBackgroundColor:a.arrowNavColor},...a?.arrowNavBorder&&{arrowBorder:{desktop:a.arrowNavBorder}},...a?.arrowNavRadius&&{roundedArrow:{desktop:a.arrowNavRadius}},...a?.arrowNavShadow&&{arrowShadow:{desktop:a.arrowNavShadow}},arrowGapToEachSide:"16",navigationStyle:a.navigationPosition,navigationEnable:i,arrowButtonSize:{desktop:{width:a.arrowNavSize?.width,height:a.arrowNavSize?.height,padding:a.arrowNavSize?.padding}},animationMode:a?.ftAnimationMode,enableAction:{desktop:!0}}},getFeaturedCarouselSettingAttr=t=>{let r={desktop:"inside"===o(t.ftNavigationPosition,"desktop"),tablet:"inside"===o(t.ftNavigationPosition,"tablet"),mobile:"inside"===o(t.ftNavigationPosition,"mobile")},i=DEVICES.reduce((o,r)=>(t.ftNavigationPosition?.[r]&&(o[r]="none"!==t.ftNavigationPosition[r]),o),{});return{...t?.ftLoop&&{loop:t.ftLoop},itemNumber:{desktop:1},dot:a(),dotStyle:e({position:t.position,dotStyle:t.ftDotStyle}),dotSize:t.ftDotSize??{desktop:12},dotGapToCarousel:t.ftDotGapToCarousel??{desktop:16},dotColor:t.ftDotColor??{desktop:"bg-1"},dotActiveColor:t.ftDotActiveColor??{desktop:"line-3"},controlOverContent:r,...t?.ftDragToScroll&&{enableDrag:{desktop:t.ftDragToScroll,tablet:t.ftDragToScroll,mobile:t.ftDragToScroll}},...t?.ftArrowIcon&&{arrowCustom:t.ftArrowIcon},arrowIconSize:t.ftArrowIconSize||{desktop:24},...t?.ftArrowIconColor&&{arrowCustomColor:t.ftArrowIconColor},...t?.ftArrowNavColor&&{arrowBackgroundColor:t.ftArrowNavColor},...t?.ftArrowNavBorder&&{arrowBorder:{desktop:t.ftArrowNavBorder}},...t?.ftArrowNavRadius&&{roundedArrow:{desktop:t.ftArrowNavRadius}},...t?.ftArrowNavShadow&&{arrowShadow:{desktop:t.ftArrowNavShadow}},sneakPeakType:{desktop:"center"},arrowGapToEachSide:"16",animationMode:t?.ftAnimationMode,...t?.ftNavigationPosition&&{navigationStyle:t.ftNavigationPosition},navigationEnable:i,arrowButtonSize:{desktop:{width:t.ftArrowNavSize?.width,height:t.ftArrowNavSize?.height,padding:t.ftArrowNavSize?.padding}},enableAction:{desktop:!0}}};export{getFeaturedCarouselSettingAttr,getGalleryCarouselSettingAttr};
1
+ import{getResponsiveValueByScreen as o}from"@gem-sdk/core";import{getDotStyleConfig as t,getCarouselVerticalConfigByPosition as r,getAllowDotConfig as a}from"./productGallery.js";import{getDotStyleForOnlyFeaturedImage as e}from"./productFeaturedImage.js";let DEVICES=["desktop","mobile","tablet"],getGalleryCarouselSettingAttr=a=>{let e={desktop:"inside"===o(a.navigationPosition,"desktop"),tablet:"inside"===o(a.navigationPosition,"tablet"),mobile:"inside"===o(a.navigationPosition,"mobile")},i=DEVICES.reduce((o,t)=>(a.navigationPosition?.[t]&&(o[t]="none"!==a.navigationPosition[t]),o),{});return{...a?.loop&&{loop:a.loop},itemNumber:{desktop:"auto",tablet:"auto",mobile:"auto"},dot:{desktop:!1,tablet:!1,mobile:!1},dotStyle:t(),controlOverContent:e,...a?.dragToScroll&&{enableDrag:{desktop:a.dragToScroll,tablet:a.dragToScroll,mobile:a.dragToScroll}},vertical:r(a.position),...a?.arrowIcon&&{arrowCustom:a.arrowIcon},arrowIconSize:a.arrowIconSize||{desktop:24},...a?.arrowIconColor&&{arrowCustomColor:a.arrowIconColor},...a?.arrowNavColor&&{arrowBackgroundColor:a.arrowNavColor},...a?.arrowNavBorder&&{arrowBorder:{desktop:a.arrowNavBorder}},...a?.arrowNavRadius&&{roundedArrow:{desktop:a.arrowNavRadius}},...a?.arrowNavShadow&&{arrowShadow:{desktop:a.arrowNavShadow}},arrowGapToEachSide:"16",navigationStyle:a.navigationPosition,navigationEnable:i,arrowButtonSize:{desktop:{width:a.arrowNavSize?.width,height:a.arrowNavSize?.height,padding:a.arrowNavSize?.padding}},animationMode:a?.ftAnimationMode,enableAction:{desktop:!0}}},getFeaturedCarouselSettingAttr=t=>{let r={desktop:"inside"===o(t.ftNavigationPosition,"desktop"),tablet:"inside"===o(t.ftNavigationPosition,"tablet"),mobile:"inside"===o(t.ftNavigationPosition,"mobile")},i=DEVICES.reduce((o,r)=>(t.ftNavigationPosition?.[r]&&(o[r]="none"!==t.ftNavigationPosition[r]),o),{});return{...t?.ftLoop&&{loop:t.ftLoop},itemNumber:{desktop:1},dot:a(),dotStyle:e({position:t.position,dotStyle:t.ftDotStyle}),dotSize:t.ftDotSize??{desktop:12},dotGapToCarousel:t.ftDotGapToCarousel??{desktop:16},dotColor:t.ftDotColor??{desktop:"bg-1"},dotActiveColor:t.ftDotActiveColor??{desktop:"line-3"},controlOverContent:r,...t?.ftDragToScroll&&{enableDrag:{desktop:t.ftDragToScroll,tablet:t.ftDragToScroll,mobile:t.ftDragToScroll}},...t?.ftArrowIcon&&{arrowCustom:t.ftArrowIcon},arrowIconSize:t.ftArrowIconSize||{desktop:24},...t?.ftArrowIconColor&&{arrowCustomColor:t.ftArrowIconColor},...t?.ftArrowNavColor&&{arrowBackgroundColor:t.ftArrowNavColor},...t?.ftArrowNavBorder&&{arrowBorder:{desktop:t.ftArrowNavBorder}},...t?.ftArrowNavRadius&&{roundedArrow:{desktop:t.ftArrowNavRadius}},...t?.ftArrowNavShadow&&{arrowShadow:{desktop:t.ftArrowNavShadow}},arrowGapToEachSide:"16",animationMode:t?.ftAnimationMode,...t?.ftNavigationPosition&&{navigationStyle:t.ftNavigationPosition},navigationEnable:i,arrowButtonSize:{desktop:{width:t.ftArrowNavSize?.width,height:t.ftArrowNavSize?.height,padding:t.ftArrowNavSize?.padding}},enableAction:{desktop:!0}}};export{getFeaturedCarouselSettingAttr,getGalleryCarouselSettingAttr};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "10.0.0",
3
+ "version": "10.0.1",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",