@gem-sdk/components 20.1.0 → 20.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/product/components/product-price/hooks/useGpPrice.js +1 -1
- package/dist/cjs/product/helpers/product-bundle.js +1 -1
- package/dist/cjs/product/index.js +1 -1
- package/dist/esm/product/components/product-price/hooks/useGpPrice.js +1 -1
- package/dist/esm/product/helpers/product-bundle.js +1 -1
- package/dist/esm/product/index.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("react"),r=require("../../product-variants/common/common.js"),t=require("@gem-sdk/core");exports.useGpPrice=
|
|
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
|
|
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")
|
|
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{useRef as e,useMemo as
|
|
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:
|
|
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";
|
|
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};
|