@gem-sdk/components 17.0.0-dev.41 → 17.0.0-dev.43

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,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:v,builderAttrs:h,builderProps:C,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,E]=r.useState(null),{arrowButtonSize:P,arrowBackgroundColor:O,arrowGapToEachSide:D="16",roundedArrow:T,arrowIconSize:A,arrowCustomColor:I,arrowBorder:N,arrowShadow:R,showWhenHover:z}=f??{},M=r.useRef({prevOrder:"",prevContent:"",version:0}),B=r.useMemo(()=>{let e=f?.childItem||[],r=e.join("|"),t=[...e].sort().join("|"),o=M.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:V,localRef:W,sliderSettings:$,totalSlideItem:H,currentSlide:F,isRenderDots:G,showNavigation:_,isScrollToStart:J,isScrollToEnd:K,handleDotClick:U,getItemsPerPage:L,handleNextAndPrevSlide:Q,dispatchEventSelectSlide:X,getNumberOfFullWidthShow:Y,setCurrentSlide:Z,shouldDuplicateSlides:ee,setIsScrollToStart:er,setIsScrollToEnd:et}=i.useCarousel(b,m,x,q),{loopConfig:eo,arrowShowConfig:ei}=l.getData(b),{rootClassRender:el,wrapperClassRender:es,wrapperInnerClass:en,sliderClass:ea}=s.getClass(b),{rootStyleRender:ed,wrapperStyleRender:eu,wrapperInnerStyle:ec}=n.getStyle(b),{rootAttrRender:ep,sliderAttr:em}=a.getAttr(b),ev=t.useCurrentDevice(),eh=f?.sneakPeak?.[ev],eC=(r,t)=>{let o="next"===r;if(q<=1)return null;let i=o?!V&&x?.isEnd:!V&&x?.isBeginning;return e.jsx(d.default,{uid:C?.uid,custom:f?.arrowCustom??"",showArrow:ei,arrowButtonSize:P||{},arrowIconSize:A||{},arrowBackgroundColor:O||"",arrowCustomColor:I,gapToEachSize:D,showWhenHover:z,arrowBorder:N||{},arrowCorner:T||{},arrowShadow:R||{},onClick:e=>{e.stopPropagation(),Q(r)},left:!o,disabled:g?o?!V&&K||!t:!V&&J||!t:i,vertical:f?.vertical,isHiddenWhenDisabled:w,rootId:p?.parentClass})},eS=r.useCallback(e=>{E(e),j?.(e)},[]),ew=r.useCallback(()=>{p?.isDisableResetSlide||(Z(0),er(!0),et(!1))},[p?.isDisableResetSlide,Z,et,er]),ey=r.Children.toArray(t.filterToolbarPreview(v)).filter(r.isValidElement),ek=ee(q),eg=ek?2*q:q,ej=r.useMemo(()=>{if(!ek)return ey;let e=ey.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[...ey,...e]},[ek,ey]),ef=r.useMemo(()=>{let e=r.Children.toArray(v),t=e[0];return r.isValidElement(t)?t.key:""},[v]),eb=JSON.stringify($.autoplay),eq=r.useMemo(()=>{let e=[q,B,ej.length,ef,$.dir,$.loop,$.virtual,$.direction,eb];return e.join("-")},[q,B,ej.length,ef,$.dir,$.loop,$.virtual,$.direction,eb]);return e.jsx("div",{ref:k,...ep,className:el,style:ed,children:e.jsxs("div",{ref:W,...h,className:es,style:eu,children:[e.jsxs("div",{className:en,style:ec,children:[eC("prev",!!_),r.createElement(c.Swiper,{...em,...$,sliderClass:ea,thumbsSwiper:p?.thumbsSwiper,onSwiperReady:eS,totalSlides:H,key:eq,sliderOrder:B,onSwiperReset:ew},t.isEmptyChildren(v)?e.jsx("div",{children:"No Slider"}):e.jsx(e.Fragment,{children:ej.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:C?.uid,dispatchEventSelectSlide:X})})})),eC("next",!!_)]}),G&&e.jsx(u.default,{dotStyle:f?.dotStyle,dotGapToCarousel:f?.dotGapToCarousel,vertical:f?.vertical,showDots:f?.dot,slideItemsPerPage:L(),enabledSneakPeak:eh,dotColor:f?.dotColor,dotActiveColor:f?.dotActiveColor,dotSize:f?.dotSize,sneakPeakType:f?.sneakPeakType,totalSlideItem:eg,hiddenWhenOnlyOne:y,currentSlide:F,loop:eo,numberOfFullWidthShow:Y(ev),onHandleClick:U,slideDuplicated:ek}),t.filterToolbarPreview(v,!0)]})})});exports.default=p;
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:S,styles:h,isHiddenArrowWhenDisabled:k=!0,hiddenDotWhenOnlyOne:w,elmRef:y,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:D="16",roundedArrow:T,arrowIconSize:A,arrowCustomColor:I,arrowBorder:N,arrowShadow:R,showWhenHover:z}=f??{},M=r.useRef({prevOrder:"",prevContent:"",version:0}),B=r.useMemo(()=>{let e=f?.childItem||[],r=e.join("|"),t=[...e].sort().join("|"),o=M.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:V,localRef:W,sliderSettings:$,totalSlideItem:H,currentSlide:F,isRenderDots:G,showNavigation:_,isScrollToStart:J,isScrollToEnd:K,handleDotClick:U,getItemsPerPage:L,handleNextAndPrevSlide:Q,dispatchEventSelectSlide:X,getNumberOfFullWidthShow:Y,setCurrentSlide:Z,shouldDuplicateSlides:ee,setIsScrollToStart:er,setIsScrollToEnd:et}=i.useCarousel(b,m,x,q),{loopConfig:eo,arrowShowConfig:ei}=l.getData(b),{rootClassRender:el,wrapperClassRender:es,wrapperInnerClass:en,sliderClass:ea}=s.getClass(b),{rootStyleRender:ed,wrapperStyleRender:eu,wrapperInnerStyle:ec}=n.getStyle(b),{rootAttrRender:ep,sliderAttr:em}=a.getAttr(b),ev=t.useCurrentDevice(),eC=f?.sneakPeak?.[ev],eS=(r,t)=>{let o="next"===r;if(q<=1)return null;let i=o?!V&&x?.isEnd:!V&&x?.isBeginning;return e.jsx(d.default,{uid:S?.uid,custom:f?.arrowCustom??"",showArrow:ei,arrowButtonSize:E||{},arrowIconSize:A||{},arrowBackgroundColor:O||"",arrowCustomColor:I,gapToEachSize:D,showWhenHover:z,arrowBorder:N||{},arrowCorner:T||{},arrowShadow:R||{},onClick:e=>{e.stopPropagation(),Q(r)},left:!o,disabled:g?o?!V&&K||!t:!V&&J||!t:i,vertical:f?.vertical,isHiddenWhenDisabled:k,rootId:p?.parentClass})},eh=r.useCallback(e=>{P(e),j?.(e)},[]),ek=r.useCallback(()=>{p?.isDisableResetSlide||(Z(0),er(!0),et(!1))},[p?.isDisableResetSlide,Z,et,er]),ew=r.Children.toArray(t.filterToolbarPreview(v)).filter(r.isValidElement),ey=ee(q),eg=ey?2*q:q,ej=r.useMemo(()=>{if(!ey)return ew;let e=ew.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[...ew,...e]},[ey,ew]),ef=r.useMemo(()=>{let e=r.Children.toArray(v),t=e[0];return r.isValidElement(t)?t.key:""},[v]),eb=JSON.stringify($.autoplay),eq=r.useMemo(()=>{let e=[q,B,ej.length,ef,$.dir,$.loop,$.virtual,$.direction,$.isSneakPeekCenter,eb];return e.join("-")},[q,B,ej.length,ef,$.dir,$.loop,$.virtual,$.direction,$.isSneakPeekCenter,eb]);return e.jsx("div",{ref:y,...ep,className:el,style:ed,children:e.jsxs("div",{ref:W,...C,className:es,style:eu,children:[e.jsxs("div",{className:en,style:ec,children:[eS("prev",!!_),r.createElement(c.Swiper,{...em,...$,sliderClass:ea,thumbsSwiper:p?.thumbsSwiper,onSwiperReady:eh,totalSlides:H,key:eq,sliderOrder:B,onSwiperReset:ek},t.isEmptyChildren(v)?e.jsx("div",{children:"No Slider"}):e.jsx(e.Fragment,{children:ej.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:h,background:f?.background,parentUid:S?.uid,dispatchEventSelectSlide:X})})})),eS("next",!!_)]}),G&&e.jsx(u.default,{dotStyle:f?.dotStyle,dotGapToCarousel:f?.dotGapToCarousel,vertical:f?.vertical,showDots:f?.dot,slideItemsPerPage:L(),enabledSneakPeak:eC,dotColor:f?.dotColor,dotActiveColor:f?.dotActiveColor,dotSize:f?.dotSize,sneakPeakType:f?.sneakPeakType,totalSlideItem:eg,hiddenWhenOnlyOne:w,currentSlide:F,loop:eo,numberOfFullWidthShow:Y(ev),onHandleClick:U,slideDuplicated:ey}),t.filterToolbarPreview(v,!0)]})})});exports.default=p;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),i=require("@gem-sdk/core"),s=require("../../../constants/index.js"),n=require("../../product-offer/context/PrdOfferSubscriptionPresenceContext.js"),u=require("./useSellingPlanOptions.js"),r=require("../../../hooks/useSubscriptionSellingType.js");exports.useSubscriptionVisibility=({setting:t})=>{let o=i.useProductStore(e=>e.setSubscriptionSellingType),{isOneTime:l,subscriptionSellingType:S}=r.useSubscriptionSellingType(),c=u.useSellingPlanOptions(t),p=i.useProduct(),E=n.useProductOfferSubscriptionPresence(),T=c&&c.length>0,b=void 0!==E,O=e.useMemo(()=>void 0===E||E.hasBoth,[E]),m=e.useMemo(()=>p?.requiresSellingPlan,[p?.requiresSellingPlan]),g=e.useMemo(()=>l?s.SubscriptionEnum.ONE_TIME:s.SubscriptionEnum.SUBSCRIPTION,[l]);e.useEffect(()=>{S||(t?.sellingType===s.SubscriptionEnum.ONE_TIME?o(s.SubscriptionEnum.ONE_TIME):o(t?.sellingType??s.SubscriptionEnum.SUBSCRIPTION))},[o,t?.sellingType,S]);let P=b&&!!E?.hasSubscriptionBlock&&!E?.hasOneTimeBlock&&S===s.SubscriptionEnum.ONE_TIME;e.useEffect(()=>{P&&o(s.SubscriptionEnum.SUBSCRIPTION)},[o,P]);let I=t?.sellingType===s.SubscriptionEnum.SUBSCRIPTION&&!T,a=t?.sellingType===s.SubscriptionEnum.ONE_TIME&&m;return{selectedType:g,shouldShowRadio:!m&&T&&O,isOneTimeHidden:a,requiresSellingPlan:m,isOnetimeOnly:!T&&!m,hasNoSellingPlanOptions:I,setSubscriptionSellingType:o}};
1
+ "use strict";var e=require("react"),i=require("@gem-sdk/core"),s=require("../../../constants/index.js"),n=require("../../product-offer/context/PrdOfferSubscriptionPresenceContext.js"),u=require("./useSellingPlanOptions.js"),r=require("../../../hooks/useSubscriptionSellingType.js");exports.useSubscriptionVisibility=({setting:t})=>{let{isEditMode:o}=i.useRenderMode(),l=i.useProductStore(e=>e.setSubscriptionSellingType),{isOneTime:S,subscriptionSellingType:c}=r.useSubscriptionSellingType(),p=u.useSellingPlanOptions(t),E=i.useProduct(),T=n.useProductOfferSubscriptionPresence(),b=p&&p.length>0,O=T?.hasBoth??!1,g=e.useMemo(()=>E?.requiresSellingPlan,[E?.requiresSellingPlan]),m=e.useMemo(()=>S?s.SubscriptionEnum.ONE_TIME:s.SubscriptionEnum.SUBSCRIPTION,[S]);e.useEffect(()=>{c||(t?.sellingType===s.SubscriptionEnum.ONE_TIME?l(s.SubscriptionEnum.ONE_TIME):l(t?.sellingType??s.SubscriptionEnum.SUBSCRIPTION))},[l,t?.sellingType,c]);let P=o&&!!T?.hasSubscriptionBlock&&!T?.hasOneTimeBlock&&c===s.SubscriptionEnum.ONE_TIME;e.useEffect(()=>{P&&l(s.SubscriptionEnum.SUBSCRIPTION)},[l,P]);let I=!o||O,a=t?.sellingType===s.SubscriptionEnum.SUBSCRIPTION&&!b,d=t?.sellingType===s.SubscriptionEnum.ONE_TIME&&g;return{selectedType:m,shouldShowRadio:!g&&b&&I,isOneTimeHidden:d,requiresSellingPlan:g,isOnetimeOnly:!b&&!g,hasNoSellingPlanOptions:a,setSubscriptionSellingType:l}};
@@ -1 +1 @@
1
- "use strict";var e=require("@gem-sdk/core"),t=require("react"),r=require("../../../helpers/tracking.js"),s=require("./useDispatchAfterSubmitEvent.js"),a=require("./useCartMessage.js"),u=require("./useCartOperations.js");exports.useBtnAddToCart=({styles:i,setting:n,builderProps:c})=>{let o=t.useRef(null),{isEditMode:d,isPreviewSharePageMode:l}=e.useRenderMode(),v=e.useProduct(),{currency:b}=e.useCurrency(),{quantity:p}=e.useQuantity(),C=e.useProductProperties(),k=e.useCurrentVariant(),{hasPreSelected:f}=e.useHasPreSelected(),g=e.useStickyStore(e=>e.setElement),m=e.useProductStore(e=>e.updateIsSubmit),D=s.useDispatchInteractionEvent(c?.uid),I=s.useDispatchCustomEvent({product:v,currentVariant:k,quantity:p}),{showMessage:S,notiComponent:E}=a.useCartMessage(i,n),{handleSuccess:y,handleError:q,cartId:M}=u.useCartOperations({setting:n,showMessage:S,dispatchInteractionEvent:D,dispatchCustomEvent:I}),{isMutating:P,trigger:T}=e.useCreateCart({onSuccess:y,onError:q}),{isMutating:h,trigger:j}=e.useAddToCart({onSuccess:y,onError:q});t.useEffect(()=>{let e=o.current;!(!e||e.closest(".sticky-wrapper"))&&c?.uid&&c.builderData?.advanced&&g({id:c.uid,element:e,deviceVisibility:c.builderData.advanced.d})},[]);let A=t.useCallback(()=>{if(!k?.baseID||!p||!v?.baseID||void 0!==f&&!f||d||l)return;let t=C?.some(e=>e.required&&!e.value);if(m(!0),t)return;let s=C?.filter(e=>!!e.value)?.map(e=>({key:e.key,value:e.value}));r.addToCartTracking({quantity:p,currency:b,id:v?.baseID,name:v?.title,brand:v?.vendor,sku:k.sku,price:e.convertDecimalToNumber(k?.price),variant:k.title});let a={quantity:p,attributes:s,variantId:k.baseID};n?.actionEffect!=="buy-now"&&M?j({cartId:M,lines:[a]}):T({items:[a]})},[d,l,M,b,p,C,f,v?.title,v?.vendor,v?.baseID,k?.sku,k?.price,k?.title,k?.baseID,n?.actionEffect,T,j,m]),O=e.useCurrentVariantInStock(),V=k?n?.outOfStockLabel:"Unavailable";return{addToCartRef:o,isLoading:P||h,isInStock:O,notiComponent:E,outOfStockLabel:V,addToCart:A}};
1
+ "use strict";var e=require("@gem-sdk/core"),t=require("react"),r=require("../../../helpers/tracking.js"),s=require("./useDispatchAfterSubmitEvent.js"),a=require("./useCartMessage.js"),u=require("./useCartOperations.js");exports.useBtnAddToCart=({styles:i,setting:n,builderProps:c})=>{let d=t.useRef(null),{isEditMode:o,isPreviewSharePageMode:l}=e.useRenderMode(),v=e.useProduct(),{currency:b}=e.useCurrency(),{quantity:p}=e.useQuantity(),C=e.useProductProperties(),k=e.useCurrentVariant(),{hasPreSelected:f}=e.useHasPreSelected(),g=e.useStickyStore(e=>e.setElement),m=e.useProductStore(e=>e.updateIsSubmit),D=s.useDispatchInteractionEvent(c?.uid),I=s.useDispatchCustomEvent({product:v,currentVariant:k,quantity:p}),{showMessage:S,notiComponent:E}=a.useCartMessage(i,n),{handleSuccess:y,handleError:q,cartId:M}=u.useCartOperations({setting:n,showMessage:S,dispatchInteractionEvent:D,dispatchCustomEvent:I}),{isMutating:P,trigger:T}=e.useCreateCart({onSuccess:y,onError:q}),{isMutating:h,trigger:j}=e.useAddToCart({onSuccess:y,onError:q});t.useEffect(()=>{let e=d.current;!(!e||e.closest(".sticky-wrapper"))&&v?.id&&c?.uid&&c.builderData?.advanced&&g({id:`${c.uid}-${v.id}`,element:e,deviceVisibility:c.builderData.advanced.d})},[]);let A=t.useCallback(()=>{if(!k?.baseID||!p||!v?.baseID||void 0!==f&&!f||o||l)return;let t=C?.some(e=>e.required&&!e.value);if(m(!0),t)return;let s=C?.filter(e=>!!e.value)?.map(e=>({key:e.key,value:e.value}));r.addToCartTracking({quantity:p,currency:b,id:v?.baseID,name:v?.title,brand:v?.vendor,sku:k.sku,price:e.convertDecimalToNumber(k?.price),variant:k.title});let a={quantity:p,attributes:s,variantId:k.baseID};n?.actionEffect!=="buy-now"&&M?j({cartId:M,lines:[a]}):T({items:[a]})},[o,l,M,b,p,C,f,v?.title,v?.vendor,v?.baseID,k?.sku,k?.price,k?.title,k?.baseID,n?.actionEffect,T,j,m]),O=e.useCurrentVariantInStock(),V=k?n?.outOfStockLabel:"Unavailable";return{addToCartRef:d,isLoading:P||h,isInStock:O,notiComponent:E,outOfStockLabel:V,addToCart:A}};
@@ -1 +1 @@
1
- "use strict";var e=require("@gem-sdk/core"),r=require("react"),t=require("swr"),a=require("../constants/index.js");exports.useProductsQuery=({defaultSelectedProductCount:s,productIds:u,productSrc:o})=>{let i=e.useFetchHandle(),n=e.usePageStore(e=>e.publicStoreFrontData),c=r.useMemo(()=>e.hasPublicStoreFrontData(n)?e.createStoreFrontFetcher(n):i,[n]),d=e.useIsSampleProduct(),l=e.useIsStorefrontProduct(),P=r.useMemo(()=>o!==a.PRODUCT_SOURCE.PickProduct?null:e.generateProductsQueryKey({ids:u??[],isSample:d,isStorefront:l,defaultSelectedProductCount:s}),[o]),g=t(P,async([,r])=>e.getProducts(c,r),{revalidateOnMount:!1,refreshInterval:0,revalidateIfStale:!1});return r.useEffect(()=>{if(o!==a.PRODUCT_SOURCE.PickProduct)return;let e=!!g.error,r=g.isLoading||g.isValidating,t=!g.data&&!r;!e&&t&&g.mutate()},[o,u?.length,g.data,g.error,g.isLoading,g.isValidating]),{...g}};
1
+ "use strict";var e=require("@gem-sdk/core"),r=require("react"),t=require("swr"),a=require("../constants/index.js");exports.useProductsQuery=({defaultSelectedProductCount:s,productIds:u,productSrc:o})=>{let i=e.useFetchHandle(),c=e.usePageStore(e=>e.publicStoreFrontData),n=r.useMemo(()=>e.hasPublicStoreFrontData(c)?e.createStoreFrontFetcher(c):i,[c]),d=e.useIsSampleProduct(),l=e.useIsStorefrontProduct(),P=r.useMemo(()=>o!==a.PRODUCT_SOURCE.PickProduct?null:e.generateProductsQueryKey({ids:u??[],isSample:d,isStorefront:l,defaultSelectedProductCount:s}),[o,u,d,l,s]),S=t(P,async([,r])=>e.getProducts(n,r),{revalidateOnMount:!1,refreshInterval:0,revalidateIfStale:!1});return r.useEffect(()=>{if(o!==a.PRODUCT_SOURCE.PickProduct)return;let e=!!S.error,r=S.isLoading||S.isValidating,t=!S.data&&!r;!e&&t&&S.mutate()},[o,S.data,S.error,S.isLoading,S.isValidating]),{...S}};
@@ -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 l,useRef as n,useMemo as s,useCallback as a,isValidElement as d,cloneElement as p,createElement as m}from"react";import{filterToolbarPreview as u,useCurrentDevice as c,isEmptyChildren as S}from"@gem-sdk/core";import{mappingNavigationCarousel as h}from"../arrow/common/helpers.js";import{useCarousel as v}from"../../hooks/useCarousel.js";import{getData as y}from"./common/helpers.js";import{getClass as f}from"./common/classes.js";import{getStyle as w}from"./common/styles.js";import{getAttr as k}from"./common/attrs.js";import C from"../arrow/Arrow.js";import g from"../dot/Dots.js";import{Swiper as j}from"../swiper/Swiper.js";import"@gem-sdk/system";let b=t((t,b)=>{let{children:O,builderAttrs:P,builderProps:A,styles:D,isHiddenArrowWhenDisabled:I=!0,hiddenDotWhenOnlyOne:x,elmRef:z,isEnableCheckHasScrollableContent:N,onSwiperReady:T}=t,B=h(t.setting),R={...t,setting:B},W=i.count(u(O))??0,[$,E]=l(null),{arrowButtonSize:H,arrowBackgroundColor:G,arrowGapToEachSide:F="16",roundedArrow:J,arrowIconSize:K,arrowCustomColor:U,arrowBorder:q,arrowShadow:L,showWhenHover:M}=B??{},Q=n({prevOrder:"",prevContent:"",version:0}),V=s(()=>{let e=B?.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}`},[B?.childItem]),{isInfinity:X,localRef:Y,sliderSettings:Z,totalSlideItem:_,currentSlide:ee,isRenderDots:er,showNavigation:eo,isScrollToStart:et,isScrollToEnd:ei,handleDotClick:el,getItemsPerPage:en,handleNextAndPrevSlide:es,dispatchEventSelectSlide:ea,getNumberOfFullWidthShow:ed,setCurrentSlide:ep,shouldDuplicateSlides:em,setIsScrollToStart:eu,setIsScrollToEnd:ec}=v(R,b,$,W),{loopConfig:eS,arrowShowConfig:eh}=y(R),{rootClassRender:ev,wrapperClassRender:ey,wrapperInnerClass:ef,sliderClass:ew}=f(R),{rootStyleRender:ek,wrapperStyleRender:eC,wrapperInnerStyle:eg}=w(R),{rootAttrRender:ej,sliderAttr:eb}=k(R),eO=c(),eP=B?.sneakPeak?.[eO],eA=(r,o)=>{let i="next"===r;if(W<=1)return null;let l=i?!X&&$?.isEnd:!X&&$?.isBeginning;return e(C,{uid:A?.uid,custom:B?.arrowCustom??"",showArrow:eh,arrowButtonSize:H||{},arrowIconSize:K||{},arrowBackgroundColor:G||"",arrowCustomColor:U,gapToEachSize:F,showWhenHover:M,arrowBorder:q||{},arrowCorner:J||{},arrowShadow:L||{},onClick:e=>{e.stopPropagation(),es(r)},left:!i,disabled:N?i?!X&&ei||!o:!X&&et||!o:l,vertical:B?.vertical,isHiddenWhenDisabled:I,rootId:t?.parentClass})},eD=a(e=>{E(e),T?.(e)},[]),eI=a(()=>{t?.isDisableResetSlide||(ep(0),eu(!0),ec(!1))},[t?.isDisableResetSlide,ep,ec,eu]),ex=i.toArray(u(O)).filter(d),ez=em(W),eN=ez?2*W:W,eT=s(()=>{if(!ez)return ex;let e=ex.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[...ex,...e]},[ez,ex]),eB=s(()=>{let e=i.toArray(O),r=e[0];return d(r)?r.key:""},[O]),eR=JSON.stringify(Z.autoplay),eW=s(()=>{let e=[W,V,eT.length,eB,Z.dir,Z.loop,Z.virtual,Z.direction,eR];return e.join("-")},[W,V,eT.length,eB,Z.dir,Z.loop,Z.virtual,Z.direction,eR]);return e("div",{ref:z,...ej,className:ev,style:ek,children:r("div",{ref:Y,...P,className:ey,style:eC,children:[r("div",{className:ef,style:eg,children:[eA("prev",!!eo),m(j,{...eb,...Z,sliderClass:ew,thumbsSwiper:t?.thumbsSwiper,onSwiperReady:eD,totalSlides:_,key:eW,sliderOrder:V,onSwiperReset:eI},S(O)?e("div",{children:"No Slider"}):e(o,{children:eT.map((e,r)=>{if(!d(e))return null;let o=e.props??{};return m(e.type,{...o,key:e.key,indexKey:r.toString(),parentSettings:B,parentStyle:D,background:B?.background,parentUid:A?.uid,dispatchEventSelectSlide:ea})})})),eA("next",!!eo)]}),er&&e(g,{dotStyle:B?.dotStyle,dotGapToCarousel:B?.dotGapToCarousel,vertical:B?.vertical,showDots:B?.dot,slideItemsPerPage:en(),enabledSneakPeak:eP,dotColor:B?.dotColor,dotActiveColor:B?.dotActiveColor,dotSize:B?.dotSize,sneakPeakType:B?.sneakPeakType,totalSlideItem:eN,hiddenWhenOnlyOne:x,currentSlide:ee,loop:eS,numberOfFullWidthShow:ed(eO),onHandleClick:el,slideDuplicated:ez}),u(O,!0)]})})});export{b as default};
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 u,useCurrentDevice as c,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 f}from"./common/styles.js";import{getAttr as w}from"./common/attrs.js";import C from"../arrow/Arrow.js";import g from"../dot/Dots.js";import{Swiper as j}from"../swiper/Swiper.js";import"@gem-sdk/system";let b=t((t,b)=>{let{children:O,builderAttrs:P,builderProps:A,styles:D,isHiddenArrowWhenDisabled:I=!0,hiddenDotWhenOnlyOne:x,elmRef:z,isEnableCheckHasScrollableContent:N,onSwiperReady:T}=t,B=h(t.setting),R={...t,setting:B},W=i.count(u(O))??0,[$,E]=n(null),{arrowButtonSize:H,arrowBackgroundColor:G,arrowGapToEachSide:F="16",roundedArrow:J,arrowIconSize:K,arrowCustomColor:U,arrowBorder:q,arrowShadow:L,showWhenHover:M}=B??{},Q=l({prevOrder:"",prevContent:"",version:0}),V=s(()=>{let e=B?.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}`},[B?.childItem]),{isInfinity:X,localRef:Y,sliderSettings:Z,totalSlideItem:_,currentSlide:ee,isRenderDots:er,showNavigation:eo,isScrollToStart:et,isScrollToEnd:ei,handleDotClick:en,getItemsPerPage:el,handleNextAndPrevSlide:es,dispatchEventSelectSlide:ea,getNumberOfFullWidthShow:ed,setCurrentSlide:ep,shouldDuplicateSlides:em,setIsScrollToStart:eu,setIsScrollToEnd:ec}=k(R,b,$,W),{loopConfig:eS,arrowShowConfig:eh}=v(R),{rootClassRender:ek,wrapperClassRender:ev,wrapperInnerClass:ey,sliderClass:ef}=y(R),{rootStyleRender:ew,wrapperStyleRender:eC,wrapperInnerStyle:eg}=f(R),{rootAttrRender:ej,sliderAttr:eb}=w(R),eO=c(),eP=B?.sneakPeak?.[eO],eA=(r,o)=>{let i="next"===r;if(W<=1)return null;let n=i?!X&&$?.isEnd:!X&&$?.isBeginning;return e(C,{uid:A?.uid,custom:B?.arrowCustom??"",showArrow:eh,arrowButtonSize:H||{},arrowIconSize:K||{},arrowBackgroundColor:G||"",arrowCustomColor:U,gapToEachSize:F,showWhenHover:M,arrowBorder:q||{},arrowCorner:J||{},arrowShadow:L||{},onClick:e=>{e.stopPropagation(),es(r)},left:!i,disabled:N?i?!X&&ei||!o:!X&&et||!o:n,vertical:B?.vertical,isHiddenWhenDisabled:I,rootId:t?.parentClass})},eD=a(e=>{E(e),T?.(e)},[]),eI=a(()=>{t?.isDisableResetSlide||(ep(0),eu(!0),ec(!1))},[t?.isDisableResetSlide,ep,ec,eu]),ex=i.toArray(u(O)).filter(d),ez=em(W),eN=ez?2*W:W,eT=s(()=>{if(!ez)return ex;let e=ex.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[...ex,...e]},[ez,ex]),eB=s(()=>{let e=i.toArray(O),r=e[0];return d(r)?r.key:""},[O]),eR=JSON.stringify(Z.autoplay),eW=s(()=>{let e=[W,V,eT.length,eB,Z.dir,Z.loop,Z.virtual,Z.direction,Z.isSneakPeekCenter,eR];return e.join("-")},[W,V,eT.length,eB,Z.dir,Z.loop,Z.virtual,Z.direction,Z.isSneakPeekCenter,eR]);return e("div",{ref:z,...ej,className:ek,style:ew,children:r("div",{ref:Y,...P,className:ev,style:eC,children:[r("div",{className:ey,style:eg,children:[eA("prev",!!eo),m(j,{...eb,...Z,sliderClass:ef,thumbsSwiper:t?.thumbsSwiper,onSwiperReady:eD,totalSlides:_,key:eW,sliderOrder:V,onSwiperReset:eI},S(O)?e("div",{children:"No Slider"}):e(o,{children:eT.map((e,r)=>{if(!d(e))return null;let o=e.props??{};return m(e.type,{...o,key:e.key,indexKey:r.toString(),parentSettings:B,parentStyle:D,background:B?.background,parentUid:A?.uid,dispatchEventSelectSlide:ea})})})),eA("next",!!eo)]}),er&&e(g,{dotStyle:B?.dotStyle,dotGapToCarousel:B?.dotGapToCarousel,vertical:B?.vertical,showDots:B?.dot,slideItemsPerPage:el(),enabledSneakPeak:eP,dotColor:B?.dotColor,dotActiveColor:B?.dotActiveColor,dotSize:B?.dotSize,sneakPeakType:B?.sneakPeakType,totalSlideItem:eN,hiddenWhenOnlyOne:x,currentSlide:ee,loop:eS,numberOfFullWidthShow:ed(eO),onHandleClick:en,slideDuplicated:ez}),u(O,!0)]})})});export{b as default};
@@ -1 +1 @@
1
- import{useMemo as e,useEffect as i}from"react";import{useProductStore as o,useProduct as l}from"@gem-sdk/core";import{SubscriptionEnum as s}from"../../../constants/index.js";import{useProductOfferSubscriptionPresence as r}from"../../product-offer/context/PrdOfferSubscriptionPresenceContext.js";import{useSellingPlanOptions as t}from"./useSellingPlanOptions.js";import{useSubscriptionSellingType as n}from"../../../hooks/useSubscriptionSellingType.js";let p=({setting:p})=>{let S=o(e=>e.setSubscriptionSellingType),{isOneTime:T,subscriptionSellingType:m}=n(),O=t(p),c=l(),u=r(),I=O&&O.length>0,g=void 0!==u,f=e(()=>void 0===u||u.hasBoth,[u]),E=e(()=>c?.requiresSellingPlan,[c?.requiresSellingPlan]),a=e(()=>T?s.ONE_TIME:s.SUBSCRIPTION,[T]);i(()=>{m||(p?.sellingType===s.ONE_TIME?S(s.ONE_TIME):S(p?.sellingType??s.SUBSCRIPTION))},[S,p?.sellingType,m]);let y=g&&!!u?.hasSubscriptionBlock&&!u?.hasOneTimeBlock&&m===s.ONE_TIME;i(()=>{y&&S(s.SUBSCRIPTION)},[S,y]);let N=p?.sellingType===s.SUBSCRIPTION&&!I,P=p?.sellingType===s.ONE_TIME&&E;return{selectedType:a,shouldShowRadio:!E&&I&&f,isOneTimeHidden:P,requiresSellingPlan:E,isOnetimeOnly:!I&&!E,hasNoSellingPlanOptions:N,setSubscriptionSellingType:S}};export{p as useSubscriptionVisibility};
1
+ import{useMemo as e,useEffect as i}from"react";import{useRenderMode as l,useProductStore as o,useProduct as s}from"@gem-sdk/core";import{SubscriptionEnum as r}from"../../../constants/index.js";import{useProductOfferSubscriptionPresence as t}from"../../product-offer/context/PrdOfferSubscriptionPresenceContext.js";import{useSellingPlanOptions as n}from"./useSellingPlanOptions.js";import{useSubscriptionSellingType as p}from"../../../hooks/useSubscriptionSellingType.js";let S=({setting:S})=>{let{isEditMode:T}=l(),m=o(e=>e.setSubscriptionSellingType),{isOneTime:O,subscriptionSellingType:c}=p(),u=n(S),I=s(),g=t(),f=u&&u.length>0,E=g?.hasBoth??!1,a=e(()=>I?.requiresSellingPlan,[I?.requiresSellingPlan]),y=e(()=>O?r.ONE_TIME:r.SUBSCRIPTION,[O]);i(()=>{c||(S?.sellingType===r.ONE_TIME?m(r.ONE_TIME):m(S?.sellingType??r.SUBSCRIPTION))},[m,S?.sellingType,c]);let N=T&&!!g?.hasSubscriptionBlock&&!g?.hasOneTimeBlock&&c===r.ONE_TIME;i(()=>{N&&m(r.SUBSCRIPTION)},[m,N]);let P=!T||E,h=S?.sellingType===r.SUBSCRIPTION&&!f,B=S?.sellingType===r.ONE_TIME&&a;return{selectedType:y,shouldShowRadio:!a&&f&&P,isOneTimeHidden:B,requiresSellingPlan:a,isOnetimeOnly:!f&&!a,hasNoSellingPlanOptions:h,setSubscriptionSellingType:m}};export{S as useSubscriptionVisibility};
@@ -1 +1 @@
1
- import{useRenderMode as e,useProduct as t,useCurrency as r,useQuantity as i,useProductProperties as a,useCurrentVariant as s,useHasPreSelected as o,useStickyStore as n,useProductStore as u,useCreateCart as l,useAddToCart as d,convertDecimalToNumber as c,useCurrentVariantInStock as m}from"@gem-sdk/core";import{useRef as p,useEffect as b,useCallback as f}from"react";import{addToCartTracking as v}from"../../../helpers/tracking.js";import{useDispatchInteractionEvent as g,useDispatchCustomEvent as k}from"./useDispatchAfterSubmitEvent.js";import{useCartMessage as D}from"./useCartMessage.js";import{useCartOperations as I}from"./useCartOperations.js";let E=({styles:E,setting:y,builderProps:S})=>{let j=p(null),{isEditMode:C,isPreviewSharePageMode:M}=e(),h=t(),{currency:w}=r(),{quantity:A}=i(),L=a(),O=s(),{hasPreSelected:q}=o(),x=n(e=>e.setElement),B=u(e=>e.updateIsSubmit),T=g(S?.uid),U=k({product:h,currentVariant:O,quantity:A}),{showMessage:V,notiComponent:z}=D(E,y),{handleSuccess:F,handleError:G,cartId:H}=I({setting:y,showMessage:V,dispatchInteractionEvent:T,dispatchCustomEvent:U}),{isMutating:J,trigger:K}=l({onSuccess:F,onError:G}),{isMutating:N,trigger:P}=d({onSuccess:F,onError:G});b(()=>{let e=j.current;!(!e||e.closest(".sticky-wrapper"))&&S?.uid&&S.builderData?.advanced&&x({id:S.uid,element:e,deviceVisibility:S.builderData.advanced.d})},[]);let Q=f(()=>{if(!O?.baseID||!A||!h?.baseID||void 0!==q&&!q||C||M)return;let e=L?.some(e=>e.required&&!e.value);if(B(!0),e)return;let t=L?.filter(e=>!!e.value)?.map(e=>({key:e.key,value:e.value}));v({quantity:A,currency:w,id:h?.baseID,name:h?.title,brand:h?.vendor,sku:O.sku,price:c(O?.price),variant:O.title});let r={quantity:A,attributes:t,variantId:O.baseID};y?.actionEffect!=="buy-now"&&H?P({cartId:H,lines:[r]}):K({items:[r]})},[C,M,H,w,A,L,q,h?.title,h?.vendor,h?.baseID,O?.sku,O?.price,O?.title,O?.baseID,y?.actionEffect,K,P,B]),R=m(),W=O?y?.outOfStockLabel:"Unavailable";return{addToCartRef:j,isLoading:J||N,isInStock:R,notiComponent:z,outOfStockLabel:W,addToCart:Q}};export{E as useBtnAddToCart};
1
+ import{useRenderMode as e,useProduct as t,useCurrency as r,useQuantity as i,useProductProperties as a,useCurrentVariant as s,useHasPreSelected as o,useStickyStore as n,useProductStore as u,useCreateCart as l,useAddToCart as d,convertDecimalToNumber as c,useCurrentVariantInStock as m}from"@gem-sdk/core";import{useRef as p,useEffect as b,useCallback as f}from"react";import{addToCartTracking as v}from"../../../helpers/tracking.js";import{useDispatchInteractionEvent as g,useDispatchCustomEvent as k}from"./useDispatchAfterSubmitEvent.js";import{useCartMessage as D}from"./useCartMessage.js";import{useCartOperations as I}from"./useCartOperations.js";let E=({styles:E,setting:y,builderProps:S})=>{let j=p(null),{isEditMode:C,isPreviewSharePageMode:M}=e(),h=t(),{currency:w}=r(),{quantity:A}=i(),L=a(),O=s(),{hasPreSelected:$}=o(),q=n(e=>e.setElement),x=u(e=>e.updateIsSubmit),B=g(S?.uid),T=k({product:h,currentVariant:O,quantity:A}),{showMessage:U,notiComponent:V}=D(E,y),{handleSuccess:z,handleError:F,cartId:G}=I({setting:y,showMessage:U,dispatchInteractionEvent:B,dispatchCustomEvent:T}),{isMutating:H,trigger:J}=l({onSuccess:z,onError:F}),{isMutating:K,trigger:N}=d({onSuccess:z,onError:F});b(()=>{let e=j.current;!(!e||e.closest(".sticky-wrapper"))&&h?.id&&S?.uid&&S.builderData?.advanced&&q({id:`${S.uid}-${h.id}`,element:e,deviceVisibility:S.builderData.advanced.d})},[]);let P=f(()=>{if(!O?.baseID||!A||!h?.baseID||void 0!==$&&!$||C||M)return;let e=L?.some(e=>e.required&&!e.value);if(x(!0),e)return;let t=L?.filter(e=>!!e.value)?.map(e=>({key:e.key,value:e.value}));v({quantity:A,currency:w,id:h?.baseID,name:h?.title,brand:h?.vendor,sku:O.sku,price:c(O?.price),variant:O.title});let r={quantity:A,attributes:t,variantId:O.baseID};y?.actionEffect!=="buy-now"&&G?N({cartId:G,lines:[r]}):J({items:[r]})},[C,M,G,w,A,L,$,h?.title,h?.vendor,h?.baseID,O?.sku,O?.price,O?.title,O?.baseID,y?.actionEffect,J,N,x]),Q=m(),R=O?y?.outOfStockLabel:"Unavailable";return{addToCartRef:j,isLoading:H||K,isInStock:Q,notiComponent:V,outOfStockLabel:R,addToCart:P}};export{E as useBtnAddToCart};
@@ -1 +1 @@
1
- import{useFetchHandle as r,usePageStore as t,hasPublicStoreFrontData as e,createStoreFrontFetcher as a,useIsSampleProduct as i,useIsStorefrontProduct as o,generateProductsQueryKey as n,getProducts as d}from"@gem-sdk/core";import{useMemo as s,useEffect as l}from"react";import u from"swr";import{PRODUCT_SOURCE as c}from"../constants/index.js";let m=({defaultSelectedProductCount:m,productIds:f,productSrc:g})=>{let p=r(),P=t(r=>r.publicStoreFrontData),k=s(()=>e(P)?a(P):p,[P]),v=i(),h=o(),x=s(()=>g!==c.PickProduct?null:n({ids:f??[],isSample:v,isStorefront:h,defaultSelectedProductCount:m}),[g]),y=u(x,async([,r])=>d(k,r),{revalidateOnMount:!1,refreshInterval:0,revalidateIfStale:!1});return l(()=>{if(g!==c.PickProduct)return;let r=!!y.error,t=y.isLoading||y.isValidating,e=!y.data&&!t;!r&&e&&y.mutate()},[g,f?.length,y.data,y.error,y.isLoading,y.isValidating]),{...y}};export{m as useProductsQuery};
1
+ import{useFetchHandle as r,usePageStore as t,hasPublicStoreFrontData as e,createStoreFrontFetcher as a,useIsSampleProduct as i,useIsStorefrontProduct as o,generateProductsQueryKey as n,getProducts as d}from"@gem-sdk/core";import{useMemo as s,useEffect as l}from"react";import u from"swr";import{PRODUCT_SOURCE as c}from"../constants/index.js";let m=({defaultSelectedProductCount:m,productIds:f,productSrc:p})=>{let g=r(),P=t(r=>r.publicStoreFrontData),k=s(()=>e(P)?a(P):g,[P]),v=i(),x=o(),y=s(()=>p!==c.PickProduct?null:n({ids:f??[],isSample:v,isStorefront:x,defaultSelectedProductCount:m}),[p,f,v,x,m]),I=u(y,async([,r])=>d(k,r),{revalidateOnMount:!1,refreshInterval:0,revalidateIfStale:!1});return l(()=>{if(p!==c.PickProduct)return;let r=!!I.error,t=I.isLoading||I.isValidating,e=!I.data&&!t;!r&&e&&I.mutate()},[p,I.data,I.error,I.isLoading,I.isValidating]),{...I}};export{m as useProductsQuery};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "17.0.0-dev.41",
3
+ "version": "17.0.0-dev.43",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",