@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.
- package/dist/cjs/product/components/product-description/ProductDescription.js +1 -1
- package/dist/cjs/product/components/product-description/hooks/useGpDescription.js +1 -1
- package/dist/cjs/product/components/product-list/ProductList.js +1 -1
- package/dist/cjs/product/components/product-list-v3/ProductList.js +1 -1
- package/dist/cjs/product/components/product-list-v3/hooks/useCollectionQuery.js +1 -1
- package/dist/cjs/product/components/product-list-v3/hooks/useProductRelatedQuery.js +1 -1
- package/dist/cjs/product/components/product-list-v3/hooks/useProductsQuery.js +1 -1
- package/dist/esm/product/components/product-description/ProductDescription.js +1 -1
- package/dist/esm/product/components/product-description/hooks/useGpDescription.js +1 -1
- package/dist/esm/product/components/product-list/ProductList.js +1 -1
- package/dist/esm/product/components/product-list-v3/ProductList.js +1 -1
- package/dist/esm/product/components/product-list-v3/hooks/useCollectionQuery.js +1 -1
- package/dist/esm/product/components/product-list-v3/hooks/useProductRelatedQuery.js +1 -1
- package/dist/esm/product/components/product-list-v3/hooks/useProductsQuery.js +1 -1
- package/package.json +2 -2
|
@@ -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,
|
|
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
|
|
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"),
|
|
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"),
|
|
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"),
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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),
|
|
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
|
|
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.
|
|
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.
|
|
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",
|