@gem-sdk/components 12.0.0-dev.138 → 12.0.0-dev.139

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";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"),d=require("../SalePageProductListWarning.js"),l=require("next/head"),i=require("./ProductListGridLayout.js"),a=require("./ProductListCarouselLayout.js"),u=require("./common/styles.js"),c=require("@gem-sdk/system"),n=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"),p=require("./hooks/useProductRelatedQuery.js"),f=require("./hooks/useMainRelatedProductQuery.js");const y=t(()=>Promise.resolve().then(function(){return require("../ProductNotFound.js")}),{loading:r.default});exports.default=t=>{let{children:j,styles:k,builderProps:v,setting:x,builderAttrs:I}=t,{isRelatedProduct:S,productSetting:b}=g.getData(t),{isEditMode:q,isPreviewSharePageMode:T}=s.useRenderMode(),C=s.useCurrentDevice(),M=s.usePageType(),w=s.usePageStore(e=>e.dynamicCollection),[L,G]=o.useState(1),[O,N]=o.useState(!0),A="GP_FUNNEL_PAGE"===M;"GP_COLLECTION"==M&&(b.productSrc="DynamicCollection",b.collectionId=w?.collectionId??"latest");let B=b?.productSrc??"Collection",{mainRelatedProduct:E,relatedProductIdAssigned:Q}=f.default({isEditMode:q,isPreviewSharePageMode:T,isRelatedProduct:S,relatedProductId:b.relatedProductId}),D=b.relatedTag&&b.relatedTag[0],F=b.relatedTag&&"tags"===b.relatedTag[0]&&(!E?.tags||E?.tags.length===0),_=b.relatedTag&&"collection"===b.relatedTag[0]&&(!E?.collections?.edges||E?.collections.edges.length===0),z=b.relatedTag&&"vendor"===b.relatedTag[0]&&!E?.vendor,{isNotFoundRelatedProduct:R,relatedProducts:H}=p.default({isEditMode:q,isPreviewSharePageMode:T,isRelatedProduct:S,productSetting:b,setting:x,mainRelatedProduct:E}),W=h.useProductsQuery({productIds:"PickProduct"===B?b?.productIds:void 0,defaultSelectedProductCount:b?.numOfSelectedProducts}),$=o.useMemo(()=>({id:b?.collectionId??"latest",numberOfProducts:x?.numberOfProducts??4,orderBy:x?.orderBy}),[b?.collectionId,Number(x?.numberOfProducts),x?.orderBy]),V=P.useCollectionQuery({variables:"PickProduct"!==B?$:void 0}),U="PickProduct"===B?W.isLoading:V.isLoading,J="PickProduct"===B?W.error:V.error,K="PickProduct"===B?W.isValidating:V.isValidating,X=V.data?.collections?.edges?.[0]?.node,Y="PickProduct"===B?s.flattenConnection(W.data?.products):s.flattenConnection(X?.products),Z=s.usePageStore(e=>e.assignedProductIds),ee=s.usePageStore(e=>e.isApplyAllProducts),et=o.useMemo(()=>(Z??[]).length>0&&!ee||ee,[Z,ee]),er=H?.data?.products&&et?s.flattenConnection(H?.data?.products):[],eo=S?er:"PickProduct"===B&&b?.productIds?.length?b?.productIds?.map(e=>Y?.find(t=>t?.baseID===e)).filter(Boolean)??Y:"PickProduct"!==B?Y:Y.filter((e,t)=>t<(b?.numOfSelectedProducts??4)),es=o.useMemo(()=>R&&S&&q||!eo.length&&!U&&O&&q,[O,U,R,S,q,eo.length]),ed=o.useMemo(()=>!eo||R&&S,[R,S,eo]),el=o.useMemo(()=>{if(!x?.sameHeight)return[];let e=0,t=Math.ceil((eo?.length??0)/+(x?.slidesToShow?.[C]??1));return Array.from(Array(eo?.length??0)).map((r,o)=>(o>=+(x?.slidesToShow?.[C]??1)*(e+1)&&++e,{gridRow:`${1+L*e}/${L+1+L*e}`,marginBottom:e+1<t?m.getPropertyByDevice(k?.horizontalGutter,C):void 0}))},[x?.sameHeight,x?.slidesToShow,L,eo?.length,C,k?.horizontalGutter]),ei=o.useMemo(()=>K||U||J||!eo||R&&S,[J,U,R,S,K,eo]),ea=o.useMemo(()=>E?.collections?.edges.map(e=>e.node?.id)??[],[E?.collections?.edges]);o.useEffect(()=>{ei||setTimeout(()=>{let{builderData:e}=v??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&G(r.childElementCount||1)},q?0:500)},[v,ei,q,ea]);let eu=o.useMemo(()=>({collection:X,products:eo,settings:{loop:x?.loop??{desktop:!1},scrollMode:x?.scrollMode??{desktop:"snap"},slidesToShow:x?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:k?.layout,dot:x?.dot,dotStyle:x?.dotStyle,arrow:x?.arrow,controlOverContent:x?.controlOverContent},styles:{horizontalGutter:k?.horizontalGutter,verticalGutter:k?.verticalGutter,fullWidth:k?.fullWidth,spacing:k?.spacing,width:k?.width,height:k?.height}}),[X,eo,x,k]);if(v?.isPreview&&A)return e.jsx(e.Fragment,{});if(es)return e.jsx(e.Fragment,{children:c.If(O,e.jsx(y,{builderAttrs:I,collectionHandle:X?.handle,productSrc:B,onClose:()=>N(!1),children:j,relatedTagString:D,assignProductNoTags:F||_||z,noAssignedProduct:!Q}))});let{productListWrapStyle:ec,productListContentStyle:en,productListWrapAlignStyle:eg}=u.getStyle(t),{productListWrapClass:em}=n.getClass(t);return e.jsxs("div",{...I,className:em,style:ec,children:[!!k?.preloadBgImage&&e.jsxs(l,{children:[!!k.backgroundImage?.desktop?.image?.src&&e.jsx("link",{rel:"preload",href:k.backgroundImage.desktop.image.src,as:"image"}),!!k.backgroundImage?.tablet?.image?.src&&e.jsx("link",{rel:"preload",href:k.backgroundImage?.tablet?.image?.src,as:"image"}),!!k.backgroundImage?.mobile?.image?.src&&e.jsx("link",{rel:"preload",href:k.backgroundImage?.mobile?.image?.src,as:"image"})]}),U||K?e.jsx(r.default,{}):J?e.jsxs("div",{children:["Error: ",J?.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:en,children:[A&&e.jsx(d.default,{}),e.jsx(e.Fragment,{children:c.If(k?.layout==="grid",e.jsx(i.default,{...t,productSortedById:eo,generateGridRowArray:el}),e.jsx(a.default,{...t,productSortedById:eo}))})]})})}),s.filterToolbarPreview(j,!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"),d=require("../SalePageProductListWarning.js"),l=require("next/head"),i=require("./ProductListGridLayout.js"),a=require("./ProductListCarouselLayout.js"),u=require("./common/styles.js"),c=require("@gem-sdk/system"),n=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"),p=require("./hooks/useProductRelatedQuery.js"),f=require("./hooks/useMainRelatedProductQuery.js");const y=t(()=>Promise.resolve().then(function(){return require("../ProductNotFound.js")}),{loading:r.default});exports.default=t=>{let{children:j,styles:k,builderProps:x,setting:v,builderAttrs:I}=t,{isRelatedProduct:S,productSetting:b}=g.getData(t),{isEditMode:q,isPreviewSharePageMode:T}=s.useRenderMode(),C=s.useCurrentDevice(),M=s.usePageType(),w=s.usePageStore(e=>e.dynamicCollection),[L,G]=o.useState(1),[O,N]=o.useState(!0),A="GP_FUNNEL_PAGE"===M;"GP_COLLECTION"==M&&(b.productSrc="DynamicCollection",b.collectionId=w?.collectionId??"latest");let B=b?.productSrc??"Collection",{mainRelatedProduct:E,relatedProductIdAssigned:Q}=f.default({isEditMode:q,isPreviewSharePageMode:T,isRelatedProduct:S,relatedProductId:b.relatedProductId}),D=b.relatedTag&&b.relatedTag[0],F=b.relatedTag&&"tags"===b.relatedTag[0]&&(!E?.tags||E?.tags.length===0),_=b.relatedTag&&"collection"===b.relatedTag[0]&&(!E?.collections?.edges||E?.collections.edges.length===0),z=b.relatedTag&&"vendor"===b.relatedTag[0]&&!E?.vendor,{isNotFoundRelatedProduct:R,relatedProducts:H}=p.default({isEditMode:q,isPreviewSharePageMode:T,isRelatedProduct:S,productSetting:b,setting:v,mainRelatedProduct:E}),W=h.useProductsQuery({productIds:b?.productIds,defaultSelectedProductCount:b?.numOfSelectedProducts,productSrc:B}),$=o.useMemo(()=>({id:b?.collectionId??"latest",numberOfProducts:v?.numberOfProducts??4,orderBy:v?.orderBy}),[b?.collectionId,Number(v?.numberOfProducts),v?.orderBy]),V=P.useCollectionQuery({variables:"PickProduct"!==B?$:void 0}),U="PickProduct"===B?W.isLoading:V.isLoading,J="PickProduct"===B?W.error:V.error,K="PickProduct"===B?W.isValidating:V.isValidating,X=V.data?.collections?.edges?.[0]?.node,Y="PickProduct"===B?s.flattenConnection(W.data?.products):s.flattenConnection(X?.products),Z=s.usePageStore(e=>e.assignedProductIds),ee=s.usePageStore(e=>e.isApplyAllProducts),et=o.useMemo(()=>(Z??[]).length>0&&!ee||ee,[Z,ee]),er=H?.data?.products&&et?s.flattenConnection(H?.data?.products):[],eo=S?er:"PickProduct"===B&&b?.productIds?.length?b?.productIds?.map(e=>Y?.find(t=>t?.baseID===e)).filter(Boolean)??Y:"PickProduct"!==B?Y:Y.filter((e,t)=>t<(b?.numOfSelectedProducts??4)),es=o.useMemo(()=>R&&S&&q||!eo.length&&!U&&O&&q,[O,U,R,S,q,eo.length]),ed=o.useMemo(()=>!eo||R&&S,[R,S,eo]),el=o.useMemo(()=>{if(!v?.sameHeight)return[];let e=0,t=Math.ceil((eo?.length??0)/+(v?.slidesToShow?.[C]??1));return Array.from(Array(eo?.length??0)).map((r,o)=>(o>=+(v?.slidesToShow?.[C]??1)*(e+1)&&++e,{gridRow:`${1+L*e}/${L+1+L*e}`,marginBottom:e+1<t?m.getPropertyByDevice(k?.horizontalGutter,C):void 0}))},[v?.sameHeight,v?.slidesToShow,L,eo?.length,C,k?.horizontalGutter]),ei=o.useMemo(()=>K||U||J||!eo||R&&S,[J,U,R,S,K,eo]),ea=o.useMemo(()=>E?.collections?.edges.map(e=>e.node?.id)??[],[E?.collections?.edges]);o.useEffect(()=>{ei||setTimeout(()=>{let{builderData:e}=x??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&G(r.childElementCount||1)},q?0:500)},[x,ei,q,ea]);let eu=o.useMemo(()=>({collection:X,products:eo,settings:{loop:v?.loop??{desktop:!1},scrollMode:v?.scrollMode??{desktop:"snap"},slidesToShow:v?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:k?.layout,dot:v?.dot,dotStyle:v?.dotStyle,arrow:v?.arrow,controlOverContent:v?.controlOverContent},styles:{horizontalGutter:k?.horizontalGutter,verticalGutter:k?.verticalGutter,fullWidth:k?.fullWidth,spacing:k?.spacing,width:k?.width,height:k?.height}}),[X,eo,v,k]);if(x?.isPreview&&A)return e.jsx(e.Fragment,{});if(es)return e.jsx(e.Fragment,{children:c.If(O,e.jsx(y,{builderAttrs:I,collectionHandle:X?.handle,productSrc:B,onClose:()=>N(!1),children:j,relatedTagString:D,assignProductNoTags:F||_||z,noAssignedProduct:!Q}))});let{productListWrapStyle:ec,productListContentStyle:en,productListWrapAlignStyle:eg}=u.getStyle(t),{productListWrapClass:em}=n.getClass(t);return e.jsxs("div",{...I,className:em,style:ec,children:[!!k?.preloadBgImage&&e.jsxs(l,{children:[!!k.backgroundImage?.desktop?.image?.src&&e.jsx("link",{rel:"preload",href:k.backgroundImage.desktop.image.src,as:"image"}),!!k.backgroundImage?.tablet?.image?.src&&e.jsx("link",{rel:"preload",href:k.backgroundImage?.tablet?.image?.src,as:"image"}),!!k.backgroundImage?.mobile?.image?.src&&e.jsx("link",{rel:"preload",href:k.backgroundImage?.mobile?.image?.src,as:"image"})]}),U||K?e.jsx(r.default,{}):J?e.jsxs("div",{children:["Error: ",J?.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:en,children:[A&&e.jsx(d.default,{}),e.jsx(e.Fragment,{children:c.If(k?.layout==="grid",e.jsx(i.default,{...t,productSortedById:eo,generateGridRowArray:el}),e.jsx(a.default,{...t,productSortedById:eo}))})]})})}),s.filterToolbarPreview(j,!0)]})};
@@ -0,0 +1 @@
1
+ "use strict";exports.PRODUCT_SOURCE=void 0,function(o){o.Collection="Collection",o.PickProduct="PickProduct",o.DynamicCollection="DynamicCollection",o.RelatedProduct="RelatedProduct"}(exports.PRODUCT_SOURCE||(exports.PRODUCT_SOURCE={}));
@@ -1 +1 @@
1
- "use strict";var e=require("@gem-sdk/core"),r=require("react"),t=require("swr");exports.useProductsQuery=({defaultSelectedProductCount:a,productIds:s})=>{let u=e.useFetchHandle(),o=e.usePageStore(e=>e.publicStoreFrontData),i=r.useMemo(()=>e.hasPublicStoreFrontData(o)?e.createStoreFrontFetcher(o):u,[o]),n=e.useIsSampleProduct(),c=e.useIsStorefrontProduct(),d=e.generateProductsQueryKey({ids:s??[],isSample:n,isStorefront:c,defaultSelectedProductCount:a}),l=t(d,async([,r])=>e.getProducts(i,r),{revalidateOnMount:!1});return r.useEffect(()=>{let e=!!l.error,r=l.isLoading||l.isValidating,t=!l.data&&!r,a=!e&&t&&s?.length;a&&l.mutate()},[s?.length,l.data,l.error,l.isLoading,l.isValidating]),{...l}};
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});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 +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,useMemo as i,useEffect as s}from"react";import{useRenderMode as a,useCurrentDevice as c,usePageType as n,usePageStore as m,flattenConnection as u,ProductListProvider as g,filterToolbarPreview as p}from"@gem-sdk/core";import h from"../SalePageProductListWarning.js";import P from"next/head";import f from"./ProductListGridLayout.js";import k from"./ProductListCarouselLayout.js";import{getStyle as y}from"./common/styles.js";import{If as I}from"@gem-sdk/system";import{getClass as b}from"./common/classes.js";import{getData as v}from"./common/helpers.js";import{getPropertyByDevice as T}from"../../../dialog/common/helpers.js";import{useProductsQuery as S}from"./hooks/useProductsQuery.js";import{useCollectionQuery as j}from"./hooks/useCollectionQuery.js";import w from"./hooks/useProductRelatedQuery.js";import C from"./hooks/useMainRelatedProductQuery.js";let L=r(()=>import("../ProductNotFound.js"),{loading:d}),G=r=>{let{children:G,styles:O,builderProps:N,setting:A,builderAttrs:B}=r,{isRelatedProduct:x,productSetting:E}=v(r),{isEditMode:z,isPreviewSharePageMode:M}=a(),Q=c(),H=n(),R=m(e=>e.dynamicCollection),[W,$]=l(1),[_,D]=l(!0),F="GP_FUNNEL_PAGE"===H;"GP_COLLECTION"==H&&(E.productSrc="DynamicCollection",E.collectionId=R?.collectionId??"latest");let V=E?.productSrc??"Collection",{mainRelatedProduct:q,relatedProductIdAssigned:U}=C({isEditMode:z,isPreviewSharePageMode:M,isRelatedProduct:x,relatedProductId:E.relatedProductId}),J=E.relatedTag&&E.relatedTag[0],K=E.relatedTag&&"tags"===E.relatedTag[0]&&(!q?.tags||q?.tags.length===0),X=E.relatedTag&&"collection"===E.relatedTag[0]&&(!q?.collections?.edges||q?.collections.edges.length===0),Y=E.relatedTag&&"vendor"===E.relatedTag[0]&&!q?.vendor,{isNotFoundRelatedProduct:Z,relatedProducts:ee}=w({isEditMode:z,isPreviewSharePageMode:M,isRelatedProduct:x,productSetting:E,setting:A,mainRelatedProduct:q}),eo=S({productIds:"PickProduct"===V?E?.productIds:void 0,defaultSelectedProductCount:E?.numOfSelectedProducts}),et=i(()=>({id:E?.collectionId??"latest",numberOfProducts:A?.numberOfProducts??4,orderBy:A?.orderBy}),[E?.collectionId,Number(A?.numberOfProducts),A?.orderBy]),er=j({variables:"PickProduct"!==V?et:void 0}),ed="PickProduct"===V?eo.isLoading:er.isLoading,el="PickProduct"===V?eo.error:er.error,ei="PickProduct"===V?eo.isValidating:er.isValidating,es=er.data?.collections?.edges?.[0]?.node,ea="PickProduct"===V?u(eo.data?.products):u(es?.products),ec=m(e=>e.assignedProductIds),en=m(e=>e.isApplyAllProducts),em=i(()=>(ec??[]).length>0&&!en||en,[ec,en]),eu=ee?.data?.products&&em?u(ee?.data?.products):[],eg=x?eu:"PickProduct"===V&&E?.productIds?.length?E?.productIds?.map(e=>ea?.find(o=>o?.baseID===e)).filter(Boolean)??ea:"PickProduct"!==V?ea:ea.filter((e,o)=>o<(E?.numOfSelectedProducts??4)),ep=i(()=>Z&&x&&z||!eg.length&&!ed&&_&&z,[_,ed,Z,x,z,eg.length]),eh=i(()=>!eg||Z&&x,[Z,x,eg]),eP=i(()=>{if(!A?.sameHeight)return[];let e=0,o=Math.ceil((eg?.length??0)/+(A?.slidesToShow?.[Q]??1));return Array.from(Array(eg?.length??0)).map((t,r)=>(r>=+(A?.slidesToShow?.[Q]??1)*(e+1)&&++e,{gridRow:`${1+W*e}/${W+1+W*e}`,marginBottom:e+1<o?T(O?.horizontalGutter,Q):void 0}))},[A?.sameHeight,A?.slidesToShow,W,eg?.length,Q,O?.horizontalGutter]),ef=i(()=>ei||ed||el||!eg||Z&&x,[el,ed,Z,x,ei,eg]),ek=i(()=>q?.collections?.edges.map(e=>e.node?.id)??[],[q?.collections?.edges]);s(()=>{ef||setTimeout(()=>{let{builderData:e}=N??{},o=e?.childrens?.[0];if(!o)return;let t=document.querySelector(`[data-id=${o}] div`);t&&$(t.childElementCount||1)},z?0:500)},[N,ef,z,ek]);let ey=i(()=>({collection:es,products:eg,settings:{loop:A?.loop??{desktop:!1},scrollMode:A?.scrollMode??{desktop:"snap"},slidesToShow:A?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:O?.layout,dot:A?.dot,dotStyle:A?.dotStyle,arrow:A?.arrow,controlOverContent:A?.controlOverContent},styles:{horizontalGutter:O?.horizontalGutter,verticalGutter:O?.verticalGutter,fullWidth:O?.fullWidth,spacing:O?.spacing,width:O?.width,height:O?.height}}),[es,eg,A,O]);if(N?.isPreview&&F)return e(o,{});if(ep)return e(o,{children:I(_,e(L,{builderAttrs:B,collectionHandle:es?.handle,productSrc:V,onClose:()=>D(!1),children:G,relatedTagString:J,assignProductNoTags:K||X||Y,noAssignedProduct:!U}))});let{productListWrapStyle:eI,productListContentStyle:eb,productListWrapAlignStyle:ev}=y(r),{productListWrapClass:eT}=b(r);return t("div",{...B,className:eT,style:eI,children:[!!O?.preloadBgImage&&t(P,{children:[!!O.backgroundImage?.desktop?.image?.src&&e("link",{rel:"preload",href:O.backgroundImage.desktop.image.src,as:"image"}),!!O.backgroundImage?.tablet?.image?.src&&e("link",{rel:"preload",href:O.backgroundImage?.tablet?.image?.src,as:"image"}),!!O.backgroundImage?.mobile?.image?.src&&e("link",{rel:"preload",href:O.backgroundImage?.mobile?.image?.src,as:"image"})]}),ed||ei?e(d,{}):el?t("div",{children:["Error: ",el?.message]}):eh?e("div",{children:"Products not found"}):e(g,{...ey,children:e("div",{className:"gp-flex gp-w-full",style:ev,children:t("div",{style:eb,children:[F&&e(h,{}),e(o,{children:I(O?.layout==="grid",e(f,{...r,productSortedById:eg,generateGridRowArray:eP}),e(k,{...r,productSortedById:eg}))})]})})}),p(G,!0)]})};export{G as default};
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,useMemo as i,useEffect as s}from"react";import{useRenderMode as a,useCurrentDevice as c,usePageType as n,usePageStore as m,flattenConnection as u,ProductListProvider as g,filterToolbarPreview as p}from"@gem-sdk/core";import h from"../SalePageProductListWarning.js";import f from"next/head";import P from"./ProductListGridLayout.js";import k from"./ProductListCarouselLayout.js";import{getStyle as y}from"./common/styles.js";import{If as I}from"@gem-sdk/system";import{getClass as b}from"./common/classes.js";import{getData as T}from"./common/helpers.js";import{getPropertyByDevice as v}from"../../../dialog/common/helpers.js";import{useProductsQuery as S}from"./hooks/useProductsQuery.js";import{useCollectionQuery as j}from"./hooks/useCollectionQuery.js";import w from"./hooks/useProductRelatedQuery.js";import C from"./hooks/useMainRelatedProductQuery.js";let L=r(()=>import("../ProductNotFound.js"),{loading:d}),G=r=>{let{children:G,styles:O,builderProps:N,setting:A,builderAttrs:B}=r,{isRelatedProduct:x,productSetting:E}=T(r),{isEditMode:z,isPreviewSharePageMode:M}=a(),Q=c(),H=n(),R=m(e=>e.dynamicCollection),[W,$]=l(1),[_,D]=l(!0),F="GP_FUNNEL_PAGE"===H;"GP_COLLECTION"==H&&(E.productSrc="DynamicCollection",E.collectionId=R?.collectionId??"latest");let V=E?.productSrc??"Collection",{mainRelatedProduct:q,relatedProductIdAssigned:U}=C({isEditMode:z,isPreviewSharePageMode:M,isRelatedProduct:x,relatedProductId:E.relatedProductId}),J=E.relatedTag&&E.relatedTag[0],K=E.relatedTag&&"tags"===E.relatedTag[0]&&(!q?.tags||q?.tags.length===0),X=E.relatedTag&&"collection"===E.relatedTag[0]&&(!q?.collections?.edges||q?.collections.edges.length===0),Y=E.relatedTag&&"vendor"===E.relatedTag[0]&&!q?.vendor,{isNotFoundRelatedProduct:Z,relatedProducts:ee}=w({isEditMode:z,isPreviewSharePageMode:M,isRelatedProduct:x,productSetting:E,setting:A,mainRelatedProduct:q}),eo=S({productIds:E?.productIds,defaultSelectedProductCount:E?.numOfSelectedProducts,productSrc:V}),et=i(()=>({id:E?.collectionId??"latest",numberOfProducts:A?.numberOfProducts??4,orderBy:A?.orderBy}),[E?.collectionId,Number(A?.numberOfProducts),A?.orderBy]),er=j({variables:"PickProduct"!==V?et:void 0}),ed="PickProduct"===V?eo.isLoading:er.isLoading,el="PickProduct"===V?eo.error:er.error,ei="PickProduct"===V?eo.isValidating:er.isValidating,es=er.data?.collections?.edges?.[0]?.node,ea="PickProduct"===V?u(eo.data?.products):u(es?.products),ec=m(e=>e.assignedProductIds),en=m(e=>e.isApplyAllProducts),em=i(()=>(ec??[]).length>0&&!en||en,[ec,en]),eu=ee?.data?.products&&em?u(ee?.data?.products):[],eg=x?eu:"PickProduct"===V&&E?.productIds?.length?E?.productIds?.map(e=>ea?.find(o=>o?.baseID===e)).filter(Boolean)??ea:"PickProduct"!==V?ea:ea.filter((e,o)=>o<(E?.numOfSelectedProducts??4)),ep=i(()=>Z&&x&&z||!eg.length&&!ed&&_&&z,[_,ed,Z,x,z,eg.length]),eh=i(()=>!eg||Z&&x,[Z,x,eg]),ef=i(()=>{if(!A?.sameHeight)return[];let e=0,o=Math.ceil((eg?.length??0)/+(A?.slidesToShow?.[Q]??1));return Array.from(Array(eg?.length??0)).map((t,r)=>(r>=+(A?.slidesToShow?.[Q]??1)*(e+1)&&++e,{gridRow:`${1+W*e}/${W+1+W*e}`,marginBottom:e+1<o?v(O?.horizontalGutter,Q):void 0}))},[A?.sameHeight,A?.slidesToShow,W,eg?.length,Q,O?.horizontalGutter]),eP=i(()=>ei||ed||el||!eg||Z&&x,[el,ed,Z,x,ei,eg]),ek=i(()=>q?.collections?.edges.map(e=>e.node?.id)??[],[q?.collections?.edges]);s(()=>{eP||setTimeout(()=>{let{builderData:e}=N??{},o=e?.childrens?.[0];if(!o)return;let t=document.querySelector(`[data-id=${o}] div`);t&&$(t.childElementCount||1)},z?0:500)},[N,eP,z,ek]);let ey=i(()=>({collection:es,products:eg,settings:{loop:A?.loop??{desktop:!1},scrollMode:A?.scrollMode??{desktop:"snap"},slidesToShow:A?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:O?.layout,dot:A?.dot,dotStyle:A?.dotStyle,arrow:A?.arrow,controlOverContent:A?.controlOverContent},styles:{horizontalGutter:O?.horizontalGutter,verticalGutter:O?.verticalGutter,fullWidth:O?.fullWidth,spacing:O?.spacing,width:O?.width,height:O?.height}}),[es,eg,A,O]);if(N?.isPreview&&F)return e(o,{});if(ep)return e(o,{children:I(_,e(L,{builderAttrs:B,collectionHandle:es?.handle,productSrc:V,onClose:()=>D(!1),children:G,relatedTagString:J,assignProductNoTags:K||X||Y,noAssignedProduct:!U}))});let{productListWrapStyle:eI,productListContentStyle:eb,productListWrapAlignStyle:eT}=y(r),{productListWrapClass:ev}=b(r);return t("div",{...B,className:ev,style:eI,children:[!!O?.preloadBgImage&&t(f,{children:[!!O.backgroundImage?.desktop?.image?.src&&e("link",{rel:"preload",href:O.backgroundImage.desktop.image.src,as:"image"}),!!O.backgroundImage?.tablet?.image?.src&&e("link",{rel:"preload",href:O.backgroundImage?.tablet?.image?.src,as:"image"}),!!O.backgroundImage?.mobile?.image?.src&&e("link",{rel:"preload",href:O.backgroundImage?.mobile?.image?.src,as:"image"})]}),ed||ei?e(d,{}):el?t("div",{children:["Error: ",el?.message]}):eh?e("div",{children:"Products not found"}):e(g,{...ey,children:e("div",{className:"gp-flex gp-w-full",style:eT,children:t("div",{style:eb,children:[F&&e(h,{}),e(o,{children:I(O?.layout==="grid",e(P,{...r,productSortedById:eg,generateGridRowArray:ef}),e(k,{...r,productSortedById:eg}))})]})})}),p(G,!0)]})};export{G as default};
@@ -0,0 +1 @@
1
+ var o;!function(o){o.Collection="Collection",o.PickProduct="PickProduct",o.DynamicCollection="DynamicCollection",o.RelatedProduct="RelatedProduct"}(o||(o={}));export{o as PRODUCT_SOURCE};
@@ -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 m from"swr";let g=({defaultSelectedProductCount:g,productIds:u})=>{let c=r(),p=t(r=>r.publicStoreFrontData),f=s(()=>e(p)?a(p):c,[p]),h=i(),y=o(),L=n({ids:u??[],isSample:h,isStorefront:y,defaultSelectedProductCount:g}),V=m(L,async([,r])=>d(f,r),{revalidateOnMount:!1});return l(()=>{let r=!!V.error,t=V.isLoading||V.isValidating,e=!V.data&&!t,a=!r&&e&&u?.length;a&&V.mutate()},[u?.length,V.data,V.error,V.isLoading,V.isValidating]),{...V}};export{g as useProductsQuery};
1
+ import{useFetchHandle as r,usePageStore as t,hasPublicStoreFrontData as i,createStoreFrontFetcher as o,useIsSampleProduct as e,useIsStorefrontProduct as a,generateProductsQueryKey as n,getProducts as s}from"@gem-sdk/core";import{useMemo as d,useEffect as m}from"react";import u from"swr";import{PRODUCT_SOURCE as c}from"../constants/index.js";let l=({defaultSelectedProductCount:l,productIds:g,productSrc:p})=>{let f=r(),P=t(r=>r.publicStoreFrontData),k=d(()=>i(P)?o(P):f,[P]),x=e(),y=a(),L=n({ids:g??[],isSample:x,isStorefront:y,defaultSelectedProductCount:l}),V=u(L,async([,r])=>s(k,r),{revalidateOnMount:!1});return m(()=>{if(p!==c.PickProduct)return;let r=!!V.error,t=V.isLoading||V.isValidating,i=!V.data&&!t;!r&&i&&V.mutate()},[p,g?.length,V.data,V.error,V.isLoading,V.isValidating]),{...V}};export{l as useProductsQuery};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "12.0.0-dev.138",
3
+ "version": "12.0.0-dev.139",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -26,9 +26,9 @@
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": "12.0.0-dev.138",
30
- "@gem-sdk/styles": "12.0.0-dev.138",
31
- "@gem-sdk/system": "12.0.0-dev.138",
29
+ "@gem-sdk/core": "12.0.0-dev.139",
30
+ "@gem-sdk/styles": "12.0.0-dev.139",
31
+ "@gem-sdk/system": "12.0.0-dev.139",
32
32
  "@types/react-transition-group": "^4.4.12",
33
33
  "postcss-import": "16.1.1",
34
34
  "@thedutchcoder/postcss-rem-to-px": "0.0.2",