@gem-sdk/components 20.1.0 → 20.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";var e=require("@gem-sdk/core");function t(e){return e.split(" ").reduce((e,t)=>(e[t]=!0,e),{})}exports.FEATURE_MEDIA_CENTER_CLASSES="gp-flex gp-items-center gp-justify-center",exports.getFeaturedCarouselItemClasses=({extraClass:e})=>{let r="gp-group gp-z-0 gp-flex !gp-min-w-full !gp-max-w-full gp-w-full gp-relative gp-items-start gp-justify-center gp-overflow-hidden gp-outline-1 -gp-outline-offset-1 gp-image-item gp-ft-image-item data-[outline=active]:gp-outline";return e&&(r+=` ${e}`),t(r)},exports.getFeaturedImageCarouselClasses=({extraClass:e})=>{let r="`gp-flex-1 gp-w-full gp-feature-image-carousel";return e&&(r+=` ${e}`),t(r)},exports.getFeaturedImageClasses=({setting:r,extraClass:l})=>{let p=l??"";return e.DEVICES.forEach(t=>{let l=e.getResponsiveValueByScreen(r?.ftNavigationPosition,t),g="desktop"!==t?`${t}:`:"";"outside"===l?p+=` ${g}gp-px-[16px]`:p+=` ${g}gp-px-0`}),t(p)},exports.getFeaturedImageGalleryClasses=({settings:r,extraClass:l})=>{let p=l??"gp-flex-1 gp-w-full carousel-gallery";return e.DEVICES.forEach(t=>{let l=e.getResponsiveValueByScreen(r?.navigationPosition,t),g=e.getResponsiveValueByScreen(r?.type,t),s=e.getResponsiveValueByScreen(r?.position,t),a="desktop"!==t?`${t}:`:"";"outside"===l&&"slider"===g&&["bottom-center"].includes(s||"")?p+=` ${a}gp-px-[16px]`:p+=` ${a}gp-px-0`}),t(p)},exports.getFtImageWithGalleryClasses=({extraClass:e})=>{let r="gp-flex !gp-h-fit gp-relative gp-overflow-hidden";return e&&(r+=` ${e}`),t(r)},exports.getGalleryGridWrapperClasses=({extraClass:e})=>{let r="product-feature-image grid-gallery gp-flex !gp-h-fit gp-w-full gp-flex-wrap scrollbar-track:gp-rounded-2xl scrollbar-thumb:gp-rounded-2xl scrollbar-thumb:gp-bg-gray-400 gp-z-1";return e&&(r+=` ${e}`),t(r)},exports.getGalleryItemClasses=({extraClass:e})=>{let r="gp-image-item gp-flex gp-items-center gp-justify-center gp-group gp-relative gp-overflow-hidden gp-cursor-pointer";return e&&(r+=` ${e}`),t(r)},exports.getGalleryWrapperClasses=({extraClass:e})=>{let r="gallery-wrapper gp-product-images-gallery gp-flex gp-overflow-hidden gp-max-w-full gp-max-h-full data-[only-image=true]:gp-hidden";return e&&(r+=` ${e}`),t(r)},exports.getImageGalleryWrapperClasses=({extraClass:e})=>{let r="gp-flex gp-h-fit gp-max-w-full gp-overflow-hidden";return e&&(r+=` ${e}`),t(r)},exports.getWrapperClasses=({extraClass:e,isAddOverFlowClass:r=!1})=>{let l="gp-relative gp-w-full";return e&&(l+=` ${e}`),r&&(l+=" gp-overflow-hidden"),t(l)};
1
+ "use strict";var e=require("@gem-sdk/core");function t(e){return e.split(" ").reduce((e,t)=>(e[t]=!0,e),{})}exports.FEATURE_MEDIA_CENTER_CLASSES="gp-flex gp-items-center gp-justify-center",exports.getFeaturedCarouselItemClasses=({extraClass:e})=>{let r="gp-group gp-z-0 gp-flex !gp-min-w-full !gp-max-w-full gp-w-full gp-relative gp-items-start gp-justify-center gp-overflow-hidden gp-outline-1 -gp-outline-offset-1 gp-image-item gp-ft-image-item data-[outline=active]:gp-outline";return e&&(r+=` ${e}`),t(r)},exports.getFeaturedImageCarouselClasses=({extraClass:e})=>{let r="gp-flex-1 gp-w-full gp-feature-image-carousel";return e&&(r+=` ${e}`),t(r)},exports.getFeaturedImageClasses=({setting:r,extraClass:l})=>{let p=l??"";return e.DEVICES.forEach(t=>{let l=e.getResponsiveValueByScreen(r?.ftNavigationPosition,t),g="desktop"!==t?`${t}:`:"";"outside"===l?p+=` ${g}gp-px-[16px]`:p+=` ${g}gp-px-0`}),t(p)},exports.getFeaturedImageGalleryClasses=({settings:r,extraClass:l})=>{let p=l??"gp-flex-1 gp-w-full carousel-gallery";return e.DEVICES.forEach(t=>{let l=e.getResponsiveValueByScreen(r?.navigationPosition,t),g=e.getResponsiveValueByScreen(r?.type,t),s=e.getResponsiveValueByScreen(r?.position,t),a="desktop"!==t?`${t}:`:"";"outside"===l&&"slider"===g&&["bottom-center"].includes(s||"")?p+=` ${a}gp-px-[16px]`:p+=` ${a}gp-px-0`}),t(p)},exports.getFtImageWithGalleryClasses=({extraClass:e})=>{let r="gp-flex !gp-h-fit gp-relative gp-overflow-hidden";return e&&(r+=` ${e}`),t(r)},exports.getGalleryGridWrapperClasses=({extraClass:e})=>{let r="product-feature-image grid-gallery gp-flex !gp-h-fit gp-w-full gp-flex-wrap scrollbar-track:gp-rounded-2xl scrollbar-thumb:gp-rounded-2xl scrollbar-thumb:gp-bg-gray-400 gp-z-1";return e&&(r+=` ${e}`),t(r)},exports.getGalleryItemClasses=({extraClass:e})=>{let r="gp-image-item gp-flex gp-items-center gp-justify-center gp-group gp-relative gp-overflow-hidden gp-cursor-pointer";return e&&(r+=` ${e}`),t(r)},exports.getGalleryWrapperClasses=({extraClass:e})=>{let r="gallery-wrapper gp-product-images-gallery gp-flex gp-overflow-hidden gp-max-w-full gp-max-h-full data-[only-image=true]:gp-hidden";return e&&(r+=` ${e}`),t(r)},exports.getImageGalleryWrapperClasses=({extraClass:e})=>{let r="gp-flex gp-h-fit gp-max-w-full gp-overflow-hidden";return e&&(r+=` ${e}`),t(r)},exports.getWrapperClasses=({extraClass:e,isAddOverFlowClass:r=!1})=>{let l="gp-relative gp-w-full";return e&&(l+=` ${e}`),r&&(l+=" gp-overflow-hidden"),t(l)};
@@ -1 +1 @@
1
- "use strict";var e=require("react"),r=require("../../product-variants/common/common.js"),t=require("@gem-sdk/core");exports.useGpPrice=u=>{let{setting:i,builderProps:c}=u,o=e.useRef(null),a=t.useEditorMode(),{quantity:n,hasUpdatePrice:s}=t.useQuantity(),d=t.useCurrentVariant(),{useProductCompareAtPrice:p}=t.useProductBundleDiscount(),l=u["bundle-item"],m=t.convertDecimalToNumber(d?.price)??0,g=t.convertDecimalToNumber(d?.salePrice)??0,b=i?.priceType==="compare",{trigger:y}=t.useInteraction(),P=t.useProduct(),h=P?.baseID?.replace("gid://shopify/Product/",""),v=t.useShopStore(e=>e.showPriceCurrency),M=e.useMemo(()=>l?.quantity?l.quantity:s&&n||1,[n,s,l?.quantity]),T=e.useMemo(()=>{let e=Number(l?.discountValue);return l?.discountType==="percentage"?m*M*e/100:e},[l?.discountType,l?.discountValue,m,M]),q=e.useMemo(()=>l?.discountValue?p?(g||m)*M:m*M:g*M,[l?.discountValue,m,M,g,p]),w=e.useMemo(()=>{let e=m*M;return b?q:T?Math.max(0,e-T):e},[m,M,T,q,b]),D=e.useMemo(()=>!!b&&(!(g>m)||!(g>=0)),[b,g,m]),N=(e,r)=>{y({event:"price"===r?"gp:rollback:price-change":"gp:rollback:compare-price-change",selector:`[data-id="${c?.uid}"]`,element:o.current}),y({event:"price"===r?"gp:price-change":"gp:compare-price-change",data:e,selector:`[data-id="${c?.uid}"]`,element:o.current})};r.useTransition(e=>{e!==m&&N(m,"price")},[m]),r.useTransition(e=>{e!==g&&N(g,"compare")},[g]);let V=t.useFormatMoney(w??0,v||!1),C=b&&!w;return{elementRef:o,moneyFormatted:V,currentProductId:h,isNoComparePrice:C,isNoComparePriceILP:"edit"!==a&&C,emitNoDataSignal:()=>{if("edit"!==a)return;let e=new CustomEvent("editor:product-source-no-data-warning",{bubbles:!0,detail:{uid:c?.uid,value:!w&&b,tag:"ProductPrice"}});window.dispatchEvent(e)},shouldHiddenComparePrice:D}};
1
+ "use strict";var e=require("react"),r=require("../../product-variants/common/common.js"),t=require("../../../helpers/product-bundle.js"),u=require("@gem-sdk/core");exports.useGpPrice=i=>{let{setting:o,builderProps:a}=i,c=e.useRef(null),n=u.useEditorMode(),{quantity:s,hasUpdatePrice:d}=u.useQuantity(),l=u.useCurrentVariant(),{useProductCompareAtPrice:m}=u.useProductBundleDiscount(),p=i["bundle-item"],g=u.convertDecimalToNumber(l?.price)??0,y=u.convertDecimalToNumber(l?.salePrice)??0,b=o?.priceType==="compare",{trigger:h}=u.useInteraction(),M=u.useProduct(),P=M?.baseID?.replace("gid://shopify/Product/",""),v=u.useShopStore(e=>e.showPriceCurrency),{moneyFormat:q}=u.useMoneyFormat(),D=e.useMemo(()=>p?.quantity?p.quantity:d&&s||1,[s,d,p?.quantity]),w=e.useMemo(()=>p?t.calculateBundleFixedDiscount(g,{...p,quantity:D},t.getMoneyFormatDecimals(q)):0,[p,g,D,q]),T=e.useMemo(()=>p?.discountValue?m?(y||g)*D:g*D:y*D,[p?.discountValue,g,D,y,m]),C=e.useMemo(()=>{let e=g*D;return b?T:w?Math.max(0,e-w):e},[g,D,w,T,b]),F=e.useMemo(()=>!!b&&(!(y>g)||!(y>=0)),[b,y,g]),N=(e,r)=>{h({event:"price"===r?"gp:rollback:price-change":"gp:rollback:compare-price-change",selector:`[data-id="${a?.uid}"]`,element:c.current}),h({event:"price"===r?"gp:price-change":"gp:compare-price-change",data:e,selector:`[data-id="${a?.uid}"]`,element:c.current})};r.useTransition(e=>{e!==g&&N(g,"price")},[g]),r.useTransition(e=>{e!==y&&N(y,"compare")},[y]);let f=u.useFormatMoney(C??0,v||!1),k=b&&!C;return{elementRef:c,moneyFormatted:f,currentProductId:P,isNoComparePrice:k,isNoComparePriceILP:"edit"!==n&&k,emitNoDataSignal:()=>{if("edit"!==n)return;let e=new CustomEvent("editor:product-source-no-data-warning",{bubbles:!0,detail:{uid:a?.uid,value:!C&&b,tag:"ProductPrice"}});window.dispatchEvent(e)},shouldHiddenComparePrice:F}};
@@ -1 +1 @@
1
- "use strict";var t=require("@gem-sdk/core"),e=require("../components/constants/product-bundle.js");const o=e=>({discountPercentAmount:0,discountAmount:t.formatMoney("0",e)}),n=(t,e)=>Math.round((e-t)/e*100),r=(e,o,n)=>t.formatMoney((o-e).toString(),n),u=(t,o)=>{let n=parseInt(o?.discountValue);return o?.discountType===e.DiscountType.Percentage?t*o.quantity*n/100:o?.discountType===e.DiscountType.FixedAmount?n:0},c=(t,e)=>Math.round(t/e*100);exports.applyBundleDiscountAmount=i=>{let{currentVariant:m,bundleItem:s,options:a}=i;if(!a?.useProductCompareAtPrice&&s?.discountType===e.DiscountType.NoDiscount||!s||!m?.price)return o(a?.moneyFormat||"${{amount}}");let d=t.convertDecimalToNumber(m?.price)??0,p=t.convertDecimalToNumber(m?.salePrice)??d,y=Number(s?.quantity),l=u(d,s),P=c(l,y*d),A=d*y-l,T=p*y;return p<=d&&l<=0?o(a?.moneyFormat||"${{amount}}"):{discountPercentAmount:a?.useProductCompareAtPrice?n(A,T):P,discountAmount:a?.useProductCompareAtPrice?r(A,T,a?.moneyFormat):t.formatMoney(l.toString(),a?.moneyFormat)}};
1
+ "use strict";var t=require("@gem-sdk/core"),e=require("../components/constants/product-bundle.js");const o=e=>({discountPercentAmount:0,discountAmount:t.formatMoney("0",e)}),n=(t,e)=>Math.round((e-t)/e*100),r=(e,o,n)=>t.formatMoney((o-e).toString(),n),u=(t,o,n=2)=>{let r=Number(o?.discountValue);return o?.discountType===e.DiscountType.Percentage?i(t*(r/100),n)*o.quantity:o?.discountType===e.DiscountType.FixedAmount?r:0},c=t=>t?.includes("amount_no_decimals")?0:2,i=(t,e=2)=>{let o=10**e;return Math.floor(Math.round(1e6*(t*o))/1e6)/o},m=(t,e)=>Math.round(t/e*100);exports.applyBundleDiscountAmount=i=>{let{currentVariant:a,bundleItem:s,options:d}=i;if(!d?.useProductCompareAtPrice&&s?.discountType===e.DiscountType.NoDiscount||!s||!a?.price)return o(d?.moneyFormat||"${{amount}}");let l=t.convertDecimalToNumber(a?.price)??0,p=t.convertDecimalToNumber(a?.salePrice)??l,y=Number(s?.quantity),P=u(l,s,c(d?.moneyFormat)),A=m(P,y*l),D=l*y-P,M=p*y;return p<=l&&P<=0?o(d?.moneyFormat||"${{amount}}"):{discountPercentAmount:d?.useProductCompareAtPrice?n(D,M):A,discountAmount:d?.useProductCompareAtPrice?r(D,M,d?.moneyFormat):t.formatMoney(P.toString(),d?.moneyFormat)}},exports.calculateBundleFixedDiscount=u,exports.floorToMinorUnit=i,exports.getMoneyFormatDecimals=c;
@@ -1 +1 @@
1
- "use strict";var e=require("./components/product-wrap/Product.js");require("react/jsx-runtime"),require("next/link"),require("@gem-sdk/core"),require("react"),require("@gem-sdk/system"),require("../notification/components/Notifications.js"),require("../notification/components/Notice.js"),require("./components/product-button/types.js"),require("./components/product-variants/components/variants/index.js"),require("next/image"),require("../carousel-v3/components/swiper/Swiper.js"),require("../modal/components/confirm.js"),require("react-dom"),require("../video/components/Video.js"),require("@gem-sdk/keen-slider/react");var t=require("./components/product-quick-view/QuickView.js");require("./components/constants/product-bundle.js");var r=require("./components/product-list-v3/ProductList.js"),u=require("./components/product-list/ProductList.js");require("./components/product-bundle/common/styles.js"),require("./components/product-bundle/common/classes.js"),require("./components/product-badge/constants.js"),require("./components/product-badge/types.js"),require("./components/product-badge/utils/shape.js");var s=require("./settings/Product.js"),o=require("./settings/ProductQuantity.js"),i=require("./settings/ProductTitle.js"),c=require("./settings/ProductButton.js"),d=require("./settings/ProductPrice.js"),n=require("./settings/ProductVariants.js"),a=require("./settings/ProductImages.js"),p=require("./settings/product-image-v3/ProductImages.js"),l=require("./settings/product-image-v2/ProductImages.js"),P=require("./settings/ProductDescription.js"),q=require("./settings/ProductProperties.js"),m=require("./settings/ProductTag.js"),g=require("./settings/ProductListV3.js"),j=require("./settings/ProductList.js"),f=require("./settings/DynamicCheckout.js"),V=require("./settings/Vendor.js"),k=require("./settings/Sku.js"),v=require("./components/product-bundle/setting/ProductBundleDiscount.js"),x=require("./components/product-bundle/setting/ProductBundleDiscountItem.js"),b=require("./settings/ProductViewMore.js"),w=require("./settings/ProductBadge.js"),y=require("./components/file-upload/settings/index.js");const B={Product:s.default,ProductQuantity:o.default,ProductTitle:i.default,ProductButton:c.default,ProductPrice:d.default,ProductVariants:n.default,ProductImages:a.default,ProductImagesV2:l.default,ProductImagesV3:p.default,ProductDescription:P.default,ProductProperties:q.default,ProductTag:m.default,ProductListV3:g.default,ProductList:j.default,DynamicCheckout:f.default,ProductVendor:V.default,ProductSku:k.default,ProductBundleDiscount:v.default,ProductBundleDiscountItem:x.default,ProductViewMore:b.default,ProductBadge:w.default,FileUpload:y.default};exports.Product=e.default,exports.ProductQuickView=t.default,exports.ProductListV3=r.default,exports.ProductList=u.default,exports.productSetting=B;
1
+ "use strict";var e=require("./components/product-wrap/Product.js");require("react/jsx-runtime"),require("next/link"),require("@gem-sdk/core"),require("react"),require("@gem-sdk/system"),require("./components/constants/product-bundle.js"),require("../notification/components/Notifications.js"),require("../notification/components/Notice.js"),require("./components/product-button/types.js"),require("./components/product-variants/components/variants/index.js"),require("next/image"),require("../carousel-v3/components/swiper/Swiper.js"),require("../modal/components/confirm.js"),require("react-dom"),require("../video/components/Video.js"),require("@gem-sdk/keen-slider/react");var t=require("./components/product-quick-view/QuickView.js"),r=require("./components/product-list-v3/ProductList.js"),u=require("./components/product-list/ProductList.js");require("./components/product-bundle/common/styles.js"),require("./components/product-bundle/common/classes.js"),require("./components/product-badge/constants.js"),require("./components/product-badge/types.js"),require("./components/product-badge/utils/shape.js");var s=require("./settings/Product.js"),o=require("./settings/ProductQuantity.js"),i=require("./settings/ProductTitle.js"),c=require("./settings/ProductButton.js"),d=require("./settings/ProductPrice.js"),n=require("./settings/ProductVariants.js"),a=require("./settings/ProductImages.js"),p=require("./settings/product-image-v3/ProductImages.js"),l=require("./settings/product-image-v2/ProductImages.js"),P=require("./settings/ProductDescription.js"),q=require("./settings/ProductProperties.js"),m=require("./settings/ProductTag.js"),g=require("./settings/ProductListV3.js"),j=require("./settings/ProductList.js"),f=require("./settings/DynamicCheckout.js"),V=require("./settings/Vendor.js"),k=require("./settings/Sku.js"),v=require("./components/product-bundle/setting/ProductBundleDiscount.js"),x=require("./components/product-bundle/setting/ProductBundleDiscountItem.js"),b=require("./settings/ProductViewMore.js"),w=require("./settings/ProductBadge.js"),y=require("./components/file-upload/settings/index.js");const B={Product:s.default,ProductQuantity:o.default,ProductTitle:i.default,ProductButton:c.default,ProductPrice:d.default,ProductVariants:n.default,ProductImages:a.default,ProductImagesV2:l.default,ProductImagesV3:p.default,ProductDescription:P.default,ProductProperties:q.default,ProductTag:m.default,ProductListV3:g.default,ProductList:j.default,DynamicCheckout:f.default,ProductVendor:V.default,ProductSku:k.default,ProductBundleDiscount:v.default,ProductBundleDiscountItem:x.default,ProductViewMore:b.default,ProductBadge:w.default,FileUpload:y.default};exports.Product=e.default,exports.ProductQuickView=t.default,exports.ProductListV3=r.default,exports.ProductList=u.default,exports.productSetting=B;
@@ -1 +1 @@
1
- import{DEVICES as e,getResponsiveValueByScreen as l}from"@gem-sdk/core";function t(e){return e.split(" ").reduce((e,l)=>(e[l]=!0,e),{})}let r=({extraClass:e,isAddOverFlowClass:l=!1})=>{let r="gp-relative gp-w-full";return e&&(r+=` ${e}`),l&&(r+=" gp-overflow-hidden"),t(r)},g=({extraClass:e})=>{let l="gallery-wrapper gp-product-images-gallery gp-flex gp-overflow-hidden gp-max-w-full gp-max-h-full data-[only-image=true]:gp-hidden";return e&&(l+=` ${e}`),t(l)},p=({extraClass:e})=>{let l="product-feature-image grid-gallery gp-flex !gp-h-fit gp-w-full gp-flex-wrap scrollbar-track:gp-rounded-2xl scrollbar-thumb:gp-rounded-2xl scrollbar-thumb:gp-bg-gray-400 gp-z-1";return e&&(l+=` ${e}`),t(l)},a=({extraClass:e})=>{let l="gp-flex !gp-h-fit gp-relative gp-overflow-hidden";return e&&(l+=` ${e}`),t(l)},s=({extraClass:e})=>{let l="gp-flex gp-h-fit gp-max-w-full gp-overflow-hidden";return e&&(l+=` ${e}`),t(l)},i=({extraClass:e})=>{let l="`gp-flex-1 gp-w-full gp-feature-image-carousel";return e&&(l+=` ${e}`),t(l)},o=({setting:r,extraClass:g})=>{let p=g??"";return e.forEach(e=>{let t=l(r?.ftNavigationPosition,e),g="desktop"!==e?`${e}:`:"";"outside"===t?p+=` ${g}gp-px-[16px]`:p+=` ${g}gp-px-0`}),t(p)},u=({settings:r,extraClass:g})=>{let p=g??"gp-flex-1 gp-w-full carousel-gallery";return e.forEach(e=>{let t=l(r?.navigationPosition,e),g=l(r?.type,e),a=l(r?.position,e),s="desktop"!==e?`${e}:`:"";"outside"===t&&"slider"===g&&["bottom-center"].includes(a||"")?p+=` ${s}gp-px-[16px]`:p+=` ${s}gp-px-0`}),t(p)},f=({extraClass:e})=>{let l="gp-image-item gp-flex gp-items-center gp-justify-center gp-group gp-relative gp-overflow-hidden gp-cursor-pointer";return e&&(l+=` ${e}`),t(l)},n=({extraClass:e})=>{let l="gp-group gp-z-0 gp-flex !gp-min-w-full !gp-max-w-full gp-w-full gp-relative gp-items-start gp-justify-center gp-overflow-hidden gp-outline-1 -gp-outline-offset-1 gp-image-item gp-ft-image-item data-[outline=active]:gp-outline";return e&&(l+=` ${e}`),t(l)},d="gp-flex gp-items-center gp-justify-center";export{d as FEATURE_MEDIA_CENTER_CLASSES,n as getFeaturedCarouselItemClasses,i as getFeaturedImageCarouselClasses,o as getFeaturedImageClasses,u as getFeaturedImageGalleryClasses,a as getFtImageWithGalleryClasses,p as getGalleryGridWrapperClasses,f as getGalleryItemClasses,g as getGalleryWrapperClasses,s as getImageGalleryWrapperClasses,r as getWrapperClasses};
1
+ import{DEVICES as e,getResponsiveValueByScreen as l}from"@gem-sdk/core";function t(e){return e.split(" ").reduce((e,l)=>(e[l]=!0,e),{})}let r=({extraClass:e,isAddOverFlowClass:l=!1})=>{let r="gp-relative gp-w-full";return e&&(r+=` ${e}`),l&&(r+=" gp-overflow-hidden"),t(r)},g=({extraClass:e})=>{let l="gallery-wrapper gp-product-images-gallery gp-flex gp-overflow-hidden gp-max-w-full gp-max-h-full data-[only-image=true]:gp-hidden";return e&&(l+=` ${e}`),t(l)},p=({extraClass:e})=>{let l="product-feature-image grid-gallery gp-flex !gp-h-fit gp-w-full gp-flex-wrap scrollbar-track:gp-rounded-2xl scrollbar-thumb:gp-rounded-2xl scrollbar-thumb:gp-bg-gray-400 gp-z-1";return e&&(l+=` ${e}`),t(l)},a=({extraClass:e})=>{let l="gp-flex !gp-h-fit gp-relative gp-overflow-hidden";return e&&(l+=` ${e}`),t(l)},s=({extraClass:e})=>{let l="gp-flex gp-h-fit gp-max-w-full gp-overflow-hidden";return e&&(l+=` ${e}`),t(l)},i=({extraClass:e})=>{let l="gp-flex-1 gp-w-full gp-feature-image-carousel";return e&&(l+=` ${e}`),t(l)},o=({setting:r,extraClass:g})=>{let p=g??"";return e.forEach(e=>{let t=l(r?.ftNavigationPosition,e),g="desktop"!==e?`${e}:`:"";"outside"===t?p+=` ${g}gp-px-[16px]`:p+=` ${g}gp-px-0`}),t(p)},u=({settings:r,extraClass:g})=>{let p=g??"gp-flex-1 gp-w-full carousel-gallery";return e.forEach(e=>{let t=l(r?.navigationPosition,e),g=l(r?.type,e),a=l(r?.position,e),s="desktop"!==e?`${e}:`:"";"outside"===t&&"slider"===g&&["bottom-center"].includes(a||"")?p+=` ${s}gp-px-[16px]`:p+=` ${s}gp-px-0`}),t(p)},f=({extraClass:e})=>{let l="gp-image-item gp-flex gp-items-center gp-justify-center gp-group gp-relative gp-overflow-hidden gp-cursor-pointer";return e&&(l+=` ${e}`),t(l)},n=({extraClass:e})=>{let l="gp-group gp-z-0 gp-flex !gp-min-w-full !gp-max-w-full gp-w-full gp-relative gp-items-start gp-justify-center gp-overflow-hidden gp-outline-1 -gp-outline-offset-1 gp-image-item gp-ft-image-item data-[outline=active]:gp-outline";return e&&(l+=` ${e}`),t(l)},d="gp-flex gp-items-center gp-justify-center";export{d as FEATURE_MEDIA_CENTER_CLASSES,n as getFeaturedCarouselItemClasses,i as getFeaturedImageCarouselClasses,o as getFeaturedImageClasses,u as getFeaturedImageGalleryClasses,a as getFtImageWithGalleryClasses,p as getGalleryGridWrapperClasses,f as getGalleryItemClasses,g as getGalleryWrapperClasses,s as getImageGalleryWrapperClasses,r as getWrapperClasses};
@@ -1 +1 @@
1
- import{useRef as e,useMemo as t}from"react";import{useTransition as r}from"../../product-variants/common/common.js";import{useEditorMode as c,useQuantity as i,useCurrentVariant as a,useProductBundleDiscount as o,convertDecimalToNumber as n,useInteraction as u,useProduct as p,useShopStore as d,useFormatMoney as l}from"@gem-sdk/core";let m=m=>{let{setting:s,builderProps:g}=m,b=e(null),h=c(),{quantity:y,hasUpdatePrice:P}=i(),v=a(),{useProductCompareAtPrice:f}=o(),w=m["bundle-item"],V=n(v?.price)??0,k=n(v?.salePrice)??0,q=s?.priceType==="compare",{trigger:C}=u(),N=p(),T=N?.baseID?.replace("gid://shopify/Product/",""),x=d(e=>e.showPriceCurrency),D=t(()=>w?.quantity?w.quantity:P&&y||1,[y,P,w?.quantity]),E=t(()=>{let e=Number(w?.discountValue);return w?.discountType==="percentage"?V*D*e/100:e},[w?.discountType,w?.discountValue,V,D]),I=t(()=>w?.discountValue?f?(k||V)*D:V*D:k*D,[w?.discountValue,V,D,k,f]),$=t(()=>{let e=V*D;return q?I:E?Math.max(0,e-E):e},[V,D,E,I,q]),j=t(()=>!!q&&(!(k>V)||!(k>=0)),[q,k,V]),G=(e,t)=>{C({event:"price"===t?"gp:rollback:price-change":"gp:rollback:compare-price-change",selector:`[data-id="${g?.uid}"]`,element:b.current}),C({event:"price"===t?"gp:price-change":"gp:compare-price-change",data:e,selector:`[data-id="${g?.uid}"]`,element:b.current})};r(e=>{e!==V&&G(V,"price")},[V]),r(e=>{e!==k&&G(k,"compare")},[k]);let L=l($??0,x||!1),M=q&&!$;return{elementRef:b,moneyFormatted:L,currentProductId:T,isNoComparePrice:M,isNoComparePriceILP:"edit"!==h&&M,emitNoDataSignal:()=>{if("edit"!==h)return;let e=new CustomEvent("editor:product-source-no-data-warning",{bubbles:!0,detail:{uid:g?.uid,value:!$&&q,tag:"ProductPrice"}});window.dispatchEvent(e)},shouldHiddenComparePrice:j}};export{m as useGpPrice};
1
+ import{useRef as e,useMemo as r}from"react";import{useTransition as t}from"../../product-variants/common/common.js";import{calculateBundleFixedDiscount as i,getMoneyFormatDecimals as c}from"../../../helpers/product-bundle.js";import{useEditorMode as a,useQuantity as o,useCurrentVariant as n,useProductBundleDiscount as p,convertDecimalToNumber as u,useInteraction as d,useProduct as l,useShopStore as m,useMoneyFormat as s,useFormatMoney as g}from"@gem-sdk/core";let h=h=>{let{setting:b,builderProps:P}=h,y=e(null),f=a(),{quantity:v,hasUpdatePrice:w}=o(),q=n(),{useProductCompareAtPrice:k}=p(),C=h["bundle-item"],j=u(q?.price)??0,x=u(q?.salePrice)??0,D=b?.priceType==="compare",{trigger:E}=d(),I=l(),N=I?.baseID?.replace("gid://shopify/Product/",""),V=m(e=>e.showPriceCurrency),{moneyFormat:$}=s(),G=r(()=>C?.quantity?C.quantity:w&&v||1,[v,w,C?.quantity]),L=r(()=>C?i(j,{...C,quantity:G},c($)):0,[C,j,G,$]),M=r(()=>C?.discountValue?k?(x||j)*G:j*G:x*G,[C?.discountValue,j,G,x,k]),S=r(()=>{let e=j*G;return D?M:L?Math.max(0,e-L):e},[j,G,L,M,D]),T=r(()=>!!D&&(!(x>j)||!(x>=0)),[D,x,j]),z=(e,r)=>{E({event:"price"===r?"gp:rollback:price-change":"gp:rollback:compare-price-change",selector:`[data-id="${P?.uid}"]`,element:y.current}),E({event:"price"===r?"gp:price-change":"gp:compare-price-change",data:e,selector:`[data-id="${P?.uid}"]`,element:y.current})};t(e=>{e!==j&&z(j,"price")},[j]),t(e=>{e!==x&&z(x,"compare")},[x]);let A=g(S??0,V||!1),B=D&&!S;return{elementRef:y,moneyFormatted:A,currentProductId:N,isNoComparePrice:B,isNoComparePriceILP:"edit"!==f&&B,emitNoDataSignal:()=>{if("edit"!==f)return;let e=new CustomEvent("editor:product-source-no-data-warning",{bubbles:!0,detail:{uid:P?.uid,value:!S&&D,tag:"ProductPrice"}});window.dispatchEvent(e)},shouldHiddenComparePrice:T}};export{h as useGpPrice};
@@ -1 +1 @@
1
- import{convertDecimalToNumber as t,formatMoney as o}from"@gem-sdk/core";import{DiscountType as e}from"../components/constants/product-bundle.js";let n=t=>({discountPercentAmount:0,discountAmount:o("0",t)}),r=r=>{let{currentVariant:s,bundleItem:a,options:d}=r;if(!d?.useProductCompareAtPrice&&a?.discountType===e.NoDiscount||!a||!s?.price)return n(d?.moneyFormat||"${{amount}}");let p=t(s?.price)??0,y=t(s?.salePrice)??p,P=Number(a?.quantity),l=m(p,a),A=i(l,P*p),F=p*P-l,g=y*P;return y<=p&&l<=0?n(d?.moneyFormat||"${{amount}}"):{discountPercentAmount:d?.useProductCompareAtPrice?u(F,g):A,discountAmount:d?.useProductCompareAtPrice?c(F,g,d?.moneyFormat):o(l.toString(),d?.moneyFormat)}},u=(t,o)=>Math.round((o-t)/o*100),c=(t,e,n)=>o((e-t).toString(),n),m=(t,o)=>{let n=parseInt(o?.discountValue);return o?.discountType===e.Percentage?t*o.quantity*n/100:o?.discountType===e.FixedAmount?n:0},i=(t,o)=>Math.round(t/o*100);export{r as applyBundleDiscountAmount};
1
+ import{convertDecimalToNumber as t,formatMoney as o}from"@gem-sdk/core";import{DiscountType as e}from"../components/constants/product-bundle.js";let n=t=>({discountPercentAmount:0,discountAmount:o("0",t)}),r=r=>{let{currentVariant:a,bundleItem:s,options:l}=r;if(!l?.useProductCompareAtPrice&&s?.discountType===e.NoDiscount||!s||!a?.price)return n(l?.moneyFormat||"${{amount}}");let p=t(a?.price)??0,y=t(a?.salePrice)??p,P=Number(s?.quantity),A=c(p,s,i(l?.moneyFormat)),F=d(A,P*p),M=p*P-A,f=y*P;return y<=p&&A<=0?n(l?.moneyFormat||"${{amount}}"):{discountPercentAmount:l?.useProductCompareAtPrice?u(M,f):F,discountAmount:l?.useProductCompareAtPrice?m(M,f,l?.moneyFormat):o(A.toString(),l?.moneyFormat)}},u=(t,o)=>Math.round((o-t)/o*100),m=(t,e,n)=>o((e-t).toString(),n),c=(t,o,n=2)=>{let r=Number(o?.discountValue);return o?.discountType===e.Percentage?a(t*(r/100),n)*o.quantity:o?.discountType===e.FixedAmount?r:0},i=t=>t?.includes("amount_no_decimals")?0:2,a=(t,o=2)=>{let e=10**o;return Math.floor(Math.round(1e6*(t*e))/1e6)/e},d=(t,o)=>Math.round(t/o*100);export{r as applyBundleDiscountAmount,c as calculateBundleFixedDiscount,a as floorToMinorUnit,i as getMoneyFormatDecimals};
@@ -1 +1 @@
1
- export{default as Product}from"./components/product-wrap/Product.js";import"react/jsx-runtime";import"next/link";import"@gem-sdk/core";import"react";import"@gem-sdk/system";import"../notification/components/Notifications.js";import"../notification/components/Notice.js";import"./components/product-button/types.js";import"./components/product-variants/components/variants/index.js";import"next/image";import"../carousel-v3/components/swiper/Swiper.js";import"../modal/components/confirm.js";import"react-dom";import"../video/components/Video.js";import"@gem-sdk/keen-slider/react";export{default as ProductQuickView}from"./components/product-quick-view/QuickView.js";import"./components/constants/product-bundle.js";export{default as ProductListV3}from"./components/product-list-v3/ProductList.js";export{default as ProductList}from"./components/product-list/ProductList.js";import"./components/product-bundle/common/styles.js";import"./components/product-bundle/common/classes.js";import"./components/product-badge/constants.js";import"./components/product-badge/types.js";import"./components/product-badge/utils/shape.js";import t from"./settings/Product.js";import o from"./settings/ProductQuantity.js";import r from"./settings/ProductTitle.js";import s from"./settings/ProductButton.js";import i from"./settings/ProductPrice.js";import e from"./settings/ProductVariants.js";import m from"./settings/ProductImages.js";import c from"./settings/product-image-v3/ProductImages.js";import n from"./settings/product-image-v2/ProductImages.js";import p from"./settings/ProductDescription.js";import u from"./settings/ProductProperties.js";import d from"./settings/ProductTag.js";import a from"./settings/ProductListV3.js";import P from"./settings/ProductList.js";import g from"./settings/DynamicCheckout.js";import j from"./settings/Vendor.js";import f from"./settings/Sku.js";import l from"./components/product-bundle/setting/ProductBundleDiscount.js";import V from"./components/product-bundle/setting/ProductBundleDiscountItem.js";import k from"./settings/ProductViewMore.js";import x from"./settings/ProductBadge.js";import b from"./components/file-upload/settings/index.js";let v={Product:t,ProductQuantity:o,ProductTitle:r,ProductButton:s,ProductPrice:i,ProductVariants:e,ProductImages:m,ProductImagesV2:n,ProductImagesV3:c,ProductDescription:p,ProductProperties:u,ProductTag:d,ProductListV3:a,ProductList:P,DynamicCheckout:g,ProductVendor:j,ProductSku:f,ProductBundleDiscount:l,ProductBundleDiscountItem:V,ProductViewMore:k,ProductBadge:x,FileUpload:b};export{v as productSetting};
1
+ export{default as Product}from"./components/product-wrap/Product.js";import"react/jsx-runtime";import"next/link";import"@gem-sdk/core";import"react";import"@gem-sdk/system";import"./components/constants/product-bundle.js";import"../notification/components/Notifications.js";import"../notification/components/Notice.js";import"./components/product-button/types.js";import"./components/product-variants/components/variants/index.js";import"next/image";import"../carousel-v3/components/swiper/Swiper.js";import"../modal/components/confirm.js";import"react-dom";import"../video/components/Video.js";import"@gem-sdk/keen-slider/react";export{default as ProductQuickView}from"./components/product-quick-view/QuickView.js";export{default as ProductListV3}from"./components/product-list-v3/ProductList.js";export{default as ProductList}from"./components/product-list/ProductList.js";import"./components/product-bundle/common/styles.js";import"./components/product-bundle/common/classes.js";import"./components/product-badge/constants.js";import"./components/product-badge/types.js";import"./components/product-badge/utils/shape.js";import t from"./settings/Product.js";import o from"./settings/ProductQuantity.js";import r from"./settings/ProductTitle.js";import s from"./settings/ProductButton.js";import i from"./settings/ProductPrice.js";import e from"./settings/ProductVariants.js";import m from"./settings/ProductImages.js";import c from"./settings/product-image-v3/ProductImages.js";import n from"./settings/product-image-v2/ProductImages.js";import p from"./settings/ProductDescription.js";import u from"./settings/ProductProperties.js";import d from"./settings/ProductTag.js";import a from"./settings/ProductListV3.js";import P from"./settings/ProductList.js";import g from"./settings/DynamicCheckout.js";import j from"./settings/Vendor.js";import f from"./settings/Sku.js";import l from"./components/product-bundle/setting/ProductBundleDiscount.js";import V from"./components/product-bundle/setting/ProductBundleDiscountItem.js";import k from"./settings/ProductViewMore.js";import x from"./settings/ProductBadge.js";import b from"./components/file-upload/settings/index.js";let v={Product:t,ProductQuantity:o,ProductTitle:r,ProductButton:s,ProductPrice:i,ProductVariants:e,ProductImages:m,ProductImagesV2:n,ProductImagesV3:c,ProductDescription:p,ProductProperties:u,ProductTag:d,ProductListV3:a,ProductList:P,DynamicCheckout:g,ProductVendor:j,ProductSku:f,ProductBundleDiscount:l,ProductBundleDiscountItem:V,ProductViewMore:k,ProductBadge:x,FileUpload:b};export{v as productSetting};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "20.1.0",
3
+ "version": "20.1.2",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",