@gem-sdk/components 12.0.0-dev.124 → 12.0.0-dev.126

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.
Files changed (20) hide show
  1. package/dist/cjs/carousel-v3/components/root/common/helpers.js +1 -1
  2. package/dist/cjs/product/components/product-images-v3/common/common.js +1 -1
  3. package/dist/cjs/product/components/product-images-v3/components/child/ProductFeaturedImageOnly.js +1 -1
  4. package/dist/cjs/product/components/product-images-v3/components/gallery-carousel/GalleryCarousel.liquid.js +3 -3
  5. package/dist/cjs/product/components/product-list-v3/ProductList.js +1 -1
  6. package/dist/cjs/product/components/product-list-v3/hooks/useCollectionQuery.js +1 -0
  7. package/dist/cjs/product/components/product-list-v3/hooks/useMainRelatedProductQuery.js +1 -0
  8. package/dist/cjs/product/components/product-list-v3/hooks/useProductRelatedQuery.js +1 -0
  9. package/dist/cjs/product/components/product-list-v3/hooks/useProductsQuery.js +1 -0
  10. package/dist/esm/carousel-v3/components/root/common/helpers.js +1 -1
  11. package/dist/esm/product/components/product-images-v3/common/common.js +1 -1
  12. package/dist/esm/product/components/product-images-v3/components/child/ProductFeaturedImageOnly.js +1 -1
  13. package/dist/esm/product/components/product-images-v3/components/gallery-carousel/GalleryCarousel.liquid.js +12 -12
  14. package/dist/esm/product/components/product-list-v3/ProductList.js +1 -1
  15. package/dist/esm/product/components/product-list-v3/hooks/useCollectionQuery.js +1 -0
  16. package/dist/esm/product/components/product-list-v3/hooks/useMainRelatedProductQuery.js +1 -0
  17. package/dist/esm/product/components/product-list-v3/hooks/useProductRelatedQuery.js +1 -0
  18. package/dist/esm/product/components/product-list-v3/hooks/useProductsQuery.js +1 -0
  19. package/dist/types/index.d.ts +4 -0
  20. package/package.json +2 -2
