@gem-sdk/core 1.14.0-dev.732 → 1.14.0-dev.734

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";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),react=require("react"),composeAdvanceStyle=require("../helpers/compose-advance-style.js"),constant=require("./constant.js"),RenderCustomCode=require("./RenderCustomCode.js"),ComponentToolbarPreview=require("./ComponentToolbarPreview.js"),useApplyAnimation=require("../hooks/animation/useApplyAnimation.js");require("zustand"),require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation");var shop=require("../hooks/shop.js");require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("../helpers/convert.js");const ComponentWrapperPreview=({children:e,...t})=>{react.useEffect(()=>{let e=new CustomEvent("editor:component:render",{bubbles:!0,detail:{componentUid:t.uid}});window.dispatchEvent(e)},[t.uid]),useApplyAnimation.default({props:t});let o=shop.usePageType();if("section"===t.type)return null;let n={};if("Section"===t.tag&&t.isThemeSection&&(n["data-theme-section"]=!0),t.editorConfigs){let e=t.editorConfigs;e.placeholder?.notAppendBeforeAfter&&(n["data-placeholder-not-append-before-after"]=!0),e.placeholder?.notAppendLeftRight&&(n["data-placeholder-not-append-left-right"]=!0),e.toolbar?.parent&&(n["data-toolbar-parent"]=!0),e.component?.noDelete&&(n["data-component-no-delete"]=!0),e.component?.noDuplicate&&(n["data-component-no-duplicate"]=!0),e.component?.noDragDrop&&(n["data-component-no-drag-drop"]=!0),e.component?.noSetting&&(n["data-component-no-setting"]=!0),e.component?.isThirdParty&&(n["data-component-is-third-party"]=!0),e.toolbar?.hide&&(n["data-toolbar-hide"]=!0),e.slots?.children&&(n["data-slots-children"]=!0),e.toolbar?.hide||(n["data-toolbar-wrap"]=!0)}t?.editorConfigs?.toolbar?.hide||(n["data-toolbar-wrap"]=!0);let a=composeAdvanceStyle.composeAdvanceStyle(t.advanced,t.tag,o),r=t.advanced,s={...n,"data-uid":t.uid,"data-component-type":"component","data-component-tag":t.tag,"data-component-label":t.label};return constant.disableWrap.includes(t.tag)&&react.isValidElement(e)?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(RenderCustomCode.default,{uid:t.uid,advanced:r}),jsxRuntime.jsxs(e.type,{className:r?.cssClass,...e.props,style:a,builderAttrs:s,advanced:r,children:[e.props.children,jsxRuntime.jsx(ComponentToolbarPreview.ComponentToolbarPreview,{...t})]})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(RenderCustomCode.default,{uid:t.uid,advanced:r}),jsxRuntime.jsxs("div",{style:constant.excludeApplyStyle.includes(t.tag)?{"--mb":a?.["--mb"],"--mb-tablet":a?.["--mb-tablet"],"--mb-mobile":a?.["--mb-mobile"]}:a,className:`${t.uid} ${t.advanced?.cssClass?t.advanced?.cssClass:""}`,...s,children:[!constant.excludeApplyStyle.includes(t.tag)&&e,react.isValidElement(e)&&constant.excludeApplyStyle.includes(t.tag)&&jsxRuntime.jsx(e.type,{...e.props,style:a,advanced:r}),jsxRuntime.jsx(ComponentToolbarPreview.ComponentToolbarPreview,{...t})]})]})};exports.default=ComponentWrapperPreview;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),react=require("react"),composeAdvanceStyle=require("../helpers/compose-advance-style.js"),constant=require("./constant.js"),RenderCustomCode=require("./RenderCustomCode.js"),ComponentToolbarPreview=require("./ComponentToolbarPreview.js"),useApplyAnimation=require("../hooks/animation/useApplyAnimation.js");require("zustand"),require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation");var shop=require("../hooks/shop.js");require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("../helpers/convert.js");const ComponentWrapperPreview=({children:e,...t})=>{react.useEffect(()=>{let e=new CustomEvent("editor:component:render",{bubbles:!0,detail:{componentUid:t.uid}});window.dispatchEvent(e)},[t.uid]),useApplyAnimation.default({props:t});let o=shop.usePageType();if("section"===t.type)return null;let n={};if("Section"===t.tag&&t.isThemeSection&&(n["data-theme-section"]=!0),t.editorConfigs){let e=t.editorConfigs;e.placeholder?.notAppendBeforeAfter&&(n["data-placeholder-not-append-before-after"]=!0),e.placeholder?.notAppendLeftRight&&(n["data-placeholder-not-append-left-right"]=!0),e.toolbar?.parent&&(n["data-toolbar-parent"]=!0),e.component?.noDelete&&(n["data-component-no-delete"]=!0),e.component?.noDuplicate&&(n["data-component-no-duplicate"]=!0),e.component?.noDragDrop&&(n["data-component-no-drag-drop"]=!0),e.component?.noSetting&&(n["data-component-no-setting"]=!0),e.component?.isThirdParty&&(n["data-component-is-third-party"]=!0),e.toolbar?.hide&&(n["data-toolbar-hide"]=!0),e.slots?.children&&(n["data-slots-children"]=!0),e.toolbar?.hide||(n["data-toolbar-wrap"]=!0)}t?.editorConfigs?.toolbar?.hide||(n["data-toolbar-wrap"]=!0);let a=e=>"GP_FUNNEL_PAGE"===o&&["ProductList","Header"].includes(e),r=composeAdvanceStyle.composeAdvanceStyle(t.advanced,t.tag,o),s=t.advanced,i={...n,"data-uid":t.uid,"data-component-type":"component","data-component-tag":t.tag,"data-component-label":t.label,"data-not-droppable":a(t.tag)};return constant.disableWrap.includes(t.tag)&&react.isValidElement(e)?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(RenderCustomCode.default,{uid:t.uid,advanced:s}),jsxRuntime.jsxs(e.type,{className:s?.cssClass,...e.props,style:r,builderAttrs:i,advanced:s,children:[e.props.children,jsxRuntime.jsx(ComponentToolbarPreview.ComponentToolbarPreview,{...t})]})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(RenderCustomCode.default,{uid:t.uid,advanced:s}),jsxRuntime.jsxs("div",{style:constant.excludeApplyStyle.includes(t.tag)?{"--mb":r?.["--mb"],"--mb-tablet":r?.["--mb-tablet"],"--mb-mobile":r?.["--mb-mobile"]}:r,className:`${t.uid} ${t.advanced?.cssClass?t.advanced?.cssClass:""}`,...i,children:[!constant.excludeApplyStyle.includes(t.tag)&&e,react.isValidElement(e)&&constant.excludeApplyStyle.includes(t.tag)&&jsxRuntime.jsx(e.type,{...e.props,style:r,advanced:s}),jsxRuntime.jsx(ComponentToolbarPreview.ComponentToolbarPreview,{...t})]})]})};exports.default=ComponentWrapperPreview;
@@ -1 +1 @@
1
- "use strict";var jsxRuntime=require("react/jsx-runtime"),zustand=require("zustand"),react=require("react"),flattenConnection=require("../helpers/flatten-connection.js"),variant=require("../helpers/variant.js");const ProductContext=react.createContext(null),createProductStoreProvider=e=>zustand.createStore((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},addProperty:e=>{let n=r().properties;n?.some(t=>t.key===e.key)||t(t=>({properties:[...t.properties??[],e]}))},removeProperty:e=>{t(t=>({properties:t.properties?.filter(t=>t.key!==e)}))},setQuantity:e=>{t({quantity:e>0?e:1})},setProductFeaturedImage:e=>{t({featuredImageGlobal:e})},incrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t+1}})},decrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t>2?t-1:1}})},setSelectedOption:(e,r)=>{t(t=>e&&r?{selectedOptions:{...t?.selectedOptions,[e]:r}}:t)},forceSelectedOption:e=>{t(t=>({selectedOptions:{...t?.selectedOptions,...e}}))},updateIsSubmit:e=>{t({isSubmit:e})}})),ProductProvider=({children:e,product:t,initialVariantId:r,quantity:n=1,isSyncProduct:o})=>{let i=react.useId(),u=react.useMemo(()=>{let e,u={};if(t){let n=flattenConnection.flattenConnection(t.variants),o=n[0],i=n.find(e=>variant.checkInStock(e)),d=n.find(e=>e?.id===r)??i??o;u=d?.selectedOptions.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=t.medias?.edges.find(e=>e.node?.id===d?.mediaId)?.node??t.featuredImage}return createProductStoreProvider({product:t,quantity:n,selectedOptions:u,uiqueId:i,featuredImageGlobal:e,isSyncProduct:o})},[r,t,n,i,o]);return jsxRuntime.jsx(ProductContext.Provider,{value:u,children:jsxRuntime.jsx(jsxRuntime.Fragment,{children:e})})},useProductStore=(e,t)=>{let r=react.useContext(ProductContext);if(!r)throw Error("Element of product must be used inside a Product");return zustand.useStore(r,e,t)};exports.ProductProvider=ProductProvider,exports.useProductStore=useProductStore;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),zustand=require("zustand"),react=require("react"),flattenConnection=require("../helpers/flatten-connection.js"),variant=require("../helpers/variant.js");const ProductContext=react.createContext(null),createProductStoreProvider=e=>zustand.createStore((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},addProperty:e=>{let n=r().properties;n?.some(t=>t.key===e.key)||t(t=>({properties:[...t.properties??[],e]}))},removeProperty:e=>{t(t=>({properties:t.properties?.filter(t=>t.key!==e)}))},setQuantity:e=>{t({quantity:e>0?e:1})},setProductFeaturedImage:e=>{t({featuredImageGlobal:e})},incrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t+1}})},decrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t>2?t-1:1}})},setSelectedOption:(e,r)=>{t(t=>e&&r?{selectedOptions:{...t?.selectedOptions,[e]:r}}:t)},forceSelectedOption:e=>{t(t=>({selectedOptions:{...t?.selectedOptions,...e}}))},updateIsSubmit:e=>{t({isSubmit:e})},setHasUpdatePriceFollowQuantity:e=>{t({updatePrice:e})}})),ProductProvider=({children:e,product:t,initialVariantId:r,quantity:n=1,isSyncProduct:o})=>{let i=react.useId(),u=react.useMemo(()=>{let e,u={};if(t){let n=flattenConnection.flattenConnection(t.variants),o=n[0],i=n.find(e=>variant.checkInStock(e)),a=n.find(e=>e?.id===r)??i??o;u=a?.selectedOptions.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=t.medias?.edges.find(e=>e.node?.id===a?.mediaId)?.node??t.featuredImage}return createProductStoreProvider({product:t,quantity:n,selectedOptions:u,uiqueId:i,featuredImageGlobal:e,isSyncProduct:o})},[r,t,n,i,o]);return jsxRuntime.jsx(ProductContext.Provider,{value:u,children:jsxRuntime.jsx(jsxRuntime.Fragment,{children:e})})},useProductStore=(e,t)=>{let r=react.useContext(ProductContext);if(!r)throw Error("Element of product must be used inside a Product");return zustand.useStore(r,e,t)};exports.ProductProvider=ProductProvider,exports.useProductStore=useProductStore;
@@ -1 +1 @@
1
- "use strict";var react=require("react"),ProductContext=require("../contexts/ProductContext.js"),flattenConnection=require("../helpers/flatten-connection.js");require("react/jsx-runtime"),require("zustand"),require("swr");var PageContext=require("../contexts/PageContext.js");require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("./useCartUI.js");var variant=require("../helpers/variant.js");require("react-transition-group"),require("@gem-sdk/core");var product=require("../helpers/product.js");require("../helpers/convert.js");const useUniqProductID=()=>ProductContext.useProductStore(e=>e.uiqueId),useProduct=()=>ProductContext.useProductStore(e=>e.product),useFeaturedImageGlobal=()=>ProductContext.useProductStore(e=>e.featuredImageGlobal),useProductProperties=()=>ProductContext.useProductStore(e=>e.properties),useIsSyncProduct=()=>ProductContext.useProductStore(e=>e.isSyncProduct),useQuantity=()=>{let e=ProductContext.useProductStore(e=>e.quantity),t=ProductContext.useProductStore(e=>e.decrementQuantity),r=ProductContext.useProductStore(e=>e.incrementQuantity),u=ProductContext.useProductStore(e=>e.setQuantity),o=ProductContext.useProductStore(e=>e.isSyncProduct),n=ProductContext.useProductStore(e=>e.product),s=n?.id,a=react.useCallback(()=>{u(1)},[u]);return react.useEffect(()=>{if(o){let t=new CustomEvent("set-product-quantity",{bubbles:!0,cancelable:!0,composed:!0,detail:{quantity:e,productId:s}});window.dispatchEvent(t)}},[e,o,s]),react.useMemo(()=>({quantity:e,increment:r,decrement:t,reset:a,setQuantity:u}),[t,r,e,a,u])},useSelectedOption=()=>{let e=ProductContext.useProductStore(e=>e.setSelectedOption),t=ProductContext.useProductStore(e=>e.selectedOptions),r=ProductContext.useProductStore(e=>e.forceSelectedOption),u=ProductContext.useProductStore(e=>e.isSyncProduct),o=react.useCallback((t,r,o,n)=>{if(!n&&u){let e=new CustomEvent("set-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{optionId:t,optionValue:r,productId:o}});window.dispatchEvent(e)}e(t,r)},[e,u]),n=react.useCallback((e,t,o)=>{if(!o&&u){let r=new CustomEvent("force-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{selectedOption:e,productId:t}});window.dispatchEvent(r)}r(e)},[r,u]);return react.useMemo(()=>({selectedOptions:t,setSelectedOption:o,forceSelectedOption:n}),[t,o,n])},useVariants=()=>{let e=ProductContext.useProductStore(e=>e.product?.variants);return flattenConnection.flattenConnection(e)},useVariant=e=>{let t=useVariants();return react.useMemo(()=>t?.find(t=>t?.id===e),[e,t])},useCurrentVariant=()=>{let{selectedOptions:e}=useSelectedOption(),t=useVariants();return react.useMemo(()=>product.getSelectedVariant(t,e),[e,t])},useCurrentVariantInStock=()=>{let e=useCurrentVariant(),t=useVariants();return variant.checkInStock(e,t)},useVariantOutStock=(e,t,r)=>{let{selectedOptions:u}=useSelectedOption(),o=useVariants(),n=r.optionNumber-1;if(r.position<n)return o.some(r=>{if(r){let{selectedOptions:u}=r,o=u?.some(r=>r?.name===e&&r.value===t),n=variant.checkInStock(r);return o&&n}});let s=product.getSelectedVariant(o,{...u,[e]:t});return variant.checkInStock(s)},useCheckAvailableVariantInStock=(e,t)=>{let r=useVariants();return!!r&&r.some(r=>{if(r){let{selectedOptions:u}=r,o=u?.some(r=>r?.name===e&&r.value===t),n=variant.checkInStock(r);return o&&n}return!1})},useProductOfferDiscount=()=>{let e=PageContext.usePageStore(e=>e.productOffers),t=useProduct(),r=useCurrentVariant(),u=e?.find(e=>e?.node?.objectBaseID===t?.baseID)?.node;if(!u||!u.isEnabled)return 0;let o=u?.value;if(u&&"PERCENTAGE"===u.valueType&&o){let e=r?.price||0;o=o*e/100}return o||0};exports.useCheckAvailableVariantInStock=useCheckAvailableVariantInStock,exports.useCurrentVariant=useCurrentVariant,exports.useCurrentVariantInStock=useCurrentVariantInStock,exports.useFeaturedImageGlobal=useFeaturedImageGlobal,exports.useIsSyncProduct=useIsSyncProduct,exports.useProduct=useProduct,exports.useProductOfferDiscount=useProductOfferDiscount,exports.useProductProperties=useProductProperties,exports.useQuantity=useQuantity,exports.useSelectedOption=useSelectedOption,exports.useUniqProductID=useUniqProductID,exports.useVariant=useVariant,exports.useVariantOutStock=useVariantOutStock,exports.useVariants=useVariants;
1
+ "use strict";var react=require("react"),ProductContext=require("../contexts/ProductContext.js"),flattenConnection=require("../helpers/flatten-connection.js");require("react/jsx-runtime"),require("zustand"),require("swr");var PageContext=require("../contexts/PageContext.js");require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("./useCartUI.js");var variant=require("../helpers/variant.js");require("react-transition-group"),require("@gem-sdk/core");var product=require("../helpers/product.js");require("../helpers/convert.js");const useUniqProductID=()=>ProductContext.useProductStore(e=>e.uiqueId),useProduct=()=>ProductContext.useProductStore(e=>e.product),useFeaturedImageGlobal=()=>ProductContext.useProductStore(e=>e.featuredImageGlobal),useProductProperties=()=>ProductContext.useProductStore(e=>e.properties),useIsSyncProduct=()=>ProductContext.useProductStore(e=>e.isSyncProduct),useQuantity=()=>{let e=ProductContext.useProductStore(e=>e.quantity),t=ProductContext.useProductStore(e=>e.updatePrice),r=ProductContext.useProductStore(e=>e.decrementQuantity),u=ProductContext.useProductStore(e=>e.incrementQuantity),o=ProductContext.useProductStore(e=>e.setQuantity),n=ProductContext.useProductStore(e=>e.setHasUpdatePriceFollowQuantity),s=ProductContext.useProductStore(e=>e.isSyncProduct),c=ProductContext.useProductStore(e=>e.product),a=c?.id,i=react.useCallback(()=>{o(1)},[o]);return react.useEffect(()=>{if(s){let t=new CustomEvent("set-product-quantity",{bubbles:!0,cancelable:!0,composed:!0,detail:{quantity:e,productId:a}});window.dispatchEvent(t)}},[e,s,a]),react.useMemo(()=>({quantity:e,hasUpdatePrice:t,increment:u,decrement:r,reset:i,setQuantity:o,setUpdatePrice:n}),[r,u,e,i,o,n,t])},useSelectedOption=()=>{let e=ProductContext.useProductStore(e=>e.setSelectedOption),t=ProductContext.useProductStore(e=>e.selectedOptions),r=ProductContext.useProductStore(e=>e.forceSelectedOption),u=ProductContext.useProductStore(e=>e.isSyncProduct),o=react.useCallback((t,r,o,n)=>{if(!n&&u){let e=new CustomEvent("set-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{optionId:t,optionValue:r,productId:o}});window.dispatchEvent(e)}e(t,r)},[e,u]),n=react.useCallback((e,t,o)=>{if(!o&&u){let r=new CustomEvent("force-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{selectedOption:e,productId:t}});window.dispatchEvent(r)}r(e)},[r,u]);return react.useMemo(()=>({selectedOptions:t,setSelectedOption:o,forceSelectedOption:n}),[t,o,n])},useVariants=()=>{let e=ProductContext.useProductStore(e=>e.product?.variants);return flattenConnection.flattenConnection(e)},useVariant=e=>{let t=useVariants();return react.useMemo(()=>t?.find(t=>t?.id===e),[e,t])},useCurrentVariant=()=>{let{selectedOptions:e}=useSelectedOption(),t=useVariants();return react.useMemo(()=>product.getSelectedVariant(t,e),[e,t])},useCurrentVariantInStock=()=>{let e=useCurrentVariant(),t=useVariants();return variant.checkInStock(e,t)},useVariantOutStock=(e,t,r)=>{let{selectedOptions:u}=useSelectedOption(),o=useVariants(),n=r.optionNumber-1;if(r.position<n)return o.some(r=>{if(r){let{selectedOptions:u}=r,o=u?.some(r=>r?.name===e&&r.value===t),n=variant.checkInStock(r);return o&&n}});let s=product.getSelectedVariant(o,{...u,[e]:t});return variant.checkInStock(s)},useCheckAvailableVariantInStock=(e,t)=>{let r=useVariants();return!!r&&r.some(r=>{if(r){let{selectedOptions:u}=r,o=u?.some(r=>r?.name===e&&r.value===t),n=variant.checkInStock(r);return o&&n}return!1})},useProductOfferDiscount=()=>{let e=PageContext.usePageStore(e=>e.productOffers),t=useProduct(),r=useCurrentVariant(),u=e?.find(e=>e?.node?.objectBaseID===t?.baseID)?.node;if(!u||!u.isEnabled)return 0;let o=u?.value;if(u&&"PERCENTAGE"===u.valueType&&o){let e=r?.price||0;o=o*e/100}return o||0};exports.useCheckAvailableVariantInStock=useCheckAvailableVariantInStock,exports.useCurrentVariant=useCurrentVariant,exports.useCurrentVariantInStock=useCurrentVariantInStock,exports.useFeaturedImageGlobal=useFeaturedImageGlobal,exports.useIsSyncProduct=useIsSyncProduct,exports.useProduct=useProduct,exports.useProductOfferDiscount=useProductOfferDiscount,exports.useProductProperties=useProductProperties,exports.useQuantity=useQuantity,exports.useSelectedOption=useSelectedOption,exports.useUniqProductID=useUniqProductID,exports.useVariant=useVariant,exports.useVariantOutStock=useVariantOutStock,exports.useVariants=useVariants;
@@ -1 +1 @@
1
- import{jsxs as e,Fragment as t,jsx as o}from"react/jsx-runtime";import{useEffect as a,isValidElement as n}from"react";import{composeAdvanceStyle as r}from"../helpers/compose-advance-style.js";import{disableWrap as d,excludeApplyStyle as i}from"./constant.js";import p from"./RenderCustomCode.js";import{ComponentToolbarPreview as l}from"./ComponentToolbarPreview.js";import s from"../hooks/animation/useApplyAnimation.js";import"zustand";import"swr";import"@gem-sdk/adapter-shopify";import"swr/mutation";import{usePageType as m}from"../hooks/shop.js";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../helpers/convert.js";let ComponentWrapperPreview=({children:c,...h})=>{a(()=>{let e=new CustomEvent("editor:component:render",{bubbles:!0,detail:{componentUid:h.uid}});window.dispatchEvent(e)},[h.uid]),s({props:h});let u=m();if("section"===h.type)return null;let b={};if("Section"===h.tag&&h.isThemeSection&&(b["data-theme-section"]=!0),h.editorConfigs){let e=h.editorConfigs;e.placeholder?.notAppendBeforeAfter&&(b["data-placeholder-not-append-before-after"]=!0),e.placeholder?.notAppendLeftRight&&(b["data-placeholder-not-append-left-right"]=!0),e.toolbar?.parent&&(b["data-toolbar-parent"]=!0),e.component?.noDelete&&(b["data-component-no-delete"]=!0),e.component?.noDuplicate&&(b["data-component-no-duplicate"]=!0),e.component?.noDragDrop&&(b["data-component-no-drag-drop"]=!0),e.component?.noSetting&&(b["data-component-no-setting"]=!0),e.component?.isThirdParty&&(b["data-component-is-third-party"]=!0),e.toolbar?.hide&&(b["data-toolbar-hide"]=!0),e.slots?.children&&(b["data-slots-children"]=!0),e.toolbar?.hide||(b["data-toolbar-wrap"]=!0)}h?.editorConfigs?.toolbar?.hide||(b["data-toolbar-wrap"]=!0);let f=r(h.advanced,h.tag,u),g=h.advanced,v={...b,"data-uid":h.uid,"data-component-type":"component","data-component-tag":h.tag,"data-component-label":h.label};return d.includes(h.tag)&&n(c)?e(t,{children:[o(p,{uid:h.uid,advanced:g}),e(c.type,{className:g?.cssClass,...c.props,style:f,builderAttrs:v,advanced:g,children:[c.props.children,o(l,{...h})]})]}):e(t,{children:[o(p,{uid:h.uid,advanced:g}),e("div",{style:i.includes(h.tag)?{"--mb":f?.["--mb"],"--mb-tablet":f?.["--mb-tablet"],"--mb-mobile":f?.["--mb-mobile"]}:f,className:`${h.uid} ${h.advanced?.cssClass?h.advanced?.cssClass:""}`,...v,children:[!i.includes(h.tag)&&c,n(c)&&i.includes(h.tag)&&o(c.type,{...c.props,style:f,advanced:g}),o(l,{...h})]})]})};export{ComponentWrapperPreview as default};
1
+ import{jsxs as t,Fragment as e,jsx as o}from"react/jsx-runtime";import{useEffect as a,isValidElement as n}from"react";import{composeAdvanceStyle as r}from"../helpers/compose-advance-style.js";import{disableWrap as d,excludeApplyStyle as i}from"./constant.js";import p from"./RenderCustomCode.js";import{ComponentToolbarPreview as l}from"./ComponentToolbarPreview.js";import s from"../hooks/animation/useApplyAnimation.js";import"zustand";import"swr";import"@gem-sdk/adapter-shopify";import"swr/mutation";import{usePageType as m}from"../hooks/shop.js";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../helpers/convert.js";let ComponentWrapperPreview=({children:c,...h})=>{a(()=>{let t=new CustomEvent("editor:component:render",{bubbles:!0,detail:{componentUid:h.uid}});window.dispatchEvent(t)},[h.uid]),s({props:h});let u=m();if("section"===h.type)return null;let b={};if("Section"===h.tag&&h.isThemeSection&&(b["data-theme-section"]=!0),h.editorConfigs){let t=h.editorConfigs;t.placeholder?.notAppendBeforeAfter&&(b["data-placeholder-not-append-before-after"]=!0),t.placeholder?.notAppendLeftRight&&(b["data-placeholder-not-append-left-right"]=!0),t.toolbar?.parent&&(b["data-toolbar-parent"]=!0),t.component?.noDelete&&(b["data-component-no-delete"]=!0),t.component?.noDuplicate&&(b["data-component-no-duplicate"]=!0),t.component?.noDragDrop&&(b["data-component-no-drag-drop"]=!0),t.component?.noSetting&&(b["data-component-no-setting"]=!0),t.component?.isThirdParty&&(b["data-component-is-third-party"]=!0),t.toolbar?.hide&&(b["data-toolbar-hide"]=!0),t.slots?.children&&(b["data-slots-children"]=!0),t.toolbar?.hide||(b["data-toolbar-wrap"]=!0)}h?.editorConfigs?.toolbar?.hide||(b["data-toolbar-wrap"]=!0);let f=t=>"GP_FUNNEL_PAGE"===u&&["ProductList","Header"].includes(t),g=r(h.advanced,h.tag,u),v=h.advanced,C={...b,"data-uid":h.uid,"data-component-type":"component","data-component-tag":h.tag,"data-component-label":h.label,"data-not-droppable":f(h.tag)};return d.includes(h.tag)&&n(c)?t(e,{children:[o(p,{uid:h.uid,advanced:v}),t(c.type,{className:v?.cssClass,...c.props,style:g,builderAttrs:C,advanced:v,children:[c.props.children,o(l,{...h})]})]}):t(e,{children:[o(p,{uid:h.uid,advanced:v}),t("div",{style:i.includes(h.tag)?{"--mb":g?.["--mb"],"--mb-tablet":g?.["--mb-tablet"],"--mb-mobile":g?.["--mb-mobile"]}:g,className:`${h.uid} ${h.advanced?.cssClass?h.advanced?.cssClass:""}`,...C,children:[!i.includes(h.tag)&&c,n(c)&&i.includes(h.tag)&&o(c.type,{...c.props,style:g,advanced:v}),o(l,{...h})]})]})};export{ComponentWrapperPreview as default};
@@ -1 +1 @@
1
- import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useStore as r,createStore as o}from"zustand";import{useId as i,useMemo as d,useContext as n,createContext as u}from"react";import{flattenConnection as s}from"../helpers/flatten-connection.js";import{checkInStock as a}from"../helpers/variant.js";let ProductContext=u(null),createProductStoreProvider=e=>o((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},addProperty:e=>{let o=r().properties;o?.some(t=>t.key===e.key)||t(t=>({properties:[...t.properties??[],e]}))},removeProperty:e=>{t(t=>({properties:t.properties?.filter(t=>t.key!==e)}))},setQuantity:e=>{t({quantity:e>0?e:1})},setProductFeaturedImage:e=>{t({featuredImageGlobal:e})},incrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t+1}})},decrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t>2?t-1:1}})},setSelectedOption:(e,r)=>{t(t=>e&&r?{selectedOptions:{...t?.selectedOptions,[e]:r}}:t)},forceSelectedOption:e=>{t(t=>({selectedOptions:{...t?.selectedOptions,...e}}))},updateIsSubmit:e=>{t({isSubmit:e})}})),ProductProvider=({children:r,product:o,initialVariantId:n,quantity:u=1,isSyncProduct:p})=>{let c=i(),l=d(()=>{let e,t={};if(o){let r=s(o.variants),i=r[0],d=r.find(e=>a(e)),u=r.find(e=>e?.id===n)??d??i;t=u?.selectedOptions.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=o.medias?.edges.find(e=>e.node?.id===u?.mediaId)?.node??o.featuredImage}return createProductStoreProvider({product:o,quantity:u,selectedOptions:t,uiqueId:c,featuredImageGlobal:e,isSyncProduct:p})},[n,o,u,c,p]);return e(ProductContext.Provider,{value:l,children:e(t,{children:r})})},useProductStore=(e,t)=>{let o=n(ProductContext);if(!o)throw Error("Element of product must be used inside a Product");return r(o,e,t)};export{ProductProvider,useProductStore};
1
+ import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useStore as r,createStore as o}from"zustand";import{useId as i,useMemo as d,useContext as n,createContext as u}from"react";import{flattenConnection as a}from"../helpers/flatten-connection.js";import{checkInStock as s}from"../helpers/variant.js";let ProductContext=u(null),createProductStoreProvider=e=>o((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},addProperty:e=>{let o=r().properties;o?.some(t=>t.key===e.key)||t(t=>({properties:[...t.properties??[],e]}))},removeProperty:e=>{t(t=>({properties:t.properties?.filter(t=>t.key!==e)}))},setQuantity:e=>{t({quantity:e>0?e:1})},setProductFeaturedImage:e=>{t({featuredImageGlobal:e})},incrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t+1}})},decrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t>2?t-1:1}})},setSelectedOption:(e,r)=>{t(t=>e&&r?{selectedOptions:{...t?.selectedOptions,[e]:r}}:t)},forceSelectedOption:e=>{t(t=>({selectedOptions:{...t?.selectedOptions,...e}}))},updateIsSubmit:e=>{t({isSubmit:e})},setHasUpdatePriceFollowQuantity:e=>{t({updatePrice:e})}})),ProductProvider=({children:r,product:o,initialVariantId:n,quantity:u=1,isSyncProduct:p})=>{let c=i(),l=d(()=>{let e,t={};if(o){let r=a(o.variants),i=r[0],d=r.find(e=>s(e)),u=r.find(e=>e?.id===n)??d??i;t=u?.selectedOptions.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=o.medias?.edges.find(e=>e.node?.id===u?.mediaId)?.node??o.featuredImage}return createProductStoreProvider({product:o,quantity:u,selectedOptions:t,uiqueId:c,featuredImageGlobal:e,isSyncProduct:p})},[n,o,u,c,p]);return e(ProductContext.Provider,{value:l,children:e(t,{children:r})})},useProductStore=(e,t)=>{let o=n(ProductContext);if(!o)throw Error("Element of product must be used inside a Product");return r(o,e,t)};export{ProductProvider,useProductStore};
@@ -1 +1 @@
1
- import{useCallback as e,useEffect as t,useMemo as r}from"react";import{useProductStore as n}from"../contexts/ProductContext.js";import{flattenConnection as u}from"../helpers/flatten-connection.js";import"react/jsx-runtime";import"zustand";import"swr";import{usePageStore as o}from"../contexts/PageContext.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"vanilla-lazyload";import"./useCartUI.js";import{checkInStock as s}from"../helpers/variant.js";import"react-transition-group";import"@gem-sdk/core";import{getSelectedVariant as i}from"../helpers/product.js";import"../helpers/convert.js";let useUniqProductID=()=>n(e=>e.uiqueId),useProduct=()=>n(e=>e.product),useFeaturedImageGlobal=()=>n(e=>e.featuredImageGlobal),useProductProperties=()=>n(e=>e.properties),useIsSyncProduct=()=>n(e=>e.isSyncProduct),useQuantity=()=>{let u=n(e=>e.quantity),o=n(e=>e.decrementQuantity),s=n(e=>e.incrementQuantity),i=n(e=>e.setQuantity),a=n(e=>e.isSyncProduct),c=n(e=>e.product),l=c?.id,d=e(()=>{i(1)},[i]);return t(()=>{if(a){let e=new CustomEvent("set-product-quantity",{bubbles:!0,cancelable:!0,composed:!0,detail:{quantity:u,productId:l}});window.dispatchEvent(e)}},[u,a,l]),r(()=>({quantity:u,increment:s,decrement:o,reset:d,setQuantity:i}),[o,s,u,d,i])},useSelectedOption=()=>{let t=n(e=>e.setSelectedOption),u=n(e=>e.selectedOptions),o=n(e=>e.forceSelectedOption),s=n(e=>e.isSyncProduct),i=e((e,r,n,u)=>{if(!u&&s){let t=new CustomEvent("set-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{optionId:e,optionValue:r,productId:n}});window.dispatchEvent(t)}t(e,r)},[t,s]),a=e((e,t,r)=>{if(!r&&s){let r=new CustomEvent("force-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{selectedOption:e,productId:t}});window.dispatchEvent(r)}o(e)},[o,s]);return r(()=>({selectedOptions:u,setSelectedOption:i,forceSelectedOption:a}),[u,i,a])},useVariants=()=>{let e=n(e=>e.product?.variants);return u(e)},useVariant=e=>{let t=useVariants();return r(()=>t?.find(t=>t?.id===e),[e,t])},useCurrentVariant=()=>{let{selectedOptions:e}=useSelectedOption(),t=useVariants();return r(()=>i(t,e),[e,t])},useCurrentVariantInStock=()=>{let e=useCurrentVariant(),t=useVariants();return s(e,t)},useVariantOutStock=(e,t,r)=>{let{selectedOptions:n}=useSelectedOption(),u=useVariants(),o=r.optionNumber-1;if(r.position<o)return u.some(r=>{if(r){let{selectedOptions:n}=r,u=n?.some(r=>r?.name===e&&r.value===t),o=s(r);return u&&o}});let a=i(u,{...n,[e]:t});return s(a)},useCheckAvailableVariantInStock=(e,t)=>{let r=useVariants();return!!r&&r.some(r=>{if(r){let{selectedOptions:n}=r,u=n?.some(r=>r?.name===e&&r.value===t),o=s(r);return u&&o}return!1})},useProductOfferDiscount=()=>{let e=o(e=>e.productOffers),t=useProduct(),r=useCurrentVariant(),n=e?.find(e=>e?.node?.objectBaseID===t?.baseID)?.node;if(!n||!n.isEnabled)return 0;let u=n?.value;if(n&&"PERCENTAGE"===n.valueType&&u){let e=r?.price||0;u=u*e/100}return u||0};export{useCheckAvailableVariantInStock,useCurrentVariant,useCurrentVariantInStock,useFeaturedImageGlobal,useIsSyncProduct,useProduct,useProductOfferDiscount,useProductProperties,useQuantity,useSelectedOption,useUniqProductID,useVariant,useVariantOutStock,useVariants};
1
+ import{useCallback as e,useEffect as t,useMemo as r}from"react";import{useProductStore as n}from"../contexts/ProductContext.js";import{flattenConnection as u}from"../helpers/flatten-connection.js";import"react/jsx-runtime";import"zustand";import"swr";import{usePageStore as o}from"../contexts/PageContext.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"vanilla-lazyload";import"./useCartUI.js";import{checkInStock as s}from"../helpers/variant.js";import"react-transition-group";import"@gem-sdk/core";import{getSelectedVariant as i}from"../helpers/product.js";import"../helpers/convert.js";let useUniqProductID=()=>n(e=>e.uiqueId),useProduct=()=>n(e=>e.product),useFeaturedImageGlobal=()=>n(e=>e.featuredImageGlobal),useProductProperties=()=>n(e=>e.properties),useIsSyncProduct=()=>n(e=>e.isSyncProduct),useQuantity=()=>{let u=n(e=>e.quantity),o=n(e=>e.updatePrice),s=n(e=>e.decrementQuantity),i=n(e=>e.incrementQuantity),a=n(e=>e.setQuantity),c=n(e=>e.setHasUpdatePriceFollowQuantity),l=n(e=>e.isSyncProduct),d=n(e=>e.product),p=d?.id,m=e(()=>{a(1)},[a]);return t(()=>{if(l){let e=new CustomEvent("set-product-quantity",{bubbles:!0,cancelable:!0,composed:!0,detail:{quantity:u,productId:p}});window.dispatchEvent(e)}},[u,l,p]),r(()=>({quantity:u,hasUpdatePrice:o,increment:i,decrement:s,reset:m,setQuantity:a,setUpdatePrice:c}),[s,i,u,m,a,c,o])},useSelectedOption=()=>{let t=n(e=>e.setSelectedOption),u=n(e=>e.selectedOptions),o=n(e=>e.forceSelectedOption),s=n(e=>e.isSyncProduct),i=e((e,r,n,u)=>{if(!u&&s){let t=new CustomEvent("set-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{optionId:e,optionValue:r,productId:n}});window.dispatchEvent(t)}t(e,r)},[t,s]),a=e((e,t,r)=>{if(!r&&s){let r=new CustomEvent("force-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{selectedOption:e,productId:t}});window.dispatchEvent(r)}o(e)},[o,s]);return r(()=>({selectedOptions:u,setSelectedOption:i,forceSelectedOption:a}),[u,i,a])},useVariants=()=>{let e=n(e=>e.product?.variants);return u(e)},useVariant=e=>{let t=useVariants();return r(()=>t?.find(t=>t?.id===e),[e,t])},useCurrentVariant=()=>{let{selectedOptions:e}=useSelectedOption(),t=useVariants();return r(()=>i(t,e),[e,t])},useCurrentVariantInStock=()=>{let e=useCurrentVariant(),t=useVariants();return s(e,t)},useVariantOutStock=(e,t,r)=>{let{selectedOptions:n}=useSelectedOption(),u=useVariants(),o=r.optionNumber-1;if(r.position<o)return u.some(r=>{if(r){let{selectedOptions:n}=r,u=n?.some(r=>r?.name===e&&r.value===t),o=s(r);return u&&o}});let a=i(u,{...n,[e]:t});return s(a)},useCheckAvailableVariantInStock=(e,t)=>{let r=useVariants();return!!r&&r.some(r=>{if(r){let{selectedOptions:n}=r,u=n?.some(r=>r?.name===e&&r.value===t),o=s(r);return u&&o}return!1})},useProductOfferDiscount=()=>{let e=o(e=>e.productOffers),t=useProduct(),r=useCurrentVariant(),n=e?.find(e=>e?.node?.objectBaseID===t?.baseID)?.node;if(!n||!n.isEnabled)return 0;let u=n?.value;if(n&&"PERCENTAGE"===n.valueType&&u){let e=r?.price||0;u=u*e/100}return u||0};export{useCheckAvailableVariantInStock,useCurrentVariant,useCurrentVariantInStock,useFeaturedImageGlobal,useIsSyncProduct,useProduct,useProductOfferDiscount,useProductProperties,useQuantity,useSelectedOption,useUniqProductID,useVariant,useVariantOutStock,useVariants};
@@ -25857,6 +25857,8 @@ type ProductContextProps = {
25857
25857
  isSubmit?: boolean;
25858
25858
  updateIsSubmit: (value: boolean) => void;
25859
25859
  isSyncProduct?: boolean;
25860
+ setHasUpdatePriceFollowQuantity: (updatePrice: boolean) => void;
25861
+ updatePrice?: boolean;
25860
25862
  };
25861
25863
  type ProductProviderProps = Pick<ProductContextProps, 'product' | 'quantity' | 'selectedOptions' | 'isSyncProduct'> & {
25862
25864
  initialVariantId?: string;
@@ -34202,10 +34204,12 @@ declare const useProductProperties: () => {
34202
34204
  declare const useIsSyncProduct: () => boolean | undefined;
34203
34205
  declare const useQuantity: () => {
34204
34206
  quantity: number | undefined;
34207
+ hasUpdatePrice: boolean | undefined;
34205
34208
  increment: () => void;
34206
34209
  decrement: () => void;
34207
34210
  reset: () => void;
34208
34211
  setQuantity: (num: number) => void;
34212
+ setUpdatePrice: (updatePrice: boolean) => void;
34209
34213
  };
34210
34214
  declare const useSelectedOption: () => {
34211
34215
  selectedOptions: Record<string, string> | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/core",
3
- "version": "1.14.0-dev.732",
3
+ "version": "1.14.0-dev.734",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "devDependencies": {
30
30
  "@gem-sdk/adapter-shopify": "1.14.0-dev.619",
31
- "@gem-sdk/styles": "1.14.0-dev.731"
31
+ "@gem-sdk/styles": "1.14.0-dev.733"
32
32
  },
33
33
  "dependencies": {
34
34
  "react-error-boundary": "4.0.10",