@gem-sdk/components 8.0.2 → 9.0.0
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/ProductPrice.js +1 -1
- package/dist/cjs/product/components/product-price/common/attrs.js +1 -1
- package/dist/cjs/product/components/product-price/common/classes.js +1 -1
- package/dist/cjs/product/components/product-price/hooks/useGpPrice.js +1 -1
- package/dist/cjs/text/components/Text.liquid.js +3 -4
- package/dist/esm/product/components/product-price/ProductPrice.js +1 -1
- package/dist/esm/product/components/product-price/common/attrs.js +1 -1
- package/dist/esm/product/components/product-price/common/classes.js +1 -1
- package/dist/esm/product/components/product-price/hooks/useGpPrice.js +1 -1
- package/dist/esm/text/components/Text.liquid.js +9 -10
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),Text=require("../../../text/components/Text.js"),system=require("@gem-sdk/system"),classes=require("./common/classes.js"),attrs=require("./common/attrs.js"),helpers=require("./common/helpers.js"),useGpPrice=require("./hooks/useGpPrice.js"),core=require("@gem-sdk/core");const ProductPrice=e=>{let{style:s,children:r}=e,t=core.useEditorMode(),i="edit"===t,{elementRef:c,moneyFormatted:u,currentProductId:
|
|
2
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),Text=require("../../../text/components/Text.js"),system=require("@gem-sdk/system"),classes=require("./common/classes.js"),attrs=require("./common/attrs.js"),helpers=require("./common/helpers.js"),useGpPrice=require("./hooks/useGpPrice.js"),core=require("@gem-sdk/core");const ProductPrice=e=>{let{style:s,children:r}=e,t=core.useEditorMode(),i="edit"===t,{elementRef:c,moneyFormatted:u,currentProductId:o,isNoComparePrice:a,isNoComparePriceILP:m,shouldHiddenComparePrice:l,emitNoDataSignal:n}=useGpPrice.useGpPrice(e),x=system.createClass(classes.getWrapperClasses(e)),d=system.createAttr(attrs.getAttrs(e,{isILP:!i,productId:o,shouldHiddenComparePrice:l})),p=helpers.getTextProps(e,u),j={visibility:"hidden",opacity:0,maxWidth:0,maxHeight:0},g=m?j:s;return jsxRuntime.jsxs("div",{ref:c,...d,className:x,style:g,"aria-hidden":"true",onClick:n,children:[a&&i?jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsx("div",{className:"gp-flex-col gp-flex gp-justify-between gp-p-2",children:jsxRuntime.jsx("p",{className:"gp-text-[#212121] gp-text-[12px] gp-leading-3 ",children:"No compare price"})})}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(Text.default,{...p}),r]}),core.filterToolbarPreview(r,!0)]})};exports.default=ProductPrice;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var helpers=require("../../../../helpers.js");const getAttrs=(e,t)=>{let{builderAttrs:
|
|
1
|
+
"use strict";var helpers=require("../../../../helpers.js");const getAttrs=(e,{isILP:t,productId:r,shouldHiddenComparePrice:a}={})=>{let{builderAttrs:i,setting:p,builderProps:s}=e,d=p?.priceType==="compare",c=()=>!!d&&(t?String(a):"{% if variant.compare_at_price > variant.price and variant.compare_at_price >= 0 %}false{% else %}true{% endif %}");return helpers.filterTruthyObject({...i,id:`shopify-text-element-${s?.uid}`,"data-id":s?.uid,"data-product-id":r,"data-hidden":c()})};exports.getAttrs=getAttrs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const getWrapperClasses=s=>{let{builderProps:e,classNames:t,advanced:a}=s;return{"gp-product-price group-data-[state=loading]:gp-invisible data-[hidden=true]
|
|
1
|
+
"use strict";const getWrapperClasses=s=>{let{builderProps:e,classNames:t,advanced:a}=s;return{"gp-product-price group-data-[state=loading]:gp-invisible data-[hidden=true]:!gp-hidden":!0,...e?.uid&&{[e.uid]:!0},...a?.cssClass&&{[a.cssClass]:!0},...t&&{[t]:!0}}};exports.getWrapperClasses=getWrapperClasses;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var React=require("react"),common=require("../../product-variants/common/common.js"),core=require("@gem-sdk/core");const useGpPrice=e=>{let{setting:r,builderProps:t}=e,c=React.useRef(null),o=core.useEditorMode(),{quantity:u,hasUpdatePrice:i}=core.useQuantity(),a=core.useCurrentVariant(),{useProductCompareAtPrice:n}=core.useProductBundleDiscount(),s=e["bundle-item"],d=a?.price??0,p=a?.salePrice??0,
|
|
1
|
+
"use strict";var React=require("react"),common=require("../../product-variants/common/common.js"),core=require("@gem-sdk/core");const useGpPrice=e=>{let{setting:r,builderProps:t}=e,c=React.useRef(null),o=core.useEditorMode(),{quantity:u,hasUpdatePrice:i}=core.useQuantity(),a=core.useCurrentVariant(),{useProductCompareAtPrice:n}=core.useProductBundleDiscount(),s=e["bundle-item"],d=a?.price??0,p=a?.salePrice??0,m=r?.priceType==="compare",{trigger:l}=core.useInteraction(),g=core.useProduct(),y=g?.baseID?.replace("gid://shopify/Product/",""),P=core.useShopStore(e=>e.showPriceCurrency),h=React.useMemo(()=>s?.quantity?s.quantity:i&&u||1,[u,i,s?.quantity]),b=React.useMemo(()=>{let e=Number(s?.discountValue);return s?.discountType==="percentage"?d*h*e/100:e},[s?.discountType,s?.discountValue,d,h]),M=React.useMemo(()=>s?.discountValue?n?(p||d)*h:d*h:p*h,[s?.discountValue,d,h,p,n]),R=React.useMemo(()=>{let e=d*h;return m?M:b?Math.max(0,e-b):e},[d,h,b,M,m]),v=React.useMemo(()=>!!m&&(!(p>d)||!(p>=0)),[m,p,d]),q=(e,r)=>{l({event:"price"===r?"gp:rollback:price-change":"gp:rollback:compare-price-change",selector:`[data-id="${t?.uid}"]`,element:c.current}),l({event:"price"===r?"gp:price-change":"gp:compare-price-change",data:e,selector:`[data-id="${t?.uid}"]`,element:c.current})};common.useTransition(e=>{e!==d&&q(d,"price")},[d]),common.useTransition(e=>{e!==p&&q(p,"compare")},[p]);let w=()=>{if("edit"!==o)return;let e=new CustomEvent("editor:product-source-no-data-warning",{bubbles:!0,detail:{uid:t?.uid,value:!R&&m,tag:"ProductPrice"}});window.dispatchEvent(e)},T=core.useFormatMoney(R??0,P||!1),V=m&&!R,f="edit"!==o&&V;return{elementRef:c,moneyFormatted:T,currentProductId:y,isNoComparePrice:V,isNoComparePriceILP:f,emitNoDataSignal:w,shouldHiddenComparePrice:v}};exports.useGpPrice=useGpPrice;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),system=require("@gem-sdk/system"),attrs=require("../common/attrs.js"),styles=require("../common/styles.js"),classes=require("../common/classes.js"),helpers=require("../common/helpers.js");const Text=({id:e,styles:s,builderAttrs:t,style:r,setting:l,advanced:a,builderProps:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),system=require("@gem-sdk/system"),attrs=require("../common/attrs.js"),styles=require("../common/styles.js"),classes=require("../common/classes.js"),helpers=require("../common/helpers.js");const Text=({id:e,styles:s,builderAttrs:t,style:r,setting:l,advanced:a,builderProps:y,className:i,isText:c,pageContext:o,elementAttrs:m})=>{let{htmlTag:n="div",excludeFlex:u}=l??{},g=system.createAttr({...e&&{id:e},...attrs.getAttr({uid:y?.uidInteraction??y?.uid??""}),...t}),d=system.createAttr({...attrs.getTextAttr(),...m}),p=system.createStyle({...styles.getStyle(s,r)}),$=system.createStyle({...styles.getContainerStyle(s,l)}),x=system.createStyle({...styles.getTextStyle(s,l)}),q=system.createClass({...classes.getClasses({setting:l,advanced:a,builderProps:y})}),v=system.createClass({"gp-flex":!u}),C=system.createClass({...classes.getTextClasses({styles:s,setting:l,className:i}),...c&&{"gp-text":!0}}),T=helpers.getDisplayText({type:"Liquid",styles:s,setting:l,builderProps:y,pageContext:o}),j=system.createContent(T);return core.template`
|
|
2
2
|
{% assign locationOrigin = request.origin | append: routes.root_url | split: '/' | join: '/' %}
|
|
3
3
|
<div ${{...g}}
|
|
4
4
|
class="${q}"
|
|
5
5
|
style="${p}"
|
|
6
|
-
data-test-force-publish="${new Date().getTime()}"
|
|
7
6
|
>
|
|
8
|
-
<div class="${
|
|
7
|
+
<div class="${v}" style="${$}">
|
|
9
8
|
<${n}
|
|
10
9
|
${{...d}}
|
|
11
|
-
class="${
|
|
10
|
+
class="${C}"
|
|
12
11
|
style="${x}"
|
|
13
12
|
>
|
|
14
13
|
${j}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsxs as e,jsx as r,Fragment as
|
|
2
|
+
import{jsxs as e,jsx as r,Fragment as o}from"react/jsx-runtime";import t from"../../../text/components/Text.js";import{createClass as i,createAttr as m}from"@gem-sdk/system";import{getWrapperClasses as s}from"./common/classes.js";import{getAttrs as c}from"./common/attrs.js";import{getTextProps as p}from"./common/helpers.js";import{useGpPrice as d}from"./hooks/useGpPrice.js";import{useEditorMode as l,filterToolbarPreview as a}from"@gem-sdk/core";let ProductPrice=n=>{let{style:f,children:h}=n,g=l(),x="edit"===g,{elementRef:u,moneyFormatted:j,currentProductId:P,isNoComparePrice:y,isNoComparePriceILP:k,shouldHiddenComparePrice:N,emitNoDataSignal:v}=d(n),b=i(s(n)),C=m(c(n,{isILP:!x,productId:P,shouldHiddenComparePrice:N})),H=p(n,j),I={visibility:"hidden",opacity:0,maxWidth:0,maxHeight:0},w=k?I:f;return e("div",{ref:u,...C,className:b,style:w,"aria-hidden":"true",onClick:v,children:[y&&x?r(o,{children:r("div",{className:"gp-flex-col gp-flex gp-justify-between gp-p-2",children:r("p",{className:"gp-text-[#212121] gp-text-[12px] gp-leading-3 ",children:"No compare price"})})}):e(o,{children:[r(t,{...H}),h]}),a(h,!0)]})};export{ProductPrice as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{filterTruthyObject as e}from"../../../../helpers.js";let getAttrs=(t,r)=>{let{builderAttrs:
|
|
1
|
+
import{filterTruthyObject as e}from"../../../../helpers.js";let getAttrs=(t,{isILP:r,productId:a,shouldHiddenComparePrice:i}={})=>{let{builderAttrs:d,setting:p,builderProps:n}=t,c=p?.priceType==="compare",o=()=>!!c&&(r?String(i):"{% if variant.compare_at_price > variant.price and variant.compare_at_price >= 0 %}false{% else %}true{% endif %}");return e({...d,id:`shopify-text-element-${n?.uid}`,"data-id":n?.uid,"data-product-id":a,"data-hidden":o()})};export{getAttrs};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let getWrapperClasses=e=>{let{builderProps:s,classNames:a,advanced:t}=e;return{"gp-product-price group-data-[state=loading]:gp-invisible data-[hidden=true]
|
|
1
|
+
let getWrapperClasses=e=>{let{builderProps:s,classNames:a,advanced:t}=e;return{"gp-product-price group-data-[state=loading]:gp-invisible data-[hidden=true]:!gp-hidden":!0,...s?.uid&&{[s.uid]:!0},...t?.cssClass&&{[t.cssClass]:!0},...a&&{[a]:!0}}};export{getWrapperClasses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useRef as e,useMemo as r}from"react";import{useTransition as t}from"../../product-variants/common/common.js";import{useEditorMode as c,useQuantity as i,useCurrentVariant as a,useProductBundleDiscount as n,useInteraction as o,useProduct as u,useShopStore as p,useFormatMoney as d}from"@gem-sdk/core";let useGpPrice=l=>{let{setting:m,builderProps:s}=l,g=e(null),b=c(),{quantity:h,hasUpdatePrice:y}=i(),P=a(),{useProductCompareAtPrice:v}=n(),f=l["bundle-item"],w=P?.price??0,V=P?.salePrice??0,k=m?.priceType==="compare",{trigger:q}=o(),T=u(),x=T?.baseID?.replace("gid://shopify/Product/",""),C=p(e=>e.showPriceCurrency),E=r(()=>f?.quantity?f.quantity:y&&h||1,[h,y,f?.quantity]),G=r(()=>{let e=Number(f?.discountValue);return f?.discountType==="percentage"?w*E*e/100:e},[f?.discountType,f?.discountValue,w,E]),$=r(()=>f?.discountValue?v?(V||w)*E:w*E:V*E,[f?.discountValue,w,E,V,v]),j=r(()=>{let e=w*E;return k?$:G?Math.max(0,e-G):e},[w,E,G,$,k]),D=(e,r)=>{q({event:"price"===r?"gp:rollback:price-change":"gp:rollback:compare-price-change",selector:`[data-id="${s?.uid}"]`,element:g.current}),q({event:"price"===r?"gp:price-change":"gp:compare-price-change",data:e,selector:`[data-id="${s?.uid}"]`,element:g.current})};t(e=>{e!==w&&
|
|
1
|
+
import{useRef as e,useMemo as r}from"react";import{useTransition as t}from"../../product-variants/common/common.js";import{useEditorMode as c,useQuantity as i,useCurrentVariant as a,useProductBundleDiscount as n,useInteraction as o,useProduct as u,useShopStore as p,useFormatMoney as d}from"@gem-sdk/core";let useGpPrice=l=>{let{setting:m,builderProps:s}=l,g=e(null),b=c(),{quantity:h,hasUpdatePrice:y}=i(),P=a(),{useProductCompareAtPrice:v}=n(),f=l["bundle-item"],w=P?.price??0,V=P?.salePrice??0,k=m?.priceType==="compare",{trigger:q}=o(),T=u(),x=T?.baseID?.replace("gid://shopify/Product/",""),C=p(e=>e.showPriceCurrency),E=r(()=>f?.quantity?f.quantity:y&&h||1,[h,y,f?.quantity]),G=r(()=>{let e=Number(f?.discountValue);return f?.discountType==="percentage"?w*E*e/100:e},[f?.discountType,f?.discountValue,w,E]),$=r(()=>f?.discountValue?v?(V||w)*E:w*E:V*E,[f?.discountValue,w,E,V,v]),j=r(()=>{let e=w*E;return k?$:G?Math.max(0,e-G):e},[w,E,G,$,k]),D=r(()=>!!k&&(!(V>w)||!(V>=0)),[k,V,w]),I=(e,r)=>{q({event:"price"===r?"gp:rollback:price-change":"gp:rollback:compare-price-change",selector:`[data-id="${s?.uid}"]`,element:g.current}),q({event:"price"===r?"gp:price-change":"gp:compare-price-change",data:e,selector:`[data-id="${s?.uid}"]`,element:g.current})};t(e=>{e!==w&&I(w,"price")},[w]),t(e=>{e!==V&&I(V,"compare")},[V]);let M=()=>{if("edit"!==b)return;let e=new CustomEvent("editor:product-source-no-data-warning",{bubbles:!0,detail:{uid:s?.uid,value:!j&&k,tag:"ProductPrice"}});window.dispatchEvent(e)},N=d(j??0,C||!1),z=k&&!j,A="edit"!==b&&z;return{elementRef:g,moneyFormatted:N,currentProductId:x,isNoComparePrice:z,isNoComparePriceILP:A,emitNoDataSignal:M,shouldHiddenComparePrice:D}};export{useGpPrice};
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import{template as t}from"@gem-sdk/core";import{createAttr as
|
|
1
|
+
import{template as t}from"@gem-sdk/core";import{createAttr as o,createStyle as s,createClass as e,createContent as i}from"@gem-sdk/system";import{getAttr as r,getTextAttr as m}from"../common/attrs.js";import{getStyle as l,getContainerStyle as p,getTextStyle as d}from"../common/styles.js";import{getClasses as n,getTextClasses as a}from"../common/classes.js";import{getDisplayText as c}from"../common/helpers.js";let Text=({id:$,styles:u,builderAttrs:f,style:g,setting:y,advanced:j,builderProps:v,className:x,isText:T,pageContext:h,elementAttrs:k})=>{let{htmlTag:q="div",excludeFlex:I}=y??{},L=o({...$&&{id:$},...r({uid:v?.uidInteraction??v?.uid??""}),...f}),O=o({...m(),...k}),_=s({...l(u,g)}),b=s({...p(u,y)}),w=s({...d(u,y)}),z=e({...n({setting:y,advanced:j,builderProps:v})}),A=e({"gp-flex":!I}),B=e({...a({styles:u,setting:y,className:x}),...T&&{"gp-text":!0}}),C=c({type:"Liquid",styles:u,setting:y,builderProps:v,pageContext:h}),D=i(C);return t`
|
|
2
2
|
{% assign locationOrigin = request.origin | append: routes.root_url | split: '/' | join: '/' %}
|
|
3
|
-
<div ${{...
|
|
4
|
-
class="${
|
|
5
|
-
style="${
|
|
6
|
-
data-test-force-publish="${new Date().getTime()}"
|
|
3
|
+
<div ${{...L}}
|
|
4
|
+
class="${z}"
|
|
5
|
+
style="${_}"
|
|
7
6
|
>
|
|
8
|
-
<div class="${
|
|
7
|
+
<div class="${A}" style="${b}">
|
|
9
8
|
<${q}
|
|
10
|
-
${{...
|
|
11
|
-
class="${
|
|
12
|
-
style="${
|
|
9
|
+
${{...O}}
|
|
10
|
+
class="${B}"
|
|
11
|
+
style="${w}"
|
|
13
12
|
>
|
|
14
|
-
${
|
|
13
|
+
${D}
|
|
15
14
|
</${q}>
|
|
16
15
|
</div>
|
|
17
16
|
</div>
|