@@ -1 +1 @@
1
- "use strict";var core=require("@gem-sdk/core"),system=require("@gem-sdk/system");const getData=e=>{let t=["mobile","tablet","desktop"],{setting:r,rootId:o,builderProps:s,styles:a,moveToIdx:n,isHiddenArrowWhenDisabled:c}=e,i=o??s?.uid,l=`gp-carousel-slider-${s?.uid}`,{enableAction:g={desktop:!0},navigationStyle:u,navigationEnable:p={desktop:!0}}=r??{},d=()=>{let e=r?.loop;return t.forEach(t=>{e={...e,[t]:!!core.getResponsiveValueByScreen(g)&&e?.[t]}}),e},y=()=>{let e=u;return t.forEach(t=>{e={...e,[t]:core.getResponsiveValueByScreen(p,t)?core.getResponsiveValueByScreen(e,t):"none"}}),e},m=system.createStateOrContext({id:i,moveToIdx:n,isHiddenArrowWhenDisabled:c,setting:r,styles:a});return{loopConfig:d(),stateData:JSON.stringify(m).replaceAll("'","'"),uniqueComponentId:i,arrowShowConfig:y(),sliderSelector:l}};exports.getData=getData;
1
+ "use strict";var core=require("@gem-sdk/core"),system=require("@gem-sdk/system");const getData=e=>{let t=["mobile","tablet","desktop"],{setting:r,rootId:o,builderProps:s,styles:a,moveToIdx:n,isHiddenArrowWhenDisabled:c,renderByLayout:i,rootAttrs:l}=e,p=o??s?.uid,g=`gp-carousel-slider-${s?.uid}`,{enableAction:u={desktop:!0},navigationStyle:d,navigationEnable:y={desktop:!0}}=r??{},m=()=>{let e=r?.loop;return t.forEach(t=>{e={...e,[t]:!!core.getResponsiveValueByScreen(u)&&e?.[t]}}),e},S=()=>{let e=d;return t.forEach(t=>{e={...e,[t]:core.getResponsiveValueByScreen(y,t)?core.getResponsiveValueByScreen(e,t):"none"}}),e},f=system.createStateOrContext({id:p,moveToIdx:n,isHiddenArrowWhenDisabled:c,setting:r,styles:a,renderByLayout:i,type:l?.type});return{loopConfig:m(),stateData:JSON.stringify(f).replaceAll("'","'"),uniqueComponentId:p,arrowShowConfig:S(),sliderSelector:g}};exports.getData=getData;
@@ -1 +1 @@
1
- "use strict";var core=require("@gem-sdk/core");const getTypeWidthDevice=e=>{let t=e?.desktop,o=e?.tablet===void 0?t:e?.tablet,r=e?.mobile===void 0?o:e?.mobile;return{desktop:t,tablet:o,mobile:r}},convertUnitToNumber=(e,t)=>{if(!e)return t;if("number"==typeof e)return e;let o=e.replaceAll("px","").replaceAll("%","").replaceAll("rem","").replaceAll("em","");return isNaN(Number(o))?t:Number(o)},convertSpacing=e=>{if(!e)return{desktop:5};let t=convertUnitToNumber(e.desktop,5),o=convertUnitToNumber(e.tablet,t),r=convertUnitToNumber(e.mobile,o);return{desktop:t,tablet:o,mobile:r}},getDisplayStyle=(e,t)=>{let o={},r=["desktop","mobile","tablet"];return r.forEach(r=>{o={...o,[`--d${"desktop"===r?"":`-${r}`}`]:`${e(r)?"none":t}`}}),o},checkAddOverFlowClass=e=>{let t=e?.["--radius"],o=e?.["--bblr"]||"0px",r=e?.["--bbrr"]||"0px",i=e?.["--btlr"]||"0px",l=e?.["--btrr"]||"0px";return t&&!t.toString().includes("none")&&"0"!==t.toString()||"0px"!==o||"0px"!==r||"0px"!==i||"0px"!==l},getAspectRatio=e=>{let t={},o=["desktop","mobile","tablet"];return o.forEach(o=>{let r=core.getResponsiveValueByScreen(e,o)?.shapeValue;if(r)t={...t,[o]:r};else{let r=core.getResponsiveValueByScreen(e,o)?.shape;switch(r){case"square":t={...t,[o]:"1/1"};break;case"vertical":t={...t,[o]:"3/4"};break;case"horizontal":t={...t,[o]:"4/3"};break;case"original":t={...t,[o]:""}}}}),core.makeAspectRatio(t)},getStyleGridLayout=e=>{let t={"--gtc":"minmax(0, 12fr)","--gtc-tablet":"minmax(0, 12fr)","--gtc-mobile":"minmax(0, 12fr)"};if(!e.isHiddenGalleryImages){let o=!1;core.DEVICES.forEach(r=>{let i=core.getResponsiveValueByScreen(e.position,r),l=core.getResponsiveValueByScreen(e.ratioLayout,r),n=core.getResponsiveValueByScreen(e.ratioLayoutRight,r),a="desktop"===r?"--gtc":`--gtc-${r}`,s="desktop"===r?"--gtr":`--gtr-${r}`,c="left"===i?l:n,d=["left","right"].includes(i||"");d&&c?(o=!0,Object.assign(t={...t,[a]:`minmax(0, ${c[0]}fr) minmax(0, ${c[1]}fr)`},{[s]:"fit-content(0)"})):o&&Object.assign(t,{[s]:"unset"})})}return t},getStyleGridOrderForFeature=e=>{let t={"--o":"0","--o-tablet":"0","--o-mobile":"0"},o=["desktop","mobile","tablet"];return o.forEach(o=>{let r=core.getResponsiveValueByScreen(e.position,o),i="desktop"===o?"--o":`--o-${o}`;t={...t,[i]:"left"===r?"1":"0"}}),t},getStyleGridOrderForGallery=e=>{let t={"--o":"1","--o-tablet":"1","--o-mobile":"1"},o=["desktop","mobile","tablet"];return o.forEach(o=>{let r=core.getResponsiveValueByScreen(e.position,o),i="desktop"===o?"--o":`--o-${o}`;t={...t,[i]:"left"===r?"0":"1"}}),t},getSrcImage=e=>`{{${e} | image_url: width: 480}} 480w, {{${e} | image_url: width: 768}} 768w, {{${e} | image_url: width: 1024}} 1024w, {{${e} | image_url: width: 1440}} 1440w`,convertSpacingForIndisdeLayout=e=>{let t=parseInt(e)?`${2*parseInt(e)}px`:`${e} * 2`;return t},getStyleInsideLayout=(e,t,o)=>{let r=["desktop","mobile","tablet"],i={},l={},n={},a={},s={},c={};return r.forEach(r=>{let d=core.getResponsiveValueByScreen(e,r),u=core.getResponsiveValueByScreen(t,r)?.width,g=core.getResponsiveValueByScreen(o,r);if(i={...i,[r]:["inside-bottom","inside-left","inside-right"].includes(d)?"absolute":"static"},["inside-bottom"].includes(d)){let e=convertSpacingForIndisdeLayout(g);u=`calc(100% - ${e})`}["bottom-center","two-col","one-col"].includes(d)&&(u="100%"),n={...n,[r]:"inside-bottom"===d?`${g}`:"auto"},a={...a,[r]:["inside-left","inside-right"].includes(d)?`${g}`:"auto"},c={...c,[r]:["inside-bottom","inside-left"].includes(d)?`${g}`:"auto"},s={...s,[r]:"inside-right"===d?`${g}`:"auto"},l={...l,[r]:u}}),{...core.makeStyleResponsive("pos",i),...core.makeStyleResponsive("w",core.removeNullUndefined(l)),...core.makeStyleResponsive("bottom",core.removeNullUndefined(n)),...core.makeStyleResponsive("top",core.removeNullUndefined(a)),...core.makeStyleResponsive("left",core.removeNullUndefined(c)),...core.makeStyleResponsive("right",core.removeNullUndefined(s))}},getConditionRenderGalleryImages=(e,t)=>{let o=["desktop","mobile","tablet"],r=!0,i=!1;return o.forEach(o=>{let l=core.getResponsiveValueByScreen(e,o),n=core.getResponsiveValueByScreen(t,o);l&&"only-feature"!==l&&(r=!1),(["two-col","one-col"].includes(l)||"images"===n)&&(i=!0)}),{isOnlyFeatureAllDevices:r,isRenderGalleryGrid:i}},setDefaultWhenUndefineSetting=e=>({...e,setting:{...e.setting}}),getValueFromValueContainUnit=e=>{let t=e.match(/\d+/g);return t?t[0]:e},getPaddingBottomByShapeSetting=e=>{let t=getAspectRatio(e),o={desktop:"auto",mobile:"auto",tablet:"auto"},r=["desktop","mobile","tablet"];return r.forEach(r=>{let i=core.getResponsiveValueByScreen(e,r),l=i?.height,n=i?.width||"",a=getValueFromValueContainUnit(l||""),s=n.toString().match(/px/g)?getValueFromValueContainUnit(n):n;if(l&&n&&!isNaN(Number(a))&&!isNaN(Number(s))){o={...o,[r]:`${Number(a)/Number(s)*100}%`};return}if(l&&!isNaN(Number(a))){o={...o,[r]:l};return}let c=t?.[r]!=="auto"&&t?.[r]?t?.[r]?.split("/").reverse().join("/"):"{%if largestRatio == 0%} 100 / 100 {%else%} {{largestRatio}} {%endif%}";o={...o,[r]:`calc((${c})*100%)`}}),o};exports.checkAddOverFlowClass=checkAddOverFlowClass,exports.convertSpacing=convertSpacing,exports.convertSpacingForIndisdeLayout=convertSpacingForIndisdeLayout,exports.convertUnitToNumber=convertUnitToNumber,exports.getAspectRatio=getAspectRatio,exports.getConditionRenderGalleryImages=getConditionRenderGalleryImages,exports.getDisplayStyle=getDisplayStyle,exports.getPaddingBottomByShapeSetting=getPaddingBottomByShapeSetting,exports.getSrcImage=getSrcImage,exports.getStyleGridLayout=getStyleGridLayout,exports.getStyleGridOrderForFeature=getStyleGridOrderForFeature,exports.getStyleGridOrderForGallery=getStyleGridOrderForGallery,exports.getStyleInsideLayout=getStyleInsideLayout,exports.getTypeWidthDevice=getTypeWidthDevice,exports.setDefaultWhenUndefineSetting=setDefaultWhenUndefineSetting;
1
+ "use strict";var core=require("@gem-sdk/core");const getTypeWidthDevice=e=>{let t=e?.desktop,o=e?.tablet===void 0?t:e?.tablet,r=e?.mobile===void 0?o:e?.mobile;return{desktop:t,tablet:o,mobile:r}},convertUnitToNumber=(e,t)=>{if(!e)return t;if("number"==typeof e)return e;let o=e.replaceAll("px","").replaceAll("%","").replaceAll("rem","").replaceAll("em","");return isNaN(Number(o))?t:Number(o)},convertSpacing=e=>{if(!e)return{desktop:5};let t=convertUnitToNumber(e.desktop,5),o=convertUnitToNumber(e.tablet,t),r=convertUnitToNumber(e.mobile,o);return{desktop:t,tablet:o,mobile:r}},getDisplayStyle=(e,t)=>{let o={},r=["desktop","mobile","tablet"];return r.forEach(r=>{o={...o,[`--d${"desktop"===r?"":`-${r}`}`]:`${e(r)?"none":t}`}}),o},checkAddOverFlowClass=e=>{let t=e?.["--radius"],o=e?.["--bblr"]||"0px",r=e?.["--bbrr"]||"0px",i=e?.["--btlr"]||"0px",l=e?.["--btrr"]||"0px";return t&&!t.toString().includes("none")&&"0"!==t.toString()||"0px"!==o||"0px"!==r||"0px"!==i||"0px"!==l},getAspectRatio=e=>{let t={},o=["desktop","mobile","tablet"];return o.forEach(o=>{let r=core.getResponsiveValueByScreen(e,o)?.shapeValue;if(r)t={...t,[o]:r};else{let r=core.getResponsiveValueByScreen(e,o)?.shape;switch(r){case"square":t={...t,[o]:"1/1"};break;case"vertical":t={...t,[o]:"3/4"};break;case"horizontal":t={...t,[o]:"4/3"};break;case"original":t={...t,[o]:""}}}}),core.makeAspectRatio(t)},getStyleGridLayout=e=>{let t={"--gtc":"minmax(0, 12fr)","--gtc-tablet":"minmax(0, 12fr)","--gtc-mobile":"minmax(0, 12fr)"};if(!e.isHiddenGalleryImages){let o=!1;core.DEVICES.forEach(r=>{let i=core.getResponsiveValueByScreen(e.position,r),l=core.getResponsiveValueByScreen(e.ratioLayout,r),n=core.getResponsiveValueByScreen(e.ratioLayoutRight,r),a="desktop"===r?"--gtc":`--gtc-${r}`,s="desktop"===r?"--gtr":`--gtr-${r}`,c="left"===i?l:n,d=["left","right"].includes(i||"");d&&c?(o=!0,Object.assign(t={...t,[a]:`minmax(0, ${c[0]}fr) minmax(0, ${c[1]}fr)`},{[s]:"fit-content(0)"})):o&&Object.assign(t,{[s]:"unset"})})}return t},getStyleGridOrderForFeature=e=>{let t={"--o":"0","--o-tablet":"0","--o-mobile":"0"},o=["desktop","mobile","tablet"];return o.forEach(o=>{let r=core.getResponsiveValueByScreen(e.position,o),i="desktop"===o?"--o":`--o-${o}`;t={...t,[i]:"left"===r?"1":"0"}}),t},getStyleGridOrderForGallery=e=>{let t={"--o":"1","--o-tablet":"1","--o-mobile":"1"},o=["desktop","mobile","tablet"];return o.forEach(o=>{let r=core.getResponsiveValueByScreen(e.position,o),i="desktop"===o?"--o":`--o-${o}`;t={...t,[i]:"left"===r?"0":"1"}}),t},getSrcImage=e=>`{{${e} | image_url: width: 480}} 480w, {{${e} | image_url: width: 768}} 768w, {{${e} | image_url: width: 1024}} 1024w, {{${e} | image_url: width: 1440}} 1440w`,convertSpacingForIndisdeLayout=e=>{let t=parseInt(e)?`${2*parseInt(e)}px`:`${e} * 2`;return t},getStyleInsideLayout=(e,t,o)=>{let r=["desktop","mobile","tablet"],i={},l={},n={},a={},s={},c={};return r.forEach(r=>{let d=core.getResponsiveValueByScreen(e,r),u=core.getResponsiveValueByScreen(t,r)?.width,g=core.getResponsiveValueByScreen(o,r);if(i={...i,[r]:["inside-bottom","inside-left","inside-right"].includes(d)?"absolute":"static"},["inside-bottom"].includes(d)){let e=convertSpacingForIndisdeLayout(g);u=`calc(100% - ${e})`}["bottom-center","two-col","one-col"].includes(d)&&(u="100%"),n={...n,[r]:"inside-bottom"===d?`${g}`:"auto"},a={...a,[r]:["inside-left","inside-right"].includes(d)?`${g}`:"auto"},c={...c,[r]:["inside-bottom","inside-left"].includes(d)?`${g}`:"auto"},s={...s,[r]:"inside-right"===d?`${g}`:"auto"},l={...l,[r]:u}}),{...core.makeStyleResponsive("pos",i),...core.makeStyleResponsive("w",core.removeNullUndefined(l)),...core.makeStyleResponsive("bottom",core.removeNullUndefined(n)),...core.makeStyleResponsive("top",core.removeNullUndefined(a)),...core.makeStyleResponsive("left",core.removeNullUndefined(c)),...core.makeStyleResponsive("right",core.removeNullUndefined(s))}},getConditionRenderGalleryImages=(e,t)=>{let o=["desktop","mobile","tablet"],r=!0,i=!1;return o.forEach(o=>{let l=core.getResponsiveValueByScreen(e,o),n=core.getResponsiveValueByScreen(t,o);l&&"only-feature"!==l&&(r=!1),(["two-col","one-col"].includes(l)||"images"===n)&&(i=!0)}),{isOnlyFeatureAllDevices:r,isRenderGalleryGrid:i}},setDefaultWhenUndefineSetting=e=>({...e,setting:{...e.setting}}),getValueFromValueContainUnit=e=>{let t=e.match(/\d+/g);return t?t[0]:e},getPaddingBottomByShapeSetting=e=>{let t=getAspectRatio(e),o={desktop:"auto",mobile:"auto",tablet:"auto"},r=["desktop","mobile","tablet"];return r.forEach(r=>{let i=core.getResponsiveValueByScreen(e,r),l=i?.height,n=i?.width||"",a=getValueFromValueContainUnit(l||""),s=n.toString().match(/px/g)?getValueFromValueContainUnit(n):n;if(l&&n&&!isNaN(Number(a))&&!isNaN(Number(s))){o={...o,[r]:`${Number(a)/Number(s)*100}%`};return}if(l&&!isNaN(Number(a))){o={...o,[r]:l};return}let c=t?.[r]!=="auto"&&t?.[r]?t?.[r]?.split("/").reverse().join("/"):"{%if largestRatio == 0%} 100 / 100 {%else%} {{largestRatio}} {%endif%}";o={...o,[r]:`calc((${c})*100%)`}}),o},getGalleryCarouselRenderByLayout=e=>{let t=["desktop","mobile","tablet"],o={};return t.forEach(t=>{let r=core.getResponsiveValueByScreen(e,t);o={...o,[t]:"only-feature"!==r}}),o};exports.checkAddOverFlowClass=checkAddOverFlowClass,exports.convertSpacing=convertSpacing,exports.convertSpacingForIndisdeLayout=convertSpacingForIndisdeLayout,exports.convertUnitToNumber=convertUnitToNumber,exports.getAspectRatio=getAspectRatio,exports.getConditionRenderGalleryImages=getConditionRenderGalleryImages,exports.getDisplayStyle=getDisplayStyle,exports.getGalleryCarouselRenderByLayout=getGalleryCarouselRenderByLayout,exports.getPaddingBottomByShapeSetting=getPaddingBottomByShapeSetting,exports.getSrcImage=getSrcImage,exports.getStyleGridLayout=getStyleGridLayout,exports.getStyleGridOrderForFeature=getStyleGridOrderForFeature,exports.getStyleGridOrderForGallery=getStyleGridOrderForGallery,exports.getStyleInsideLayout=getStyleInsideLayout,exports.getTypeWidthDevice=getTypeWidthDevice,exports.setDefaultWhenUndefineSetting=setDefaultWhenUndefineSetting;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),React=require("react"),NextImage=require("../../../../../image/components/NextImage.js"),MediaIcon=require("./MediaIcon.js"),productFeaturedImage=require("../../common/productFeaturedImage.js"),ProductFeatureVideo=require("./ProductFeatureVideo.js");const defaultImage={src:"https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif",id:"noImageError",width:480,height:480,alt:"no image",contentType:"IMAGE"},ProductFeaturedImageOnly=({image:e,imageShowWhenHover:t,setting:r,aspectRatio:o})=>{let a=core.useProduct(),c=core.useCurrentDevice(),s=core.useShopStore(e=>e.storefrontUrl),{isEditMode:i,isPreviewSharePageMode:u}=core.useRenderMode(),n=React.useMemo(()=>"none"!==core.getResponsiveValueByScreen(r.ftClickOpenLightBox,c),[c,r.ftClickOpenLightBox]),d=React.useMemo(()=>!i&&["VIDEO","EXTERNAL_VIDEO"].includes(e?.contentType||"")&&!n,[i,e?.contentType,n]),m=React.useMemo(()=>e?{...e,src:d?e.src:productFeaturedImage.isFeatureMedia(e?.contentType)?e?.previewImage:e.src}:defaultImage,[e,d]),l=React.useMemo(()=>{if(u)return"javascript:void(0)";if(!s)return"#";let e=new URL(s);return a?`${e.protocol}//${e.host}/products/${a.handle}`:"#"},[s,a,u]),g=e=>"product-link"===core.getResponsiveValueByScreen(r.ftClickOpenLightBox,c)?jsxRuntime.jsx("a",{title:a?.title,href:l,className:"gp-w-full",children:e}):e,h=React.useMemo(()=>r?.hoverEffect!=="none"&&!productFeaturedImage.isFeatureMedia(m?.contentType),[m?.contentType,r?.hoverEffect]),p=React.useMemo(()=>r?.hoverEffect=="zoom"&&r?.zoomType=="glasses"&&!productFeaturedImage.isFeatureMedia(m?.contentType),[m?.contentType,r?.hoverEffect,r?.zoomType]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:g(jsxRuntime.jsx(jsxRuntime.Fragment,{children:d?jsxRuntime.jsx(ProductFeatureVideo.default,{type:m?.contentType,url:m.src??"",aspectRatio:o}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(NextImage.default,{draggable:"false",src:m.src,width:m?.width,height:m?.height,alt:m?.alt,setting:{aspectRatio:o,layout:r?.ftLayout},priority:r?.preload,className:"featured-image-only",style:{width:"100%",height:"100%",cursor:"pointer"}}),jsxRuntime.jsx(MediaIcon.default,{contentType:m?.contentType??""}),h&&jsxRuntime.jsx(NextImage.default,{draggable:"false",src:r?.hoverEffect==="other"?t?.src:m.src,width:r?.hoverEffect==="other"?t?.width:m.width,height:r?.hoverEffect==="other"?t?.height:m.height,alt:r?.hoverEffect==="other"?t?.alt:m.alt,setting:{layout:r.ftLayout,aspectRatio:o},style:{width:"100%",height:"100%"},className:core.cls("hover-image featured-image-only !gp-max-w-none",productFeaturedImage.getZoomImageClass()),priority:r?.preload}),p&&jsxRuntime.jsx("div",{className:core.cls(productFeaturedImage.getZoomLenClass(),"room-len"),style:{...core.makeStyle({bgi:`url("${m?.src}")`})}})]})}))})};var ProductFeaturedImageOnly$1=React.memo(ProductFeaturedImageOnly);exports.default=ProductFeaturedImageOnly$1;
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),React=require("react"),NextImage=require("../../../../../image/components/NextImage.js"),MediaIcon=require("./MediaIcon.js"),productFeaturedImage=require("../../common/productFeaturedImage.js"),ProductFeatureVideo=require("./ProductFeatureVideo.js");const defaultImage={src:"https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif",id:"noImageError",width:480,height:480,alt:"no image",contentType:"IMAGE"},ProductFeaturedImageOnly=({image:e,imageShowWhenHover:t,setting:r,aspectRatio:a})=>{let o=core.useProduct(),c=core.useCurrentDevice(),s=core.useShopStore(e=>e.storefrontUrl),{isEditMode:u,isPreviewSharePageMode:i}=core.useRenderMode(),n=React.useMemo(()=>"none"!==core.getResponsiveValueByScreen(r.ftClickOpenLightBox,c),[c,r.ftClickOpenLightBox]),d=React.useMemo(()=>!u&&["VIDEO","EXTERNAL_VIDEO"].includes(e?.contentType||"")&&!n,[u,e?.contentType,n]),m=React.useMemo(()=>e?{...e,src:d?e.src:productFeaturedImage.isFeatureMedia(e?.contentType)?e?.previewImage:e.src}:defaultImage,[e,d]),l=React.useMemo(()=>{if(i)return"javascript:void(0)";if(!s)return"#";let e=new URL(s);return o?`${e.protocol}//${e.host}/products/${o.handle}`:"#"},[s,o,i]),g=e=>"product-link"===core.getResponsiveValueByScreen(r.ftClickOpenLightBox,c)?jsxRuntime.jsx("a",{title:o?.title,href:l,className:"gp-w-full",children:e}):e,h=React.useMemo(()=>r?.hoverEffect!=="none"&&!productFeaturedImage.isFeatureMedia(m?.contentType),[m?.contentType,r?.hoverEffect]),p=React.useMemo(()=>r?.hoverEffect=="zoom"&&r?.zoomType=="glasses"&&!productFeaturedImage.isFeatureMedia(m?.contentType),[m?.contentType,r?.hoverEffect,r?.zoomType]),f=React.useCallback(e=>"IMAGE"!==e.contentType?e.previewImage:e.src,[]),y=React.useMemo(()=>t?"other"!==r.hoverEffect?f(m):f(t):defaultImage.src,[t,m,r.hoverEffect,f]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:g(jsxRuntime.jsx(jsxRuntime.Fragment,{children:d?jsxRuntime.jsx(ProductFeatureVideo.default,{type:m?.contentType,url:m.src??"",aspectRatio:a}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(NextImage.default,{draggable:"false",src:m.src,width:m?.width,height:m?.height,alt:m?.alt,setting:{aspectRatio:a,layout:r?.ftLayout},priority:r?.preload,className:"featured-image-only",style:{width:"100%",height:"100%",cursor:"pointer"}}),jsxRuntime.jsx(MediaIcon.default,{contentType:m?.contentType??""}),h&&jsxRuntime.jsx(NextImage.default,{draggable:"false",src:y,width:r?.hoverEffect==="other"?t?.width:m.width,height:r?.hoverEffect==="other"?t?.height:m.height,alt:r?.hoverEffect==="other"?t?.alt:m.alt,setting:{layout:r.ftLayout,aspectRatio:a},style:{width:"100%",height:"100%"},className:core.cls("hover-image featured-image-only !gp-max-w-none",productFeaturedImage.getZoomImageClass()),priority:r?.preload}),p&&jsxRuntime.jsx("div",{className:core.cls(productFeaturedImage.getZoomLenClass(),"room-len"),style:{...core.makeStyle({bgi:`url("${m?.src}")`})}})]})}))})};var ProductFeaturedImageOnly$1=React.memo(ProductFeaturedImageOnly);exports.default=ProductFeaturedImageOnly$1;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),NextImage_liquid=require("../../../../../image/components/NextImage.liquid.js"),common=require("../../common/common.js"),productGallery=require("../../common/productGallery.js"),_function=require("../../../../helpers/function.js"),getProductImagesStyles=require("../../composables/getProductImagesStyles.js"),getProductImagesClassName=require("../../composables/getProductImagesClassName.js"),getProductImagesAttr=require("../../composables/getProductImagesAttr.js"),system=require("@gem-sdk/system"),Carousel_liquid=require("../../../../../carousel-v3/components/root/Carousel.liquid.js"),CarouselItem_liquid=require("../../../../../carousel-v3/components/item/CarouselItem.liquid.js");const ProductGalleryCarousel=({builderPropUID:e,children:t,enableLazyLoadImage:i,...o})=>{let{featuredImageGalleryClasses:s,galleryItemClasses:r}=getProductImagesClassName.getProductImagesClassName(o),{galleryCarouselSettingAttrs:a}=getProductImagesAttr.getProductImagesAttr(o),{galleryCarouselStyle:l,galleryCarouselItemStyle:d}=getProductImagesStyles.getProductImagesStyles(o),p=()=>{let e=(e,t,i)=>{let o=core.getResponsiveValueByScreen(t,i),s=core.getResponsiveValueByScreen(e,i),r="slider"===s&&("bottom-center"===o||"inside-bottom"===o),a=["left","right","inside-left","inside-right"].includes(o??"");return a||r},t=productGallery.checkDisplayGalleryByWidth({shapeByLayout:g}),i={desktop:t.desktop&&e(o.type,o.position,"desktop"),tablet:t.tablet&&e(o.type,o.position,"tablet"),mobile:t.mobile&&e(o.type,o.position,"mobile")};return common.getDisplayStyle(e=>!i[e],"flex")},g=productGallery.getShapeByLayout({shape:o.shape,shapeForBottom:o.shapeForBottom,shapeFor1Col:o.shapeFor1Col,shapeFor2Col:o.shapeFor2Col,shapeForFtOnly:o.shapeForFtOnly,shapeForInsideBottom:o.shapeForInsideBottom,shapeForInside:o.shapeForInside},o.position),m=(e,t)=>core.template`${NextImage_liquid.default({srcIsLiquidCode:!0,src:`${common.getSrcImage("media.preview_image")}`,width:"{{media.width}}",height:"{{media.height}}",alt:"{{media.alt | escape}}",setting:e,baseSrc:"{{media.preview_image | image_url}}",style:t,className:"!gp-rounded-none gp-w-full gp-h-full gp-top-0 gp-left-0 gp-cursor-pointer",enableLazyLoadImage:i})}`,u=t=>`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),NextImage_liquid=require("../../../../../image/components/NextImage.liquid.js"),common=require("../../common/common.js"),productGallery=require("../../common/productGallery.js"),_function=require("../../../../helpers/function.js"),getProductImagesStyles=require("../../composables/getProductImagesStyles.js"),getProductImagesClassName=require("../../composables/getProductImagesClassName.js"),getProductImagesAttr=require("../../composables/getProductImagesAttr.js"),system=require("@gem-sdk/system"),Carousel_liquid=require("../../../../../carousel-v3/components/root/Carousel.liquid.js"),CarouselItem_liquid=require("../../../../../carousel-v3/components/item/CarouselItem.liquid.js");const ProductGalleryCarousel=({builderPropUID:e,children:t,enableLazyLoadImage:i,...o})=>{let{featuredImageGalleryClasses:s,galleryItemClasses:r}=getProductImagesClassName.getProductImagesClassName(o),{galleryCarouselSettingAttrs:a}=getProductImagesAttr.getProductImagesAttr(o),{galleryCarouselStyle:l,galleryCarouselItemStyle:d}=getProductImagesStyles.getProductImagesStyles(o),p=()=>{let e=(e,t,i)=>{let o=core.getResponsiveValueByScreen(t,i),s=core.getResponsiveValueByScreen(e,i),r="slider"===s&&("bottom-center"===o||"inside-bottom"===o),a=["left","right","inside-left","inside-right"].includes(o??"");return a||r},t=productGallery.checkDisplayGalleryByWidth({shapeByLayout:m}),i={desktop:t.desktop&&e(o.type,o.position,"desktop"),tablet:t.tablet&&e(o.type,o.position,"tablet"),mobile:t.mobile&&e(o.type,o.position,"mobile")};return common.getDisplayStyle(e=>!i[e],"flex")},m=productGallery.getShapeByLayout({shape:o.shape,shapeForBottom:o.shapeForBottom,shapeFor1Col:o.shapeFor1Col,shapeFor2Col:o.shapeFor2Col,shapeForFtOnly:o.shapeForFtOnly,shapeForInsideBottom:o.shapeForInsideBottom,shapeForInside:o.shapeForInside},o.position),g=(e,t)=>core.template`${NextImage_liquid.default({srcIsLiquidCode:!0,src:`${common.getSrcImage("media.preview_image")}`,width:"{{media.width}}",height:"{{media.height}}",alt:"{{media.alt | escape}}",setting:e,baseSrc:"{{media.preview_image | image_url}}",style:t,className:"!gp-rounded-none gp-w-full gp-h-full gp-top-0 gp-left-0 gp-cursor-pointer",enableLazyLoadImage:i})}`,u=t=>`
2
2
  ${system.LiquidIf("media.media_type == 'video'","{% assign mediaSourceUrl = media.sources.last.url %}")}
3
3
  ${system.LiquidIf("media.media_type == 'external_video'","{% assign mediaSourceUrl = media | external_video_url %}")}
4
4
  ${system.LiquidIf("media.media_type == 'image'","{% assign mediaSourceUrl = media.src %}")}
@@ -6,7 +6,7 @@
6
6
  <div class="gp-w-full gp-relative gp-h-full"
7
7
 
8
8
  >
9
- ${m({aspectRatio:common.getAspectRatio(g),layout:o?.layout,qualityPercent:o?.qualityPercent,qualityType:o?.qualityType},{width:"100%",height:"100%",cursor:"pointer"})}
9
+ ${g({aspectRatio:common.getAspectRatio(m),layout:o?.layout,qualityPercent:o?.qualityPercent,qualityType:o?.qualityType},{width:"100%",height:"100%",cursor:"pointer"})}
10
10
 
11
11
  ${system.LiquidIf("media.media_type == 'video' or media.media_type == 'external_video'",`<div class="gp-absolute gp-pb-1 gp-pr-1 gp-right-0 gp-bottom-0" >
12
12
  <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -42,5 +42,5 @@
42
42
  </div>
43
43
  `})}`,c=()=>{let e=productGallery.getCarouselVerticalConfigByPosition(o.position),t=[e.desktop?"gp-px-0":"gp-py-0",e.tablet?"tablet:gp-px-0":"tablet:gp-py-0",e.mobile?"mobile:gp-px-0":"mobile:gp-py-0"];return` ${t.join(" ")}`},n=system.LiquidIf("product.media.size > 1",system.LiquidFor("media in product.media",`${system.LiquidIf("media.media_type == 'image'",system.LiquidFor("image in product.images",system.LiquidIf("image.src == media.src","{% assign imageID = image.id %}{% break %}")),"{% assign imageID = '' %}")}
