@gem-sdk/core 22.0.0-dev.52 → 22.0.0-dev.62
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/components/ComponentToolbarPreview.js +1 -1
- package/dist/cjs/components/ComponentWrapperPreview.js +1 -1
- package/dist/cjs/components/InteractionSuffix.js +1 -1
- package/dist/cjs/components/Render.liquid.js +4 -4
- package/dist/cjs/components/RenderCustomCode.js +2 -2
- package/dist/cjs/components/resize/Spacing.js +1 -1
- package/dist/cjs/components/theme-section/CreateThemeSection.js +1 -1
- package/dist/cjs/components/theme-section/ThemeSectionTooltip.js +1 -1
- package/dist/cjs/components/upgrade-element/UpgradeButton.js +1 -1
- package/dist/cjs/components/upgrade-element/UpgradeElement.js +1 -1
- package/dist/cjs/contexts/ProductContext.js +1 -1
- package/dist/cjs/graphql-shopify/product-detail.generated.js +110 -0
- package/dist/cjs/graphql-shopify/product-medias.generated.js +80 -0
- package/dist/cjs/graphql-shopify/product-variants.generated.js +107 -0
- package/dist/cjs/helpers/builder-api-bridge/BridgeRequestError.js +1 -0
- package/dist/cjs/helpers/builder-api-bridge/contract.js +1 -0
- package/dist/cjs/helpers/builder-api-bridge/createBuilderApiFetcher.js +1 -0
- package/dist/cjs/helpers/builder-api-bridge/requestBridgeGraphql.js +1 -0
- package/dist/cjs/helpers/interaction/index.js +1 -1
- package/dist/cjs/helpers/queries/get-shopify-product.js +1 -0
- package/dist/cjs/hooks/useAnimations.js +1 -1
- package/dist/cjs/hooks/useInitialSwatchesOptions.js +1 -1
- package/dist/cjs/hooks/useProduct.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/components/ComponentToolbarPreview.js +1 -1
- package/dist/esm/components/ComponentWrapperPreview.js +1 -1
- package/dist/esm/components/InteractionSuffix.js +1 -1
- package/dist/esm/components/Render.liquid.js +5 -5
- package/dist/esm/components/RenderCustomCode.js +3 -3
- package/dist/esm/components/resize/Spacing.js +1 -1
- package/dist/esm/components/theme-section/CreateThemeSection.js +1 -1
- package/dist/esm/components/theme-section/ThemeSectionTooltip.js +1 -1
- package/dist/esm/components/upgrade-element/UpgradeButton.js +1 -1
- package/dist/esm/components/upgrade-element/UpgradeElement.js +1 -1
- package/dist/esm/contexts/ProductContext.js +1 -1
- package/dist/esm/graphql-shopify/product-detail.generated.js +110 -0
- package/dist/esm/graphql-shopify/product-medias.generated.js +80 -0
- package/dist/esm/graphql-shopify/product-variants.generated.js +107 -0
- package/dist/esm/helpers/builder-api-bridge/BridgeRequestError.js +1 -0
- package/dist/esm/helpers/builder-api-bridge/contract.js +1 -0
- package/dist/esm/helpers/builder-api-bridge/createBuilderApiFetcher.js +1 -0
- package/dist/esm/helpers/builder-api-bridge/requestBridgeGraphql.js +1 -0
- package/dist/esm/helpers/interaction/index.js +1 -1
- package/dist/esm/helpers/queries/get-shopify-product.js +1 -0
- package/dist/esm/hooks/useAnimations.js +1 -1
- package/dist/esm/hooks/useInitialSwatchesOptions.js +1 -1
- package/dist/esm/hooks/useProduct.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/types/index.d.ts +43 -1
- package/package.json +5 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useI18nStore as r}from"@gem-sdk/core";import"zustand";import"react";import{usePageStore as i}from"../contexts/PageContext.js";import"react-transition-group";import"./constant.js";import"swr";import{useInteraction as p}from"../helpers/interaction/index.js";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"../graphql/queries/productsV2.generated.js";import"../helpers/convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../graphql/queries/product-value-label.generated.js";import"../hooks/useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";let s=({uid:s})=>{let{closeSelectOnPage:o,selectInteractionElement:a}=p(),{t:n}=r(),g=i(e=>e.interactionData?.settingType||""),l=i(e=>e.interactionData?.isSelectOnPage);return e(t,{children:l&&e("button",{className:"gp-bg-[#F4F4F4] gp-px-2 gp-h-[24px] gp-py-0.5 gp-rounded-lg gp-text-[#212121] gp-text-xs gp-font-medium gp-hidden interaction-use-custom-element",onClick:e=>{a({$target:e.target,componentUid:s,settingType:g}),o()},"data-setup-interaction":!0,children:n("TRIGGER"===g?"Set as trigger":"Set as target")})})};export{s as InteractionSuffix};
|
|
2
|
+
import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useI18nStore as r}from"@gem-sdk/core";import"zustand";import"react";import{usePageStore as i}from"../contexts/PageContext.js";import"react-transition-group";import"./constant.js";import"swr";import{useInteraction as p}from"../helpers/interaction/index.js";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"../graphql/queries/productsV2.generated.js";import"../graphql-shopify/product-detail.generated.js";import"../graphql-shopify/product-medias.generated.js";import"../graphql-shopify/product-variants.generated.js";import"../helpers/convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../graphql/queries/product-value-label.generated.js";import"../hooks/useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";let s=({uid:s})=>{let{closeSelectOnPage:o,selectInteractionElement:a}=p(),{t:n}=r(),g=i(e=>e.interactionData?.settingType||""),l=i(e=>e.interactionData?.isSelectOnPage);return e(t,{children:l&&e("button",{className:"gp-bg-[#F4F4F4] gp-px-2 gp-h-[24px] gp-py-0.5 gp-rounded-lg gp-text-[#212121] gp-text-xs gp-font-medium gp-hidden interaction-use-custom-element",onClick:e=>{a({$target:e.target,componentUid:s,settingType:g}),o()},"data-setup-interaction":!0,children:n("TRIGGER"===g?"Set as trigger":"Set as target")})})};export{s as InteractionSuffix};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{makeStyleResponsive as e}from"../helpers/make-style.js";import"react";import"react/jsx-runtime";import"zustand";import"swr";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"swr/infinite";import"../graphql/queries/productsV2.generated.js";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../graphql/queries/product-value-label.generated.js";import"../hooks/useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import{disableWrap as t,customRenderChildren as r}from"./constant.js";import"@gem-sdk/core";import{composeAdvanceStyle as i}from"../helpers/compose-advance-style.js";import{baseAssetURL as s,isLocalEnv as a}from"../helpers/convert.js";import"crc-32";import{RenderIf as l,template as n}from"../helpers/render.js";let d=["CarouselItem","CarouselItemV3"],o=["Text","Heading"],p=["IconListV2","IconList"],c=["IconList","ProductVariants"],u=({uid:e,builder:s,components:a,parentId:u,extraFiles:q={},pageContext:f,additionalSettings:
|
|
3
|
-
${l(
|
|
4
|
-
</div>`;let{cssCode:w,jsCode:A}=g(
|
|
2
|
+
import{makeStyleResponsive as e}from"../helpers/make-style.js";import"react";import"react/jsx-runtime";import"zustand";import"swr";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"swr/infinite";import"../graphql/queries/productsV2.generated.js";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../graphql/queries/product-value-label.generated.js";import"../hooks/useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import{disableWrap as t,customRenderChildren as r}from"./constant.js";import"@gem-sdk/core";import"../graphql-shopify/product-detail.generated.js";import"../graphql-shopify/product-medias.generated.js";import"../graphql-shopify/product-variants.generated.js";import{composeAdvanceStyle as i}from"../helpers/compose-advance-style.js";import{baseAssetURL as s,isLocalEnv as a}from"../helpers/convert.js";import"crc-32";import{RenderIf as l,template as n}from"../helpers/render.js";let d=["CarouselItem","CarouselItemV3"],o=["Text","Heading"],p=["IconListV2","IconList"],c=["IconList","ProductVariants"],u=({uid:e,builder:s,components:a,parentId:u,extraFiles:q={},pageContext:f,additionalSettings:j,...y})=>{let v=s[e],$=a[v?.tag];if(!$||!v||v?.type==="section")return{liquid:"",extraFiles:q};{let q={extraFiles:{}},k=i(v.advanced,v.tag),x="";x=t.includes(v.tag)?l(v?.childrens?.length,()=>$({builderProps:{uid:e,builderData:v},styles:v.styles,setting:v.settings,style:k,advanced:v.advanced,parentId:d.includes(v.tag)?u:null,pageContext:f,...j,...y,builderAttrs:{...y.builderAttrs},rawChildren:v.childrens.map(e=>({...s[e],uid:e,builder:s,components:a,customProps:q,pageContext:f,...j})),children:r.includes(v.tag)?"":b({uid:e,customProps:q},v.childrens.map(e=>h({uid:e,builder:s,components:a,customProps:q,parentTag:v.tag,pageContext:f,...j})))}),()=>$({builderProps:{uid:e,builderData:v},styles:v.styles,setting:v.settings,advanced:v.advanced,style:k,isText:!!o.includes(v.tag)||null,parentId:d.includes(v.tag)?u:null,pageContext:f,...y,builderAttrs:{...y.builderAttrs}})):n`<div gp-el-wrapper style="${p.includes(v.tag)?"":k}" class="${v.uid} ${v?.childrens?.length||"IconListItemHoz"!==v.tag?"":"hidden"}">
|
|
3
|
+
${l(v?.childrens?.length,()=>$({builderProps:{uid:e,builderData:v},styles:v.styles,setting:v.settings,advanced:{...c.includes(v.tag)?v?.advanced:{},cssClass:v?.advanced?.cssClass},pageContext:f,...j,...y,builderAttrs:{...y.builderAttrs},rawChildren:v.childrens.map(e=>({...s[e],uid:e,builder:s,components:a,customProps:q,pageContext:f,...j})),children:r.includes(v.tag)?"":b({uid:e,customProps:q},v.childrens.map(e=>h({uid:e,builder:s,components:a,customProps:q,parentTag:v.tag,pageContext:f,...j})))}),()=>$({builderProps:{uid:e,builderData:v},styles:v.styles,setting:v.settings,advanced:{...c.includes(v.tag)?v?.advanced:{},cssClass:v?.advanced?.cssClass},pageContext:f,...j,isText:!!o.includes(v.tag)||null,style:p.includes(v.tag)?k:null,...y,builderAttrs:{...y.builderAttrs}}))}
|
|
4
|
+
</div>`;let{cssCode:w,jsCode:A}=g(v);return w&&(x+=w),A&&(x+=A),{liquid:x=m(v,x),extraFiles:q.extraFiles}}},g=e=>{let{css:t,javascript:r,rootClassName:i}=e.advanced?.editorData||{},s=t?.replaceAll(i,e.uid),a=r?.replaceAll(i,e.uid),d=l(!!t,n`
|
|
5
5
|
<style id="${`custom-css-${e?.uid}`}">
|
|
6
6
|
${s}
|
|
7
7
|
</style>
|
|
@@ -11,13 +11,13 @@ import{makeStyleResponsive as e}from"../helpers/make-style.js";import"react";imp
|
|
|
11
11
|
${a}
|
|
12
12
|
} catch(err){}
|
|
13
13
|
</script>
|
|
14
|
-
`);return{cssCode:d,jsCode:o}},m=(t,r)=>{let{advanced:i,tag:d}=t,{animation:o,op:p,hasAnimationInteraction:c,displayInitInteraction:u}=i??{},g=(e,t)=>e?.triggerConfig?.[t]?.animation??"none",m=e=>{if("desktop"===e);else if("tablet"===e)return o?.tablet??o?.desktop;else if("mobile"===e)return o?.mobile??o?.tablet??o?.desktop;return o?.desktop},h=g(m("desktop"),"appear"),b=g(m("desktop"),"hover"),q=g(m("tablet"),"appear"),f=g(m("mobile"),"appear"),
|
|
14
|
+
`);return{cssCode:d,jsCode:o}},m=(t,r)=>{let{advanced:i,tag:d}=t,{animation:o,op:p,hasAnimationInteraction:c,displayInitInteraction:u}=i??{},g=(e,t)=>e?.triggerConfig?.[t]?.animation??"none",m=e=>{if("desktop"===e);else if("tablet"===e)return o?.tablet??o?.desktop;else if("mobile"===e)return o?.mobile??o?.tablet??o?.desktop;return o?.desktop},h=g(m("desktop"),"appear"),b=g(m("desktop"),"hover"),q=g(m("tablet"),"appear"),f=g(m("mobile"),"appear"),j=o?.desktop?.enabled&&("none"!==h||"none"!==b)||o?.tablet?.enabled&&"none"!==q||o?.mobile?.enabled&&"none"!==f||!!c,y=o?.desktop?.enabled&&("none"!==h||"none"!==b)||o?.tablet?.enabled&&"none"!==q||o?.mobile?.enabled&&"none"!==f;if(!j)return r;let v=e=>m(e)?.enabled&&!["shake","none"].includes(g(m(e),"appear"))?"hidden":"visible",$={desktop:v("desktop"),tablet:v("tablet"),mobile:v("mobile")};return n`
|
|
15
15
|
<gp-animation
|
|
16
16
|
gp-interaction-wrapper
|
|
17
17
|
display-init="${!1===u?"hide":"show"}"
|
|
18
18
|
style="${{display:"contents"}}"
|
|
19
19
|
>
|
|
20
|
-
<script gp-data type="application/json">${JSON.stringify({config:o,tag:d,opacity:p,notEnableAnimationWhenInit:!
|
|
20
|
+
<script gp-data type="application/json">${JSON.stringify({config:o,tag:d,opacity:p,notEnableAnimationWhenInit:!y})}</script>
|
|
21
21
|
<div style="${{...e("v",$),display:"contents"}}">${r}</div>
|
|
22
22
|
</gp-animation>
|
|
23
23
|
${l(a,'<script src="{{ \'gp-animation-v7-5.js\' | asset_url }}" defer="defer"></script>',`<script src="${s}/assets-v2/gp-animation-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsxs as e,Fragment as r,jsx as t}from"react/jsx-runtime";import s from"next/head";import i from"next/script";import{useMemo as
|
|
2
|
+
import{jsxs as e,Fragment as r,jsx as t}from"react/jsx-runtime";import s from"next/head";import i from"next/script";import{useMemo as p}from"react";import"zustand";import"react-transition-group";import"./constant.js";import"swr";import"@gem-sdk/core";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"../graphql/queries/productsV2.generated.js";import"../graphql-shopify/product-detail.generated.js";import"../graphql-shopify/product-medias.generated.js";import"../graphql-shopify/product-variants.generated.js";import"../helpers/convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import{useEditorMode as o}from"../hooks/shop.js";import"swr/infinite";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../graphql/queries/product-value-label.generated.js";import"../hooks/useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";let a=({uid:a,advanced:l})=>{let m=o(),{css:d,javascript:n,rootClassName:g}=l?.editorData||{},u=d?.replaceAll(g,a),h=n?.replaceAll(g,a),c={css:`custom-css-${a}`,javascript:`custom-js-${a}`},q=p(()=>`
|
|
3
3
|
try {
|
|
4
|
-
${
|
|
4
|
+
${h}
|
|
5
5
|
} catch(err){}
|
|
6
|
-
`,[
|
|
6
|
+
`,[h]);return e(r,{children:[t(s,{children:!!d&&t("style",{id:c.css,dangerouslySetInnerHTML:{__html:u}})}),!!n&&"edit"!==m&&t(i,{id:c.javascript,dangerouslySetInnerHTML:{__html:q}})]})};export{a as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{useRef as o,useState as i,useCallback as
|
|
2
|
+
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{useRef as o,useState as i,useCallback as a,useEffect as n}from"react";import"zustand";import{useBuilderPreviewStore as s}from"../../contexts/BuilderPreviewContext.js";import{DEVICES as l}from"../../constants/device.js";import"react-transition-group";import"../constant.js";import"swr";import"@gem-sdk/core";import"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import"../../graphql/queries/product-variants.generated.js";import"../../graphql/queries/product-little-detail.generated.js";import"../../graphql/queries/product-medias.generated.js";import"../../graphql/queries/productsV2.generated.js";import"../../graphql-shopify/product-detail.generated.js";import"../../graphql-shopify/product-medias.generated.js";import"../../graphql-shopify/product-variants.generated.js";import"../../helpers/convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import{usePageType as p}from"../../hooks/shop.js";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../graphql/queries/product-value-label.generated.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";function d(d){let m=s(e=>e.isThemeSectionEditor),c=p(),g=o(null),h=o(null),v=o(null),b=o(!1),f=o(0),q=o(0),w=o(null),[j,y]=i(0),[E,S]=i(!1),L=o(null),C=e=>{let t=e.clientY,r=Math.ceil(t-f.current),o=q.current||0,i=o+r>=0?`${o+r}px`:"0px";return{newValue:i}},x=e=>{if(g.current&&h.current){let{newValue:t}=C(e);h.current.style.height=t,g.current.style.top=t;let r=g.current.closest("[data-toolbar-wrap]");r&&(r.style.marginBottom=t,U(t))}},T=()=>{z()},k=()=>{v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{b.current=!0;let e=new CustomEvent("editor:toolbar:resize-spacing",{bubbles:!0,detail:{value:!0}});window.dispatchEvent(e),document.addEventListener("mousemove",x),document.addEventListener("mouseup",T)},100)},z=()=>{v.current&&clearTimeout(v.current),b.current=!1;let e=new CustomEvent("editor:toolbar:resize-spacing",{bubbles:!0,detail:{value:!1}});if(window.dispatchEvent(e),g.current){let e=getComputedStyle(g.current),t=e.top,r=new CustomEvent("editor:toolbar:change-margin-bottom",{bubbles:!0,detail:{componentUid:d.uid,marginBottom:t}});window.dispatchEvent(r)}let t=g.current?.closest("[data-toolbar-wrap]");t&&(t.style.marginBottom=""),document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",T)},A=(e,t)=>{let r=e.children.length;if(r)for(let o=0;o<r;o++){let r=e.children[o];if(r){let e=r.getAttribute(t);if(e)return r}}},B=e=>{let t=e.getAttribute("data-component-tag");return"Row"===t||"Product"===t},P=a(e=>{let t=g.current?.closest("[data-toolbar-wrap]");if(!t)return;let r=A(t,"data-toolbar");if(!r)return;let o=r.getAttribute("data-toolbar-active");if(!o)return;let i=getComputedStyle(t),a=A(t,"data-spacing"),n=a?.querySelector("[data-spacing-margin-bottom]")||null;if(n&&h.current&&g.current){let r=i.marginBottom;if(e&&U(r),0>parseFloat(r)&&(r="0"),h.current.style.height=r,g.current.style.top=r,n.setAttribute("data-spacing-margin-bottom-active","true"),B(t))h.current.style.left="0";else{let e=i.paddingLeft,t=`-${e}`,r=`translate(${t}, -100%)`;h.current.style.left=t,g.current.style.transform=r}}},[]),U=e=>{let t=parseFloat(e);y(t),S(!0),L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{S(!1)},2e3);let r=t<=28&&t>=0?t/2+16:t>28?0:16;w.current&&(w.current.style.transform=`translateY(${r}px)`)},$=u(d.advanced?.["spacing-setting"]);n(()=>{let e=F($,d.advanced?.["spacing-setting"]);P(e)},[$,d.advanced,P]);let F=(e,t)=>l.some(r=>JSON.stringify(e?.[r]?.margin?.bottom)!==JSON.stringify(t?.[r]?.margin?.bottom)),M=a(()=>{P()},[P]);return n(()=>(window.addEventListener("editor:toolbar:update-margin-bottom",()=>P),window.addEventListener("editor:toolbar:update-padding-left",()=>P),window.addEventListener("resize",M),()=>{window.removeEventListener("editor:toolbar:update-margin-bottom",()=>P),window.removeEventListener("editor:toolbar:update-padding-left",()=>P),window.removeEventListener("resize",M)}),[M,P]),e(t,{children:"Section"!==d.tag&&"POST_PURCHASE"!==c&&e("div",{"data-spacing":!0,"data-spacing-theme-section":m,className:"gp-absolute gp-w-full gp-bottom-0",children:r("div",{"data-spacing-margin-bottom":!0,children:[r("div",{"data-spacing-margin-bottom-bg":!0,ref:h,children:[e("div",{"data-spacing-margin-bottom-value":!0}),e("div",{"data-active":E,"data-value-number":!0,ref:w,children:j})]}),e("div",{ref:g,"data-spacing-margin-bottom-drag":!0,onMouseDown:e=>{if(g.current){let t=getComputedStyle(g.current);f.current=e.clientY,q.current=parseFloat(t.top),k()}},onMouseUp:()=>{z()},role:"presentation"})]})})})}let u=e=>{let t=o();return n(()=>{t.current=e},[e]),t.current};export{d as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{useRef as i,useState as o}from"react";import{ThemeSectionTooltip as a}from"./ThemeSectionTooltip.js";import"zustand";import{useI18nStore as s}from"../../contexts/I18nContext.js";import"../constant.js";import{useShopStore as p}from"../../contexts/ShopContext.js";import"@gem-sdk/core";import"swr";import"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import"../../graphql/queries/product-variants.generated.js";import"../../graphql/queries/product-little-detail.generated.js";import"../../graphql/queries/product-medias.generated.js";import"../../graphql/queries/productsV2.generated.js";import"../../helpers/convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../graphql/queries/product-value-label.generated.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let n=["starter","trial","trial2022"],l=({...l})=>{let{t:
|
|
2
|
+
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{useRef as i,useState as o}from"react";import{ThemeSectionTooltip as a}from"./ThemeSectionTooltip.js";import"zustand";import{useI18nStore as s}from"../../contexts/I18nContext.js";import"../constant.js";import{useShopStore as p}from"../../contexts/ShopContext.js";import"@gem-sdk/core";import"swr";import"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import"../../graphql/queries/product-variants.generated.js";import"../../graphql/queries/product-little-detail.generated.js";import"../../graphql/queries/product-medias.generated.js";import"../../graphql/queries/productsV2.generated.js";import"../../graphql-shopify/product-detail.generated.js";import"../../graphql-shopify/product-medias.generated.js";import"../../graphql-shopify/product-variants.generated.js";import"../../helpers/convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../graphql/queries/product-value-label.generated.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let n=["starter","trial","trial2022"],l=({...l})=>{let{t:d}=s(),m=p(e=>e.plan),c=p(e=>e.createThemeSectionCount),h=p(e=>e.limitCreateThemeSection),u=n.includes(m??""),g=u||h?.isLimit,q=g||void 0===c||c<1,j=i(),[C,v]=o(!1),b=(e,t)=>{e.preventDefault(),e.stopPropagation(),t?.disabled||(g?f():w(),j.current&&clearTimeout(j.current),v(!1))},f=()=>{let e=new CustomEvent("editor:toolbar:upgrade",{bubbles:!0});window.dispatchEvent(e)},w=()=>{let e=new CustomEvent("editor:toolbar:create-theme-section",{bubbles:!0,detail:{componentUid:l.uid}});window.dispatchEvent(e)};return e(t,{children:r(a,{isFreeLimit:u,limitCreateThemeSection:h,isShow:C,isRender:q,onActions:b,onMouseEnter:()=>{q&&(j.current&&clearTimeout(j.current),j.current=setTimeout(()=>{v(!0)},600))},onMouseLeave:()=>{q&&(j.current&&clearTimeout(j.current),v(!1))},children:[q&&e("div",{"data-toolbar-create-theme-section":!0,children:"You can create reusable sections"}),e("div",{"data-toolbar-active-create-theme-section-wrapper":!0,children:r("div",{"data-toolbar-active-create-theme-section":!0,onClick:e=>b(e,{disabled:!!g}),"aria-hidden":"true",children:[r("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[e("path",{d:"M1 2C1 1.44772 1.44772 1 2 1H6C6.55228 1 7 1.44772 7 2V6C7 6.55228 6.55228 7 6 7H2C1.44772 7 1 6.55228 1 6V2Z",fill:"#F9F9F9"}),e("path",{d:"M9 10C9 9.44772 9.44772 9 10 9H14C14.5523 9 15 9.44772 15 10V14C15 14.5523 14.5523 15 14 15H10C9.44772 15 9 14.5523 9 14V10Z",fill:"#F9F9F9"}),e("path",{d:"M2 9C1.44772 9 1 9.44772 1 10V14C1 14.5523 1.44772 15 2 15H6C6.55228 15 7 14.5523 7 14V10C7 9.44772 6.55228 9 6 9H2Z",fill:"#F9F9F9"})]}),e("p",{children:d("Create Theme Section")})]})})]})})};export{l as CreateThemeSection};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,Fragment as t,jsxs as i}from"react/jsx-runtime";import{useRef as o}from"react";import{Transition as r}from"react-transition-group";import"zustand";import{useI18nStore as s}from"../../contexts/I18nContext.js";import{cls as a}from"../../helpers/cls.js";import"../constant.js";import"swr";import"@gem-sdk/core";import"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import"../../graphql/queries/product-variants.generated.js";import"../../graphql/queries/product-little-detail.generated.js";import"../../graphql/queries/product-medias.generated.js";import"../../graphql/queries/productsV2.generated.js";import"../../helpers/convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../graphql/queries/product-value-label.generated.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let
|
|
1
|
+
import{jsx as e,Fragment as t,jsxs as i}from"react/jsx-runtime";import{useRef as o}from"react";import{Transition as r}from"react-transition-group";import"zustand";import{useI18nStore as s}from"../../contexts/I18nContext.js";import{cls as a}from"../../helpers/cls.js";import"../constant.js";import"swr";import"@gem-sdk/core";import"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import"../../graphql/queries/product-variants.generated.js";import"../../graphql/queries/product-little-detail.generated.js";import"../../graphql/queries/product-medias.generated.js";import"../../graphql/queries/productsV2.generated.js";import"../../graphql-shopify/product-detail.generated.js";import"../../graphql-shopify/product-medias.generated.js";import"../../graphql-shopify/product-variants.generated.js";import"../../helpers/convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../graphql/queries/product-value-label.generated.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let p={transition:"opacity 350ms ease-out",opacity:0},n={entering:{opacity:1},entered:{opacity:1},exiting:{opacity:0},exited:{opacity:0},unmounted:{opacity:0}},l=({isShow:l,isFreeLimit:m,isRender:c,children:d,limitCreateThemeSection:h,onMouseEnter:g,onMouseLeave:u,onActions:q})=>{let{t:y}=s(),_=o(null),j=m?y("Upgrade to create Theme Section"):y("Create Theme Section"),b=()=>{window.open("https://help.gempages.net/articles/theme-section","_blank")};return e(t,{children:i("div",{className:"theme-section-tooltip-wrapper",onMouseEnter:g,onMouseLeave:u,children:[d,c&&e(r,{in:l,timeout:350,nodeRef:_,unmountOnExit:!0,children:o=>e("div",{className:"theme-section-tooltip",ref:_,style:{...p,...n[o]},children:h?.isLimit&&!m?i("div",{className:"theme-section-tooltip__body theme-section-tooltip__body-limit",children:[e("div",{className:"theme-section-tooltip__body-title theme-section-tooltip__body-limit__title",children:y("Upgrade plan")}),i("div",{className:"theme-section-tooltip__body-desc theme-section-tooltip__body-limit__desc",children:[y("You’ve reached the maximum number of theme sections on your plan")," (",h.total,"/",h.limit,")"]}),e("button",{onClick:e=>q(e),children:y("Upgrade plan to create more")})]}):i(t,{children:[e("div",{className:"theme-section-tooltip__image",children:e("img",{src:"https://ucarecdn.com/6a9f408a-aa8c-434a-890b-81067a14aceb/-/format/auto/-/preview/1920x1920/-/quality/lighter/theme-section-illustration.png",alt:""})}),i("div",{className:"theme-section-tooltip__body",children:[e("div",{className:"theme-section-tooltip__body-title",children:y("Create once, use everywhere with Theme Section")}),e("div",{className:"theme-section-tooltip__body-desc",children:y("A global section that can be used on all your GemPages & Shopify pages.")})]}),i("div",{className:a("theme-section-tooltip__action",{"theme-section-tooltip__action-limit":m}),children:[e("button",{onClick:e=>q(e),children:y(j)}),m&&e("div",{onClick:b,"aria-hidden":!0,className:"theme-section-tooltip__action-learn-more",children:y("Learn more about Theme Section")})]})]})})})]})})};export{l as ThemeSectionTooltip};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as r}from"react/jsx-runtime";import"react";import"zustand";import{useI18nStore as t}from"../../contexts/I18nContext.js";import{cls as p}from"../../helpers/cls.js";import"react-transition-group";import"../constant.js";import"swr";import"@gem-sdk/core";import{CheckMarkIcon as s,LoadingIcon as i,CircleUpIcon as
|
|
1
|
+
import{jsxs as e,jsx as r}from"react/jsx-runtime";import"react";import"zustand";import{useI18nStore as t}from"../../contexts/I18nContext.js";import{cls as p}from"../../helpers/cls.js";import"react-transition-group";import"../constant.js";import"swr";import"@gem-sdk/core";import{CheckMarkIcon as s,LoadingIcon as i,CircleUpIcon as a}from"./icons.js";import"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import"../../graphql/queries/product-variants.generated.js";import"../../graphql/queries/product-little-detail.generated.js";import"../../graphql/queries/product-medias.generated.js";import"../../graphql/queries/productsV2.generated.js";import"../../graphql-shopify/product-detail.generated.js";import"../../graphql-shopify/product-medias.generated.js";import"../../graphql-shopify/product-variants.generated.js";import"../../helpers/convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../graphql/queries/product-value-label.generated.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let o=({isLoading:o,isUpdated:l,onUpgrade:g})=>{let{t:d}=t(),n={old:{icon:r(a,{}),label:d("Update"),className:"gp-relative",showDot:!0},loading:{icon:r(i,{}),label:"",className:"gp-animate-spin gp-ease-in-out gp-px-6",showDot:!1},updated:{icon:r(s,{}),label:d("Updated"),className:"",showDot:!1}},m=n[o?"loading":l?"updated":"old"];return e("button",{disabled:o,"data-toolbar-upgrade-element":"true",className:p("gp-flex gp-gap-[6px] gp-items-center gp-font-medium disabled:gp-opacity-60 disabled:gp-cursor-not-allowed",{"gp-pointer-events-none":l}),onClick:g,children:[r("div",{className:`gp-shrink-0 gp-overflow-hidden ${m.className}`,children:m.icon}),m.showDot&&r("div",{className:"gp-absolute gp-left-[10px] gp-top-[-2px] gp-size-4 gp-overflow-hidden",children:r("div",{className:"gp-absolute gp-inset-1/4 gp-rounded-full gp-bg-[#3C67FF]"})}),m.label&&r("span",{className:"gp-text-[12px] gp-leading-5 gp-text-[#F9F9F9] gp-whitespace-nowrap",children:m.label})]})};export{o as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useMemo as r,useCallback as t}from"react";import"zustand";import{usePageStore as o}from"../../contexts/PageContext.js";import"react-transition-group";import"../constant.js";import"swr";import"@gem-sdk/core";import i from"./UpgradeButton.js";import"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import"../../graphql/queries/product-variants.generated.js";import"../../graphql/queries/product-little-detail.generated.js";import"../../graphql/queries/product-medias.generated.js";import"../../graphql/queries/productsV2.generated.js";import"../../helpers/convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import{usePageType as s}from"../../hooks/shop.js";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../graphql/queries/product-value-label.generated.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let p=["THEME_SECTION"],a=({tag:a,uid:l})=>{let m=o(e=>e.oldElements),
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useMemo as r,useCallback as t}from"react";import"zustand";import{usePageStore as o}from"../../contexts/PageContext.js";import"react-transition-group";import"../constant.js";import"swr";import"@gem-sdk/core";import i from"./UpgradeButton.js";import"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import"../../graphql/queries/product-variants.generated.js";import"../../graphql/queries/product-little-detail.generated.js";import"../../graphql/queries/product-medias.generated.js";import"../../graphql/queries/productsV2.generated.js";import"../../graphql-shopify/product-detail.generated.js";import"../../graphql-shopify/product-medias.generated.js";import"../../graphql-shopify/product-variants.generated.js";import"../../helpers/convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import{usePageType as s}from"../../hooks/shop.js";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../graphql/queries/product-value-label.generated.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let p=["THEME_SECTION"],a=({tag:a,uid:l})=>{let m=o(e=>e.oldElements),d=o(e=>e.updatedElements),n=o(e=>e.updatingElements),g=s(),u=r(()=>!p.some(e=>e.includes(g)),[g]),h=r(()=>!!l&&(m?.some(e=>e.uid===l)??!1),[m,l]),q=r(()=>d?.some(e=>e.uid===l),[d,l]),c=r(()=>n?.some(e=>e.uid===l),[n,l]),j=t(e=>{q||(e.preventDefault(),e.stopPropagation(),window.dispatchEvent(new CustomEvent("editor:toolbar:upgrade-old-element",{bubbles:!0,detail:{componentUid:l,fromTag:a}})))},[q,a,l]);return a&&l&&u&&(h||q)?e(i,{isLoading:c,isUpdated:q,onUpgrade:j}):null};export{a as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useId as r,useMemo as i,useContext as s,createContext as o}from"react";import{useStore as p,createStore as a}from"zustand";import"swr";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"swr/infinite";import"../graphql/queries/productsV2.generated.js";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../graphql/queries/product-value-label.generated.js";import"../hooks/useStickyStore.js";import{checkInStock as l}from"../helpers/variant.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import"../components/constant.js";import"@gem-sdk/core";import{flattenConnection as n}from"../helpers/flatten-connection.js";import"../helpers/convert.js";import"crc-32";let d=o(null),u=e=>a((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},setUseProductCompareAtPrice:e=>{t({useProductCompareAtPrice:e})},setShouldRequireUploadMessage:e=>{t({shouldRequireUploadMessage:e})},setRequireUpload:e=>{t({requireUpload:e})},addProperty:e=>{let i=r().properties;i?.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})},setHasPreSelected:e=>{t({hasPreSelected:e})},setIsChangeSelectedOption:e=>{t({isChangeSelectedOption:e})},setSubscriptionSellingType:e=>{t({subscriptionSellingType:e})},setSelectedSellingPlan:e=>{t({selectedSellingPlan:e})}})),m=({children:s,product:o,initialVariantId:p,initialVariantBaseId:a,quantity:m=1,isSyncProduct:c,hasPreSelected:g,uid:q})=>{let h=r(),j=i(()=>{let e,t={};if(o){let r=n(o.variants),i=r[0],s=r.find(e=>l(e)),d=r.find(e=>e?.id===p||e?.baseID===a)??s??i;t=d?.selectedOptions?.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=o.medias?.edges.find(e=>e.node?.id===d?.mediaId)?.node??o.featuredImage}return u({product:o,quantity:m,selectedOptions:t,uiqueId:h,featuredImageGlobal:e,isSyncProduct:c,hasPreSelected:g,uid:q})},[o,m,h,c,g,p,q]);return e(d.Provider,{value:j,children:e(t,{children:s})})},c=(e,t)=>{let r=s(d);if(!r)throw Error("Element of product must be used inside a Product");return p(r,e,t)};export{m as ProductProvider,c as useProductStore};
|
|
2
|
+
import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useId as r,useMemo as i,useContext as s,createContext as o}from"react";import{useStore as p,createStore as a}from"zustand";import"swr";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"swr/infinite";import"../graphql/queries/productsV2.generated.js";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../graphql/queries/product-value-label.generated.js";import"../hooks/useStickyStore.js";import{checkInStock as l}from"../helpers/variant.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import"../components/constant.js";import"@gem-sdk/core";import{flattenConnection as n}from"../helpers/flatten-connection.js";import"../graphql-shopify/product-detail.generated.js";import"../graphql-shopify/product-medias.generated.js";import"../graphql-shopify/product-variants.generated.js";import"../helpers/convert.js";import"crc-32";let d=o(null),u=e=>a((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},setUseProductCompareAtPrice:e=>{t({useProductCompareAtPrice:e})},setShouldRequireUploadMessage:e=>{t({shouldRequireUploadMessage:e})},setRequireUpload:e=>{t({requireUpload:e})},addProperty:e=>{let i=r().properties;i?.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})},setHasPreSelected:e=>{t({hasPreSelected:e})},setIsChangeSelectedOption:e=>{t({isChangeSelectedOption:e})},setSubscriptionSellingType:e=>{t({subscriptionSellingType:e})},setSelectedSellingPlan:e=>{t({selectedSellingPlan:e})}})),m=({children:s,product:o,initialVariantId:p,initialVariantBaseId:a,quantity:m=1,isSyncProduct:c,hasPreSelected:g,uid:q})=>{let h=r(),j=i(()=>{let e,t={};if(o){let r=n(o.variants),i=r[0],s=r.find(e=>l(e)),d=r.find(e=>e?.id===p||e?.baseID===a)??s??i;t=d?.selectedOptions?.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=o.medias?.edges.find(e=>e.node?.id===d?.mediaId)?.node??o.featuredImage}return u({product:o,quantity:m,selectedOptions:t,uiqueId:h,featuredImageGlobal:e,isSyncProduct:c,hasPreSelected:g,uid:q})},[o,m,h,c,g,p,q]);return e(d.Provider,{value:j,children:e(t,{children:s})})},c=(e,t)=>{let r=s(d);if(!r)throw Error("Element of product must be used inside a Product");return p(r,e,t)};export{m as ProductProvider,c as useProductStore};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
function e(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class t extends String{toString(){return this.value}constructor(t,i){super(t),e(this,"__apiType",void 0),e(this,"value",void 0),e(this,"__meta__",void 0),this.value=t,this.__meta__=i}}let i=new t(`
|
|
2
|
+
query ShopifyProductDetail($first: Int = 1, $after: String, $query: String, $sortKey: ProductSortKeys = ID, $reverse: Boolean = false, $firstOption: Int = 3, $firstCollection: Int = 20, $afterCollection: String) {
|
|
3
|
+
product: products(
|
|
4
|
+
first: $first
|
|
5
|
+
after: $after
|
|
6
|
+
query: $query
|
|
7
|
+
sortKey: $sortKey
|
|
8
|
+
reverse: $reverse
|
|
9
|
+
) {
|
|
10
|
+
edges {
|
|
11
|
+
cursor
|
|
12
|
+
node {
|
|
13
|
+
id
|
|
14
|
+
handle
|
|
15
|
+
title
|
|
16
|
+
description
|
|
17
|
+
descriptionHtml
|
|
18
|
+
vendor
|
|
19
|
+
tags
|
|
20
|
+
createdAt
|
|
21
|
+
featuredMedia {
|
|
22
|
+
id
|
|
23
|
+
alt
|
|
24
|
+
mediaContentType
|
|
25
|
+
status
|
|
26
|
+
preview {
|
|
27
|
+
image {
|
|
28
|
+
id
|
|
29
|
+
url
|
|
30
|
+
width
|
|
31
|
+
height
|
|
32
|
+
altText
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
... on MediaImage {
|
|
36
|
+
mimeType
|
|
37
|
+
image {
|
|
38
|
+
id
|
|
39
|
+
url
|
|
40
|
+
width
|
|
41
|
+
height
|
|
42
|
+
altText
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
... on Video {
|
|
46
|
+
duration
|
|
47
|
+
filename
|
|
48
|
+
sources {
|
|
49
|
+
url
|
|
50
|
+
format
|
|
51
|
+
mimeType
|
|
52
|
+
width
|
|
53
|
+
height
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
... on ExternalVideo {
|
|
57
|
+
host
|
|
58
|
+
embedUrl
|
|
59
|
+
originUrl
|
|
60
|
+
}
|
|
61
|
+
... on Model3d {
|
|
62
|
+
filename
|
|
63
|
+
sources {
|
|
64
|
+
url
|
|
65
|
+
format
|
|
66
|
+
mimeType
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
options(first: $firstOption) {
|
|
71
|
+
id
|
|
72
|
+
name
|
|
73
|
+
position
|
|
74
|
+
optionValues {
|
|
75
|
+
id
|
|
76
|
+
name
|
|
77
|
+
hasVariants
|
|
78
|
+
swatch {
|
|
79
|
+
color
|
|
80
|
+
image {
|
|
81
|
+
id
|
|
82
|
+
image {
|
|
83
|
+
url
|
|
84
|
+
width
|
|
85
|
+
height
|
|
86
|
+
altText
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
collections(first: $firstCollection, after: $afterCollection) {
|
|
93
|
+
edges {
|
|
94
|
+
cursor
|
|
95
|
+
node {
|
|
96
|
+
id
|
|
97
|
+
handle
|
|
98
|
+
title
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
pageInfo {
|
|
102
|
+
hasNextPage
|
|
103
|
+
endCursor
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
`);export{i as ShopifyProductDetailDocument,t as TypedDocumentString};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
function e(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}class r extends String{toString(){return this.value}constructor(r,t){super(r),e(this,"__apiType",void 0),e(this,"value",void 0),e(this,"__meta__",void 0),this.value=r,this.__meta__=t}}let t=new r(`
|
|
2
|
+
query ShopifyProductMedias($first: Int = 1, $after: String, $query: String, $sortKey: ProductSortKeys = ID, $reverse: Boolean = false, $firstMedia: Int = 50, $afterMedia: String, $sortKeyMedia: ProductMediaSortKeys = POSITION, $reverseMedia: Boolean = false) {
|
|
3
|
+
medias: products(
|
|
4
|
+
first: $first
|
|
5
|
+
after: $after
|
|
6
|
+
query: $query
|
|
7
|
+
sortKey: $sortKey
|
|
8
|
+
reverse: $reverse
|
|
9
|
+
) {
|
|
10
|
+
edges {
|
|
11
|
+
node {
|
|
12
|
+
id
|
|
13
|
+
media(
|
|
14
|
+
first: $firstMedia
|
|
15
|
+
after: $afterMedia
|
|
16
|
+
sortKey: $sortKeyMedia
|
|
17
|
+
reverse: $reverseMedia
|
|
18
|
+
) {
|
|
19
|
+
edges {
|
|
20
|
+
cursor
|
|
21
|
+
node {
|
|
22
|
+
id
|
|
23
|
+
alt
|
|
24
|
+
mediaContentType
|
|
25
|
+
status
|
|
26
|
+
preview {
|
|
27
|
+
image {
|
|
28
|
+
id
|
|
29
|
+
url
|
|
30
|
+
width
|
|
31
|
+
height
|
|
32
|
+
altText
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
... on MediaImage {
|
|
36
|
+
mimeType
|
|
37
|
+
image {
|
|
38
|
+
id
|
|
39
|
+
url
|
|
40
|
+
width
|
|
41
|
+
height
|
|
42
|
+
altText
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
... on Video {
|
|
46
|
+
duration
|
|
47
|
+
filename
|
|
48
|
+
sources {
|
|
49
|
+
url
|
|
50
|
+
format
|
|
51
|
+
mimeType
|
|
52
|
+
width
|
|
53
|
+
height
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
... on ExternalVideo {
|
|
57
|
+
host
|
|
58
|
+
embedUrl
|
|
59
|
+
originUrl
|
|
60
|
+
}
|
|
61
|
+
... on Model3d {
|
|
62
|
+
filename
|
|
63
|
+
sources {
|
|
64
|
+
url
|
|
65
|
+
format
|
|
66
|
+
mimeType
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
pageInfo {
|
|
72
|
+
hasNextPage
|
|
73
|
+
endCursor
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
`);export{t as ShopifyProductMediasDocument,r as TypedDocumentString};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class t extends String{toString(){return this.value}constructor(t,r){super(t),e(this,"__apiType",void 0),e(this,"value",void 0),e(this,"__meta__",void 0),this.value=t,this.__meta__=r}}let r=new t(`
|
|
2
|
+
query ShopifyProductVariants($first: Int = 50, $after: String, $query: String, $sortKey: ProductVariantSortKeys = POSITION, $reverse: Boolean = false) {
|
|
3
|
+
variants: productVariants(
|
|
4
|
+
first: $first
|
|
5
|
+
after: $after
|
|
6
|
+
query: $query
|
|
7
|
+
sortKey: $sortKey
|
|
8
|
+
reverse: $reverse
|
|
9
|
+
) {
|
|
10
|
+
edges {
|
|
11
|
+
cursor
|
|
12
|
+
node {
|
|
13
|
+
id
|
|
14
|
+
title
|
|
15
|
+
sku
|
|
16
|
+
barcode
|
|
17
|
+
position
|
|
18
|
+
price
|
|
19
|
+
compareAtPrice
|
|
20
|
+
inventoryPolicy
|
|
21
|
+
inventoryQuantity
|
|
22
|
+
selectedOptions {
|
|
23
|
+
name
|
|
24
|
+
value
|
|
25
|
+
}
|
|
26
|
+
inventoryItem {
|
|
27
|
+
id
|
|
28
|
+
sku
|
|
29
|
+
tracked
|
|
30
|
+
requiresShipping
|
|
31
|
+
unitCost {
|
|
32
|
+
amount
|
|
33
|
+
currencyCode
|
|
34
|
+
}
|
|
35
|
+
measurement {
|
|
36
|
+
id
|
|
37
|
+
weight {
|
|
38
|
+
unit
|
|
39
|
+
value
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
image {
|
|
44
|
+
id
|
|
45
|
+
url
|
|
46
|
+
width
|
|
47
|
+
height
|
|
48
|
+
altText
|
|
49
|
+
}
|
|
50
|
+
media(first: 1) {
|
|
51
|
+
nodes {
|
|
52
|
+
id
|
|
53
|
+
alt
|
|
54
|
+
mediaContentType
|
|
55
|
+
status
|
|
56
|
+
preview {
|
|
57
|
+
image {
|
|
58
|
+
id
|
|
59
|
+
url
|
|
60
|
+
width
|
|
61
|
+
height
|
|
62
|
+
altText
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
... on MediaImage {
|
|
66
|
+
mimeType
|
|
67
|
+
image {
|
|
68
|
+
id
|
|
69
|
+
url
|
|
70
|
+
width
|
|
71
|
+
height
|
|
72
|
+
altText
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
... on Video {
|
|
76
|
+
duration
|
|
77
|
+
sources {
|
|
78
|
+
url
|
|
79
|
+
format
|
|
80
|
+
mimeType
|
|
81
|
+
width
|
|
82
|
+
height
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
... on ExternalVideo {
|
|
86
|
+
host
|
|
87
|
+
embedUrl
|
|
88
|
+
originUrl
|
|
89
|
+
}
|
|
90
|
+
... on Model3d {
|
|
91
|
+
sources {
|
|
92
|
+
url
|
|
93
|
+
format
|
|
94
|
+
mimeType
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
pageInfo {
|
|
102
|
+
hasNextPage
|
|
103
|
+
endCursor
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
`);export{r as ShopifyProductVariantsDocument,t as TypedDocumentString};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}class r extends Error{get code(){return this.bridge.code}constructor(r,t,i){super(t.message),e(this,"bridge",void 0),e(this,"partialData",void 0),e(this,"requestId",void 0),this.name="BridgeRequestError",this.requestId=r,this.bridge=t,this.partialData=i}}export{r as BridgeRequestError};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=1,r={request:"editor:api:graphql:request",response:"editor:api:graphql:response",readyRequest:"editor:api:graphql:ready-request",ready:"editor:api:graphql:ready"};export{r as API_EVENTS,e as BRIDGE_VERSION};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BridgeRequestError as e}from"./BridgeRequestError.js";import{requestBridgeGraphql as r}from"./requestBridgeGraphql.js";let t=()=>t=>{let i;let[o,a,s]=t;if(void 0!==s){if("string"!=typeof s)return Promise.reject(new e("invalid-request",{code:"INVALID_REQUEST",message:"operationName must be a string."}));i=s}return r({api:"app",query:o,variables:a,operationName:i})};export{t as createBuilderApiFetcher};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e;import{BridgeRequestError as r}from"./BridgeRequestError.js";import{API_EVENTS as t,BRIDGE_VERSION as o}from"./contract.js";let n=new Map,i=new Map,s=r=>{e||(e=r,r.addEventListener(t.response,f),r.addEventListener(t.ready,p))},a=e=>{let r=n.delete(e.requestId)||i.delete(e.requestId);return!!r},d=(e,r)=>{a(e)&&e.resolve(r)},l=(e,t,o)=>{a(e)&&e.reject(new r(e.requestId,t,o))},u=r=>{let o=e;o&&!r.sent&&(i.set(r.requestId,r),o.dispatchEvent(new CustomEvent(t.request,{detail:r.detail})),r.sent=!0)};function p(r){let t=e;if(t&&r.detail?.version===o)for(let e of[...n.values()])n.delete(e.requestId)&&u(e)}function f(e){let r=e.detail;if(!r||"object"!=typeof r||r.version!==o||"string"!=typeof r.requestId)return;let t=i.get(r.requestId);if(!t||"boolean"!=typeof r.ok||!Object.prototype.hasOwnProperty.call(r,"data"))return;if(r.ok){d(t,r.data);return}let n=r.data;"string"==typeof n?.error?.code&&"string"==typeof n.error.message&&l(t,n.error,n.partialData)}let c=(e,r)=>{if(null===e||"object"!=typeof e)throw Error("The bridge request must be an object.");let{api:t,query:n,variables:i,operationName:s}=e;if("app"!==t)throw Error("The bridge request must target the app API.");if("string"!=typeof n||0===n.length)throw Error("The bridge request requires a nonempty query string.");if(void 0!==s&&("string"!=typeof s||!s))throw Error("operationName must be a nonempty string when supplied.");if(void 0!==i&&(null===i||"object"!=typeof i||Array.isArray(i)))throw Error("Query variables must be an object when supplied.");let a={version:o,requestId:r,api:t,query:n};return void 0!==s&&(a.operationName=s),void 0!==i&&(a.variables=i),a},w=()=>"function"==typeof window.crypto?.randomUUID?window.crypto.randomUUID():`bridge-${Date.now()}-${Math.random().toString(36).slice(2)}`;function y(e){let i;if("undefined"==typeof window)return Promise.reject(new r("server",{code:"BRIDGE_UNAVAILABLE",message:"The editor bridge requires a browser."}));let a=window,d=w();try{i=c(e,d)}catch(e){return Promise.reject(new r(d,{code:"INVALID_REQUEST",message:e instanceof Error?e.message:"The bridge request is invalid."}))}let l=a.bridgeReady;return new Promise((e,r)=>{let p={requestId:d,detail:i,resolve:r=>e(r),reject:r,sent:!1};s(a),l?u(p):(n.set(d,p),a.dispatchEvent(new CustomEvent(t.readyRequest,{detail:{version:o}})))})}export{y as requestBridgeGraphql};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{useRef as e,useMemo as t,useCallback as r}from"react";import"react/jsx-runtime";import"zustand";import{usePageStore as i}from"../../contexts/PageContext.js";import"react-transition-group";import"../../components/constant.js";import"swr";import"@gem-sdk/core";import"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import"../../graphql/queries/product-variants.generated.js";import"../../graphql/queries/product-little-detail.generated.js";import"../../graphql/queries/product-medias.generated.js";import"../../graphql/queries/productsV2.generated.js";import"../convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../graphql/queries/product-value-label.generated.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let
|
|
2
|
+
import{useRef as e,useMemo as t,useCallback as r}from"react";import"react/jsx-runtime";import"zustand";import{usePageStore as i}from"../../contexts/PageContext.js";import"react-transition-group";import"../../components/constant.js";import"swr";import"@gem-sdk/core";import"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import"../../graphql/queries/product-variants.generated.js";import"../../graphql/queries/product-little-detail.generated.js";import"../../graphql/queries/product-medias.generated.js";import"../../graphql/queries/productsV2.generated.js";import"../../graphql-shopify/product-detail.generated.js";import"../../graphql-shopify/product-medias.generated.js";import"../../graphql-shopify/product-variants.generated.js";import"../convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../graphql/queries/product-value-label.generated.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let a=()=>{let a=e(),n=i(e=>e.setInteractionIsSelectOnPage),o=i(e=>e.sidebarMode),s=i(e=>e.interactionData?.selectType),p=i(e=>e.interactionData);function l(e,t){return!(e instanceof Document)&&e?.matches(t)?e:e?.querySelector(t)}let d=(e,t,r)=>{let i=e=>{let t=e.detail;r&&r(t)};return e.addEventListener(t,i),()=>e.removeEventListener(t,i)},c=t(()=>"interaction"===o&&(!p?.isSelectOnPage||"PAGE"===s),[o,p?.isSelectOnPage,s]),g=t(()=>p?.isSelectOnPage,[p?.isSelectOnPage]),u=r(e=>{if(window.interactionLoaded){e();return}window.addEventListener("gp:flow-actions-loaded",()=>{e()})},[]);return{onListener:({event:e,selector:t,elementRef:r},i)=>{let n=l(r?.current||a.current||document,t);if(n)return d(n,e,i)},trigger:({event:e,data:t,selector:r,element:i})=>{let a=i||document.body?.querySelector(r);if(!a)return;let n=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:{data:t}});a.dispatchEvent(n)},saveToElementInteractionData:(e,t,r)=>{if(!e)return;let i=e.getAttribute("gp-data-interaction"),a=JSON.parse(i||"{}");e.setAttribute("gp-data-interaction",JSON.stringify({...a,[t]:r}))},closeSelectOnPage:()=>{n(!1);let e=new CustomEvent("editor:interaction:change-select-on-page",{bubbles:!0,detail:!1});window.dispatchEvent(e)},ref:a,findElementIncludingSelf:l,getInteractionPreviousData:(e,t)=>{let r=e.getAttribute("gp-data-interaction"),i=JSON.parse(r||"{}");return{previousData:i[t],interactionDataJson:i}},changeSelectMode:e=>{let t=new CustomEvent("editor:interaction:change-select-mode",{bubbles:!0,detail:e});window.dispatchEvent(t)},selectInteractionElement:({componentUid:e,settingType:t,$target:r})=>{let i=new CustomEvent("editor:interaction:select-element",{bubbles:!0,detail:{componentUid:e,settingType:t,$target:r}});window.dispatchEvent(i)},isInteractionMode:c,isSelectOnPage:g,interactionListenerLoaded:u}};export{a as useInteraction};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ShopifyProductDetailDocument as e}from"../../graphql-shopify/product-detail.generated.js";import{ShopifyProductMediasDocument as t}from"../../graphql-shopify/product-medias.generated.js";import{ShopifyProductVariantsDocument as i}from"../../graphql-shopify/product-variants.generated.js";let r=e=>e.slice(e.lastIndexOf("/")+1),d=async(d,{id:o}={})=>{let n=!o||"latest"===o.toLowerCase();if(!n&&!/^(?:gid:\/\/shopify\/Product\/)?\d+$/.test(o))throw Error("Invalid Shopify product ID");let s={first:1,query:n?"status:active":`id:${r(o)}`,sortKey:"CREATED_AT",reverse:!0},p=await d([e.toString(),s]),u=p.product?.edges?.[0]?.node;if(!u)throw Error("Product not found");let[c,m]=await Promise.all([a(async e=>{let t=await d([i.toString(),{first:50,query:`product_id:${r(u.id)}`,after:e,sortKey:"POSITION",reverse:!1}]);return t.variants}),a(async e=>{let i=await d([t.toString(),{first:1,query:`id:${r(u.id)}`,afterMedia:e,sortKeyMedia:"POSITION",reverseMedia:!1}]);return i.medias?.edges?.[0]?.node?.media})]);return l({product:u,variants:c,medias:m})},a=async(e,t)=>{let i=[],r=new Set,d=async t=>{if(!t)return i;i.push(...t.edges);let{hasNextPage:a,endCursor:o}=t.pageInfo;return!a||!o||r.has(o)?i:(r.add(o),d(await e(o)))};try{return await d(t??await e())}catch(e){if(0===i.length)throw e;return i}},o=(e,t)=>({id:r(e.id??t),baseID:e.id??t,contentType:"IMAGE",src:e.url,previewImage:e.url,width:e.width??void 0,height:e.height??void 0,alt:e.altText??void 0}),n=e=>{let t=e.preview?.image,i="image"in e?e.image:void 0,d="sources"in e?e.sources.find(e=>"mp4"===e.format.toLowerCase())??e.sources[0]:void 0;return{id:r(e.id),baseID:e.id,contentType:e.mediaContentType,src:i?.url??("embedUrl"in e?e.embedUrl:d?.url),previewImage:t?.url??i?.url,width:i?.width??(d&&"width"in d&&"number"==typeof d.width?d.width:t?.width)??void 0,height:i?.height??(d&&"height"in d&&"number"==typeof d.height?d.height:t?.height)??void 0,alt:e.alt??i?.altText??t?.altText??void 0}},s=e=>{let t=e.media.nodes[0],i=t?n(t):e.image?o(e.image,e.id):void 0;return{id:r(e.id),baseID:e.id,title:e.title,barcode:e.barcode??void 0,sku:e.sku??void 0,price:String(e.price),salePrice:null==e.compareAtPrice?void 0:String(e.compareAtPrice),costPrice:e.inventoryItem.unitCost?.amount,inventoryPolicy:e.inventoryPolicy,inventoryQuantity:e.inventoryQuantity??void 0,manageInventory:e.inventoryItem.tracked,isDigital:!e.inventoryItem.requiresShipping,weight:e.inventoryItem.measurement.weight?.value,platform:"SHOPIFY",selectedOptions:e.selectedOptions.map(({name:e,value:t})=>({name:e,value:t})),mediaId:i?.id??"",media:i}},l=({product:e,variants:t,medias:i})=>({id:r(e.id),baseID:e.id,title:e.title,handle:e.handle,description:e.description,descriptionHtml:e.descriptionHtml,createdAt:e.createdAt,vendor:e.vendor,tags:e.tags,isSample:!1,sku:t[0]?.node.sku??void 0,featuredImage:e.featuredMedia?n(e.featuredMedia):void 0,options:e.options.map(e=>({id:e.id,name:e.name,values:e.optionValues.map(e=>({id:r(e.id),baseID:e.id,label:e.name}))})),variants:{edges:t.map(({cursor:e,node:t})=>({cursor:e,node:s(t)}))},medias:{edges:i.map(({cursor:e,node:t})=>({cursor:e,node:n(t)}))},collections:{edges:e.collections.edges.map(({node:e})=>({node:{id:e.id,handle:e.handle,title:e.title}}))}});export{d as getShopifyProduct};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{animations as e}from"../helpers/animations.js";import"react";import"react/jsx-runtime";import"zustand";import"swr";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"swr/infinite";import"../graphql/queries/productsV2.generated.js";import"vanilla-lazyload";import"./useCartUI.js";import"../graphql/queries/product-value-label.generated.js";import"./useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import"../components/constant.js";import"@gem-sdk/core";import"../helpers/convert.js";import"crc-32";let r=()=>{let{zoom:r,shake:t,fade:i,slide:
|
|
2
|
+
import{animations as e}from"../helpers/animations.js";import"react";import"react/jsx-runtime";import"zustand";import"swr";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"swr/infinite";import"../graphql/queries/productsV2.generated.js";import"vanilla-lazyload";import"./useCartUI.js";import"../graphql/queries/product-value-label.generated.js";import"./useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import"../components/constant.js";import"@gem-sdk/core";import"../graphql-shopify/product-detail.generated.js";import"../graphql-shopify/product-medias.generated.js";import"../graphql-shopify/product-variants.generated.js";import"../helpers/convert.js";import"crc-32";let r=()=>{let{zoom:r,shake:t,fade:i,slide:p}=e();return{zoom:r,shake:t,fade:i,slide:p}};export{r as useAnimations};
|