@gem-sdk/components 17.0.0-dev.33 → 17.0.0-dev.37

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"),s=require("@gem-sdk/core"),t=require("../../../common/components/NoDataState.js"),r=require("./common/helpers.js"),a=require("@gem-sdk/system"),i=require("./common/classes.js"),l=require("./common/styles.js"),c=require("./hooks/useGpDescription.js");exports.default=n=>{let{setting:o,advanced:d,builderProps:m}=n,{htmlTag:p}=o??{},u=s.useProduct(),g=s.useCurrentDevice(),x=s.getResponsiveValueByScreen(o?.hasLineClamp,g),{ref:y,open:h,isShowViewMore:C,handleToggleShowMore:j,mode:S,redirectProductShopifyLink:v}=c.useGpDescription(o),{t:f}=s.useI18nStore(),k=a.createClass({"gp-product-description":!0,[d?.cssClass]:!0}),q=a.createClass(i.getClasses({setting:o,isLiquid:!1})),I=a.createClass(i.getButtonClasses({setting:o})),N=a.createClass({"gp-show-more-text":!0}),L=a.createClass({"gp-show-more-icon gp-ml-1":!0,...h?{"gp-rotate-180":!0}:{}}),_=a.createClass(i.getClassPreBuilt()),b=a.createStyle({...l.getTextStyle({setting:o}),...!h&&C?s.makeStyleResponsive("line-clamp",s.makeLineClamp(o?.lineClamp,o?.hasLineClamp)):{}}),w=a.createStyle(l.getButtonStyle({setting:o})),T=a.createAttr({"data-id":`${m?.uid}`}),H=a.createAttr({"data-gp-text":""}),{gpDescriptionCss:M,textDescriptionCss:A}=l.getStaticCss(),B=!u?.descriptionHtml;return B&&"edit"===S?e.jsx(t.default,{elementType:"secondary",description:f("Highlight key benefits with product description."),descriptionActions:[{text:f("Add description"),callback:v},{text:f("sync data"),callback:"syncProduct"}]}):e.jsx(e.Fragment,{children:a.If(B,"",e.jsxs("div",{...T,className:k,children:[e.jsx("style",{children:A}),e.jsx("style",{children:M}),e.jsx("div",{className:_}),e.jsx("html"===p?"div":"p",{ref:y,...H,className:q,style:b,dangerouslySetInnerHTML:{__html:u?.descriptionHtml||""}}),a.If(x&&C,e.jsxs("button",{className:I,style:w,onClick:j,children:[e.jsx("span",{className:N,children:a.If(h,o?.viewLessText||"",o?.viewMoreText)}),a.If(o?.enableViewMoreIcon,e.jsx("span",{className:L,dangerouslySetInnerHTML:{__html:r.ICON_SVG}}))]})," ")]}))})};
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("@gem-sdk/core"),t=require("../../../common/components/NoDataState.js"),r=require("./common/helpers.js"),a=require("@gem-sdk/system"),i=require("./common/classes.js"),l=require("./common/styles.js"),c=require("./hooks/useGpDescription.js");exports.default=n=>{let{setting:o,advanced:d,builderProps:m}=n,{htmlTag:p}=o??{},u=s.useProduct(),g=s.useCurrentDevice(),x=s.getResponsiveValueByScreen(o?.hasLineClamp,g),{ref:y,open:h,isShowViewMore:C,isOverflowChecked:j,handleToggleShowMore:S,mode:v,redirectProductShopifyLink:f}=c.useGpDescription(o),{t:k}=s.useI18nStore(),q=a.createClass({"gp-product-description":!0,[d?.cssClass]:!0}),I=a.createClass(i.getClasses({setting:o,isLiquid:!1})),N=a.createClass(i.getButtonClasses({setting:o})),L=a.createClass({"gp-show-more-text":!0}),_=a.createClass({"gp-show-more-icon gp-ml-1":!0,...h?{"gp-rotate-180":!0}:{}}),b=a.createClass(i.getClassPreBuilt()),w=a.createStyle({...l.getTextStyle({setting:o}),...h||j&&!C?{}:s.makeStyleResponsive("line-clamp",s.makeLineClamp(o?.lineClamp,o?.hasLineClamp))}),T=a.createStyle(l.getButtonStyle({setting:o})),H=a.createAttr({"data-id":`${m?.uid}`}),M=a.createAttr({"data-gp-text":""}),{gpDescriptionCss:A,textDescriptionCss:B}=l.getStaticCss(),D=!u?.descriptionHtml;return D&&"edit"===v?e.jsx(t.default,{elementType:"secondary",description:k("Highlight key benefits with product description."),descriptionActions:[{text:k("Add description"),callback:f},{text:k("sync data"),callback:"syncProduct"}]}):e.jsx(e.Fragment,{children:a.If(D,"",e.jsxs("div",{...H,className:q,children:[e.jsx("style",{children:B}),e.jsx("style",{children:A}),e.jsx("div",{className:b}),e.jsx("html"===p?"div":"p",{ref:y,...M,className:I,style:w,dangerouslySetInnerHTML:{__html:u?.descriptionHtml||""}}),a.If(x&&C,e.jsxs("button",{className:N,style:T,onClick:S,children:[e.jsx("span",{className:L,children:a.If(h,o?.viewLessText||"",o?.viewMoreText)}),a.If(o?.enableViewMoreIcon,e.jsx("span",{className:_,dangerouslySetInnerHTML:{__html:r.ICON_SVG}}))]})," ")]}))})};
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("@gem-sdk/core");exports.useGpDescription=r=>{let s=e.useRef(null),[u,i]=e.useState(!1),[l,n]=e.useState(!1),a=t.useProduct(),c=t.useCurrentDevice(),o=t.getResponsiveValueByScreen(r?.hasLineClamp,c),p=t.getResponsiveValueByScreen(r?.lineClamp,c),{redirectProductShopifyLink:g}=t.useProductShopifyEditLink(),m=t.useEditorMode(),d=e.useCallback(()=>`calc(${p} * 1lh)`,[p]),h=e.useCallback(e=>o&&p&&e||"auto",[o,p]),y=e.useCallback(()=>{s.current&&(s.current.style.maxHeight=u?d():"none",i(e=>!e))},[u,d]);return e.useEffect(()=>{h(d())},[r?.typo?.custom,h,d]),e.useEffect(()=>{let e=s.current;if(i(!1),!e)return;let r=o&&a?.descriptionHtml;r?setTimeout(()=>{let r=e?.scrollHeight??0,s=e?.clientHeight??0,u=window.getComputedStyle(e).getPropertyValue("line-height"),i=parseInt(u,10)||1,l=p&&r>p*i,a=t.isSafari()?l:s<r;e.style.maxHeight=d(),p&&a?n(()=>!0):n(()=>!1)},100):e.style.maxHeight="none"},[o,p,a?.descriptionHtml,d]),{ref:s,open:u,isShowViewMore:l,handleToggleShowMore:y,mode:m,redirectProductShopifyLink:g}};
1
+ "use strict";var e=require("react"),t=require("@gem-sdk/core");exports.useGpDescription=r=>{let u=e.useRef(null),s=e.useRef(!1),[n,i]=e.useState(!1),[l,c]=e.useState(!1),[o,a]=e.useState(!1),m=t.useProduct(),d=t.useCurrentDevice(),f=t.getResponsiveValueByScreen(r?.hasLineClamp,d),p=t.getResponsiveValueByScreen(r?.lineClamp,d),{redirectProductShopifyLink:g}=t.useProductShopifyEditLink(),h=t.useEditorMode(),y=e.useCallback(()=>`calc(${p} * 1lh)`,[p]),H=e.useCallback(e=>f&&p&&e||"auto",[f,p]),v=e.useCallback(()=>{if(!u.current)return;let e=!n;s.current=e,u.current.style.maxHeight=e?"none":y(),i(e)},[n,y]);return e.useEffect(()=>{H(y())},[r?.typo?.custom,H,y]),e.useEffect(()=>{let e=u.current;if(s.current=!1,i(!1),a(!1),!e)return;if(!f||!m?.descriptionHtml||!p){e.style.maxHeight="none",c(!1),a(!0);return}let t=()=>{if(s.current){e.style.maxHeight="none";return}e.style.maxHeight=y();let t=e.scrollHeight>e.clientHeight;t||(e.style.maxHeight="none"),c(t),a(!0)},r=window.setTimeout(t,100),n=new ResizeObserver(()=>{t()});return n.observe(e),()=>{window.clearTimeout(r),n.disconnect()}},[f,p,m?.descriptionHtml,y]),{ref:u,open:n,isShowViewMore:l,isOverflowChecked:o,handleToggleShowMore:v,mode:h,redirectProductShopifyLink:g}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("next/dynamic"),r=require("../../../common/components/Loading.js"),o=require("react"),d=require("@gem-sdk/core"),a=require("../SalePageProductListWarning.js"),s=require("next/head"),l=require("./ProductListGridLayout.js"),i=require("./ProductListCarouselLayout.js"),c=require("./common/styles.js"),n=require("@gem-sdk/system"),u=require("./common/classes.js"),g=require("./common/helpers.js"),m=require("../../../dialog/common/helpers.js");const h=t(()=>Promise.resolve().then(function(){return require("../ProductNotFound.js")}),{loading:r.default});exports.default=t=>{let{children:P,styles:f,builderProps:p,setting:y,builderAttrs:v}=t,{isRelatedProduct:b,productSetting:T}=g.getData(t),j=T.relatedTag&&T.relatedTag[0],{isEditMode:x,isPreviewSharePageMode:I}=d.useRenderMode(),k=d.useCurrentDevice(),S=d.usePageType(),C=d.usePageStore(e=>e.dynamicProduct),O=d.usePageStore(e=>e.dynamicCollection),[E,q]=o.useState(1),[M,N]=o.useState(!0),[w,L]=o.useState(),[W,F]=o.useState(!1),G="GP_FUNNEL_PAGE"===S;"GP_COLLECTION"==S&&(T.productSrc="DynamicCollection",T.collectionId=O?.collectionId??"latest");let Q=T?.productSrc??"Collection",B=C?.productId&&C?.productId!==T.relatedProductId?C?.productId:T.relatedProductId,D=d.useFetchHandle(),A=d.usePageStore(e=>e.publicStoreFrontData),_=o.useMemo(()=>d.hasPublicStoreFrontData(A)?d.createStoreFrontFetcher(A):D,[A]),{data:z}=d.useProductQuery(b&&B?B:void 0,{revalidateOnMount:x||I},_),H=T.relatedTag&&"tags"===T.relatedTag[0]&&(!z?.tags||z?.tags.length===0),R=T.relatedTag&&"collection"===T.relatedTag[0]&&(!z?.collections?.edges||z?.collections.edges.length===0),$=T.relatedTag&&"vendor"===T.relatedTag[0]&&!z?.vendor,V=d.useProductsQueryAll(w,{revalidateOnMount:x||I},_),U=x||I,J=d.useProductsQuery("PickProduct"===Q?T?.productIds:void 0,{revalidateOnMount:U},{defaultSelectedProductCount:T?.numOfSelectedProducts}),K=o.useMemo(()=>({id:T?.collectionId??"latest",numberOfProducts:y?.numberOfProducts??4,orderBy:y?.orderBy}),[T?.collectionId,Number(y?.numberOfProducts),y?.orderBy]),X=d.useCollectionQuery("PickProduct"!==Q?K:void 0,{revalidateOnMount:U});o.useEffect(()=>{if(b&&z&&T.relatedTag&&"recommended-product"!==T.relatedType){let e;switch(F(!1),T.hasRelatedExclude&&(e=T?.relatedExclude&&T.relatedExclude.split(",").map(e=>e.trim())),T.relatedTag[0]){case"vendor":L({first:y?.numberOfProducts,vendor:T.relatedTag&&"vendor"===T.relatedTag[0]?z?.vendor:"",idNEQ:z.id});break;case"collection":{let t=z?.collections?.edges.map(e=>e.node?.id);if(!t||t?.length===0){F(!0);break}L(e&&e.length>0?{first:y?.numberOfProducts,idNEQ:z.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t},{titleNotIn:e}]}]}:{first:y?.numberOfProducts,idNEQ:z.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t}]}]});break}case"tags":if(!z.tags||0===z.tags.length){F(!0);break}L(e&&e.length>0?{first:y?.numberOfProducts,idNEQ:z.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:z.tags},{nameNotIn:e}]}]}:{first:y?.numberOfProducts,idNEQ:z.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:z.tags}]}]})}}},[z,T.relatedType,T.relatedTag,y?.numberOfProducts,T.relatedExclude,T.hasRelatedExclude,b]);let Y="PickProduct"===Q?J.isValidating:X.isValidating,Z="PickProduct"===Q?J.isLoading:X.isLoading,ee="PickProduct"===Q?J.error:X.error,et=X.data?.collections?.edges?.[0]?.node,er="PickProduct"===Q?d.flattenConnection(J.data?.products):d.flattenConnection(et?.products),eo=V?.data?.products?d.flattenConnection(V?.data?.products):void 0,ed=b&&eo?eo:"PickProduct"===Q&&T?.productIds?.length?T?.productIds?.map(e=>er?.find(t=>t?.baseID===e)).filter(Boolean)??er:"PickProduct"!==Q?er:er.filter((e,t)=>t<(T?.numOfSelectedProducts??4)),ea=o.useMemo(()=>W&&b&&x||!ed.length&&!Z&&M&&x,[M,Z,W,b,x,ed.length]),es=o.useMemo(()=>!ed||W&&b,[W,b,ed]),el=o.useMemo(()=>{if(!y?.sameHeight)return[];let e=0,t=Math.ceil((ed?.length??0)/+(y?.slidesToShow?.[k]??1));return Array.from(Array(ed?.length??0)).map((r,o)=>(o>=+(y?.slidesToShow?.[k]??1)*(e+1)&&++e,{gridRow:`${1+E*e}/${E+1+E*e}`,marginBottom:e+1<t?m.getPropertyByDevice(f?.horizontalGutter,k):void 0}))},[y?.sameHeight,y?.slidesToShow,E,ed?.length,k,f?.horizontalGutter]),ei=o.useMemo(()=>Y||Z||ee||!ed||W&&b,[ee,Z,W,b,Y,ed]);o.useEffect(()=>{ei||setTimeout(()=>{let{builderData:e}=p??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&q(r.childElementCount||1)},x?0:500)},[p,ei,x]);let ec=o.useMemo(()=>({collection:et,products:ed,settings:{loop:y?.loop??{desktop:!1},scrollMode:y?.scrollMode??{desktop:"snap"},slidesToShow:y?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:f?.layout,dot:y?.dot,dotStyle:y?.dotStyle,arrow:y?.arrow,controlOverContent:y?.controlOverContent},styles:{horizontalGutter:f?.horizontalGutter,verticalGutter:f?.verticalGutter,fullWidth:f?.fullWidth,spacing:f?.spacing,width:f?.width,height:f?.height}}),[et,ed,y,f]);if(p?.isPreview&&G)return e.jsx(e.Fragment,{});if(ea)return e.jsx(e.Fragment,{children:n.If(M,e.jsx(h,{builderAttrs:v,collectionHandle:et?.handle,productSrc:Q,onClose:()=>N(!1),children:P,relatedTagString:j,assignProductNoTags:H||R||$,noAssignedProduct:!B}))});let{productListWrapStyle:en,productListContentStyle:eu,productListWrapAlignStyle:eg}=c.getStyle(t),{productListWrapClass:em}=u.getClass(t);return e.jsxs("div",{...v,className:em,style:en,children:[!!f?.preloadBgImage&&e.jsxs(s,{children:[!!f.backgroundImage?.desktop?.image?.src&&e.jsx("link",{rel:"preload",href:f.backgroundImage.desktop.image.src,as:"image"}),!!f.backgroundImage?.tablet?.image?.src&&e.jsx("link",{rel:"preload",href:f.backgroundImage?.tablet?.image?.src,as:"image"}),!!f.backgroundImage?.mobile?.image?.src&&e.jsx("link",{rel:"preload",href:f.backgroundImage?.mobile?.image?.src,as:"image"})]}),Y||Z?e.jsx(r.default,{}):ee?e.jsxs("div",{children:["Error: ",ee?.message]}):es?e.jsx("div",{children:"Products not found"}):e.jsx(d.ProductListProvider,{...ec,children:e.jsx("div",{className:"gp-flex gp-w-full",style:eg,children:e.jsxs("div",{style:eu,children:[G&&e.jsx(a.default,{}),e.jsx(e.Fragment,{children:n.If(f?.layout==="grid",e.jsx(l.default,{...t,productSortedById:ed,generateGridRowArray:el}),e.jsx(i.default,{...t,productSortedById:ed}))})]})})}),d.filterToolbarPreview(P,!0)]})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("next/dynamic"),r=require("../../../common/components/Loading.js"),o=require("react"),d=require("@gem-sdk/core"),a=require("../SalePageProductListWarning.js"),l=require("next/head"),s=require("./ProductListGridLayout.js"),i=require("./ProductListCarouselLayout.js"),c=require("./common/styles.js"),n=require("@gem-sdk/system"),u=require("./common/classes.js"),g=require("./common/helpers.js"),m=require("../../../dialog/common/helpers.js"),h=require("../product-list-v3/constants/index.js");const P=t(()=>Promise.resolve().then(function(){return require("../ProductNotFound.js")}),{loading:r.default});exports.default=t=>{let{children:f,styles:C,builderProps:p,setting:O,builderAttrs:T}=t,{isRelatedProduct:S,productSetting:y}=g.getData(t),v=y.relatedTag&&y.relatedTag[0],{isEditMode:b,isPreviewSharePageMode:j}=d.useRenderMode(),x=d.useCurrentDevice(),E=d.usePageType(),R=d.usePageStore(e=>e.dynamicProduct),I=d.usePageStore(e=>e.dynamicCollection),[k,U]=o.useState(1),[D,_]=o.useState(!0),[q,M]=o.useState(),[N,w]=o.useState(!1),L="GP_FUNNEL_PAGE"===E;"GP_COLLECTION"!=E||[h.PRODUCT_SOURCE.Collection,h.PRODUCT_SOURCE.DynamicCollection].includes(y?.productSrc)||(y.productSrc=h.PRODUCT_SOURCE.DynamicCollection);let W=y?.productSrc??h.PRODUCT_SOURCE.Collection;W===h.PRODUCT_SOURCE.DynamicCollection&&(y.collectionId=I?.collectionId||"latest");let F=R?.productId&&R?.productId!==y.relatedProductId?R?.productId:y.relatedProductId,G=d.useFetchHandle(),Q=d.usePageStore(e=>e.publicStoreFrontData),B=o.useMemo(()=>d.hasPublicStoreFrontData(Q)?d.createStoreFrontFetcher(Q):G,[Q]),{data:A}=d.useProductQuery(S&&F?F:void 0,{revalidateOnMount:b||j},B),z=y.relatedTag&&"tags"===y.relatedTag[0]&&(!A?.tags||A?.tags.length===0),H=y.relatedTag&&"collection"===y.relatedTag[0]&&(!A?.collections?.edges||A?.collections.edges.length===0),$=y.relatedTag&&"vendor"===y.relatedTag[0]&&!A?.vendor,V=d.useProductsQueryAll(q,{revalidateOnMount:b||j},B),J=b||j,K=d.useProductsQuery(W===h.PRODUCT_SOURCE.PickProduct?y?.productIds:void 0,{revalidateOnMount:J},{defaultSelectedProductCount:y?.numOfSelectedProducts}),X=o.useMemo(()=>({id:y?.collectionId??"latest",numberOfProducts:O?.numberOfProducts??4,orderBy:O?.orderBy}),[y?.collectionId,Number(O?.numberOfProducts),O?.orderBy]),Y=d.useCollectionQuery(W!==h.PRODUCT_SOURCE.PickProduct?X:void 0,{revalidateOnMount:J});o.useEffect(()=>{if(S&&A&&y.relatedTag&&"recommended-product"!==y.relatedType){let e;switch(w(!1),y.hasRelatedExclude&&(e=y?.relatedExclude&&y.relatedExclude.split(",").map(e=>e.trim())),y.relatedTag[0]){case"vendor":M({first:O?.numberOfProducts,vendor:y.relatedTag&&"vendor"===y.relatedTag[0]?A?.vendor:"",idNEQ:A.id});break;case"collection":{let t=A?.collections?.edges.map(e=>e.node?.id);if(!t||t?.length===0){w(!0);break}M(e&&e.length>0?{first:O?.numberOfProducts,idNEQ:A.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t},{titleNotIn:e}]}]}:{first:O?.numberOfProducts,idNEQ:A.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t}]}]});break}case"tags":if(!A.tags||0===A.tags.length){w(!0);break}M(e&&e.length>0?{first:O?.numberOfProducts,idNEQ:A.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:A.tags},{nameNotIn:e}]}]}:{first:O?.numberOfProducts,idNEQ:A.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:A.tags}]}]})}}},[A,y.relatedType,y.relatedTag,O?.numberOfProducts,y.relatedExclude,y.hasRelatedExclude,S]);let Z=W===h.PRODUCT_SOURCE.PickProduct?K.isValidating:Y.isValidating,ee=W===h.PRODUCT_SOURCE.PickProduct?K.isLoading:Y.isLoading,et=W===h.PRODUCT_SOURCE.PickProduct?K.error:Y.error,er=Y.data?.collections?.edges?.[0]?.node,eo=W===h.PRODUCT_SOURCE.PickProduct?d.flattenConnection(K.data?.products):d.flattenConnection(er?.products),ed=V?.data?.products?d.flattenConnection(V?.data?.products):void 0,ea=S&&ed?ed:W===h.PRODUCT_SOURCE.PickProduct&&y?.productIds?.length?y?.productIds?.map(e=>eo?.find(t=>t?.baseID===e)).filter(Boolean)??eo:W!==h.PRODUCT_SOURCE.PickProduct?eo:eo.filter((e,t)=>t<(y?.numOfSelectedProducts??4)),el=o.useMemo(()=>N&&S&&b||!ea.length&&!ee&&D&&b,[D,ee,N,S,b,ea.length]),es=o.useMemo(()=>!ea||N&&S,[N,S,ea]),ei=o.useMemo(()=>{if(!O?.sameHeight)return[];let e=0,t=Math.ceil((ea?.length??0)/+(O?.slidesToShow?.[x]??1));return Array.from(Array(ea?.length??0)).map((r,o)=>(o>=+(O?.slidesToShow?.[x]??1)*(e+1)&&++e,{gridRow:`${1+k*e}/${k+1+k*e}`,marginBottom:e+1<t?m.getPropertyByDevice(C?.horizontalGutter,x):void 0}))},[O?.sameHeight,O?.slidesToShow,k,ea?.length,x,C?.horizontalGutter]),ec=o.useMemo(()=>Z||ee||et||!ea||N&&S,[et,ee,N,S,Z,ea]);o.useEffect(()=>{ec||setTimeout(()=>{let{builderData:e}=p??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&U(r.childElementCount||1)},b?0:500)},[p,ec,b]);let en=o.useMemo(()=>({collection:er,products:ea,settings:{loop:O?.loop??{desktop:!1},scrollMode:O?.scrollMode??{desktop:"snap"},slidesToShow:O?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:C?.layout,dot:O?.dot,dotStyle:O?.dotStyle,arrow:O?.arrow,controlOverContent:O?.controlOverContent},styles:{horizontalGutter:C?.horizontalGutter,verticalGutter:C?.verticalGutter,fullWidth:C?.fullWidth,spacing:C?.spacing,width:C?.width,height:C?.height}}),[er,ea,O,C]);if(p?.isPreview&&L)return e.jsx(e.Fragment,{});if(el)return e.jsx(e.Fragment,{children:n.If(D,e.jsx(P,{builderAttrs:T,collectionHandle:er?.handle,productSrc:W,onClose:()=>_(!1),children:f,relatedTagString:v,assignProductNoTags:z||H||$,noAssignedProduct:!F}))});let{productListWrapStyle:eu,productListContentStyle:eg,productListWrapAlignStyle:em}=c.getStyle(t),{productListWrapClass:eh}=u.getClass(t);return e.jsxs("div",{...T,className:eh,style:eu,children:[!!C?.preloadBgImage&&e.jsxs(l,{children:[!!C.backgroundImage?.desktop?.image?.src&&e.jsx("link",{rel:"preload",href:C.backgroundImage.desktop.image.src,as:"image"}),!!C.backgroundImage?.tablet?.image?.src&&e.jsx("link",{rel:"preload",href:C.backgroundImage?.tablet?.image?.src,as:"image"}),!!C.backgroundImage?.mobile?.image?.src&&e.jsx("link",{rel:"preload",href:C.backgroundImage?.mobile?.image?.src,as:"image"})]}),Z||ee?e.jsx(r.default,{}):et?e.jsxs("div",{children:["Error: ",et?.message]}):es?e.jsx("div",{children:"Products not found"}):e.jsx(d.ProductListProvider,{...en,children:e.jsx("div",{className:"gp-flex gp-w-full",style:em,children:e.jsxs("div",{style:eg,children:[L&&e.jsx(a.default,{}),e.jsx(e.Fragment,{children:n.If(C?.layout==="grid",e.jsx(s.default,{...t,productSortedById:ea,generateGridRowArray:ei}),e.jsx(i.default,{...t,productSortedById:ea}))})]})})}),d.filterToolbarPreview(f,!0)]})};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("next/dynamic"),r=require("../../../common/components/Loading.js"),o=require("react"),s=require("@gem-sdk/core"),l=require("../SalePageProductListWarning.js"),d=require("next/head"),i=require("./ProductListGridLayout.js"),a=require("./ProductListCarouselLayout.js"),u=require("./common/styles.js"),n=require("@gem-sdk/system"),c=require("./common/classes.js"),g=require("./common/helpers.js"),m=require("../../../dialog/common/helpers.js"),h=require("./hooks/useProductsQuery.js"),P=require("./hooks/useCollectionQuery.js"),f=require("./hooks/useProductRelatedQuery.js"),p=require("./hooks/useMainRelatedProductQuery.js"),j=require("./constants/index.js");const y=t(()=>Promise.resolve().then(function(){return require("../ProductNotFound.js")}),{loading:r.default});exports.default=t=>{let{children:k,styles:x,builderProps:I,setting:S,builderAttrs:T}=t,{isRelatedProduct:q,productSetting:v}=g.getData(t),{isEditMode:C}=s.useRenderMode(),b=s.useCurrentDevice(),L=s.usePageType(),w=s.usePageStore(e=>e.dynamicCollection),[M,N]=o.useState(1),[O,G]=o.useState(!0),E=o.useRef(),_="GP_FUNNEL_PAGE"===L;"GP_COLLECTION"==L&&(v.productSrc="DynamicCollection",v.collectionId=w?.collectionId??"latest");let A=v?.productSrc??"Collection",{mainRelatedProduct:D,relatedProductIdAssigned:B}=p.default({productSrc:A,relatedProductId:v.relatedProductId}),F=v.relatedTag&&v.relatedTag[0],R=v.relatedTag&&"tags"===v.relatedTag[0]&&(!D?.tags||D?.tags.length===0),Q=v.relatedTag&&"collection"===v.relatedTag[0]&&(!D?.collections?.edges||D?.collections.edges.length===0),z=v.relatedTag&&"vendor"===v.relatedTag[0]&&!D?.vendor,{isNotFoundRelatedProduct:U,relatedProducts:H}=f.default({isRelatedProduct:q,productSetting:v,setting:S,mainRelatedProduct:D,productSrc:A}),W=h.useProductsQuery({productIds:v?.productIds,defaultSelectedProductCount:v?.numOfSelectedProducts,productSrc:A}),$=Number(S?.numberOfProducts),V=P.useCollectionQuery({productSrc:A,collectionID:v?.collectionId??"latest",numberOfProducts:Number.isNaN($)?j.DEFAULT_COLLECTION_NUMBER_OF_PRODUCTS:$,orderBy:S?.orderBy??"none"}),J="PickProduct"===A?W.isLoading:V.isLoading,K="PickProduct"===A?W.error:V.error,X="PickProduct"===A?W.isValidating:V.isValidating,Y=V.data?.collections?.edges?.[0]?.node,Z="PickProduct"===A?s.flattenConnection(W.data?.products):s.flattenConnection(Y?.products),ee=s.usePageStore(e=>e.assignedProductIds),et=s.usePageStore(e=>e.isApplyAllProducts),er=o.useMemo(()=>(ee??[]).length>0&&!et||et,[ee,et]),eo=H?.data?.products&&er?s.flattenConnection(H?.data?.products):[],es=q?eo:"PickProduct"===A&&v?.productIds?.length?v?.productIds?.map(e=>Z?.find(t=>t?.baseID===e)).filter(Boolean)??Z:"PickProduct"!==A?Z:Z.filter((e,t)=>t<(v?.numOfSelectedProducts??4)),el=o.useMemo(()=>U&&q&&C||!es.length&&!J&&O&&C,[O,J,U,q,C,es.length]),ed=o.useMemo(()=>!es||U&&q,[U,q,es]),ei=o.useMemo(()=>{if(!S?.sameHeight)return[];let e=0,t=Math.ceil((es?.length??0)/+(S?.slidesToShow?.[b]??1));return Array.from(Array(es?.length??0)).map((r,o)=>(o>=+(S?.slidesToShow?.[b]??1)*(e+1)&&++e,{gridRow:`${1+M*e}/${M+1+M*e}`,marginBottom:e+1<t?m.getPropertyByDevice(x?.horizontalGutter,b):void 0}))},[S?.sameHeight,S?.slidesToShow,M,es?.length,b,x?.horizontalGutter]),ea=o.useMemo(()=>X||J||K||!es||U&&q,[K,J,U,q,X,es]);o.useEffect(()=>{if(!ea&&!J&&!X)return E.current=setTimeout(()=>{let{builderData:e}=I??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&N(r.childElementCount||1)},C?0:500),()=>{clearTimeout(E.current)}},[I,ea,C,J,X,es]);let eu=o.useMemo(()=>({collection:Y,products:es,settings:{loop:S?.loop??{desktop:!1},scrollMode:S?.scrollMode??{desktop:"snap"},slidesToShow:S?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:x?.layout,dot:S?.dot,dotStyle:S?.dotStyle,arrow:S?.arrow,controlOverContent:S?.controlOverContent},styles:{horizontalGutter:x?.horizontalGutter,verticalGutter:x?.verticalGutter,fullWidth:x?.fullWidth,spacing:x?.spacing,width:x?.width,height:x?.height}}),[Y,es,S,x]);if(I?.isPreview&&_)return e.jsx(e.Fragment,{});if(el)return e.jsx(e.Fragment,{children:n.If(O,e.jsx(y,{builderAttrs:T,collectionHandle:Y?.handle,productSrc:A,onClose:()=>G(!1),children:k,relatedTagString:F,assignProductNoTags:R||Q||z,noAssignedProduct:!B}))});let{productListWrapStyle:en,productListContentStyle:ec,productListWrapAlignStyle:eg}=u.getStyle(t),{productListWrapClass:em}=c.getClass(t);return e.jsxs("div",{...T,className:em,style:en,children:[!!x?.preloadBgImage&&e.jsxs(d,{children:[!!x.backgroundImage?.desktop?.image?.src&&e.jsx("link",{rel:"preload",href:x.backgroundImage.desktop.image.src,as:"image"}),!!x.backgroundImage?.tablet?.image?.src&&e.jsx("link",{rel:"preload",href:x.backgroundImage?.tablet?.image?.src,as:"image"}),!!x.backgroundImage?.mobile?.image?.src&&e.jsx("link",{rel:"preload",href:x.backgroundImage?.mobile?.image?.src,as:"image"})]}),J||X?e.jsx(r.default,{}):K?e.jsxs("div",{children:["Error: ",K?.message]}):ed?e.jsx("div",{children:"Products not found"}):e.jsx(s.ProductListProvider,{...eu,children:e.jsx("div",{className:"gp-flex gp-w-full",style:eg,children:e.jsxs("div",{style:ec,children:[_&&e.jsx(l.default,{}),e.jsx(e.Fragment,{children:n.If(x?.layout==="grid",e.jsx(i.default,{...t,productSortedById:es,generateGridRowArray:ei}),e.jsx(a.default,{...t,productSortedById:es}))})]})})}),s.filterToolbarPreview(k,!0)]})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("next/dynamic"),r=require("../../../common/components/Loading.js"),o=require("react"),s=require("@gem-sdk/core"),l=require("../SalePageProductListWarning.js"),d=require("next/head"),i=require("./ProductListGridLayout.js"),a=require("./ProductListCarouselLayout.js"),u=require("./common/styles.js"),n=require("@gem-sdk/system"),c=require("./common/classes.js"),g=require("./common/helpers.js"),m=require("../../../dialog/common/helpers.js"),P=require("./hooks/useProductsQuery.js"),h=require("./hooks/useCollectionQuery.js"),C=require("./hooks/useProductRelatedQuery.js"),f=require("./hooks/useMainRelatedProductQuery.js"),p=require("./constants/index.js");const y=t(()=>Promise.resolve().then(function(){return require("../ProductNotFound.js")}),{loading:r.default});exports.default=t=>{let{children:O,styles:S,builderProps:j,setting:T,builderAttrs:R}=t,{isRelatedProduct:k,productSetting:U}=g.getData(t),{isEditMode:x}=s.useRenderMode(),I=s.useCurrentDevice(),q=s.usePageType(),v=s.usePageStore(e=>e.dynamicCollection),[D,b]=o.useState(1),[E,_]=o.useState(!0),L=o.useRef(),w="GP_FUNNEL_PAGE"===q;"GP_COLLECTION"!=q||[p.PRODUCT_SOURCE.Collection,p.PRODUCT_SOURCE.DynamicCollection].includes(U?.productSrc)||(U.productSrc=p.PRODUCT_SOURCE.DynamicCollection);let M=U?.productSrc??p.PRODUCT_SOURCE.Collection;M===p.PRODUCT_SOURCE.DynamicCollection&&(U.collectionId=v?.collectionId||"latest");let{mainRelatedProduct:N,relatedProductIdAssigned:G}=f.default({productSrc:M,relatedProductId:U.relatedProductId}),A=U.relatedTag&&U.relatedTag[0],B=U.relatedTag&&"tags"===U.relatedTag[0]&&(!N?.tags||N?.tags.length===0),F=U.relatedTag&&"collection"===U.relatedTag[0]&&(!N?.collections?.edges||N?.collections.edges.length===0),Q=U.relatedTag&&"vendor"===U.relatedTag[0]&&!N?.vendor,{isNotFoundRelatedProduct:z,relatedProducts:H}=C.default({isRelatedProduct:k,productSetting:U,setting:T,mainRelatedProduct:N,productSrc:M}),W=P.useProductsQuery({productIds:U?.productIds,defaultSelectedProductCount:U?.numOfSelectedProducts,productSrc:M}),$=Number(T?.numberOfProducts),V=h.useCollectionQuery({productSrc:M,collectionID:U?.collectionId??"latest",numberOfProducts:Number.isNaN($)?p.DEFAULT_COLLECTION_NUMBER_OF_PRODUCTS:$,orderBy:T?.orderBy??"none"}),J=M===p.PRODUCT_SOURCE.PickProduct?W.isLoading:V.isLoading,K=M===p.PRODUCT_SOURCE.PickProduct?W.error:V.error,X=M===p.PRODUCT_SOURCE.PickProduct?W.isValidating:V.isValidating,Y=V.data?.collections?.edges?.[0]?.node,Z=M===p.PRODUCT_SOURCE.PickProduct?s.flattenConnection(W.data?.products):s.flattenConnection(Y?.products),ee=s.usePageStore(e=>e.assignedProductIds),et=s.usePageStore(e=>e.isApplyAllProducts),er=o.useMemo(()=>(ee??[]).length>0&&!et||et,[ee,et]),eo=H?.data?.products&&er?s.flattenConnection(H?.data?.products):[],es=k?eo:M===p.PRODUCT_SOURCE.PickProduct&&U?.productIds?.length?U?.productIds?.map(e=>Z?.find(t=>t?.baseID===e)).filter(Boolean)??Z:M!==p.PRODUCT_SOURCE.PickProduct?Z:Z.filter((e,t)=>t<(U?.numOfSelectedProducts??4)),el=o.useMemo(()=>z&&k&&x||!es.length&&!J&&E&&x,[E,J,z,k,x,es.length]),ed=o.useMemo(()=>!es||z&&k,[z,k,es]),ei=o.useMemo(()=>{if(!T?.sameHeight)return[];let e=0,t=Math.ceil((es?.length??0)/+(T?.slidesToShow?.[I]??1));return Array.from(Array(es?.length??0)).map((r,o)=>(o>=+(T?.slidesToShow?.[I]??1)*(e+1)&&++e,{gridRow:`${1+D*e}/${D+1+D*e}`,marginBottom:e+1<t?m.getPropertyByDevice(S?.horizontalGutter,I):void 0}))},[T?.sameHeight,T?.slidesToShow,D,es?.length,I,S?.horizontalGutter]),ea=o.useMemo(()=>X||J||K||!es||z&&k,[K,J,z,k,X,es]);o.useEffect(()=>{if(!ea&&!J&&!X)return L.current=setTimeout(()=>{let{builderData:e}=j??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&b(r.childElementCount||1)},x?0:500),()=>{clearTimeout(L.current)}},[j,ea,x,J,X,es]);let eu=o.useMemo(()=>({collection:Y,products:es,settings:{loop:T?.loop??{desktop:!1},scrollMode:T?.scrollMode??{desktop:"snap"},slidesToShow:T?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:S?.layout,dot:T?.dot,dotStyle:T?.dotStyle,arrow:T?.arrow,controlOverContent:T?.controlOverContent},styles:{horizontalGutter:S?.horizontalGutter,verticalGutter:S?.verticalGutter,fullWidth:S?.fullWidth,spacing:S?.spacing,width:S?.width,height:S?.height}}),[Y,es,T,S]);if(j?.isPreview&&w)return e.jsx(e.Fragment,{});if(el)return e.jsx(e.Fragment,{children:n.If(E,e.jsx(y,{builderAttrs:R,collectionHandle:Y?.handle,productSrc:M,onClose:()=>_(!1),children:O,relatedTagString:A,assignProductNoTags:B||F||Q,noAssignedProduct:!G}))});let{productListWrapStyle:en,productListContentStyle:ec,productListWrapAlignStyle:eg}=u.getStyle(t),{productListWrapClass:em}=c.getClass(t);return e.jsxs("div",{...R,className:em,style:en,children:[!!S?.preloadBgImage&&e.jsxs(d,{children:[!!S.backgroundImage?.desktop?.image?.src&&e.jsx("link",{rel:"preload",href:S.backgroundImage.desktop.image.src,as:"image"}),!!S.backgroundImage?.tablet?.image?.src&&e.jsx("link",{rel:"preload",href:S.backgroundImage?.tablet?.image?.src,as:"image"}),!!S.backgroundImage?.mobile?.image?.src&&e.jsx("link",{rel:"preload",href:S.backgroundImage?.mobile?.image?.src,as:"image"})]}),J||X?e.jsx(r.default,{}):K?e.jsxs("div",{children:["Error: ",K?.message]}):ed?e.jsx("div",{children:"Products not found"}):e.jsx(s.ProductListProvider,{...eu,children:e.jsx("div",{className:"gp-flex gp-w-full",style:eg,children:e.jsxs("div",{style:ec,children:[w&&e.jsx(l.default,{}),e.jsx(e.Fragment,{children:n.If(S?.layout==="grid",e.jsx(i.default,{...t,productSortedById:es,generateGridRowArray:ei}),e.jsx(a.default,{...t,productSortedById:es}))})]})})}),s.filterToolbarPreview(O,!0)]})};
@@ -1 +1 @@
1
- "use strict";var e=require("@gem-sdk/core"),r=require("react"),t=require("swr"),o=require("../constants/index.js");exports.useCollectionQuery=({productSrc:a,numberOfProducts:i,orderBy:n,collectionID:s})=>{let u=e.useFetchHandle(),l=e.usePageStore(e=>e.publicStoreFrontData),c=r.useMemo(()=>e.hasPublicStoreFrontData(l)?e.createStoreFrontFetcher(l):u,[l]),d=e.useIsSampleProduct(),C=e.useIsStorefrontProduct(),g=r.useMemo(()=>({id:s,numberOfProducts:i,orderBy:n}),[s,i,n]),S=t(e.generateCollectionQueryKey({...g,isSample:d,isStorefront:C}),([,r])=>e.getCollection(c,r),{revalidateOnMount:!1,refreshInterval:0});return r.useEffect(()=>{if(a!==o.PRODUCT_SOURCE.Collection&&a!==o.PRODUCT_SOURCE.DynamicCollection)return;let e=!!S.error,r=S.isLoading||S.isValidating,t=!S.data&&!r;!e&&t&&S.mutate()},[a,S.data,S.error,S.isLoading,S.isValidating]),S};
1
+ "use strict";var e=require("@gem-sdk/core"),t=require("react"),r=require("swr"),o=require("../constants/index.js");exports.useCollectionQuery=({productSrc:a,numberOfProducts:i,orderBy:l,collectionID:n})=>{let s=e.useFetchHandle(),u=e.usePageStore(e=>e.publicStoreFrontData),c=t.useMemo(()=>e.hasPublicStoreFrontData(u)?e.createStoreFrontFetcher(u):s,[u]),C=e.useIsSampleProduct(),d=e.useIsStorefrontProduct(),S=t.useMemo(()=>a!==o.PRODUCT_SOURCE.Collection&&a!==o.PRODUCT_SOURCE.DynamicCollection?null:e.generateCollectionQueryKey({id:n,numberOfProducts:i,orderBy:l,isSample:C,isStorefront:d}),[a,C,d,n,i,l]),O=r(S,([,t])=>e.getCollection(c,t),{revalidateOnMount:!1,refreshInterval:0,revalidateIfStale:!1});return t.useEffect(()=>{if(a!==o.PRODUCT_SOURCE.Collection&&a!==o.PRODUCT_SOURCE.DynamicCollection)return;let e=!!O.error,t=O.isLoading||O.isValidating,r=!O.data&&!t;!e&&r&&O.mutate()},[a,O.data,O.error,O.isLoading,O.isValidating]),O};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("swr"),r=require("@gem-sdk/core"),a=require("../constants/index.js");exports.default=({productSrc:d,setting:s,isRelatedProduct:i,mainRelatedProduct:l,productSetting:o})=>{let[n,u]=e.useState(!1),[c,h]=e.useState(),g=r.useFetchHandle(),f=r.usePageStore(e=>e.publicStoreFrontData),m=e.useMemo(()=>r.hasPublicStoreFrontData(f)?r.createStoreFrontFetcher(f):g,[f]),P=t(c?["query/products",c]:null,async([,e])=>r.getProductQueryAll(m,e),{revalidateOnMount:!1,keepPreviousData:!0,refreshInterval:0});return e.useEffect(()=>{if(i&&l&&o.relatedTag&&"recommended-product"!==o.relatedType){let e;switch(u(!1),o.hasRelatedExclude&&(e=o?.relatedExclude&&o.relatedExclude.split(",").map(e=>e.trim())),o.relatedTag[0]){case"vendor":h({first:s?.numberOfProducts,vendor:o.relatedTag&&"vendor"===o.relatedTag[0]?l?.vendor:"",idNEQ:l.id});break;case"collection":{let t=l?.collections?.edges.map(e=>e.node?.id);if(!t||t?.length===0){u(!0);break}h(e&&e.length>0?{first:s?.numberOfProducts,idNEQ:l.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t},{titleNotIn:e}]}]}:{first:s?.numberOfProducts,idNEQ:l.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t}]}]});break}case"tags":if(!l.tags||0===l.tags.length){u(!0);break}h(e&&e.length>0?{first:s?.numberOfProducts,idNEQ:l.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:l.tags},{nameNotIn:e}]}]}:{first:s?.numberOfProducts,idNEQ:l.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:l.tags}]}]})}}},[l,o.relatedType,o.relatedTag,s?.numberOfProducts,o.relatedExclude,o.hasRelatedExclude,i]),e.useEffect(()=>{if(d!==a.PRODUCT_SOURCE.RelatedProduct||!c)return;let e=!!P.error,t=P.isLoading||P.isValidating,r=!P.data&&!t;!e&&r&&P.mutate()},[d,P.data,P.error,P.isLoading,P.isValidating,c]),{isNotFoundRelatedProduct:n,relatedProducts:P}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("swr"),r=require("@gem-sdk/core"),a=require("../constants/index.js");exports.default=({productSrc:d,setting:s,isRelatedProduct:i,mainRelatedProduct:l,productSetting:o})=>{let[n,u]=e.useState(!1),[c,h]=e.useState(),g=r.useFetchHandle(),f=r.usePageStore(e=>e.publicStoreFrontData),m=e.useMemo(()=>r.hasPublicStoreFrontData(f)?r.createStoreFrontFetcher(f):g,[f]),P=t(c?["query/products",c]:null,async([,e])=>r.getProductQueryAll(m,e),{revalidateOnMount:!1,keepPreviousData:!0,refreshInterval:0,revalidateIfStale:!1});return e.useEffect(()=>{if(i&&l&&o.relatedTag&&"recommended-product"!==o.relatedType){let e;switch(u(!1),o.hasRelatedExclude&&(e=o?.relatedExclude&&o.relatedExclude.split(",").map(e=>e.trim())),o.relatedTag[0]){case"vendor":h({first:s?.numberOfProducts,vendor:o.relatedTag&&"vendor"===o.relatedTag[0]?l?.vendor:"",idNEQ:l.id});break;case"collection":{let t=l?.collections?.edges.map(e=>e.node?.id);if(!t||t?.length===0){u(!0);break}h(e&&e.length>0?{first:s?.numberOfProducts,idNEQ:l.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t},{titleNotIn:e}]}]}:{first:s?.numberOfProducts,idNEQ:l.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t}]}]});break}case"tags":if(!l.tags||0===l.tags.length){u(!0);break}h(e&&e.length>0?{first:s?.numberOfProducts,idNEQ:l.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:l.tags},{nameNotIn:e}]}]}:{first:s?.numberOfProducts,idNEQ:l.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:l.tags}]}]})}}},[l,o.relatedType,o.relatedTag,s?.numberOfProducts,o.relatedExclude,o.hasRelatedExclude,i]),e.useEffect(()=>{if(d!==a.PRODUCT_SOURCE.RelatedProduct||!c)return;let e=!!P.error,t=P.isLoading||P.isValidating,r=!P.data&&!t;!e&&r&&P.mutate()},[d,P.data,P.error,P.isLoading,P.isValidating,c]),{isNotFoundRelatedProduct:n,relatedProducts:P}};
@@ -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=e.generateProductsQueryKey({ids:u??[],isSample:d,isStorefront:l,defaultSelectedProductCount:s}),g=t(P,async([,r])=>e.getProducts(c,r),{revalidateOnMount:!1,refreshInterval:0});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(),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,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as e,Fragment as t,jsxs as s}from"react/jsx-runtime";import{useProduct as o,useCurrentDevice as i,getResponsiveValueByScreen as r,useI18nStore as m,makeStyleResponsive as c,makeLineClamp as n}from"@gem-sdk/core";import l from"../../../common/components/NoDataState.js";import{ICON_SVG as a}from"./common/helpers.js";import{createClass as p,createStyle as d,createAttr as h,If as u}from"@gem-sdk/system";import{getClasses as y,getButtonClasses as g,getClassPreBuilt as f}from"./common/classes.js";import{getTextStyle as x,getButtonStyle as k,getStaticCss as N}from"./common/styles.js";import{useGpDescription as j}from"./hooks/useGpDescription.js";let w=w=>{let{setting:L,advanced:b,builderProps:v}=w,{htmlTag:C}=L??{},H=o(),T=i(),M=r(L?.hasLineClamp,T),{ref:_,open:D,isShowViewMore:I,handleToggleShowMore:S,mode:A,redirectProductShopifyLink:P}=j(L),{t:q}=m(),G=p({"gp-product-description":!0,[b?.cssClass]:!0}),V=p(y({setting:L,isLiquid:!1})),$=p(g({setting:L})),z=p({"gp-show-more-text":!0}),B=p({"gp-show-more-icon gp-ml-1":!0,...D?{"gp-rotate-180":!0}:{}}),E=p(f()),F=d({...x({setting:L}),...!D&&I?c("line-clamp",n(L?.lineClamp,L?.hasLineClamp)):{}}),J=d(k({setting:L})),K=h({"data-id":`${v?.uid}`}),O=h({"data-gp-text":""}),{gpDescriptionCss:Q,textDescriptionCss:R}=N(),U=!H?.descriptionHtml;return U&&"edit"===A?e(l,{elementType:"secondary",description:q("Highlight key benefits with product description."),descriptionActions:[{text:q("Add description"),callback:P},{text:q("sync data"),callback:"syncProduct"}]}):e(t,{children:u(U,"",s("div",{...K,className:G,children:[e("style",{children:R}),e("style",{children:Q}),e("div",{className:E}),e("html"===C?"div":"p",{ref:_,...O,className:V,style:F,dangerouslySetInnerHTML:{__html:H?.descriptionHtml||""}}),u(M&&I,s("button",{className:$,style:J,onClick:S,children:[e("span",{className:z,children:u(D,L?.viewLessText||"",L?.viewMoreText)}),u(L?.enableViewMoreIcon,e("span",{className:B,dangerouslySetInnerHTML:{__html:a}}))]})," ")]}))})};export{w as default};
2
+ import{jsx as e,Fragment as t,jsxs as s}from"react/jsx-runtime";import{useProduct as o,useCurrentDevice as i,getResponsiveValueByScreen as r,useI18nStore as m,makeStyleResponsive as c,makeLineClamp as n}from"@gem-sdk/core";import l from"../../../common/components/NoDataState.js";import{ICON_SVG as a}from"./common/helpers.js";import{createClass as p,createStyle as d,createAttr as h,If as u}from"@gem-sdk/system";import{getClasses as y,getButtonClasses as g,getClassPreBuilt as f}from"./common/classes.js";import{getTextStyle as x,getButtonStyle as k,getStaticCss as N}from"./common/styles.js";import{useGpDescription as j}from"./hooks/useGpDescription.js";let w=w=>{let{setting:L,advanced:b,builderProps:v}=w,{htmlTag:C}=L??{},H=o(),T=i(),M=r(L?.hasLineClamp,T),{ref:_,open:D,isShowViewMore:I,isOverflowChecked:S,handleToggleShowMore:A,mode:P,redirectProductShopifyLink:q}=j(L),{t:G}=m(),V=p({"gp-product-description":!0,[b?.cssClass]:!0}),$=p(y({setting:L,isLiquid:!1})),z=p(g({setting:L})),B=p({"gp-show-more-text":!0}),E=p({"gp-show-more-icon gp-ml-1":!0,...D?{"gp-rotate-180":!0}:{}}),F=p(f()),J=d({...x({setting:L}),...D||S&&!I?{}:c("line-clamp",n(L?.lineClamp,L?.hasLineClamp))}),K=d(k({setting:L})),O=h({"data-id":`${v?.uid}`}),Q=h({"data-gp-text":""}),{gpDescriptionCss:R,textDescriptionCss:U}=N(),W=!H?.descriptionHtml;return W&&"edit"===P?e(l,{elementType:"secondary",description:G("Highlight key benefits with product description."),descriptionActions:[{text:G("Add description"),callback:q},{text:G("sync data"),callback:"syncProduct"}]}):e(t,{children:u(W,"",s("div",{...O,className:V,children:[e("style",{children:U}),e("style",{children:R}),e("div",{className:F}),e("html"===C?"div":"p",{ref:_,...Q,className:$,style:J,dangerouslySetInnerHTML:{__html:H?.descriptionHtml||""}}),u(M&&I,s("button",{className:z,style:K,onClick:A,children:[e("span",{className:B,children:u(D,L?.viewLessText||"",L?.viewMoreText)}),u(L?.enableViewMoreIcon,e("span",{className:E,dangerouslySetInnerHTML:{__html:a}}))]})," ")]}))})};export{w as default};
@@ -1 +1 @@
1
- import{useRef as e,useState as t,useCallback as r,useEffect as l}from"react";import{useProduct as i,useCurrentDevice as n,getResponsiveValueByScreen as o,useProductShopifyEditLink as m,useEditorMode as c,isSafari as p}from"@gem-sdk/core";let s=s=>{let u=e(null),[a,g]=t(!1),[h,H]=t(!1),y=i(),d=n(),x=o(s?.hasLineClamp,d),f=o(s?.lineClamp,d),{redirectProductShopifyLink:C}=m(),w=c(),k=r(()=>`calc(${f} * 1lh)`,[f]),D=r(e=>x&&f&&e||"auto",[x,f]),G=r(()=>{u.current&&(u.current.style.maxHeight=a?k():"none",g(e=>!e))},[a,k]);return l(()=>{D(k())},[s?.typo?.custom,D,k]),l(()=>{let e=u.current;if(g(!1),!e)return;let t=x&&y?.descriptionHtml;t?setTimeout(()=>{let t=e?.scrollHeight??0,r=e?.clientHeight??0,l=window.getComputedStyle(e).getPropertyValue("line-height"),i=parseInt(l,10)||1,n=f&&t>f*i,o=p()?n:r<t;e.style.maxHeight=k(),f&&o?H(()=>!0):H(()=>!1)},100):e.style.maxHeight="none"},[x,f,y?.descriptionHtml,k]),{ref:u,open:a,isShowViewMore:h,handleToggleShowMore:G,mode:w,redirectProductShopifyLink:C}};export{s as useGpDescription};
1
+ import{useRef as e,useState as t,useCallback as r,useEffect as n}from"react";import{useProduct as i,useCurrentDevice as l,getResponsiveValueByScreen as o,useProductShopifyEditLink as c,useEditorMode as s}from"@gem-sdk/core";let u=u=>{let m=e(null),a=e(!1),[p,h]=t(!1),[H,g]=t(!1),[d,f]=t(!1),x=i(),y=l(),w=o(u?.hasLineClamp,y),b=o(u?.lineClamp,y),{redirectProductShopifyLink:v}=c(),C=s(),T=r(()=>`calc(${b} * 1lh)`,[b]),k=r(e=>w&&b&&e||"auto",[w,b]),z=r(()=>{if(!m.current)return;let e=!p;a.current=e,m.current.style.maxHeight=e?"none":T(),h(e)},[p,T]);return n(()=>{k(T())},[u?.typo?.custom,k,T]),n(()=>{let e=m.current;if(a.current=!1,h(!1),f(!1),!e)return;if(!w||!x?.descriptionHtml||!b){e.style.maxHeight="none",g(!1),f(!0);return}let t=()=>{if(a.current){e.style.maxHeight="none";return}e.style.maxHeight=T();let t=e.scrollHeight>e.clientHeight;t||(e.style.maxHeight="none"),g(t),f(!0)},r=window.setTimeout(t,100),n=new ResizeObserver(()=>{t()});return n.observe(e),()=>{window.clearTimeout(r),n.disconnect()}},[w,b,x?.descriptionHtml,T]),{ref:m,open:p,isShowViewMore:H,isOverflowChecked:d,handleToggleShowMore:z,mode:C,redirectProductShopifyLink:v}};export{u as useGpDescription};
@@ -1 +1 @@
1
- import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import o from"next/dynamic";import d from"../../../common/components/Loading.js";import{useState as a,useMemo as l,useEffect as i}from"react";import{useRenderMode as c,useCurrentDevice as s,usePageType as n,usePageStore as u,useFetchHandle as m,hasPublicStoreFrontData as g,createStoreFrontFetcher as h,useProductQuery as p,useProductsQueryAll as f,useProductsQuery as P,useCollectionQuery as b,flattenConnection as k,ProductListProvider as T,filterToolbarPreview as I}from"@gem-sdk/core";import v from"../SalePageProductListWarning.js";import y from"next/head";import O from"./ProductListGridLayout.js";import S from"./ProductListCarouselLayout.js";import{getStyle as C}from"./common/styles.js";import{If as E}from"@gem-sdk/system";import{getClass as N}from"./common/classes.js";import{getData as w}from"./common/helpers.js";import{getPropertyByDevice as L}from"../../../dialog/common/helpers.js";let W=o(()=>import("../ProductNotFound.js"),{loading:d}),j=o=>{let{children:j,styles:x,builderProps:G,setting:M,builderAttrs:B}=o,{isRelatedProduct:A,productSetting:Q}=w(o),z=Q.relatedTag&&Q.relatedTag[0],{isEditMode:D,isPreviewSharePageMode:F}=c(),H=s(),R=n(),$=u(e=>e.dynamicProduct),_=u(e=>e.dynamicCollection),[V,q]=a(1),[U,J]=a(!0),[K,X]=a(),[Y,Z]=a(!1),ee="GP_FUNNEL_PAGE"===R;"GP_COLLECTION"==R&&(Q.productSrc="DynamicCollection",Q.collectionId=_?.collectionId??"latest");let et=Q?.productSrc??"Collection",er=$?.productId&&$?.productId!==Q.relatedProductId?$?.productId:Q.relatedProductId,eo=m(),ed=u(e=>e.publicStoreFrontData),ea=l(()=>g(ed)?h(ed):eo,[ed]),{data:el}=p(A&&er?er:void 0,{revalidateOnMount:D||F},ea),ei=Q.relatedTag&&"tags"===Q.relatedTag[0]&&(!el?.tags||el?.tags.length===0),ec=Q.relatedTag&&"collection"===Q.relatedTag[0]&&(!el?.collections?.edges||el?.collections.edges.length===0),es=Q.relatedTag&&"vendor"===Q.relatedTag[0]&&!el?.vendor,en=f(K,{revalidateOnMount:D||F},ea),eu=D||F,em=P("PickProduct"===et?Q?.productIds:void 0,{revalidateOnMount:eu},{defaultSelectedProductCount:Q?.numOfSelectedProducts}),eg=l(()=>({id:Q?.collectionId??"latest",numberOfProducts:M?.numberOfProducts??4,orderBy:M?.orderBy}),[Q?.collectionId,Number(M?.numberOfProducts),M?.orderBy]),eh=b("PickProduct"!==et?eg:void 0,{revalidateOnMount:eu});i(()=>{if(A&&el&&Q.relatedTag&&"recommended-product"!==Q.relatedType){let e;switch(Z(!1),Q.hasRelatedExclude&&(e=Q?.relatedExclude&&Q.relatedExclude.split(",").map(e=>e.trim())),Q.relatedTag[0]){case"vendor":X({first:M?.numberOfProducts,vendor:Q.relatedTag&&"vendor"===Q.relatedTag[0]?el?.vendor:"",idNEQ:el.id});break;case"collection":{let t=el?.collections?.edges.map(e=>e.node?.id);if(!t||t?.length===0){Z(!0);break}X(e&&e.length>0?{first:M?.numberOfProducts,idNEQ:el.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t},{titleNotIn:e}]}]}:{first:M?.numberOfProducts,idNEQ:el.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t}]}]});break}case"tags":if(!el.tags||0===el.tags.length){Z(!0);break}X(e&&e.length>0?{first:M?.numberOfProducts,idNEQ:el.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:el.tags},{nameNotIn:e}]}]}:{first:M?.numberOfProducts,idNEQ:el.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:el.tags}]}]})}}},[el,Q.relatedType,Q.relatedTag,M?.numberOfProducts,Q.relatedExclude,Q.hasRelatedExclude,A]);let ep="PickProduct"===et?em.isValidating:eh.isValidating,ef="PickProduct"===et?em.isLoading:eh.isLoading,eP="PickProduct"===et?em.error:eh.error,eb=eh.data?.collections?.edges?.[0]?.node,ek="PickProduct"===et?k(em.data?.products):k(eb?.products),eT=en?.data?.products?k(en?.data?.products):void 0,eI=A&&eT?eT:"PickProduct"===et&&Q?.productIds?.length?Q?.productIds?.map(e=>ek?.find(t=>t?.baseID===e)).filter(Boolean)??ek:"PickProduct"!==et?ek:ek.filter((e,t)=>t<(Q?.numOfSelectedProducts??4)),ev=l(()=>Y&&A&&D||!eI.length&&!ef&&U&&D,[U,ef,Y,A,D,eI.length]),ey=l(()=>!eI||Y&&A,[Y,A,eI]),eO=l(()=>{if(!M?.sameHeight)return[];let e=0,t=Math.ceil((eI?.length??0)/+(M?.slidesToShow?.[H]??1));return Array.from(Array(eI?.length??0)).map((r,o)=>(o>=+(M?.slidesToShow?.[H]??1)*(e+1)&&++e,{gridRow:`${1+V*e}/${V+1+V*e}`,marginBottom:e+1<t?L(x?.horizontalGutter,H):void 0}))},[M?.sameHeight,M?.slidesToShow,V,eI?.length,H,x?.horizontalGutter]),eS=l(()=>ep||ef||eP||!eI||Y&&A,[eP,ef,Y,A,ep,eI]);i(()=>{eS||setTimeout(()=>{let{builderData:e}=G??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&q(r.childElementCount||1)},D?0:500)},[G,eS,D]);let eC=l(()=>({collection:eb,products:eI,settings:{loop:M?.loop??{desktop:!1},scrollMode:M?.scrollMode??{desktop:"snap"},slidesToShow:M?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:x?.layout,dot:M?.dot,dotStyle:M?.dotStyle,arrow:M?.arrow,controlOverContent:M?.controlOverContent},styles:{horizontalGutter:x?.horizontalGutter,verticalGutter:x?.verticalGutter,fullWidth:x?.fullWidth,spacing:x?.spacing,width:x?.width,height:x?.height}}),[eb,eI,M,x]);if(G?.isPreview&&ee)return e(t,{});if(ev)return e(t,{children:E(U,e(W,{builderAttrs:B,collectionHandle:eb?.handle,productSrc:et,onClose:()=>J(!1),children:j,relatedTagString:z,assignProductNoTags:ei||ec||es,noAssignedProduct:!er}))});let{productListWrapStyle:eE,productListContentStyle:eN,productListWrapAlignStyle:ew}=C(o),{productListWrapClass:eL}=N(o);return r("div",{...B,className:eL,style:eE,children:[!!x?.preloadBgImage&&r(y,{children:[!!x.backgroundImage?.desktop?.image?.src&&e("link",{rel:"preload",href:x.backgroundImage.desktop.image.src,as:"image"}),!!x.backgroundImage?.tablet?.image?.src&&e("link",{rel:"preload",href:x.backgroundImage?.tablet?.image?.src,as:"image"}),!!x.backgroundImage?.mobile?.image?.src&&e("link",{rel:"preload",href:x.backgroundImage?.mobile?.image?.src,as:"image"})]}),ep||ef?e(d,{}):eP?r("div",{children:["Error: ",eP?.message]}):ey?e("div",{children:"Products not found"}):e(T,{...eC,children:e("div",{className:"gp-flex gp-w-full",style:ew,children:r("div",{style:eN,children:[ee&&e(v,{}),e(t,{children:E(x?.layout==="grid",e(O,{...o,productSortedById:eI,generateGridRowArray:eO}),e(S,{...o,productSortedById:eI}))})]})})}),I(j,!0)]})};export{j as default};
1
+ import{jsx as e,Fragment as t,jsxs as o}from"react/jsx-runtime";import r from"next/dynamic";import d from"../../../common/components/Loading.js";import{useState as l,useMemo as i,useEffect as a}from"react";import{useRenderMode as c,useCurrentDevice as n,usePageType as s,usePageStore as u,useFetchHandle as m,hasPublicStoreFrontData as g,createStoreFrontFetcher as h,useProductQuery as p,useProductsQueryAll as f,useProductsQuery as P,useCollectionQuery as b,flattenConnection as k,ProductListProvider as T,filterToolbarPreview as v}from"@gem-sdk/core";import y from"../SalePageProductListWarning.js";import I from"next/head";import O from"./ProductListGridLayout.js";import C from"./ProductListCarouselLayout.js";import{getStyle as S}from"./common/styles.js";import{If as E}from"@gem-sdk/system";import{getClass as N}from"./common/classes.js";import{getData as w}from"./common/helpers.js";import{getPropertyByDevice as L}from"../../../dialog/common/helpers.js";import{PRODUCT_SOURCE as j}from"../product-list-v3/constants/index.js";let x=r(()=>import("../ProductNotFound.js"),{loading:d}),W=r=>{let{children:W,styles:G,builderProps:M,setting:B,builderAttrs:A}=r,{isRelatedProduct:D,productSetting:Q}=w(r),z=Q.relatedTag&&Q.relatedTag[0],{isEditMode:F,isPreviewSharePageMode:H}=c(),R=n(),$=s(),_=u(e=>e.dynamicProduct),V=u(e=>e.dynamicCollection),[q,U]=l(1),[J,K]=l(!0),[X,Y]=l(),[Z,ee]=l(!1),et="GP_FUNNEL_PAGE"===$;"GP_COLLECTION"!=$||[j.Collection,j.DynamicCollection].includes(Q?.productSrc)||(Q.productSrc=j.DynamicCollection);let eo=Q?.productSrc??j.Collection;eo===j.DynamicCollection&&(Q.collectionId=V?.collectionId||"latest");let er=_?.productId&&_?.productId!==Q.relatedProductId?_?.productId:Q.relatedProductId,ed=m(),el=u(e=>e.publicStoreFrontData),ei=i(()=>g(el)?h(el):ed,[el]),{data:ea}=p(D&&er?er:void 0,{revalidateOnMount:F||H},ei),ec=Q.relatedTag&&"tags"===Q.relatedTag[0]&&(!ea?.tags||ea?.tags.length===0),en=Q.relatedTag&&"collection"===Q.relatedTag[0]&&(!ea?.collections?.edges||ea?.collections.edges.length===0),es=Q.relatedTag&&"vendor"===Q.relatedTag[0]&&!ea?.vendor,eu=f(X,{revalidateOnMount:F||H},ei),em=F||H,eg=P(eo===j.PickProduct?Q?.productIds:void 0,{revalidateOnMount:em},{defaultSelectedProductCount:Q?.numOfSelectedProducts}),eh=i(()=>({id:Q?.collectionId??"latest",numberOfProducts:B?.numberOfProducts??4,orderBy:B?.orderBy}),[Q?.collectionId,Number(B?.numberOfProducts),B?.orderBy]),ep=b(eo!==j.PickProduct?eh:void 0,{revalidateOnMount:em});a(()=>{if(D&&ea&&Q.relatedTag&&"recommended-product"!==Q.relatedType){let e;switch(ee(!1),Q.hasRelatedExclude&&(e=Q?.relatedExclude&&Q.relatedExclude.split(",").map(e=>e.trim())),Q.relatedTag[0]){case"vendor":Y({first:B?.numberOfProducts,vendor:Q.relatedTag&&"vendor"===Q.relatedTag[0]?ea?.vendor:"",idNEQ:ea.id});break;case"collection":{let t=ea?.collections?.edges.map(e=>e.node?.id);if(!t||t?.length===0){ee(!0);break}Y(e&&e.length>0?{first:B?.numberOfProducts,idNEQ:ea.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t},{titleNotIn:e}]}]}:{first:B?.numberOfProducts,idNEQ:ea.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t}]}]});break}case"tags":if(!ea.tags||0===ea.tags.length){ee(!0);break}Y(e&&e.length>0?{first:B?.numberOfProducts,idNEQ:ea.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:ea.tags},{nameNotIn:e}]}]}:{first:B?.numberOfProducts,idNEQ:ea.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:ea.tags}]}]})}}},[ea,Q.relatedType,Q.relatedTag,B?.numberOfProducts,Q.relatedExclude,Q.hasRelatedExclude,D]);let ef=eo===j.PickProduct?eg.isValidating:ep.isValidating,eP=eo===j.PickProduct?eg.isLoading:ep.isLoading,eb=eo===j.PickProduct?eg.error:ep.error,ek=ep.data?.collections?.edges?.[0]?.node,eT=eo===j.PickProduct?k(eg.data?.products):k(ek?.products),ev=eu?.data?.products?k(eu?.data?.products):void 0,ey=D&&ev?ev:eo===j.PickProduct&&Q?.productIds?.length?Q?.productIds?.map(e=>eT?.find(t=>t?.baseID===e)).filter(Boolean)??eT:eo!==j.PickProduct?eT:eT.filter((e,t)=>t<(Q?.numOfSelectedProducts??4)),eI=i(()=>Z&&D&&F||!ey.length&&!eP&&J&&F,[J,eP,Z,D,F,ey.length]),eO=i(()=>!ey||Z&&D,[Z,D,ey]),eC=i(()=>{if(!B?.sameHeight)return[];let e=0,t=Math.ceil((ey?.length??0)/+(B?.slidesToShow?.[R]??1));return Array.from(Array(ey?.length??0)).map((o,r)=>(r>=+(B?.slidesToShow?.[R]??1)*(e+1)&&++e,{gridRow:`${1+q*e}/${q+1+q*e}`,marginBottom:e+1<t?L(G?.horizontalGutter,R):void 0}))},[B?.sameHeight,B?.slidesToShow,q,ey?.length,R,G?.horizontalGutter]),eS=i(()=>ef||eP||eb||!ey||Z&&D,[eb,eP,Z,D,ef,ey]);a(()=>{eS||setTimeout(()=>{let{builderData:e}=M??{},t=e?.childrens?.[0];if(!t)return;let o=document.querySelector(`[data-id=${t}] div`);o&&U(o.childElementCount||1)},F?0:500)},[M,eS,F]);let eE=i(()=>({collection:ek,products:ey,settings:{loop:B?.loop??{desktop:!1},scrollMode:B?.scrollMode??{desktop:"snap"},slidesToShow:B?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:G?.layout,dot:B?.dot,dotStyle:B?.dotStyle,arrow:B?.arrow,controlOverContent:B?.controlOverContent},styles:{horizontalGutter:G?.horizontalGutter,verticalGutter:G?.verticalGutter,fullWidth:G?.fullWidth,spacing:G?.spacing,width:G?.width,height:G?.height}}),[ek,ey,B,G]);if(M?.isPreview&&et)return e(t,{});if(eI)return e(t,{children:E(J,e(x,{builderAttrs:A,collectionHandle:ek?.handle,productSrc:eo,onClose:()=>K(!1),children:W,relatedTagString:z,assignProductNoTags:ec||en||es,noAssignedProduct:!er}))});let{productListWrapStyle:eN,productListContentStyle:ew,productListWrapAlignStyle:eL}=S(r),{productListWrapClass:ej}=N(r);return o("div",{...A,className:ej,style:eN,children:[!!G?.preloadBgImage&&o(I,{children:[!!G.backgroundImage?.desktop?.image?.src&&e("link",{rel:"preload",href:G.backgroundImage.desktop.image.src,as:"image"}),!!G.backgroundImage?.tablet?.image?.src&&e("link",{rel:"preload",href:G.backgroundImage?.tablet?.image?.src,as:"image"}),!!G.backgroundImage?.mobile?.image?.src&&e("link",{rel:"preload",href:G.backgroundImage?.mobile?.image?.src,as:"image"})]}),ef||eP?e(d,{}):eb?o("div",{children:["Error: ",eb?.message]}):eO?e("div",{children:"Products not found"}):e(T,{...eE,children:e("div",{className:"gp-flex gp-w-full",style:eL,children:o("div",{style:ew,children:[et&&e(y,{}),e(t,{children:E(G?.layout==="grid",e(O,{...r,productSortedById:ey,generateGridRowArray:eC}),e(C,{...r,productSortedById:ey}))})]})})}),v(W,!0)]})};export{W as default};
@@ -1 +1 @@
1
- import{jsx as e,Fragment as o,jsxs as t}from"react/jsx-runtime";import r from"next/dynamic";import d from"../../../common/components/Loading.js";import{useState as l,useRef as i,useMemo as s,useEffect as a}from"react";import{useRenderMode as c,useCurrentDevice as n,usePageType as m,usePageStore as u,flattenConnection as g,ProductListProvider as p,filterToolbarPreview as h}from"@gem-sdk/core";import f from"../SalePageProductListWarning.js";import P from"next/head";import k from"./ProductListGridLayout.js";import y from"./ProductListCarouselLayout.js";import{getStyle as I}from"./common/styles.js";import{If as b}from"@gem-sdk/system";import{getClass as T}from"./common/classes.js";import{getData as S}from"./common/helpers.js";import{getPropertyByDevice as j}from"../../../dialog/common/helpers.js";import{useProductsQuery as v}from"./hooks/useProductsQuery.js";import{useCollectionQuery as w}from"./hooks/useCollectionQuery.js";import C from"./hooks/useProductRelatedQuery.js";import L from"./hooks/useMainRelatedProductQuery.js";import{DEFAULT_COLLECTION_NUMBER_OF_PRODUCTS as N}from"./constants/index.js";let G=r(()=>import("../ProductNotFound.js"),{loading:d}),O=r=>{let{children:O,styles:A,builderProps:x,setting:B,builderAttrs:E}=r,{isRelatedProduct:z,productSetting:M}=S(r),{isEditMode:Q}=c(),D=n(),H=m(),R=u(e=>e.dynamicCollection),[W,$]=l(1),[_,F]=l(!0),V=i(),q="GP_FUNNEL_PAGE"===H;"GP_COLLECTION"==H&&(M.productSrc="DynamicCollection",M.collectionId=R?.collectionId??"latest");let U=M?.productSrc??"Collection",{mainRelatedProduct:J,relatedProductIdAssigned:K}=L({productSrc:U,relatedProductId:M.relatedProductId}),X=M.relatedTag&&M.relatedTag[0],Y=M.relatedTag&&"tags"===M.relatedTag[0]&&(!J?.tags||J?.tags.length===0),Z=M.relatedTag&&"collection"===M.relatedTag[0]&&(!J?.collections?.edges||J?.collections.edges.length===0),ee=M.relatedTag&&"vendor"===M.relatedTag[0]&&!J?.vendor,{isNotFoundRelatedProduct:eo,relatedProducts:et}=C({isRelatedProduct:z,productSetting:M,setting:B,mainRelatedProduct:J,productSrc:U}),er=v({productIds:M?.productIds,defaultSelectedProductCount:M?.numOfSelectedProducts,productSrc:U}),ed=Number(B?.numberOfProducts),el=w({productSrc:U,collectionID:M?.collectionId??"latest",numberOfProducts:Number.isNaN(ed)?N:ed,orderBy:B?.orderBy??"none"}),ei="PickProduct"===U?er.isLoading:el.isLoading,es="PickProduct"===U?er.error:el.error,ea="PickProduct"===U?er.isValidating:el.isValidating,ec=el.data?.collections?.edges?.[0]?.node,en="PickProduct"===U?g(er.data?.products):g(ec?.products),em=u(e=>e.assignedProductIds),eu=u(e=>e.isApplyAllProducts),eg=s(()=>(em??[]).length>0&&!eu||eu,[em,eu]),ep=et?.data?.products&&eg?g(et?.data?.products):[],eh=z?ep:"PickProduct"===U&&M?.productIds?.length?M?.productIds?.map(e=>en?.find(o=>o?.baseID===e)).filter(Boolean)??en:"PickProduct"!==U?en:en.filter((e,o)=>o<(M?.numOfSelectedProducts??4)),ef=s(()=>eo&&z&&Q||!eh.length&&!ei&&_&&Q,[_,ei,eo,z,Q,eh.length]),eP=s(()=>!eh||eo&&z,[eo,z,eh]),ek=s(()=>{if(!B?.sameHeight)return[];let e=0,o=Math.ceil((eh?.length??0)/+(B?.slidesToShow?.[D]??1));return Array.from(Array(eh?.length??0)).map((t,r)=>(r>=+(B?.slidesToShow?.[D]??1)*(e+1)&&++e,{gridRow:`${1+W*e}/${W+1+W*e}`,marginBottom:e+1<o?j(A?.horizontalGutter,D):void 0}))},[B?.sameHeight,B?.slidesToShow,W,eh?.length,D,A?.horizontalGutter]),ey=s(()=>ea||ei||es||!eh||eo&&z,[es,ei,eo,z,ea,eh]);a(()=>{if(!ey&&!ei&&!ea)return V.current=setTimeout(()=>{let{builderData:e}=x??{},o=e?.childrens?.[0];if(!o)return;let t=document.querySelector(`[data-id=${o}] div`);t&&$(t.childElementCount||1)},Q?0:500),()=>{clearTimeout(V.current)}},[x,ey,Q,ei,ea,eh]);let eI=s(()=>({collection:ec,products:eh,settings:{loop:B?.loop??{desktop:!1},scrollMode:B?.scrollMode??{desktop:"snap"},slidesToShow:B?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:A?.layout,dot:B?.dot,dotStyle:B?.dotStyle,arrow:B?.arrow,controlOverContent:B?.controlOverContent},styles:{horizontalGutter:A?.horizontalGutter,verticalGutter:A?.verticalGutter,fullWidth:A?.fullWidth,spacing:A?.spacing,width:A?.width,height:A?.height}}),[ec,eh,B,A]);if(x?.isPreview&&q)return e(o,{});if(ef)return e(o,{children:b(_,e(G,{builderAttrs:E,collectionHandle:ec?.handle,productSrc:U,onClose:()=>F(!1),children:O,relatedTagString:X,assignProductNoTags:Y||Z||ee,noAssignedProduct:!K}))});let{productListWrapStyle:eb,productListContentStyle:eT,productListWrapAlignStyle:eS}=I(r),{productListWrapClass:ej}=T(r);return t("div",{...E,className:ej,style:eb,children:[!!A?.preloadBgImage&&t(P,{children:[!!A.backgroundImage?.desktop?.image?.src&&e("link",{rel:"preload",href:A.backgroundImage.desktop.image.src,as:"image"}),!!A.backgroundImage?.tablet?.image?.src&&e("link",{rel:"preload",href:A.backgroundImage?.tablet?.image?.src,as:"image"}),!!A.backgroundImage?.mobile?.image?.src&&e("link",{rel:"preload",href:A.backgroundImage?.mobile?.image?.src,as:"image"})]}),ei||ea?e(d,{}):es?t("div",{children:["Error: ",es?.message]}):eP?e("div",{children:"Products not found"}):e(p,{...eI,children:e("div",{className:"gp-flex gp-w-full",style:eS,children:t("div",{style:eT,children:[q&&e(f,{}),e(o,{children:b(A?.layout==="grid",e(k,{...r,productSortedById:eh,generateGridRowArray:ek}),e(y,{...r,productSortedById:eh}))})]})})}),h(O,!0)]})};export{O as default};
1
+ import{jsx as e,Fragment as o,jsxs as t}from"react/jsx-runtime";import r from"next/dynamic";import l from"../../../common/components/Loading.js";import{useState as d,useRef as i,useMemo as s,useEffect as a}from"react";import{useRenderMode as c,useCurrentDevice as n,usePageType as m,usePageStore as u,flattenConnection as g,ProductListProvider as p,filterToolbarPreview as h}from"@gem-sdk/core";import f from"../SalePageProductListWarning.js";import P from"next/head";import y from"./ProductListGridLayout.js";import k from"./ProductListCarouselLayout.js";import{getStyle as I}from"./common/styles.js";import{If as b}from"@gem-sdk/system";import{getClass as T}from"./common/classes.js";import{getData as S}from"./common/helpers.js";import{getPropertyByDevice as j}from"../../../dialog/common/helpers.js";import{useProductsQuery as C}from"./hooks/useProductsQuery.js";import{useCollectionQuery as v}from"./hooks/useCollectionQuery.js";import w from"./hooks/useProductRelatedQuery.js";import L from"./hooks/useMainRelatedProductQuery.js";import{PRODUCT_SOURCE as N,DEFAULT_COLLECTION_NUMBER_OF_PRODUCTS as G}from"./constants/index.js";let O=r(()=>import("../ProductNotFound.js"),{loading:l}),A=r=>{let{children:A,styles:x,builderProps:B,setting:D,builderAttrs:E}=r,{isRelatedProduct:z,productSetting:M}=S(r),{isEditMode:Q}=c(),H=n(),R=m(),W=u(e=>e.dynamicCollection),[$,_]=d(1),[F,V]=d(!0),q=i(),U="GP_FUNNEL_PAGE"===R;"GP_COLLECTION"!=R||[N.Collection,N.DynamicCollection].includes(M?.productSrc)||(M.productSrc=N.DynamicCollection);let J=M?.productSrc??N.Collection;J===N.DynamicCollection&&(M.collectionId=W?.collectionId||"latest");let{mainRelatedProduct:K,relatedProductIdAssigned:X}=L({productSrc:J,relatedProductId:M.relatedProductId}),Y=M.relatedTag&&M.relatedTag[0],Z=M.relatedTag&&"tags"===M.relatedTag[0]&&(!K?.tags||K?.tags.length===0),ee=M.relatedTag&&"collection"===M.relatedTag[0]&&(!K?.collections?.edges||K?.collections.edges.length===0),eo=M.relatedTag&&"vendor"===M.relatedTag[0]&&!K?.vendor,{isNotFoundRelatedProduct:et,relatedProducts:er}=w({isRelatedProduct:z,productSetting:M,setting:D,mainRelatedProduct:K,productSrc:J}),el=C({productIds:M?.productIds,defaultSelectedProductCount:M?.numOfSelectedProducts,productSrc:J}),ed=Number(D?.numberOfProducts),ei=v({productSrc:J,collectionID:M?.collectionId??"latest",numberOfProducts:Number.isNaN(ed)?G:ed,orderBy:D?.orderBy??"none"}),es=J===N.PickProduct?el.isLoading:ei.isLoading,ea=J===N.PickProduct?el.error:ei.error,ec=J===N.PickProduct?el.isValidating:ei.isValidating,en=ei.data?.collections?.edges?.[0]?.node,em=J===N.PickProduct?g(el.data?.products):g(en?.products),eu=u(e=>e.assignedProductIds),eg=u(e=>e.isApplyAllProducts),ep=s(()=>(eu??[]).length>0&&!eg||eg,[eu,eg]),eh=er?.data?.products&&ep?g(er?.data?.products):[],ef=z?eh:J===N.PickProduct&&M?.productIds?.length?M?.productIds?.map(e=>em?.find(o=>o?.baseID===e)).filter(Boolean)??em:J!==N.PickProduct?em:em.filter((e,o)=>o<(M?.numOfSelectedProducts??4)),eP=s(()=>et&&z&&Q||!ef.length&&!es&&F&&Q,[F,es,et,z,Q,ef.length]),ey=s(()=>!ef||et&&z,[et,z,ef]),ek=s(()=>{if(!D?.sameHeight)return[];let e=0,o=Math.ceil((ef?.length??0)/+(D?.slidesToShow?.[H]??1));return Array.from(Array(ef?.length??0)).map((t,r)=>(r>=+(D?.slidesToShow?.[H]??1)*(e+1)&&++e,{gridRow:`${1+$*e}/${$+1+$*e}`,marginBottom:e+1<o?j(x?.horizontalGutter,H):void 0}))},[D?.sameHeight,D?.slidesToShow,$,ef?.length,H,x?.horizontalGutter]),eI=s(()=>ec||es||ea||!ef||et&&z,[ea,es,et,z,ec,ef]);a(()=>{if(!eI&&!es&&!ec)return q.current=setTimeout(()=>{let{builderData:e}=B??{},o=e?.childrens?.[0];if(!o)return;let t=document.querySelector(`[data-id=${o}] div`);t&&_(t.childElementCount||1)},Q?0:500),()=>{clearTimeout(q.current)}},[B,eI,Q,es,ec,ef]);let eb=s(()=>({collection:en,products:ef,settings:{loop:D?.loop??{desktop:!1},scrollMode:D?.scrollMode??{desktop:"snap"},slidesToShow:D?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:x?.layout,dot:D?.dot,dotStyle:D?.dotStyle,arrow:D?.arrow,controlOverContent:D?.controlOverContent},styles:{horizontalGutter:x?.horizontalGutter,verticalGutter:x?.verticalGutter,fullWidth:x?.fullWidth,spacing:x?.spacing,width:x?.width,height:x?.height}}),[en,ef,D,x]);if(B?.isPreview&&U)return e(o,{});if(eP)return e(o,{children:b(F,e(O,{builderAttrs:E,collectionHandle:en?.handle,productSrc:J,onClose:()=>V(!1),children:A,relatedTagString:Y,assignProductNoTags:Z||ee||eo,noAssignedProduct:!X}))});let{productListWrapStyle:eT,productListContentStyle:eS,productListWrapAlignStyle:ej}=I(r),{productListWrapClass:eC}=T(r);return t("div",{...E,className:eC,style:eT,children:[!!x?.preloadBgImage&&t(P,{children:[!!x.backgroundImage?.desktop?.image?.src&&e("link",{rel:"preload",href:x.backgroundImage.desktop.image.src,as:"image"}),!!x.backgroundImage?.tablet?.image?.src&&e("link",{rel:"preload",href:x.backgroundImage?.tablet?.image?.src,as:"image"}),!!x.backgroundImage?.mobile?.image?.src&&e("link",{rel:"preload",href:x.backgroundImage?.mobile?.image?.src,as:"image"})]}),es||ec?e(l,{}):ea?t("div",{children:["Error: ",ea?.message]}):ey?e("div",{children:"Products not found"}):e(p,{...eb,children:e("div",{className:"gp-flex gp-w-full",style:ej,children:t("div",{style:eS,children:[U&&e(f,{}),e(o,{children:b(x?.layout==="grid",e(y,{...r,productSortedById:ef,generateGridRowArray:ek}),e(k,{...r,productSortedById:ef}))})]})})}),h(A,!0)]})};export{A as default};
@@ -1 +1 @@
1
- import{useFetchHandle as r,usePageStore as t,hasPublicStoreFrontData as e,createStoreFrontFetcher as o,useIsSampleProduct as i,useIsStorefrontProduct as a,generateCollectionQueryKey as n,getCollection as l}from"@gem-sdk/core";import{useMemo as m,useEffect as s}from"react";import d from"swr";import{PRODUCT_SOURCE as c}from"../constants/index.js";let u=({productSrc:u,numberOfProducts:f,orderBy:p,collectionID:g})=>{let C=r(),v=t(r=>r.publicStoreFrontData),x=m(()=>e(v)?o(v):C,[v]),y=i(),D=a(),L=m(()=>({id:g,numberOfProducts:f,orderBy:p}),[g,f,p]),V=d(n({...L,isSample:y,isStorefront:D}),([,r])=>l(x,r),{revalidateOnMount:!1,refreshInterval:0});return s(()=>{if(u!==c.Collection&&u!==c.DynamicCollection)return;let r=!!V.error,t=V.isLoading||V.isValidating,e=!V.data&&!t;!r&&e&&V.mutate()},[u,V.data,V.error,V.isLoading,V.isValidating]),V};export{u as useCollectionQuery};
1
+ import{useFetchHandle as t,usePageStore as r,hasPublicStoreFrontData as e,createStoreFrontFetcher as o,useIsSampleProduct as i,useIsStorefrontProduct as a,generateCollectionQueryKey as l,getCollection as n}from"@gem-sdk/core";import{useMemo as m,useEffect as c}from"react";import d from"swr";import{PRODUCT_SOURCE as s}from"../constants/index.js";let u=({productSrc:u,numberOfProducts:f,orderBy:p,collectionID:g})=>{let C=t(),v=r(t=>t.publicStoreFrontData),y=m(()=>e(v)?o(v):C,[v]),D=i(),x=a(),I=m(()=>u!==s.Collection&&u!==s.DynamicCollection?null:l({id:g,numberOfProducts:f,orderBy:p,isSample:D,isStorefront:x}),[u,D,x,g,f,p]),L=d(I,([,t])=>n(y,t),{revalidateOnMount:!1,refreshInterval:0,revalidateIfStale:!1});return c(()=>{if(u!==s.Collection&&u!==s.DynamicCollection)return;let t=!!L.error,r=L.isLoading||L.isValidating,e=!L.data&&!r;!t&&e&&L.mutate()},[u,L.data,L.error,L.isLoading,L.isValidating]),L};export{u as useCollectionQuery};
@@ -1 +1 @@
1
- import{useState as e,useMemo as t,useEffect as r}from"react";import a from"swr";import{useFetchHandle as d,usePageStore as i,hasPublicStoreFrontData as s,createStoreFrontFetcher as o,getProductQueryAll as l}from"@gem-sdk/core";import{PRODUCT_SOURCE as n}from"../constants/index.js";let c=({productSrc:c,setting:u,isRelatedProduct:g,mainRelatedProduct:h,productSetting:m})=>{let[f,p]=e(!1),[P,b]=e(),T=d(),E=i(e=>e.publicStoreFrontData),W=t(()=>s(E)?o(E):T,[E]),v=a(P?["query/products",P]:null,async([,e])=>l(W,e),{revalidateOnMount:!1,keepPreviousData:!0,refreshInterval:0});return r(()=>{if(g&&h&&m.relatedTag&&"recommended-product"!==m.relatedType){let e;switch(p(!1),m.hasRelatedExclude&&(e=m?.relatedExclude&&m.relatedExclude.split(",").map(e=>e.trim())),m.relatedTag[0]){case"vendor":b({first:u?.numberOfProducts,vendor:m.relatedTag&&"vendor"===m.relatedTag[0]?h?.vendor:"",idNEQ:h.id});break;case"collection":{let t=h?.collections?.edges.map(e=>e.node?.id);if(!t||t?.length===0){p(!0);break}b(e&&e.length>0?{first:u?.numberOfProducts,idNEQ:h.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t},{titleNotIn:e}]}]}:{first:u?.numberOfProducts,idNEQ:h.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t}]}]});break}case"tags":if(!h.tags||0===h.tags.length){p(!0);break}b(e&&e.length>0?{first:u?.numberOfProducts,idNEQ:h.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:h.tags},{nameNotIn:e}]}]}:{first:u?.numberOfProducts,idNEQ:h.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:h.tags}]}]})}}},[h,m.relatedType,m.relatedTag,u?.numberOfProducts,m.relatedExclude,m.hasRelatedExclude,g]),r(()=>{if(c!==n.RelatedProduct||!P)return;let e=!!v.error,t=v.isLoading||v.isValidating,r=!v.data&&!t;!e&&r&&v.mutate()},[c,v.data,v.error,v.isLoading,v.isValidating,P]),{isNotFoundRelatedProduct:f,relatedProducts:v}};export{c as default};
1
+ import{useState as e,useMemo as t,useEffect as r}from"react";import a from"swr";import{useFetchHandle as d,usePageStore as i,hasPublicStoreFrontData as s,createStoreFrontFetcher as o,getProductQueryAll as l}from"@gem-sdk/core";import{PRODUCT_SOURCE as n}from"../constants/index.js";let c=({productSrc:c,setting:u,isRelatedProduct:g,mainRelatedProduct:h,productSetting:m})=>{let[f,p]=e(!1),[P,b]=e(),T=d(),E=i(e=>e.publicStoreFrontData),v=t(()=>s(E)?o(E):T,[E]),I=a(P?["query/products",P]:null,async([,e])=>l(v,e),{revalidateOnMount:!1,keepPreviousData:!0,refreshInterval:0,revalidateIfStale:!1});return r(()=>{if(g&&h&&m.relatedTag&&"recommended-product"!==m.relatedType){let e;switch(p(!1),m.hasRelatedExclude&&(e=m?.relatedExclude&&m.relatedExclude.split(",").map(e=>e.trim())),m.relatedTag[0]){case"vendor":b({first:u?.numberOfProducts,vendor:m.relatedTag&&"vendor"===m.relatedTag[0]?h?.vendor:"",idNEQ:h.id});break;case"collection":{let t=h?.collections?.edges.map(e=>e.node?.id);if(!t||t?.length===0){p(!0);break}b(e&&e.length>0?{first:u?.numberOfProducts,idNEQ:h.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t},{titleNotIn:e}]}]}:{first:u?.numberOfProducts,idNEQ:h.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t}]}]});break}case"tags":if(!h.tags||0===h.tags.length){p(!0);break}b(e&&e.length>0?{first:u?.numberOfProducts,idNEQ:h.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:h.tags},{nameNotIn:e}]}]}:{first:u?.numberOfProducts,idNEQ:h.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:h.tags}]}]})}}},[h,m.relatedType,m.relatedTag,u?.numberOfProducts,m.relatedExclude,m.hasRelatedExclude,g]),r(()=>{if(c!==n.RelatedProduct||!P)return;let e=!!I.error,t=I.isLoading||I.isValidating,r=!I.data&&!t;!e&&r&&I.mutate()},[c,I.data,I.error,I.isLoading,I.isValidating,P]),{isNotFoundRelatedProduct:f,relatedProducts:I}};export{c as default};
@@ -1 +1 @@
1
- import{useFetchHandle as r,usePageStore as t,hasPublicStoreFrontData as e,createStoreFrontFetcher as i,useIsSampleProduct as o,useIsStorefrontProduct as a,generateProductsQueryKey as n,getProducts as s}from"@gem-sdk/core";import{useMemo as d,useEffect as m}from"react";import l from"swr";import{PRODUCT_SOURCE as u}from"../constants/index.js";let c=({defaultSelectedProductCount:c,productIds:f,productSrc:g})=>{let p=r(),P=t(r=>r.publicStoreFrontData),h=d(()=>e(P)?i(P):p,[P]),k=o(),v=a(),x=n({ids:f??[],isSample:k,isStorefront:v,defaultSelectedProductCount:c}),y=l(x,async([,r])=>s(h,r),{revalidateOnMount:!1,refreshInterval:0});return m(()=>{if(g!==u.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{c 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: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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "17.0.0-dev.33",
3
+ "version": "17.0.0-dev.37",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -26,7 +26,7 @@
26
26
  "i18n:extract": "rollup -c ./scripts/rollup.config.settings.mjs && node ./scripts/translate/extract-texts-to-locales.js && node ./scripts/translate/en-keys-usage.js"
27
27
  },
28
28
  "devDependencies": {
29
- "@gem-sdk/core": "17.0.0-dev.12",
29
+ "@gem-sdk/core": "17.0.0-dev.37",
30
30
  "@gem-sdk/styles": "17.0.0-dev.30",
31
31
  "@gem-sdk/system": "17.0.0-dev.9",
32
32
  "@types/react-transition-group": "^4.4.12",