44
44
  ${system.LiquidIf("media.id == product.featured_media.id ",u(o?.borderActive?.border!=="none"?"active":""),u())}`));return core.template`
45
- ${Carousel_liquid.default({builderProps:{uid:e},rootId:`${e}-{{product.id}}`,rootClass:`${s}`,rootAttrs:{type:"grid-carousel","product-media":"{{product.media.size}}"},wrapperClass:c(),slidesClass:productGallery.getMinHeightByPosition(o.position,o.navigationPosition),isHiddenArrowWhenDisabled:!0,setting:a,rootStyles:{...p()},styles:l,disableMarginAuto:!0,children:n})}
45
+ ${Carousel_liquid.default({builderProps:{uid:e},rootId:`${e}-{{product.id}}`,rootClass:`${s}`,rootAttrs:{type:"grid-carousel","product-media":"{{product.media.size}}"},wrapperClass:c(),slidesClass:productGallery.getMinHeightByPosition(o.position,o.navigationPosition),isHiddenArrowWhenDisabled:!0,setting:a,rootStyles:{...p()},styles:l,disableMarginAuto:!0,children:n,renderByLayout:common.getGalleryCarouselRenderByLayout(o.position)})}
46
46
  `};exports.default=ProductGalleryCarousel;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),dynamic=require("next/dynamic"),Loading=require("../../../common/components/Loading.js"),React=require("react"),core=require("@gem-sdk/core"),SalePageProductListWarning=require("../SalePageProductListWarning.js"),Head=require("next/head"),ProductListGridLayout=require("./ProductListGridLayout.js"),ProductListCarouselLayout=require("./ProductListCarouselLayout.js"),styles=require("./common/styles.js"),system=require("@gem-sdk/system"),classes=require("./common/classes.js"),helpers=require("./common/helpers.js"),helpers$1=require("../../../dialog/common/helpers.js");const ProductNotFound=dynamic(()=>Promise.resolve().then(function(){return require("../ProductNotFound.js")}),{loading:Loading.default}),ProductList=e=>{let{children:t,styles:r,builderProps:o,setting:s,builderAttrs:a}=e,{isRelatedProduct:d,productSetting:i}=helpers.getData(e),c=i.relatedTag&&i.relatedTag[0],{isEditMode:l,isPreviewSharePageMode:u}=core.useRenderMode(),n=core.useCurrentDevice(),g=core.usePageType(),m=core.usePageStore(e=>e.dynamicProduct),h=core.usePageStore(e=>e.dynamicCollection),[P,f]=React.useState(1),[p,j]=React.useState(!0),[x,y]=React.useState(),[R,b]=React.useState(!1),v="GP_FUNNEL_PAGE"===g,S="GP_COLLECTION"==g;S&&(i.productSrc="DynamicCollection",i.collectionId=h?.collectionId??"latest");let I=i?.productSrc??"Collection",T=m?.productId&&m?.productId!==i.relatedProductId?m?.productId:i.relatedProductId,k=core.useFetchHandle(),L=core.usePageStore(e=>e.publicStoreFrontData),C=React.useMemo(()=>core.hasPublicStoreFrontData(L)?core.createStoreFrontFetcher(L):k,[L]),{data:O}=core.useProductQuery(d&&T?T:void 0,{revalidateOnMount:l||u},C),w=i.relatedTag&&"tags"===i.relatedTag[0]&&(!O?.tags||O?.tags.length===0),E=i.relatedTag&&"collection"===i.relatedTag[0]&&(!O?.collections?.edges||O?.collections.edges.length===0),M=i.relatedTag&&"vendor"===i.relatedTag[0]&&!O?.vendor,N=w||E||M,q=core.useProductsQueryAll(x,{revalidateOnMount:l||u},C),W=l||u,F=core.useProductsQuery("PickProduct"===I?i?.productIds:void 0,{revalidateOnMount:W},{defaultSelectedProductCount:i?.numOfSelectedProducts}),G=React.useMemo(()=>({id:i?.collectionId??"latest",numberOfProducts:s?.numberOfProducts??4,orderBy:s?.orderBy}),[i?.collectionId,Number(s?.numberOfProducts),s?.orderBy]),Q=core.useCollectionQuery("PickProduct"!==I?G:void 0,{revalidateOnMount:W});React.useEffect(()=>{if(d&&O&&i.relatedTag&&"recommended-product"!==i.relatedType){let e;switch(b(!1),i.hasRelatedExclude&&(e=i?.relatedExclude&&i.relatedExclude.split(",").map(e=>e.trim())),i.relatedTag[0]){case"vendor":y({first:s?.numberOfProducts,where:{vendor:i.relatedTag&&"vendor"===i.relatedTag[0]?O?.vendor:"",idNEQ:O.id}});break;case"collection":{let t;let r=O?.collections?.edges.map(e=>e.node?.id);if(!r||r?.length===0){b(!0);break}y(t=e&&e.length>0?{first:s?.numberOfProducts,where:{idNEQ:O.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:r},{titleNotIn:e}]}]}}:{first:s?.numberOfProducts,where:{idNEQ:O.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:r}]}]}});break}case"tags":{let t;if(!O.tags||0===O.tags.length){b(!0);break}y(t=e&&e.length>0?{first:s?.numberOfProducts,where:{idNEQ:O.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:O.tags},{nameNotIn:e}]}]}}:{first:s?.numberOfProducts,where:{idNEQ:O.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:O.tags}]}]}})}}}},[O,i.relatedType,i.relatedTag,s?.numberOfProducts,i.relatedExclude,i.hasRelatedExclude,d]);let A="PickProduct"===I?F.isValidating:Q.isValidating,B="PickProduct"===I?F.isLoading:Q.isLoading,D="PickProduct"===I?F.error:Q.error,H=Q.data?.collections?.edges?.[0]?.node,$="PickProduct"===I?core.flattenConnection(F.data?.products):core.flattenConnection(H?.products),_=core.usePageStore(e=>e.assignedProductIds),z=core.usePageStore(e=>e.isApplyAllProducts),V=React.useMemo(()=>(_??[]).length>0&&!z||z,[_,z]),U=q?.data?.products&&V?core.flattenConnection(q?.data?.products):[],J=d?U:"PickProduct"===I&&i?.productIds?.length?i?.productIds?.map(e=>$?.find(t=>t?.baseID===e)).filter(Boolean)??$:"PickProduct"!==I?$:$.filter((e,t)=>t<(i?.numOfSelectedProducts??4)),K=React.useMemo(()=>R&&d&&l||!J.length&&!B&&p&&l,[p,B,R,d,l,J.length]),X=React.useMemo(()=>!J||R&&d,[R,d,J]),Y=React.useMemo(()=>{if(!s?.sameHeight)return[];let e=0,t=Math.ceil((J?.length??0)/+(s?.slidesToShow?.[n]??1));return Array.from(Array(J?.length??0)).map((o,a)=>(a>=+(s?.slidesToShow?.[n]??1)*(e+1)&&++e,{gridRow:`${1+P*e}/${P+1+P*e}`,marginBottom:e+1<t?helpers$1.getPropertyByDevice(r?.horizontalGutter,n):void 0}))},[s?.sameHeight,s?.slidesToShow,P,J?.length,n,r?.horizontalGutter]),Z=React.useMemo(()=>A||B||D||!J||R&&d,[D,B,R,d,A,J]),ee=O?.collections?.edges.map(e=>e.node?.id)??[];React.useEffect(()=>{Z||setTimeout(()=>{let{builderData:e}=o??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&f(r.childElementCount||1)},l?0:500)},[o,Z,l,ee]);let et=React.useMemo(()=>({collection:H,products:J,settings:{loop:s?.loop??{desktop:!1},scrollMode:s?.scrollMode??{desktop:"snap"},slidesToShow:s?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:r?.layout,dot:s?.dot,dotStyle:s?.dotStyle,arrow:s?.arrow,controlOverContent:s?.controlOverContent},styles:{horizontalGutter:r?.horizontalGutter,verticalGutter:r?.verticalGutter,fullWidth:r?.fullWidth,spacing:r?.spacing,width:r?.width,height:r?.height}}),[H,J,s,r]);if(o?.isPreview&&v)return jsxRuntime.jsx(jsxRuntime.Fragment,{});if(K)return jsxRuntime.jsx(jsxRuntime.Fragment,{children:system.If(p,jsxRuntime.jsx(ProductNotFound,{builderAttrs:a,collectionHandle:H?.handle,productSrc:I,onClose:()=>j(!1),children:t,relatedTagString:c,assignProductNoTags:N,noAssignedProduct:!T}))});let{productListWrapStyle:er,productListContentStyle:eo,productListWrapAlignStyle:es}=styles.getStyle(e),{productListWrapClass:ea}=classes.getClass(e),ed=()=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:system.If(r?.layout==="grid",jsxRuntime.jsx(ProductListGridLayout.default,{...e,productSortedById:J,generateGridRowArray:Y}),jsxRuntime.jsx(ProductListCarouselLayout.default,{...e,productSortedById:J}))});return jsxRuntime.jsxs("div",{...a,className:ea,style:er,children:[!!r?.preloadBgImage&&jsxRuntime.jsxs(Head,{children:[!!r.backgroundImage?.desktop?.image?.src&&jsxRuntime.jsx("link",{rel:"preload",href:r.backgroundImage.desktop.image.src,as:"image"}),!!r.backgroundImage?.tablet?.image?.src&&jsxRuntime.jsx("link",{rel:"preload",href:r.backgroundImage?.tablet?.image?.src,as:"image"}),!!r.backgroundImage?.mobile?.image?.src&&jsxRuntime.jsx("link",{rel:"preload",href:r.backgroundImage?.mobile?.image?.src,as:"image"})]}),A||B?jsxRuntime.jsx(Loading.default,{}):D?jsxRuntime.jsxs("div",{children:["Error: ",D?.message]}):X?jsxRuntime.jsx("div",{children:"Products not found"}):jsxRuntime.jsx(core.ProductListProvider,{...et,children:jsxRuntime.jsx("div",{className:"gp-flex gp-w-full",style:es,children:jsxRuntime.jsxs("div",{style:eo,children:[v&&jsxRuntime.jsx(SalePageProductListWarning.default,{}),ed()]})})}),core.filterToolbarPreview(t,!0)]})};exports.default=ProductList;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),dynamic=require("next/dynamic"),Loading=require("../../../common/components/Loading.js"),React=require("react"),core=require("@gem-sdk/core"),SalePageProductListWarning=require("../SalePageProductListWarning.js"),Head=require("next/head"),ProductListGridLayout=require("./ProductListGridLayout.js"),ProductListCarouselLayout=require("./ProductListCarouselLayout.js"),styles=require("./common/styles.js"),system=require("@gem-sdk/system"),classes=require("./common/classes.js"),helpers=require("./common/helpers.js"),helpers$1=require("../../../dialog/common/helpers.js"),useProductsQuery=require("./hooks/useProductsQuery.js"),useCollectionQuery=require("./hooks/useCollectionQuery.js"),useProductRelatedQuery=require("./hooks/useProductRelatedQuery.js"),useMainRelatedProductQuery=require("./hooks/useMainRelatedProductQuery.js");const ProductNotFound=dynamic(()=>Promise.resolve().then(function(){return require("../ProductNotFound.js")}),{loading:Loading.default}),ProductList=e=>{let{children:t,styles:r,builderProps:o,setting:s,builderAttrs:d}=e,{isRelatedProduct:u,productSetting:i}=helpers.getData(e),{isEditMode:a,isPreviewSharePageMode:l}=core.useRenderMode(),c=core.useCurrentDevice(),n=core.usePageType(),g=core.usePageStore(e=>e.dynamicCollection),[m,P]=React.useState(1),[h,j]=React.useState(!0),y="GP_FUNNEL_PAGE"===n,x="GP_COLLECTION"==n;x&&(i.productSrc="DynamicCollection",i.collectionId=g?.collectionId??"latest");let p=i?.productSrc??"Collection",{mainRelatedProduct:R,relatedProductIdAssigned:f}=useMainRelatedProductQuery.default({isEditMode:a,isPreviewSharePageMode:l,isRelatedProduct:u,relatedProductId:i.relatedProductId}),k=i.relatedTag&&i.relatedTag[0],L=i.relatedTag&&"tags"===i.relatedTag[0]&&(!R?.tags||R?.tags.length===0),v=i.relatedTag&&"collection"===i.relatedTag[0]&&(!R?.collections?.edges||R?.collections.edges.length===0),S=i.relatedTag&&"vendor"===i.relatedTag[0]&&!R?.vendor,C=L||v||S,{isNotFoundRelatedProduct:I,relatedProducts:b}=useProductRelatedQuery.default({isEditMode:a,isPreviewSharePageMode:l,isRelatedProduct:u,productSetting:i,setting:s,mainRelatedProduct:R}),q=useProductsQuery.useProductsQuery({productIds:"PickProduct"===p?i?.productIds:void 0,defaultSelectedProductCount:i?.numOfSelectedProducts}),T=React.useMemo(()=>({id:i?.collectionId??"latest",numberOfProducts:s?.numberOfProducts??4,orderBy:s?.orderBy}),[i?.collectionId,Number(s?.numberOfProducts),s?.orderBy]),M=useCollectionQuery.useCollectionQuery({variables:"PickProduct"!==p?T:void 0}),Q="PickProduct"===p?q.isLoading:M.isLoading,w="PickProduct"===p?q.error:M.error,G="PickProduct"===p?q.isValidating:M.isValidating,N=M.data?.collections?.edges?.[0]?.node,O="PickProduct"===p?core.flattenConnection(q.data?.products):core.flattenConnection(N?.products),A=core.usePageStore(e=>e.assignedProductIds),B=core.usePageStore(e=>e.isApplyAllProducts),F=React.useMemo(()=>(A??[]).length>0&&!B||B,[A,B]),E=b?.data?.products&&F?core.flattenConnection(b?.data?.products):[],D=u?E:"PickProduct"===p&&i?.productIds?.length?i?.productIds?.map(e=>O?.find(t=>t?.baseID===e)).filter(Boolean)??O:"PickProduct"!==p?O:O.filter((e,t)=>t<(i?.numOfSelectedProducts??4)),H=React.useMemo(()=>I&&u&&a||!D.length&&!Q&&h&&a,[h,Q,I,u,a,D.length]),W=React.useMemo(()=>!D||I&&u,[I,u,D]),$=React.useMemo(()=>{if(!s?.sameHeight)return[];let e=0,t=Math.ceil((D?.length??0)/+(s?.slidesToShow?.[c]??1));return Array.from(Array(D?.length??0)).map((o,d)=>(d>=+(s?.slidesToShow?.[c]??1)*(e+1)&&++e,{gridRow:`${1+m*e}/${m+1+m*e}`,marginBottom:e+1<t?helpers$1.getPropertyByDevice(r?.horizontalGutter,c):void 0}))},[s?.sameHeight,s?.slidesToShow,m,D?.length,c,r?.horizontalGutter]),_=React.useMemo(()=>G||Q||w||!D||I&&u,[w,Q,I,u,G,D]),z=React.useMemo(()=>R?.collections?.edges.map(e=>e.node?.id)??[],[R?.collections?.edges]);React.useEffect(()=>{_||setTimeout(()=>{let{builderData:e}=o??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&P(r.childElementCount||1)},a?0:500)},[o,_,a,z]);let V=React.useMemo(()=>({collection:N,products:D,settings:{loop:s?.loop??{desktop:!1},scrollMode:s?.scrollMode??{desktop:"snap"},slidesToShow:s?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:r?.layout,dot:s?.dot,dotStyle:s?.dotStyle,arrow:s?.arrow,controlOverContent:s?.controlOverContent},styles:{horizontalGutter:r?.horizontalGutter,verticalGutter:r?.verticalGutter,fullWidth:r?.fullWidth,spacing:r?.spacing,width:r?.width,height:r?.height}}),[N,D,s,r]);if(o?.isPreview&&y)return jsxRuntime.jsx(jsxRuntime.Fragment,{});if(H)return jsxRuntime.jsx(jsxRuntime.Fragment,{children:system.If(h,jsxRuntime.jsx(ProductNotFound,{builderAttrs:d,collectionHandle:N?.handle,productSrc:p,onClose:()=>j(!1),children:t,relatedTagString:k,assignProductNoTags:C,noAssignedProduct:!f}))});let{productListWrapStyle:U,productListContentStyle:J,productListWrapAlignStyle:K}=styles.getStyle(e),{productListWrapClass:X}=classes.getClass(e),Y=()=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:system.If(r?.layout==="grid",jsxRuntime.jsx(ProductListGridLayout.default,{...e,productSortedById:D,generateGridRowArray:$}),jsxRuntime.jsx(ProductListCarouselLayout.default,{...e,productSortedById:D}))});return jsxRuntime.jsxs("div",{...d,className:X,style:U,children:[!!r?.preloadBgImage&&jsxRuntime.jsxs(Head,{children:[!!r.backgroundImage?.desktop?.image?.src&&jsxRuntime.jsx("link",{rel:"preload",href:r.backgroundImage.desktop.image.src,as:"image"}),!!r.backgroundImage?.tablet?.image?.src&&jsxRuntime.jsx("link",{rel:"preload",href:r.backgroundImage?.tablet?.image?.src,as:"image"}),!!r.backgroundImage?.mobile?.image?.src&&jsxRuntime.jsx("link",{rel:"preload",href:r.backgroundImage?.mobile?.image?.src,as:"image"})]}),Q||G?jsxRuntime.jsx(Loading.default,{}):w?jsxRuntime.jsxs("div",{children:["Error: ",w?.message]}):W?jsxRuntime.jsx("div",{children:"Products not found"}):jsxRuntime.jsx(core.ProductListProvider,{...V,children:jsxRuntime.jsx("div",{className:"gp-flex gp-w-full",style:K,children:jsxRuntime.jsxs("div",{style:J,children:[y&&jsxRuntime.jsx(SalePageProductListWarning.default,{}),Y()]})})}),core.filterToolbarPreview(t,!0)]})};exports.default=ProductList;
@@ -0,0 +1 @@
1
+ "use strict";var core=require("@gem-sdk/core"),React=require("react"),useSWR=require("swr");const useCollectionQuery=({variables:e})=>{let r=core.useFetchHandle(),t=core.usePageStore(e=>e.publicStoreFrontData),o=React.useMemo(()=>core.hasPublicStoreFrontData(t)?core.createStoreFrontFetcher(t):r,[t]),a=core.useIsSampleProduct(),c=core.useIsStorefrontProduct(),u=useSWR(core.generateCollectionQueryKey({...e,isSample:a,isStorefront:c}),([,e])=>core.getCollection(o,e),{revalidateOnMount:!1,revalidateIfStale:!0});return React.useEffect(()=>{let r=!!u.error,t=u.isLoading||u.isValidating,o=!u.data&&!t,a=!r&&o&&e;a&&u.mutate()},[e,u.data,u.error,u.isLoading,u.isValidating]),u};exports.useCollectionQuery=useCollectionQuery;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),core=require("@gem-sdk/core");const useMainRelatedProductQuery=({isRelatedProduct:e,relatedProductId:r,isEditMode:t,isPreviewSharePageMode:o})=>{let c=core.useFetchHandle(),u=core.usePageStore(e=>e.dynamicProduct),a=core.usePageStore(e=>e.publicStoreFrontData),d=u?.productId&&u?.productId!==r?u?.productId:r,s=React.useMemo(()=>core.hasPublicStoreFrontData(a)?core.createStoreFrontFetcher(a):c,[a]),{data:n}=core.useProductQuery(e&&d?d:void 0,{revalidateOnMount:t||o},s);return{relatedProductIdAssigned:d,mainRelatedProduct:n}};exports.default=useMainRelatedProductQuery;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),core=require("@gem-sdk/core");const useProductRelatedQuery=({setting:e,isEditMode:t,isPreviewSharePageMode:r,isRelatedProduct:a,mainRelatedProduct:d,productSetting:s})=>{let[o,c]=React.useState(!1),[l,u]=React.useState(),i=core.useFetchHandle(),n=core.usePageStore(e=>e.publicStoreFrontData),h=React.useMemo(()=>core.hasPublicStoreFrontData(n)?core.createStoreFrontFetcher(n):i,[n]),g=core.useProductsQueryAll(l,{revalidateOnMount:t||r,keepPreviousData:!0,refreshInterval:0},h);return React.useEffect(()=>{if(a&&d&&s.relatedTag&&"recommended-product"!==s.relatedType){let t;switch(c(!1),s.hasRelatedExclude&&(t=s?.relatedExclude&&s.relatedExclude.split(",").map(e=>e.trim())),s.relatedTag[0]){case"vendor":u({first:e?.numberOfProducts,where:{vendor:s.relatedTag&&"vendor"===s.relatedTag[0]?d?.vendor:"",idNEQ:d.id}});break;case"collection":{let r;let a=d?.collections?.edges.map(e=>e.node?.id);if(!a||a?.length===0){c(!0);break}u(r=t&&t.length>0?{first:e?.numberOfProducts,where:{idNEQ:d.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:a},{titleNotIn:t}]}]}}:{first:e?.numberOfProducts,where:{idNEQ:d.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:a}]}]}});break}case"tags":{let r;if(!d.tags||0===d.tags.length){c(!0);break}u(r=t&&t.length>0?{first:e?.numberOfProducts,where:{idNEQ:d.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:d.tags},{nameNotIn:t}]}]}}:{first:e?.numberOfProducts,where:{idNEQ:d.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:d.tags}]}]}})}}}},[d,s.relatedType,s.relatedTag,e?.numberOfProducts,s.relatedExclude,s.hasRelatedExclude,a]),{isNotFoundRelatedProduct:o,relatedProducts:g}};exports.default=useProductRelatedQuery;
@@ -0,0 +1 @@
1
+ "use strict";var core=require("@gem-sdk/core"),React=require("react"),useSWR=require("swr");const useProductsQuery=({defaultSelectedProductCount:e,productIds:r})=>{let t=core.useFetchHandle(),o=core.usePageStore(e=>e.publicStoreFrontData),s=React.useMemo(()=>core.hasPublicStoreFrontData(o)?core.createStoreFrontFetcher(o):t,[o]),u=core.useIsSampleProduct(),c=core.useIsStorefrontProduct(),a=core.generateProductsQueryKey({ids:r??[],isSample:u,isStorefront:c,defaultSelectedProductCount:e}),i=useSWR(a,async([,e])=>core.getProducts(s,e),{revalidateOnMount:!1});return React.useEffect(()=>{let e=!!i.error,t=i.isLoading||i.isValidating,o=!i.data&&!t,s=!e&&o&&r?.length;s&&i.mutate()},[r?.length,i.data,i.error,i.isLoading,i.isValidating]),{...i}};exports.useProductsQuery=useProductsQuery;
@@ -1 +1 @@
1
- import{getResponsiveValueByScreen as e}from"@gem-sdk/core";import{createStateOrContext as t}from"@gem-sdk/system";let getData=o=>{let r=["mobile","tablet","desktop"],{setting:a,rootId:l,builderProps:i,styles:s,moveToIdx:p,isHiddenArrowWhenDisabled:d}=o,g=l??i?.uid,m=`gp-carousel-slider-${i?.uid}`,{enableAction:n={desktop:!0},navigationStyle:f,navigationEnable:u={desktop:!0}}=a??{},c=()=>{let t=a?.loop;return r.forEach(o=>{t={...t,[o]:!!e(n)&&t?.[o]}}),t},k=()=>{let t=f;return r.forEach(o=>{t={...t,[o]:e(u,o)?e(t,o):"none"}}),t},h=t({id:g,moveToIdx:p,isHiddenArrowWhenDisabled:d,setting:a,styles:s});return{loopConfig:c(),stateData:JSON.stringify(h).replaceAll("'","&#039;"),uniqueComponentId:g,arrowShowConfig:k(),sliderSelector:m}};export{getData};
1
+ import{getResponsiveValueByScreen as e}from"@gem-sdk/core";import{createStateOrContext as t}from"@gem-sdk/system";let getData=o=>{let r=["mobile","tablet","desktop"],{setting:a,rootId:l,builderProps:p,styles:i,moveToIdx:s,isHiddenArrowWhenDisabled:d,renderByLayout:g,rootAttrs:m}=o,n=l??p?.uid,f=`gp-carousel-slider-${p?.uid}`,{enableAction:u={desktop:!0},navigationStyle:c,navigationEnable:k={desktop:!0}}=a??{},y=()=>{let t=a?.loop;return r.forEach(o=>{t={...t,[o]:!!e(u)&&t?.[o]}}),t},h=()=>{let t=c;return r.forEach(o=>{t={...t,[o]:e(k,o)?e(t,o):"none"}}),t},D=t({id:n,moveToIdx:s,isHiddenArrowWhenDisabled:d,setting:a,styles:i,renderByLayout:g,type:m?.type});return{loopConfig:y(),stateData:JSON.stringify(D).replaceAll("'","&#039;"),uniqueComponentId:n,arrowShowConfig:h(),sliderSelector:f}};export{getData};
@@ -1 +1 @@
1
- import{getResponsiveValueByScreen as e,makeAspectRatio as t,makeStyleResponsive as i,removeNullUndefined as o,DEVICES as r}from"@gem-sdk/core";let getTypeWidthDevice=e=>{let t=e?.desktop,i=e?.tablet===void 0?t:e?.tablet,o=e?.mobile===void 0?i:e?.mobile;return{desktop:t,tablet:i,mobile:o}},convertUnitToNumber=(e,t)=>{if(!e)return t;if("number"==typeof e)return e;let i=e.replaceAll("px","").replaceAll("%","").replaceAll("rem","").replaceAll("em","");return isNaN(Number(i))?t:Number(i)},convertSpacing=e=>{if(!e)return{desktop:5};let t=convertUnitToNumber(e.desktop,5),i=convertUnitToNumber(e.tablet,t),o=convertUnitToNumber(e.mobile,i);return{desktop:t,tablet:i,mobile:o}},getDisplayStyle=(e,t)=>{let i={},o=["desktop","mobile","tablet"];return o.forEach(o=>{i={...i,[`--d${"desktop"===o?"":`-${o}`}`]:`${e(o)?"none":t}`}}),i},checkAddOverFlowClass=e=>{let t=e?.["--radius"],i=e?.["--bblr"]||"0px",o=e?.["--bbrr"]||"0px",r=e?.["--btlr"]||"0px",l=e?.["--btrr"]||"0px";return t&&!t.toString().includes("none")&&"0"!==t.toString()||"0px"!==i||"0px"!==o||"0px"!==r||"0px"!==l},getAspectRatio=i=>{let o={},r=["desktop","mobile","tablet"];return r.forEach(t=>{let r=e(i,t)?.shapeValue;if(r)o={...o,[t]:r};else{let r=e(i,t)?.shape;switch(r){case"square":o={...o,[t]:"1/1"};break;case"vertical":o={...o,[t]:"3/4"};break;case"horizontal":o={...o,[t]:"4/3"};break;case"original":o={...o,[t]:""}}}}),t(o)},getStyleGridLayout=t=>{let i={"--gtc":"minmax(0, 12fr)","--gtc-tablet":"minmax(0, 12fr)","--gtc-mobile":"minmax(0, 12fr)"};if(!t.isHiddenGalleryImages){let o=!1;r.forEach(r=>{let l=e(t.position,r),a=e(t.ratioLayout,r),n=e(t.ratioLayoutRight,r),s="desktop"===r?"--gtc":`--gtc-${r}`,d="desktop"===r?"--gtr":`--gtr-${r}`,u="left"===l?a:n,c=["left","right"].includes(l||"");c&&u?(o=!0,Object.assign(i={...i,[s]:`minmax(0, ${u[0]}fr) minmax(0, ${u[1]}fr)`},{[d]:"fit-content(0)"})):o&&Object.assign(i,{[d]:"unset"})})}return i},getStyleGridOrderForFeature=t=>{let i={"--o":"0","--o-tablet":"0","--o-mobile":"0"},o=["desktop","mobile","tablet"];return o.forEach(o=>{let r=e(t.position,o),l="desktop"===o?"--o":`--o-${o}`;i={...i,[l]:"left"===r?"1":"0"}}),i},getStyleGridOrderForGallery=t=>{let i={"--o":"1","--o-tablet":"1","--o-mobile":"1"},o=["desktop","mobile","tablet"];return o.forEach(o=>{let r=e(t.position,o),l="desktop"===o?"--o":`--o-${o}`;i={...i,[l]:"left"===r?"0":"1"}}),i},getSrcImage=e=>`{{${e} | image_url: width: 480}} 480w, {{${e} | image_url: width: 768}} 768w, {{${e} | image_url: width: 1024}} 1024w, {{${e} | image_url: width: 1440}} 1440w`,convertSpacingForIndisdeLayout=e=>{let t=parseInt(e)?`${2*parseInt(e)}px`:`${e} * 2`;return t},getStyleInsideLayout=(t,r,l)=>{let a=["desktop","mobile","tablet"],n={},s={},d={},u={},c={},g={};return a.forEach(i=>{let o=e(t,i),a=e(r,i)?.width,m=e(l,i);if(n={...n,[i]:["inside-bottom","inside-left","inside-right"].includes(o)?"absolute":"static"},["inside-bottom"].includes(o)){let e=convertSpacingForIndisdeLayout(m);a=`calc(100% - ${e})`}["bottom-center","two-col","one-col"].includes(o)&&(a="100%"),d={...d,[i]:"inside-bottom"===o?`${m}`:"auto"},u={...u,[i]:["inside-left","inside-right"].includes(o)?`${m}`:"auto"},g={...g,[i]:["inside-bottom","inside-left"].includes(o)?`${m}`:"auto"},c={...c,[i]:"inside-right"===o?`${m}`:"auto"},s={...s,[i]:a}}),{...i("pos",n),...i("w",o(s)),...i("bottom",o(d)),...i("top",o(u)),...i("left",o(g)),...i("right",o(c))}},getConditionRenderGalleryImages=(t,i)=>{let o=["desktop","mobile","tablet"],r=!0,l=!1;return o.forEach(o=>{let a=e(t,o),n=e(i,o);a&&"only-feature"!==a&&(r=!1),(["two-col","one-col"].includes(a)||"images"===n)&&(l=!0)}),{isOnlyFeatureAllDevices:r,isRenderGalleryGrid:l}},setDefaultWhenUndefineSetting=e=>({...e,setting:{...e.setting}}),getValueFromValueContainUnit=e=>{let t=e.match(/\d+/g);return t?t[0]:e},getPaddingBottomByShapeSetting=t=>{let i=getAspectRatio(t),o={desktop:"auto",mobile:"auto",tablet:"auto"},r=["desktop","mobile","tablet"];return r.forEach(r=>{let l=e(t,r),a=l?.height,n=l?.width||"",s=getValueFromValueContainUnit(a||""),d=n.toString().match(/px/g)?getValueFromValueContainUnit(n):n;if(a&&n&&!isNaN(Number(s))&&!isNaN(Number(d))){o={...o,[r]:`${Number(s)/Number(d)*100}%`};return}if(a&&!isNaN(Number(s))){o={...o,[r]:a};return}let u=i?.[r]!=="auto"&&i?.[r]?i?.[r]?.split("/").reverse().join("/"):"{%if largestRatio == 0%} 100 / 100 {%else%} {{largestRatio}} {%endif%}";o={...o,[r]:`calc((${u})*100%)`}}),o};export{checkAddOverFlowClass,convertSpacing,convertSpacingForIndisdeLayout,convertUnitToNumber,getAspectRatio,getConditionRenderGalleryImages,getDisplayStyle,getPaddingBottomByShapeSetting,getSrcImage,getStyleGridLayout,getStyleGridOrderForFeature,getStyleGridOrderForGallery,getStyleInsideLayout,getTypeWidthDevice,setDefaultWhenUndefineSetting};
1
+ import{getResponsiveValueByScreen as e,makeAspectRatio as t,makeStyleResponsive as o,removeNullUndefined as r,DEVICES as i}from"@gem-sdk/core";let getTypeWidthDevice=e=>{let t=e?.desktop,o=e?.tablet===void 0?t:e?.tablet,r=e?.mobile===void 0?o:e?.mobile;return{desktop:t,tablet:o,mobile:r}},convertUnitToNumber=(e,t)=>{if(!e)return t;if("number"==typeof e)return e;let o=e.replaceAll("px","").replaceAll("%","").replaceAll("rem","").replaceAll("em","");return isNaN(Number(o))?t:Number(o)},convertSpacing=e=>{if(!e)return{desktop:5};let t=convertUnitToNumber(e.desktop,5),o=convertUnitToNumber(e.tablet,t),r=convertUnitToNumber(e.mobile,o);return{desktop:t,tablet:o,mobile:r}},getDisplayStyle=(e,t)=>{let o={},r=["desktop","mobile","tablet"];return r.forEach(r=>{o={...o,[`--d${"desktop"===r?"":`-${r}`}`]:`${e(r)?"none":t}`}}),o},checkAddOverFlowClass=e=>{let t=e?.["--radius"],o=e?.["--bblr"]||"0px",r=e?.["--bbrr"]||"0px",i=e?.["--btlr"]||"0px",l=e?.["--btrr"]||"0px";return t&&!t.toString().includes("none")&&"0"!==t.toString()||"0px"!==o||"0px"!==r||"0px"!==i||"0px"!==l},getAspectRatio=o=>{let r={},i=["desktop","mobile","tablet"];return i.forEach(t=>{let i=e(o,t)?.shapeValue;if(i)r={...r,[t]:i};else{let i=e(o,t)?.shape;switch(i){case"square":r={...r,[t]:"1/1"};break;case"vertical":r={...r,[t]:"3/4"};break;case"horizontal":r={...r,[t]:"4/3"};break;case"original":r={...r,[t]:""}}}}),t(r)},getStyleGridLayout=t=>{let o={"--gtc":"minmax(0, 12fr)","--gtc-tablet":"minmax(0, 12fr)","--gtc-mobile":"minmax(0, 12fr)"};if(!t.isHiddenGalleryImages){let r=!1;i.forEach(i=>{let l=e(t.position,i),a=e(t.ratioLayout,i),n=e(t.ratioLayoutRight,i),s="desktop"===i?"--gtc":`--gtc-${i}`,d="desktop"===i?"--gtr":`--gtr-${i}`,u="left"===l?a:n,c=["left","right"].includes(l||"");c&&u?(r=!0,Object.assign(o={...o,[s]:`minmax(0, ${u[0]}fr) minmax(0, ${u[1]}fr)`},{[d]:"fit-content(0)"})):r&&Object.assign(o,{[d]:"unset"})})}return o},getStyleGridOrderForFeature=t=>{let o={"--o":"0","--o-tablet":"0","--o-mobile":"0"},r=["desktop","mobile","tablet"];return r.forEach(r=>{let i=e(t.position,r),l="desktop"===r?"--o":`--o-${r}`;o={...o,[l]:"left"===i?"1":"0"}}),o},getStyleGridOrderForGallery=t=>{let o={"--o":"1","--o-tablet":"1","--o-mobile":"1"},r=["desktop","mobile","tablet"];return r.forEach(r=>{let i=e(t.position,r),l="desktop"===r?"--o":`--o-${r}`;o={...o,[l]:"left"===i?"0":"1"}}),o},getSrcImage=e=>`{{${e} | image_url: width: 480}} 480w, {{${e} | image_url: width: 768}} 768w, {{${e} | image_url: width: 1024}} 1024w, {{${e} | image_url: width: 1440}} 1440w`,convertSpacingForIndisdeLayout=e=>{let t=parseInt(e)?`${2*parseInt(e)}px`:`${e} * 2`;return t},getStyleInsideLayout=(t,i,l)=>{let a=["desktop","mobile","tablet"],n={},s={},d={},u={},c={},g={};return a.forEach(o=>{let r=e(t,o),a=e(i,o)?.width,m=e(l,o);if(n={...n,[o]:["inside-bottom","inside-left","inside-right"].includes(r)?"absolute":"static"},["inside-bottom"].includes(r)){let e=convertSpacingForIndisdeLayout(m);a=`calc(100% - ${e})`}["bottom-center","two-col","one-col"].includes(r)&&(a="100%"),d={...d,[o]:"inside-bottom"===r?`${m}`:"auto"},u={...u,[o]:["inside-left","inside-right"].includes(r)?`${m}`:"auto"},g={...g,[o]:["inside-bottom","inside-left"].includes(r)?`${m}`:"auto"},c={...c,[o]:"inside-right"===r?`${m}`:"auto"},s={...s,[o]:a}}),{...o("pos",n),...o("w",r(s)),...o("bottom",r(d)),...o("top",r(u)),...o("left",r(g)),...o("right",r(c))}},getConditionRenderGalleryImages=(t,o)=>{let r=["desktop","mobile","tablet"],i=!0,l=!1;return r.forEach(r=>{let a=e(t,r),n=e(o,r);a&&"only-feature"!==a&&(i=!1),(["two-col","one-col"].includes(a)||"images"===n)&&(l=!0)}),{isOnlyFeatureAllDevices:i,isRenderGalleryGrid:l}},setDefaultWhenUndefineSetting=e=>({...e,setting:{...e.setting}}),getValueFromValueContainUnit=e=>{let t=e.match(/\d+/g);return t?t[0]:e},getPaddingBottomByShapeSetting=t=>{let o=getAspectRatio(t),r={desktop:"auto",mobile:"auto",tablet:"auto"},i=["desktop","mobile","tablet"];return i.forEach(i=>{let l=e(t,i),a=l?.height,n=l?.width||"",s=getValueFromValueContainUnit(a||""),d=n.toString().match(/px/g)?getValueFromValueContainUnit(n):n;if(a&&n&&!isNaN(Number(s))&&!isNaN(Number(d))){r={...r,[i]:`${Number(s)/Number(d)*100}%`};return}if(a&&!isNaN(Number(s))){r={...r,[i]:a};return}let u=o?.[i]!=="auto"&&o?.[i]?o?.[i]?.split("/").reverse().join("/"):"{%if largestRatio == 0%} 100 / 100 {%else%} {{largestRatio}} {%endif%}";r={...r,[i]:`calc((${u})*100%)`}}),r},getGalleryCarouselRenderByLayout=t=>{let o=["desktop","mobile","tablet"],r={};return o.forEach(o=>{let i=e(t,o);r={...r,[o]:"only-feature"!==i}}),r};export{checkAddOverFlowClass,convertSpacing,convertSpacingForIndisdeLayout,convertUnitToNumber,getAspectRatio,getConditionRenderGalleryImages,getDisplayStyle,getGalleryCarouselRenderByLayout,getPaddingBottomByShapeSetting,getSrcImage,getStyleGridLayout,getStyleGridOrderForFeature,getStyleGridOrderForGallery,getStyleInsideLayout,getTypeWidthDevice,setDefaultWhenUndefineSetting};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{useProduct as o,useCurrentDevice as a,useShopStore as c,useRenderMode as i,getResponsiveValueByScreen as n,cls as l,makeStyle as s}from"@gem-sdk/core";import{memo as h,useMemo as f}from"react";import m from"../../../../../image/components/NextImage.js";import p from"./MediaIcon.js";import{isFeatureMedia as d,getZoomImageClass as g,getZoomLenClass as u}from"../../common/productFeaturedImage.js";import y from"./ProductFeatureVideo.js";let defaultImage={src:"https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif",id:"noImageError",width:480,height:480,alt:"no image",contentType:"IMAGE"},ProductFeaturedImageOnly=({image:h,imageShowWhenHover:v,setting:E,aspectRatio:I})=>{let T=o(),b=a(),w=c(e=>e.storefrontUrl),{isEditMode:O,isPreviewSharePageMode:x}=i(),L=f(()=>"none"!==n(E.ftClickOpenLightBox,b),[b,E.ftClickOpenLightBox]),j=f(()=>!O&&["VIDEO","EXTERNAL_VIDEO"].includes(h?.contentType||"")&&!L,[O,h?.contentType,L]),F=f(()=>h?{...h,src:j?h.src:d(h?.contentType)?h?.previewImage:h.src}:defaultImage,[h,j]),N=f(()=>{if(x)return"javascript:void(0)";if(!w)return"#";let e=new URL(w);return T?`${e.protocol}//${e.host}/products/${T.handle}`:"#"},[w,T,x]),$=t=>"product-link"===n(E.ftClickOpenLightBox,b)?e("a",{title:T?.title,href:N,className:"gp-w-full",children:t}):t,k=f(()=>E?.hoverEffect!=="none"&&!d(F?.contentType),[F?.contentType,E?.hoverEffect]),P=f(()=>E?.hoverEffect=="zoom"&&E?.zoomType=="glasses"&&!d(F?.contentType),[F?.contentType,E?.hoverEffect,E?.zoomType]);return e(t,{children:$(e(t,{children:j?e(y,{type:F?.contentType,url:F.src??"",aspectRatio:I}):r(t,{children:[e(m,{draggable:"false",src:F.src,width:F?.width,height:F?.height,alt:F?.alt,setting:{aspectRatio:I,layout:E?.ftLayout},priority:E?.preload,className:"featured-image-only",style:{width:"100%",height:"100%",cursor:"pointer"}}),e(p,{contentType:F?.contentType??""}),k&&e(m,{draggable:"false",src:E?.hoverEffect==="other"?v?.src:F.src,width:E?.hoverEffect==="other"?v?.width:F.width,height:E?.hoverEffect==="other"?v?.height:F.height,alt:E?.hoverEffect==="other"?v?.alt:F.alt,setting:{layout:E.ftLayout,aspectRatio:I},style:{width:"100%",height:"100%"},className:l("hover-image featured-image-only !gp-max-w-none",g()),priority:E?.preload}),P&&e("div",{className:l(u(),"room-len"),style:{...s({bgi:`url("${F?.src}")`})}})]})}))})};var ProductFeaturedImageOnly$1=h(ProductFeaturedImageOnly);export{ProductFeaturedImageOnly$1 as default};
2
+ import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{useProduct as o,useCurrentDevice as a,useShopStore as c,useRenderMode as i,getResponsiveValueByScreen as n,cls as l,makeStyle as s}from"@gem-sdk/core";import{memo as f,useMemo as h,useCallback as m}from"react";import p from"../../../../../image/components/NextImage.js";import d from"./MediaIcon.js";import{isFeatureMedia as g,getZoomImageClass as u,getZoomLenClass as y}from"../../common/productFeaturedImage.js";import I from"./ProductFeatureVideo.js";let defaultImage={src:"https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif",id:"noImageError",width:480,height:480,alt:"no image",contentType:"IMAGE"},ProductFeaturedImageOnly=({image:f,imageShowWhenHover:v,setting:E,aspectRatio:T})=>{let w=o(),b=a(),O=c(e=>e.storefrontUrl),{isEditMode:x,isPreviewSharePageMode:L}=i(),j=h(()=>"none"!==n(E.ftClickOpenLightBox,b),[b,E.ftClickOpenLightBox]),F=h(()=>!x&&["VIDEO","EXTERNAL_VIDEO"].includes(f?.contentType||"")&&!j,[x,f?.contentType,j]),N=h(()=>f?{...f,src:F?f.src:g(f?.contentType)?f?.previewImage:f.src}:defaultImage,[f,F]),$=h(()=>{if(L)return"javascript:void(0)";if(!O)return"#";let e=new URL(O);return w?`${e.protocol}//${e.host}/products/${w.handle}`:"#"},[O,w,L]),k=t=>"product-link"===n(E.ftClickOpenLightBox,b)?e("a",{title:w?.title,href:$,className:"gp-w-full",children:t}):t,P=h(()=>E?.hoverEffect!=="none"&&!g(N?.contentType),[N?.contentType,E?.hoverEffect]),R=h(()=>E?.hoverEffect=="zoom"&&E?.zoomType=="glasses"&&!g(N?.contentType),[N?.contentType,E?.hoverEffect,E?.zoomType]),z=m(e=>"IMAGE"!==e.contentType?e.previewImage:e.src,[]),A=h(()=>v?"other"!==E.hoverEffect?z(N):z(v):defaultImage.src,[v,N,E.hoverEffect,z]);return e(t,{children:k(e(t,{children:F?e(I,{type:N?.contentType,url:N.src??"",aspectRatio:T}):r(t,{children:[e(p,{draggable:"false",src:N.src,width:N?.width,height:N?.height,alt:N?.alt,setting:{aspectRatio:T,layout:E?.ftLayout},priority:E?.preload,className:"featured-image-only",style:{width:"100%",height:"100%",cursor:"pointer"}}),e(d,{contentType:N?.contentType??""}),P&&e(p,{draggable:"false",src:A,width:E?.hoverEffect==="other"?v?.width:N.width,height:E?.hoverEffect==="other"?v?.height:N.height,alt:E?.hoverEffect==="other"?v?.alt:N.alt,setting:{layout:E.ftLayout,aspectRatio:T},style:{width:"100%",height:"100%"},className:l("hover-image featured-image-only !gp-max-w-none",u()),priority:E?.preload}),R&&e("div",{className:l(y(),"room-len"),style:{...s({bgi:`url("${N?.src}")`})}})]})}))})};var ProductFeaturedImageOnly$1=f(ProductFeaturedImageOnly);export{ProductFeaturedImageOnly$1 as default};
@@ -1,20 +1,20 @@
1
- import{template as e,getResponsiveValueByScreen as t}from"@gem-sdk/core";import i from"../../../../../image/components/NextImage.liquid.js";import{getDisplayStyle as o,getAspectRatio as r,getSrcImage as s}from"../../common/common.js";import{getShapeByLayout as a,getMinHeightByPosition as p,checkDisplayGalleryByWidth as l,getZoomDisplay as d,getCarouselVerticalConfigByPosition as m}from"../../common/productGallery.js";import{getStyleOfObject as g}from"../../../../helpers/function.js";import{getProductImagesStyles as n}from"../../composables/getProductImagesStyles.js";import{getProductImagesClassName as c}from"../../composables/getProductImagesClassName.js";import{getProductImagesAttr as u}from"../../composables/getProductImagesAttr.js";import{LiquidIf as C,LiquidFor as h}from"@gem-sdk/system";import y from"../../../../../carousel-v3/components/root/Carousel.liquid.js";import v from"../../../../../carousel-v3/components/item/CarouselItem.liquid.js";let ProductGalleryCarousel=({builderPropUID:b,children:f,enableLazyLoadImage:w,...L})=>{let{featuredImageGalleryClasses:F,galleryItemClasses:x}=c(L),{galleryCarouselSettingAttrs:$}=u(L),{galleryCarouselStyle:I,galleryCarouselItemStyle:_}=n(L),k=()=>{let e=(e,i,o)=>{let r=t(i,o),s=t(e,o),a="slider"===s&&("bottom-center"===r||"inside-bottom"===r),p=["left","right","inside-left","inside-right"].includes(r??"");return p||a},i=l({shapeByLayout:j}),r={desktop:i.desktop&&e(L.type,L.position,"desktop"),tablet:i.tablet&&e(L.type,L.position,"tablet"),mobile:i.mobile&&e(L.type,L.position,"mobile")};return o(e=>!r[e],"flex")},j=a({shape:L.shape,shapeForBottom:L.shapeForBottom,shapeFor1Col:L.shapeFor1Col,shapeFor2Col:L.shapeFor2Col,shapeForFtOnly:L.shapeForFtOnly,shapeForInsideBottom:L.shapeForInsideBottom,shapeForInside:L.shapeForInside},L.position),V=(t,o)=>e`${i({srcIsLiquidCode:!0,src:`${s("media.preview_image")}`,width:"{{media.width}}",height:"{{media.height}}",alt:"{{media.alt | escape}}",setting:t,baseSrc:"{{media.preview_image | image_url}}",style:o,className:"!gp-rounded-none gp-w-full gp-h-full gp-top-0 gp-left-0 gp-cursor-pointer",enableLazyLoadImage:w})}`,M=e=>`
2
- ${C("media.media_type == 'video'","{% assign mediaSourceUrl = media.sources.last.url %}")}
3
- ${C("media.media_type == 'external_video'","{% assign mediaSourceUrl = media | external_video_url %}")}
4
- ${C("media.media_type == 'image'","{% assign mediaSourceUrl = media.src %}")}
5
- ${v({id:"{{imageID}}",contentType:"productImage",className:`${x(`gp-gallery-image-item ${e??""}`)}`,parentId:`${b}-{{product.id}}`,builderAttrs:{"data-outline":e?"active":"deactive"},style:_,children:`
1
+ import{template as e,getResponsiveValueByScreen as t}from"@gem-sdk/core";import i from"../../../../../image/components/NextImage.liquid.js";import{getGalleryCarouselRenderByLayout as o,getDisplayStyle as r,getAspectRatio as s,getSrcImage as a}from"../../common/common.js";import{getShapeByLayout as p,getMinHeightByPosition as l,checkDisplayGalleryByWidth as d,getZoomDisplay as m,getCarouselVerticalConfigByPosition as g}from"../../common/productGallery.js";import{getStyleOfObject as n}from"../../../../helpers/function.js";import{getProductImagesStyles as c}from"../../composables/getProductImagesStyles.js";import{getProductImagesClassName as u}from"../../composables/getProductImagesClassName.js";import{getProductImagesAttr as C}from"../../composables/getProductImagesAttr.js";import{LiquidIf as h,LiquidFor as y}from"@gem-sdk/system";import v from"../../../../../carousel-v3/components/root/Carousel.liquid.js";import b from"../../../../../carousel-v3/components/item/CarouselItem.liquid.js";let ProductGalleryCarousel=({builderPropUID:f,children:w,enableLazyLoadImage:L,...F})=>{let{featuredImageGalleryClasses:x,galleryItemClasses:$}=u(F),{galleryCarouselSettingAttrs:I}=C(F),{galleryCarouselStyle:_,galleryCarouselItemStyle:k}=c(F),j=()=>{let e=(e,i,o)=>{let r=t(i,o),s=t(e,o),a="slider"===s&&("bottom-center"===r||"inside-bottom"===r),p=["left","right","inside-left","inside-right"].includes(r??"");return p||a},i=d({shapeByLayout:V}),o={desktop:i.desktop&&e(F.type,F.position,"desktop"),tablet:i.tablet&&e(F.type,F.position,"tablet"),mobile:i.mobile&&e(F.type,F.position,"mobile")};return r(e=>!o[e],"flex")},V=p({shape:F.shape,shapeForBottom:F.shapeForBottom,shapeFor1Col:F.shapeFor1Col,shapeFor2Col:F.shapeFor2Col,shapeForFtOnly:F.shapeForFtOnly,shapeForInsideBottom:F.shapeForInsideBottom,shapeForInside:F.shapeForInside},F.position),M=(t,o)=>e`${i({srcIsLiquidCode:!0,src:`${a("media.preview_image")}`,width:"{{media.width}}",height:"{{media.height}}",alt:"{{media.alt | escape}}",setting:t,baseSrc:"{{media.preview_image | image_url}}",style:o,className:"!gp-rounded-none gp-w-full gp-h-full gp-top-0 gp-left-0 gp-cursor-pointer",enableLazyLoadImage:L})}`,B=e=>`
2
+ ${h("media.media_type == 'video'","{% assign mediaSourceUrl = media.sources.last.url %}")}
3
+ ${h("media.media_type == 'external_video'","{% assign mediaSourceUrl = media | external_video_url %}")}
4
+ ${h("media.media_type == 'image'","{% assign mediaSourceUrl = media.src %}")}
5
+ ${b({id:"{{imageID}}",contentType:"productImage",className:`${$(`gp-gallery-image-item ${e??""}`)}`,parentId:`${f}-{{product.id}}`,builderAttrs:{"data-outline":e?"active":"deactive"},style:k,children:`
6
6
  <div class="gp-w-full gp-relative gp-h-full"
7
7
 
8
8
  >
9
- ${V({aspectRatio:r(j),layout:L?.layout,qualityPercent:L?.qualityPercent,qualityType:L?.qualityType},{width:"100%",height:"100%",cursor:"pointer"})}
9
+ ${M({aspectRatio:s(V),layout:F?.layout,qualityPercent:F?.qualityPercent,qualityType:F?.qualityType},{width:"100%",height:"100%",cursor:"pointer"})}
10
10
 
11
- ${C("media.media_type == 'video' or media.media_type == 'external_video'",`<div class="gp-absolute gp-pb-1 gp-pr-1 gp-right-0 gp-bottom-0" >
11
+ ${h("media.media_type == 'video' or media.media_type == 'external_video'",`<div class="gp-absolute gp-pb-1 gp-pr-1 gp-right-0 gp-bottom-0" >
12
12
  <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
13
13
  <rect opacity="0.9" width="24" height="24" rx="3" fill="#212121"/>
14
14
  <path d="M17.6869 12.2646L17.6868 12.2646L6.78379 18.4464C6.78378 18.4464 6.78376 18.4464 6.78374 18.4464C6.52931 18.5903 6.1665 18.4179 6.1665 18.0416V5.95844C6.1665 5.58218 6.52917 5.40981 6.7836 5.55354C6.78366 5.55357 6.78373 5.55361 6.78379 5.55365L17.6868 11.7354L17.6869 11.7354C17.8819 11.846 17.8819 12.154 17.6869 12.2646Z" stroke="#F9F9F9" stroke-miterlimit="10"/>
15
15
  </svg>
16
16
  </div>`)}
17
- ${C("media.media_type == 'model'",`<div class="gp-absolute gp-pb-1 gp-pr-1 gp-right-0 gp-bottom-0">
17
+ ${h("media.media_type == 'model'",`<div class="gp-absolute gp-pb-1 gp-pr-1 gp-right-0 gp-bottom-0">
18
18
  <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
19
19
  <rect opacity="0.9" width="24" height="24" rx="3" fill="#212121"/>
20
20
  <path fill-rule="evenodd" clip-rule="evenodd" d="M11.7441 4.57034C11.9017 4.47655 12.098 4.47655 12.2555 4.57034L18.5889 8.33957C18.7404 8.42971 18.8332 8.59296 18.8332 8.76923V15.2308C18.8332 15.407 18.7404 15.5703 18.5889 15.6604L12.2555 19.4297C12.098 19.5234 11.9017 19.5234 11.7441 19.4297L5.41079 15.6604C5.25932 15.5703 5.1665 15.407 5.1665 15.2308V8.76923C5.1665 8.59296 5.25932 8.42971 5.41079 8.33957L11.7441 4.57034ZM6.1665 9.64865V14.9465L11.4998 18.1206V12.8227L6.1665 9.64865ZM12.4998 12.8227V18.1206L17.8332 14.9465V9.64865L12.4998 12.8227ZM17.3555 8.76923L11.9998 11.9566L6.64417 8.76923L11.9998 5.58185L17.3555 8.76923Z" fill="#F9F9F9"/>
@@ -22,7 +22,7 @@ import{template as e,getResponsiveValueByScreen as t}from"@gem-sdk/core";import
22
22
  </div>`)}
23
23
 
24
24
  <div class="gp-absolute gp-inset-0 gp-flex gp-cursor-pointer gp-items-center gp-justify-center gp-bg-black/50 gp-opacity-0 gp-transition-opacity gp-duration-100 group-hover:gp-opacity-100"
25
- style="${g(d(L?.clickOpenLightBox))}"
25
+ style="${n(m(F?.clickOpenLightBox))}"
26
26
  >
27
27
  <svg
28
28
  height="100%"
@@ -40,7 +40,7 @@ import{template as e,getResponsiveValueByScreen as t}from"@gem-sdk/core";import
40
40
  </svg>
41
41
  </div>
42
42
  </div>
43
- `})}`,P=()=>{let e=m(L.position),t=[e.desktop?"gp-px-0":"gp-py-0",e.tablet?"tablet:gp-px-0":"tablet:gp-py-0",e.mobile?"mobile:gp-px-0":"mobile:gp-py-0"];return` ${t.join(" ")}`},Z=C("product.media.size > 1",h("media in product.media",`${C("media.media_type == 'image'",h("image in product.images",C("image.src == media.src","{% assign imageID = image.id %}{% break %}")),"{% assign imageID = '' %}")}
44
- ${C("media.id == product.featured_media.id ",M(L?.borderActive?.border!=="none"?"active":""),M())}`));return e`
45
- ${y({builderProps:{uid:b},rootId:`${b}-{{product.id}}`,rootClass:`${F}`,rootAttrs:{type:"grid-carousel","product-media":"{{product.media.size}}"},wrapperClass:P(),slidesClass:p(L.position,L.navigationPosition),isHiddenArrowWhenDisabled:!0,setting:$,rootStyles:{...k()},styles:I,disableMarginAuto:!0,children:Z})}
43
+ `})}`,P=()=>{let e=g(F.position),t=[e.desktop?"gp-px-0":"gp-py-0",e.tablet?"tablet:gp-px-0":"tablet:gp-py-0",e.mobile?"mobile:gp-px-0":"mobile:gp-py-0"];return` ${t.join(" ")}`},Z=h("product.media.size > 1",y("media in product.media",`${h("media.media_type == 'image'",y("image in product.images",h("image.src == media.src","{% assign imageID = image.id %}{% break %}")),"{% assign imageID = '' %}")}
44
+ ${h("media.id == product.featured_media.id ",B(F?.borderActive?.border!=="none"?"active":""),B())}`));return e`
45
+ ${v({builderProps:{uid:f},rootId:`${f}-{{product.id}}`,rootClass:`${x}`,rootAttrs:{type:"grid-carousel","product-media":"{{product.media.size}}"},wrapperClass:P(),slidesClass:l(F.position,F.navigationPosition),isHiddenArrowWhenDisabled:!0,setting:I,rootStyles:{...j()},styles:_,disableMarginAuto:!0,children:Z,renderByLayout:o(F.position)})}
46
46
  `};export{ProductGalleryCarousel as default};
@@ -1 +1 @@
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 a,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 P,useProductsQuery as f,useCollectionQuery as b,flattenConnection as k,ProductListProvider as I,filterToolbarPreview as T}from"@gem-sdk/core";import y from"../SalePageProductListWarning.js";import v from"next/head";import O from"./ProductListGridLayout.js";import w from"./ProductListCarouselLayout.js";import{getStyle as N}from"./common/styles.js";import{If as S}from"@gem-sdk/system";import{getClass as C}from"./common/classes.js";import{getData as E}from"./common/helpers.js";import{getPropertyByDevice as L}from"../../../dialog/common/helpers.js";let ProductNotFound=r(()=>import("../ProductNotFound.js"),{loading:d}),ProductList=r=>{let{children:W,styles:j,builderProps:x,setting:G,builderAttrs:A}=r,{isRelatedProduct:M,productSetting:B}=E(r),F=B.relatedTag&&B.relatedTag[0],{isEditMode:Q,isPreviewSharePageMode:z}=c(),D=s(),H=n(),R=u(e=>e.dynamicProduct),$=u(e=>e.dynamicCollection),[_,V]=l(1),[q,U]=l(!0),[J,K]=l(),[X,Y]=l(!1),Z="GP_FUNNEL_PAGE"===H,ee="GP_COLLECTION"==H;ee&&(B.productSrc="DynamicCollection",B.collectionId=$?.collectionId??"latest");let et=B?.productSrc??"Collection",eo=R?.productId&&R?.productId!==B.relatedProductId?R?.productId:B.relatedProductId,er=m(),ed=u(e=>e.publicStoreFrontData),el=a(()=>g(ed)?h(ed):er,[ed]),{data:ea}=p(M&&eo?eo:void 0,{revalidateOnMount:Q||z},el),ei=B.relatedTag&&"tags"===B.relatedTag[0]&&(!ea?.tags||ea?.tags.length===0),ec=B.relatedTag&&"collection"===B.relatedTag[0]&&(!ea?.collections?.edges||ea?.collections.edges.length===0),es=B.relatedTag&&"vendor"===B.relatedTag[0]&&!ea?.vendor,en=ei||ec||es,eu=P(J,{revalidateOnMount:Q||z},el),em=Q||z,eg=f("PickProduct"===et?B?.productIds:void 0,{revalidateOnMount:em},{defaultSelectedProductCount:B?.numOfSelectedProducts}),eh=a(()=>({id:B?.collectionId??"latest",numberOfProducts:G?.numberOfProducts??4,orderBy:G?.orderBy}),[B?.collectionId,Number(G?.numberOfProducts),G?.orderBy]),ep=b("PickProduct"!==et?eh:void 0,{revalidateOnMount:em});i(()=>{if(M&&ea&&B.relatedTag&&"recommended-product"!==B.relatedType){let e;switch(Y(!1),B.hasRelatedExclude&&(e=B?.relatedExclude&&B.relatedExclude.split(",").map(e=>e.trim())),B.relatedTag[0]){case"vendor":K({first:G?.numberOfProducts,where:{vendor:B.relatedTag&&"vendor"===B.relatedTag[0]?ea?.vendor:"",idNEQ:ea.id}});break;case"collection":{let t;let o=ea?.collections?.edges.map(e=>e.node?.id);if(!o||o?.length===0){Y(!0);break}K(t=e&&e.length>0?{first:G?.numberOfProducts,where:{idNEQ:ea.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:o},{titleNotIn:e}]}]}}:{first:G?.numberOfProducts,where:{idNEQ:ea.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:o}]}]}});break}case"tags":{let t;if(!ea.tags||0===ea.tags.length){Y(!0);break}K(t=e&&e.length>0?{first:G?.numberOfProducts,where:{idNEQ:ea.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:ea.tags},{nameNotIn:e}]}]}}:{first:G?.numberOfProducts,where:{idNEQ:ea.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:ea.tags}]}]}})}}}},[ea,B.relatedType,B.relatedTag,G?.numberOfProducts,B.relatedExclude,B.hasRelatedExclude,M]);let eP="PickProduct"===et?eg.isValidating:ep.isValidating,ef="PickProduct"===et?eg.isLoading:ep.isLoading,eb="PickProduct"===et?eg.error:ep.error,ek=ep.data?.collections?.edges?.[0]?.node,eI="PickProduct"===et?k(eg.data?.products):k(ek?.products),eT=u(e=>e.assignedProductIds),ey=u(e=>e.isApplyAllProducts),ev=a(()=>(eT??[]).length>0&&!ey||ey,[eT,ey]),eO=eu?.data?.products&&ev?k(eu?.data?.products):[],ew=M?eO:"PickProduct"===et&&B?.productIds?.length?B?.productIds?.map(e=>eI?.find(t=>t?.baseID===e)).filter(Boolean)??eI:"PickProduct"!==et?eI:eI.filter((e,t)=>t<(B?.numOfSelectedProducts??4)),eN=a(()=>X&&M&&Q||!ew.length&&!ef&&q&&Q,[q,ef,X,M,Q,ew.length]),eS=a(()=>!ew||X&&M,[X,M,ew]),eC=a(()=>{if(!G?.sameHeight)return[];let e=0,t=Math.ceil((ew?.length??0)/+(G?.slidesToShow?.[D]??1));return Array.from(Array(ew?.length??0)).map((o,r)=>(r>=+(G?.slidesToShow?.[D]??1)*(e+1)&&++e,{gridRow:`${1+_*e}/${_+1+_*e}`,marginBottom:e+1<t?L(j?.horizontalGutter,D):void 0}))},[G?.sameHeight,G?.slidesToShow,_,ew?.length,D,j?.horizontalGutter]),eE=a(()=>eP||ef||eb||!ew||X&&M,[eb,ef,X,M,eP,ew]),eL=ea?.collections?.edges.map(e=>e.node?.id)??[];i(()=>{eE||setTimeout(()=>{let{builderData:e}=x??{},t=e?.childrens?.[0];if(!t)return;let o=document.querySelector(`[data-id=${t}] div`);o&&V(o.childElementCount||1)},Q?0:500)},[x,eE,Q,eL]);let eW=a(()=>({collection:ek,products:ew,settings:{loop:G?.loop??{desktop:!1},scrollMode:G?.scrollMode??{desktop:"snap"},slidesToShow:G?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:j?.layout,dot:G?.dot,dotStyle:G?.dotStyle,arrow:G?.arrow,controlOverContent:G?.controlOverContent},styles:{horizontalGutter:j?.horizontalGutter,verticalGutter:j?.verticalGutter,fullWidth:j?.fullWidth,spacing:j?.spacing,width:j?.width,height:j?.height}}),[ek,ew,G,j]);if(x?.isPreview&&Z)return e(t,{});if(eN)return e(t,{children:S(q,e(ProductNotFound,{builderAttrs:A,collectionHandle:ek?.handle,productSrc:et,onClose:()=>U(!1),children:W,relatedTagString:F,assignProductNoTags:en,noAssignedProduct:!eo}))});let{productListWrapStyle:ej,productListContentStyle:ex,productListWrapAlignStyle:eG}=N(r),{productListWrapClass:eA}=C(r),eM=()=>e(t,{children:S(j?.layout==="grid",e(O,{...r,productSortedById:ew,generateGridRowArray:eC}),e(w,{...r,productSortedById:ew}))});return o("div",{...A,className:eA,style:ej,children:[!!j?.preloadBgImage&&o(v,{children:[!!j.backgroundImage?.desktop?.image?.src&&e("link",{rel:"preload",href:j.backgroundImage.desktop.image.src,as:"image"}),!!j.backgroundImage?.tablet?.image?.src&&e("link",{rel:"preload",href:j.backgroundImage?.tablet?.image?.src,as:"image"}),!!j.backgroundImage?.mobile?.image?.src&&e("link",{rel:"preload",href:j.backgroundImage?.mobile?.image?.src,as:"image"})]}),eP||ef?e(d,{}):eb?o("div",{children:["Error: ",eb?.message]}):eS?e("div",{children:"Products not found"}):e(I,{...eW,children:e("div",{className:"gp-flex gp-w-full",style:eG,children:o("div",{style:ex,children:[Z&&e(y,{}),eM()]})})}),T(W,!0)]})};export{ProductList 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 c,useCurrentDevice as a,usePageType as n,usePageStore as u,flattenConnection as m,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 L from"./hooks/useProductRelatedQuery.js";import w from"./hooks/useMainRelatedProductQuery.js";let ProductNotFound=r(()=>import("../ProductNotFound.js"),{loading:d}),ProductList=r=>{let{children:C,styles:G,builderProps:N,setting:O,builderAttrs:A}=r,{isRelatedProduct:B,productSetting:x}=v(r),{isEditMode:E,isPreviewSharePageMode:z}=c(),F=a(),M=n(),Q=u(e=>e.dynamicCollection),[H,R]=l(1),[W,$]=l(!0),_="GP_FUNNEL_PAGE"===M,D="GP_COLLECTION"==M;D&&(x.productSrc="DynamicCollection",x.collectionId=Q?.collectionId??"latest");let V=x?.productSrc??"Collection",{mainRelatedProduct:q,relatedProductIdAssigned:U}=w({isEditMode:E,isPreviewSharePageMode:z,isRelatedProduct:B,relatedProductId:x.relatedProductId}),J=x.relatedTag&&x.relatedTag[0],K=x.relatedTag&&"tags"===x.relatedTag[0]&&(!q?.tags||q?.tags.length===0),X=x.relatedTag&&"collection"===x.relatedTag[0]&&(!q?.collections?.edges||q?.collections.edges.length===0),Y=x.relatedTag&&"vendor"===x.relatedTag[0]&&!q?.vendor,Z=K||X||Y,{isNotFoundRelatedProduct:ee,relatedProducts:eo}=L({isEditMode:E,isPreviewSharePageMode:z,isRelatedProduct:B,productSetting:x,setting:O,mainRelatedProduct:q}),et=S({productIds:"PickProduct"===V?x?.productIds:void 0,defaultSelectedProductCount:x?.numOfSelectedProducts}),er=i(()=>({id:x?.collectionId??"latest",numberOfProducts:O?.numberOfProducts??4,orderBy:O?.orderBy}),[x?.collectionId,Number(O?.numberOfProducts),O?.orderBy]),ed=j({variables:"PickProduct"!==V?er:void 0}),el="PickProduct"===V?et.isLoading:ed.isLoading,ei="PickProduct"===V?et.error:ed.error,es="PickProduct"===V?et.isValidating:ed.isValidating,ec=ed.data?.collections?.edges?.[0]?.node,ea="PickProduct"===V?m(et.data?.products):m(ec?.products),en=u(e=>e.assignedProductIds),eu=u(e=>e.isApplyAllProducts),em=i(()=>(en??[]).length>0&&!eu||eu,[en,eu]),eg=eo?.data?.products&&em?m(eo?.data?.products):[],ep=B?eg:"PickProduct"===V&&x?.productIds?.length?x?.productIds?.map(e=>ea?.find(o=>o?.baseID===e)).filter(Boolean)??ea:"PickProduct"!==V?ea:ea.filter((e,o)=>o<(x?.numOfSelectedProducts??4)),eh=i(()=>ee&&B&&E||!ep.length&&!el&&W&&E,[W,el,ee,B,E,ep.length]),eP=i(()=>!ep||ee&&B,[ee,B,ep]),ef=i(()=>{if(!O?.sameHeight)return[];let e=0,o=Math.ceil((ep?.length??0)/+(O?.slidesToShow?.[F]??1));return Array.from(Array(ep?.length??0)).map((t,r)=>(r>=+(O?.slidesToShow?.[F]??1)*(e+1)&&++e,{gridRow:`${1+H*e}/${H+1+H*e}`,marginBottom:e+1<o?T(G?.horizontalGutter,F):void 0}))},[O?.sameHeight,O?.slidesToShow,H,ep?.length,F,G?.horizontalGutter]),ek=i(()=>es||el||ei||!ep||ee&&B,[ei,el,ee,B,es,ep]),ey=i(()=>q?.collections?.edges.map(e=>e.node?.id)??[],[q?.collections?.edges]);s(()=>{ek||setTimeout(()=>{let{builderData:e}=N??{},o=e?.childrens?.[0];if(!o)return;let t=document.querySelector(`[data-id=${o}] div`);t&&R(t.childElementCount||1)},E?0:500)},[N,ek,E,ey]);let eI=i(()=>({collection:ec,products:ep,settings:{loop:O?.loop??{desktop:!1},scrollMode:O?.scrollMode??{desktop:"snap"},slidesToShow:O?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:G?.layout,dot:O?.dot,dotStyle:O?.dotStyle,arrow:O?.arrow,controlOverContent:O?.controlOverContent},styles:{horizontalGutter:G?.horizontalGutter,verticalGutter:G?.verticalGutter,fullWidth:G?.fullWidth,spacing:G?.spacing,width:G?.width,height:G?.height}}),[ec,ep,O,G]);if(N?.isPreview&&_)return e(o,{});if(eh)return e(o,{children:I(W,e(ProductNotFound,{builderAttrs:A,collectionHandle:ec?.handle,productSrc:V,onClose:()=>$(!1),children:C,relatedTagString:J,assignProductNoTags:Z,noAssignedProduct:!U}))});let{productListWrapStyle:eb,productListContentStyle:ev,productListWrapAlignStyle:eT}=y(r),{productListWrapClass:eS}=b(r),ej=()=>e(o,{children:I(G?.layout==="grid",e(f,{...r,productSortedById:ep,generateGridRowArray:ef}),e(k,{...r,productSortedById:ep}))});return t("div",{...A,className:eS,style:eb,children:[!!G?.preloadBgImage&&t(P,{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"})]}),el||es?e(d,{}):ei?t("div",{children:["Error: ",ei?.message]}):eP?e("div",{children:"Products not found"}):e(g,{...eI,children:e("div",{className:"gp-flex gp-w-full",style:eT,children:t("div",{style:ev,children:[_&&e(h,{}),ej()]})})}),p(C,!0)]})};export{ProductList as default};
@@ -0,0 +1 @@
1
+ import{useFetchHandle as r,usePageStore as t,hasPublicStoreFrontData as e,createStoreFrontFetcher as a,useIsSampleProduct as o,useIsStorefrontProduct as i,generateCollectionQueryKey as l,getCollection as n}from"@gem-sdk/core";import{useMemo as d,useEffect as m}from"react";import s from"swr";let useCollectionQuery=({variables:u})=>{let c=r(),g=t(r=>r.publicStoreFrontData),p=d(()=>e(g)?a(g):c,[g]),f=o(),v=i(),y=s(l({...u,isSample:f,isStorefront:v}),([,r])=>n(p,r),{revalidateOnMount:!1,revalidateIfStale:!0});return m(()=>{let r=!!y.error,t=y.isLoading||y.isValidating,e=!y.data&&!t,a=!r&&e&&u;a&&y.mutate()},[u,y.data,y.error,y.isLoading,y.isValidating]),y};export{useCollectionQuery};
@@ -0,0 +1 @@
1
+ import{useMemo as t}from"react";import{useFetchHandle as r,usePageStore as e,hasPublicStoreFrontData as d,createStoreFrontFetcher as o,useProductQuery as a}from"@gem-sdk/core";let useMainRelatedProductQuery=({isRelatedProduct:u,relatedProductId:c,isEditMode:i,isPreviewSharePageMode:l})=>{let n=r(),p=e(t=>t.dynamicProduct),m=e(t=>t.publicStoreFrontData),s=p?.productId&&p?.productId!==c?p?.productId:c,f=t(()=>d(m)?o(m):n,[m]),{data:y}=a(u&&s?s:void 0,{revalidateOnMount:i||l},f);return{relatedProductIdAssigned:s,mainRelatedProduct:y}};export{useMainRelatedProductQuery as default};
@@ -0,0 +1 @@
1
+ import{useState as e,useMemo as t,useEffect as r}from"react";import{useFetchHandle as a,usePageStore as d,hasPublicStoreFrontData as l,createStoreFrontFetcher as s,useProductsQueryAll as i}from"@gem-sdk/core";let useProductRelatedQuery=({setting:o,isEditMode:n,isPreviewSharePageMode:c,isRelatedProduct:u,mainRelatedProduct:h,productSetting:g})=>{let[m,f]=e(!1),[P,b]=e(),p=a(),T=d(e=>e.publicStoreFrontData),E=t(()=>l(T)?s(T):p,[T]),W=i(P,{revalidateOnMount:n||c,keepPreviousData:!0,refreshInterval:0},E);return r(()=>{if(u&&h&&g.relatedTag&&"recommended-product"!==g.relatedType){let e;switch(f(!1),g.hasRelatedExclude&&(e=g?.relatedExclude&&g.relatedExclude.split(",").map(e=>e.trim())),g.relatedTag[0]){case"vendor":b({first:o?.numberOfProducts,where:{vendor:g.relatedTag&&"vendor"===g.relatedTag[0]?h?.vendor:"",idNEQ:h.id}});break;case"collection":{let t;let r=h?.collections?.edges.map(e=>e.node?.id);if(!r||r?.length===0){f(!0);break}b(t=e&&e.length>0?{first:o?.numberOfProducts,where:{idNEQ:h.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:r},{titleNotIn:e}]}]}}:{first:o?.numberOfProducts,where:{idNEQ:h.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:r}]}]}});break}case"tags":{let t;if(!h.tags||0===h.tags.length){f(!0);break}b(t=e&&e.length>0?{first:o?.numberOfProducts,where:{idNEQ:h.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:h.tags},{nameNotIn:e}]}]}}:{first:o?.numberOfProducts,where:{idNEQ:h.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:h.tags}]}]}})}}}},[h,g.relatedType,g.relatedTag,o?.numberOfProducts,g.relatedExclude,g.hasRelatedExclude,u]),{isNotFoundRelatedProduct:m,relatedProducts:W}};export{useProductRelatedQuery as default};
@@ -0,0 +1 @@
1
+ import{useFetchHandle as r,usePageStore as t,hasPublicStoreFrontData as e,createStoreFrontFetcher as a,useIsSampleProduct as o,useIsStorefrontProduct as i,generateProductsQueryKey as s,getProducts as d}from"@gem-sdk/core";import{useMemo as n,useEffect as u}from"react";import l from"swr";let useProductsQuery=({defaultSelectedProductCount:m,productIds:g})=>{let c=r(),p=t(r=>r.publicStoreFrontData),f=n(()=>e(p)?a(p):c,[p]),y=o(),h=i(),L=s({ids:g??[],isSample:y,isStorefront:h,defaultSelectedProductCount:m}),P=l(L,async([,r])=>d(f,r),{revalidateOnMount:!1});return u(()=>{let r=!!P.error,t=P.isLoading||P.isValidating,e=!P.data&&!t,a=!r&&e&&g?.length;a&&P.mutate()},[g?.length,P.data,P.error,P.isLoading,P.isValidating]),{...P}};export{useProductsQuery};
@@ -875,6 +875,7 @@ type CarouselProps$1 = BasePropsWrap<CarouselSettingProps$1, CarouselStyleProps$
875
875
  isProductList?: boolean;
876
876
  thumbsSwiper?: string;
877
877
  productBadgeLiquid?: string;
878
+ renderByLayout?: ObjectDevices<boolean>;
878
879
  } & {
879
880
  rootId?: string;
880
881
  rootClass?: string;
@@ -927,6 +928,7 @@ declare const Carousel$3: React.ForwardRefExoticComponent<_gem_sdk_core.BaseProp
927
928
  isProductList?: boolean | undefined;
928
929
  thumbsSwiper?: string | undefined;
929
930
  productBadgeLiquid?: string | undefined;
931
+ renderByLayout?: Partial<Record<_gem_sdk_core.NameDevices, boolean>> | undefined;
930
932
  } & {
931
933
  rootId?: string | undefined;
932
934
  rootClass?: string | undefined;
@@ -6395,6 +6397,7 @@ declare const _default$3: {
6395
6397
  isProductList?: boolean | undefined;
6396
6398
  thumbsSwiper?: string | undefined;
6397
6399
  productBadgeLiquid?: string | undefined;
6400
+ renderByLayout?: Partial<Record<_gem_sdk_core.NameDevices, boolean>> | undefined;
6398
6401
  } & {
6399
6402
  rootId?: string | undefined;
6400
6403
  rootClass?: string | undefined;
@@ -7359,6 +7362,7 @@ declare const _default$2: {
7359
7362
  isProductList?: boolean | undefined;
7360
7363
  thumbsSwiper?: string | undefined;
7361
7364
  productBadgeLiquid?: string | undefined;
7365
+ renderByLayout?: Partial<Record<_gem_sdk_core.NameDevices, boolean>> | undefined;
7362
7366
  } & {
7363
7367
  rootId?: string | undefined;
7364
7368
  rootClass?: string | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "12.0.0-dev.124",
3
+ "version": "12.0.0-dev.126",
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": "12.0.0-dev.124",
29
+ "@gem-sdk/core": "12.0.0-dev.126",
30
30
  "@gem-sdk/styles": "12.0.0-dev.124",
31
31
  "@gem-sdk/system": "12.0.0-dev.124",
32
32
  "@types/react-transition-group": "^4.4.12",