@gem-sdk/pages 4.0.15 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/SharePageTracking.js +7 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/libs/api/get-collection-share-page-props.js +1 -0
- package/dist/cjs/libs/api/get-preview-content-props.js +1 -0
- package/dist/cjs/libs/api/get-share-page-props.js +1 -0
- package/dist/cjs/libs/fetcher.js +1 -1
- package/dist/cjs/libs/helpers/generate-seo-links.js +1 -1
- package/dist/cjs/libs/helpers/get-fallback.js +1 -1
- package/dist/cjs/pages/preview-template.js +5 -0
- package/dist/esm/components/SharePageTracking.js +7 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/libs/api/get-collection-share-page-props.js +1 -0
- package/dist/esm/libs/api/get-preview-content-props.js +1 -0
- package/dist/esm/libs/api/get-share-page-props.js +1 -0
- package/dist/esm/libs/fetcher.js +1 -1
- package/dist/esm/libs/helpers/generate-seo-links.js +1 -1
- package/dist/esm/libs/helpers/get-fallback.js +1 -1
- package/dist/esm/pages/preview-template.js +5 -0
- package/dist/types/index.d.ts +82 -4
- package/package.json +5 -5
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),navigation=require("next/navigation"),Script=require("next/script");const SharePageTracking=({trackingId:e,params:a})=>{let t=navigation.usePathname(),r=()=>{core.gtag.sharePageView(t,e,a)};return e?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(Script,{strategy:"lazyOnload",onReady:r,src:`https://www.googletagmanager.com/gtag/js?id=${e}`}),jsxRuntime.jsx(Script,{id:"gtag-init",strategy:"lazyOnload",dangerouslySetInnerHTML:{__html:`
|
|
3
|
+
window.dataLayer = window.dataLayer || [];
|
|
4
|
+
function gtag(){dataLayer.push(arguments);}
|
|
5
|
+
gtag('js', new Date());
|
|
6
|
+
gtag('config', '${e}');
|
|
7
|
+
`}})]}):null};exports.SharePageTracking=SharePageTracking;
|
package/dist/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var getCollectionProps=require("./libs/api/get-collection-props.js"),getHomePageProps=require("./libs/api/get-home-page-props.js"),getHomePagePropsV2=require("./libs/api/get-home-page-props-v2.js"),getPreviewProps=require("./libs/api/get-preview-props.js"),getBuilderProps=require("./libs/api/get-builder-props.js"),getProductProps=require("./libs/api/get-product-props.js"),getStaticPagePropsV2=require("./libs/api/get-static-page-props-v2.js"),getPostPurchasePropsPreview=require("./libs/api/get-post-purchase-props-preview.js"),getStaticPagePropsPreview=require("./libs/api/get-static-page-props-preview.js"),fetcher=require("./libs/fetcher.js"),getLayout=require("./libs/get-layout.js"),genCss=require("./libs/helpers/gen-css.js"),useTrackingView=require("./libs/hooks/use-tracking-view.js"),usePagePreview=require("./libs/hooks/usePagePreview.js"),userAgent=require("./libs/helpers/user-agent.js"),normalize=require("./libs/helpers/normalize.js"),getFallback=require("./libs/helpers/get-fallback.js"),common=require("./libs/helpers/common.js"),getStaticPaths=require("./libs/getStaticPaths.js"),genFonts=require("./libs/helpers/gen-fonts.js"),googleFonts=require("./libs/google-fonts.js"),getStorefrontApi=require("./libs/get-storefront-api.js"),ErrorBoundary=require("./components/ErrorBoundary.js"),ErrorFallback=require("./components/ErrorFallback.js"),_404=require("./pages/404.js"),_500=require("./pages/500.js"),GoogleAnalytic=require("./components/GoogleAnalytic.js"),FacebookPixel=require("./components/FacebookPixel.js"),TikTokPixel=require("./components/TikTokPixel.js"),collectionDetail=require("./pages/collection-detail.js"),preview=require("./pages/preview.js"),productDetail=require("./pages/product-detail.js"),_static=require("./pages/static.js"),builder=require("./pages/builder.js"),staticV2=require("./pages/static-v2.js");exports.getCollectionProps=getCollectionProps.getCollectionProps,exports.getHomePageProps=getHomePageProps.getHomePageProps,exports.getHomePagePropsV2=getHomePagePropsV2.getHomePagePropsV2,exports.getPreviewProps=getPreviewProps.getPreviewProps,exports.getBuilderProps=getBuilderProps.getBuilderProps,exports.getProductProps=getProductProps.getProductProps,exports.getStaticPagePropsV2=getStaticPagePropsV2.getStaticPagePropsV2,exports.getPostPurchasePropsPreview=getPostPurchasePropsPreview.getPostPurchasePropsPreview,exports.getStaticPagePropsPreview=getStaticPagePropsPreview.getStaticPagePropsPreview,exports.createAppAPIFetcher=fetcher.createAppAPIFetcher,exports.createFetcher=fetcher.createFetcher,exports.createShopifyFetcher=fetcher.createShopifyFetcher,exports.getLayout=getLayout.getLayout,exports.genCSS=genCss.genCSS,exports.useTrackingView=useTrackingView.useTrackingView,exports.usePagePreview=usePagePreview.usePagePreview,exports.isBot=userAgent.isBot,exports.normalizePageSectionResponseV2=normalize.normalizePageSectionResponseV2,exports.parseBuilderTemplateV2=normalize.parseBuilderTemplateV2,exports.getFallbackV2=getFallback.getFallbackV2,exports.retryWithDelay=common.retryWithDelay,exports.getStaticPaths=getStaticPaths.getStaticPaths,exports.getFontFromGroupSetting=genFonts.getFontFromGroupSetting,exports.getFontsFromDataBuilder=genFonts.getFontsFromDataBuilder,exports.getFontFromGlobalStyle=googleFonts.getFontFromGlobalStyle,exports.getFonts=googleFonts.getFonts,exports.getStorefrontApi=getStorefrontApi.getStorefrontApi,exports.ErrorBoundary=ErrorBoundary.ErrorBoundary,exports.ErrorFallback=ErrorFallback.ErrorFallback,exports.Page404=_404.Page404,exports.Page500=_500.Page500,exports.GoogleAnalytic=GoogleAnalytic.GoogleAnalytic,exports.FacebookPixel=FacebookPixel.FacebookPixel,exports.TikTokPixel=TikTokPixel.TikTokPixel,exports.CollectionDetailPage=collectionDetail.default,exports.PreviewPage=preview.PreviewPage,exports.ProductDetailPage=productDetail.default,exports.StaticPage=_static.default,exports.BuilderPage=builder.BuilderPage,exports.StaticPageV2=staticV2.StaticPageV2;
|
|
1
|
+
"use strict";var getCollectionProps=require("./libs/api/get-collection-props.js"),getCollectionSharePageProps=require("./libs/api/get-collection-share-page-props.js"),getHomePageProps=require("./libs/api/get-home-page-props.js"),getHomePagePropsV2=require("./libs/api/get-home-page-props-v2.js"),getPreviewProps=require("./libs/api/get-preview-props.js"),getBuilderProps=require("./libs/api/get-builder-props.js"),getProductProps=require("./libs/api/get-product-props.js"),getStaticPagePropsV2=require("./libs/api/get-static-page-props-v2.js"),getSharePageProps=require("./libs/api/get-share-page-props.js"),getPostPurchasePropsPreview=require("./libs/api/get-post-purchase-props-preview.js"),getStaticPagePropsPreview=require("./libs/api/get-static-page-props-preview.js"),getPreviewContentProps=require("./libs/api/get-preview-content-props.js"),fetcher=require("./libs/fetcher.js"),getLayout=require("./libs/get-layout.js"),genCss=require("./libs/helpers/gen-css.js"),useTrackingView=require("./libs/hooks/use-tracking-view.js"),usePagePreview=require("./libs/hooks/usePagePreview.js"),userAgent=require("./libs/helpers/user-agent.js"),normalize=require("./libs/helpers/normalize.js"),getFallback=require("./libs/helpers/get-fallback.js"),common=require("./libs/helpers/common.js"),SharePageTracking=require("./components/SharePageTracking.js"),getStaticPaths=require("./libs/getStaticPaths.js"),genFonts=require("./libs/helpers/gen-fonts.js"),googleFonts=require("./libs/google-fonts.js"),getStorefrontApi=require("./libs/get-storefront-api.js"),ErrorBoundary=require("./components/ErrorBoundary.js"),ErrorFallback=require("./components/ErrorFallback.js"),_404=require("./pages/404.js"),_500=require("./pages/500.js"),GoogleAnalytic=require("./components/GoogleAnalytic.js"),FacebookPixel=require("./components/FacebookPixel.js"),TikTokPixel=require("./components/TikTokPixel.js"),collectionDetail=require("./pages/collection-detail.js"),preview=require("./pages/preview.js"),productDetail=require("./pages/product-detail.js"),_static=require("./pages/static.js"),builder=require("./pages/builder.js"),staticV2=require("./pages/static-v2.js"),previewTemplate=require("./pages/preview-template.js");exports.getCollectionProps=getCollectionProps.getCollectionProps,exports.getCollectionSharePageProps=getCollectionSharePageProps.getCollectionSharePageProps,exports.getHomePageProps=getHomePageProps.getHomePageProps,exports.getHomePagePropsV2=getHomePagePropsV2.getHomePagePropsV2,exports.getPreviewProps=getPreviewProps.getPreviewProps,exports.getBuilderProps=getBuilderProps.getBuilderProps,exports.getProductProps=getProductProps.getProductProps,exports.getStaticPagePropsV2=getStaticPagePropsV2.getStaticPagePropsV2,exports.getSharePageProps=getSharePageProps.getSharePageProps,exports.getPostPurchasePropsPreview=getPostPurchasePropsPreview.getPostPurchasePropsPreview,exports.getStaticPagePropsPreview=getStaticPagePropsPreview.getStaticPagePropsPreview,exports.getSharePageContentProps=getPreviewContentProps.getSharePageContentProps,exports.createAppAPIFetcher=fetcher.createAppAPIFetcher,exports.createFetcher=fetcher.createFetcher,exports.createShopifyFetcher=fetcher.createShopifyFetcher,exports.createTemplateFetcher=fetcher.createTemplateFetcher,exports.getLayout=getLayout.getLayout,exports.genCSS=genCss.genCSS,exports.useTrackingView=useTrackingView.useTrackingView,exports.usePagePreview=usePagePreview.usePagePreview,exports.isBot=userAgent.isBot,exports.normalizePageSectionResponseV2=normalize.normalizePageSectionResponseV2,exports.parseBuilderTemplateV2=normalize.parseBuilderTemplateV2,exports.getFallbackV2=getFallback.getFallbackV2,exports.retryWithDelay=common.retryWithDelay,exports.SharePageTracking=SharePageTracking.SharePageTracking,exports.getStaticPaths=getStaticPaths.getStaticPaths,exports.getFontFromGroupSetting=genFonts.getFontFromGroupSetting,exports.getFontsFromDataBuilder=genFonts.getFontsFromDataBuilder,exports.getFontFromGlobalStyle=googleFonts.getFontFromGlobalStyle,exports.getFonts=googleFonts.getFonts,exports.getStorefrontApi=getStorefrontApi.getStorefrontApi,exports.ErrorBoundary=ErrorBoundary.ErrorBoundary,exports.ErrorFallback=ErrorFallback.ErrorFallback,exports.Page404=_404.Page404,exports.Page500=_500.Page500,exports.GoogleAnalytic=GoogleAnalytic.GoogleAnalytic,exports.FacebookPixel=FacebookPixel.FacebookPixel,exports.TikTokPixel=TikTokPixel.TikTokPixel,exports.CollectionDetailPage=collectionDetail.default,exports.PreviewPage=preview.PreviewPage,exports.ProductDetailPage=productDetail.default,exports.StaticPage=_static.default,exports.BuilderPage=builder.BuilderPage,exports.StaticPageV2=staticV2.StaticPageV2,exports.PreviewTemplate=previewTemplate.PreviewTemplate;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var core=require("@gem-sdk/core"),parseJson=require("../helpers/parse-json.js");const getCollectionSharePageProps=e=>async o=>{let r={first:1,orderBy:{direction:"DESC",field:"UPDATED_AT"},where:{isSample:!1,baseID:o||void 0}},[s]=await Promise.all([e([core.CollectionsDocument,r])]);if(!s||!s?.collections?.edges?.[0]?.node)throw Error("Collection not found");let l=s?.collections?.edges?.[0]?.node;return parseJson.serializableJson({collection:l})};exports.getCollectionSharePageProps=getCollectionSharePageProps;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var core=require("@gem-sdk/core"),nextjs=require("@sentry/nextjs"),customFonts=require("../custom-fonts.js"),googleFonts=require("../google-fonts.js"),genCss=require("../helpers/gen-css.js"),normalize=require("../helpers/normalize.js"),parseJson=require("../helpers/parse-json.js"),fetcher=require("../fetcher.js"),getCollectionSharePageProps=require("./get-collection-share-page-props.js");const getSharePageContentProps=e=>async t=>{try{let{sharedPage:l,customFonts:o,publicToken:r}=await e([t]);if(!l||!r)return null;let{page:s,themeStyle:n,pageMeta:a,shopMeta:u,moneyFormat:c,moneyWithCurrencyFormat:i}=l,{sectionPosition:p}=s??{},g=normalize.parseBuilderTemplateV2({...l,sectionPosition:p}),P=null,d=null,f=null;if(s?.type==="GP_COLLECTION"){let e=(a??[]).find(e=>"selected_preview_collection"===e.key)?.value,t=e?JSON.parse(e??{}):null;d=t?.collectionId,f=t?.collectionTitle}let C=null;if(s?.type==="GP_PRODUCT"){let e=(a??[]).find(e=>"selected_preview_product"===e.key)?.value;C=e?JSON.parse(e??{}):null}let[h,m,y,S,F]=await Promise.allSettled([googleFonts.getFontStyleFromPageTemplate(g),googleFonts.getFontFromGlobalStyle(n?.data),customFonts.getCustomFonts(o),fetcher.createFetcher(r)([core.StorePropertyDocument]),s?.type==="GP_COLLECTION"?getCollectionSharePageProps.getCollectionSharePageProps(fetcher.createFetcher(r))(d??void 0):null]);P="fulfilled"===F.status?F.value?.collection:null;let v="fulfilled"===h.status?h.value:null,_="fulfilled"===m.status?m.value:null,j="fulfilled"===y.status?y.value:null,O="fulfilled"===S.status?S.value:void 0;return parseJson.serializableJson({builderData:g,page:s,themeStyle:genCss.genCSS(n?.data,!1),pageMeta:a,shopMeta:u,elementFontStyle:v,fontStyle:_,customFonts:j,publicStoreFrontData:r?{token:r,endpoint:process.env.NEXT_PUBLIC_API_URL??""}:null,pageType:s?.type,moneyFormat:c,moneyWithCurrencyFormat:i,swatches:parseJson.parseJson(O?.storeProperty?.swatchesConfig),collection:P,dynamicCollection:s?.type==="GP_COLLECTION"?{collectionId:P?.baseID,collectionTitle:f}:null,dynamicProduct:s?.type==="GP_PRODUCT"?C:null})}catch(e){return nextjs.captureException(e),null}};exports.getSharePageContentProps=getSharePageContentProps;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var nextjs=require("@sentry/nextjs"),parseJson=require("../helpers/parse-json.js");const getSharePageProps=e=>async t=>{try{let{sharedPage:r,publicToken:a}=await e([t]);if(!r||!a)return null;let{share:s,shopMeta:n,page:l,pageMeta:i}=r,o=s?.thumbnails?Array.isArray(s.thumbnails)?s.thumbnails.map(e=>({url:e})):"string"==typeof s.thumbnails?[{url:s.thumbnails}]:[]:[],u={defaultTitle:n?.shop?.name??"",title:s?.title,openGraph:{site_name:n?.shop?.name??"",locale:n?.localization?.country?.isoCode??"",title:s?.title??n?.shop?.name??"",images:o},nofollow:!0,noindex:!0};return parseJson.serializableJson({seo:u,share:s,page:l,pageMeta:i})}catch(e){return nextjs.captureException(e),null}};exports.getSharePageProps=getSharePageProps;
|
package/dist/cjs/libs/fetcher.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var getStorefrontApi=require("./get-storefront-api.js"),extractOperation=require("./helpers/extract-operation.js");const createFetcher=e=>{let r=e||process.env.NEXT_PUBLIC_SHOP_TOKEN;return async e=>{let[t,o,n]=e;if(!r)throw Error("shopToken is not defined");let
|
|
1
|
+
"use strict";var getStorefrontApi=require("./get-storefront-api.js"),extractOperation=require("./helpers/extract-operation.js");const createFetcher=e=>{let r=e||process.env.NEXT_PUBLIC_SHOP_TOKEN;return async e=>{let[t,o,n]=e;if(!r)throw Error("shopToken is not defined");let s=process.env.NEXT_PUBLIC_API_URL;if(!s)throw Error("NEXT_PUBLIC_API_URL is not defined");let i=extractOperation.extractOperation(t);i&&(s=`${s}?gp-online-store-operation=${i}`);let a={"Content-Type":"application/json","X-GemX-Shop-Token":r};return fetch(s,{method:"POST",headers:a,body:JSON.stringify({query:t,variables:o,operationName:n})}).then(e=>e.json()).then(e=>e.errors?Promise.reject(e.errors):e.data)}},createAppAPIFetcher=(e,r)=>{let t=process.env.NEXT_APP_API_URL;return async o=>{let[n,s,i]=o;if(!e)throw Error("shopToken is not defined");if(!t)throw Error("NEXT_APP_API_URL is not defined");let a=extractOperation.extractOperation(n);a&&(t=`${t}?gp-online-store-operation=${a}`);let c={"Content-Type":"application/json",Authorization:`Token ${e}`,"X-GemX-Shop-ID":r||""};return fetch(`${t}?gp-online-store-operation=${i}`,{method:"POST",headers:c,body:JSON.stringify({query:n,variables:s,operationName:i})}).then(e=>e.json()).then(e=>e.errors?Promise.reject(e.errors):e.data)}},createShopifyFetcher=(e,r)=>{let t=e??process.env.NEXT_PUBLIC_STOREFRONT_TOKEN,o=r??process.env.NEXT_PUBLIC_STOREFRONT_HANDLE;return async e=>{if(!t)throw Error("NEXT_PUBLIC_STOREFRONT_TOKEN is not defined");if(!o)throw Error("NEXT_PUBLIC_STOREFRONT_HANDLE is not defined");let r={"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":t},[n,s]=e;return fetch(getStorefrontApi.getStorefrontApi(o),{method:"POST",headers:r,body:JSON.stringify({query:n,variables:s})}).then(e=>e.json()).then(e=>e.errors?Promise.reject(e.errors):e.data)}},createTemplateFetcher=e=>{let r=process.env.NEXT_PUBLIC_URL_SHARE_PAGE;return async()=>{if(!r)throw Error("NEXT_PUBLIC_URL_SHARE_PAGE is not defined");try{let t=await fetch(`${r}/share/page/${e}`,{method:"GET"});if(!t.ok)throw Error(`HTTP error! status: ${t.status}`);let o=await t.json();if(o.errors)throw Error(`API errors: ${JSON.stringify(o.errors)}`);return o.result}catch(e){throw console.error("Template fetcher error:",e),e}}};exports.createAppAPIFetcher=createAppAPIFetcher,exports.createFetcher=createFetcher,exports.createShopifyFetcher=createShopifyFetcher,exports.createTemplateFetcher=createTemplateFetcher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var genFavicon=require("./gen-favicon.js")
|
|
1
|
+
"use strict";var genFavicon=require("./gen-favicon.js");const generateFaviconLinks=e=>[{rel:"icon",sizes:"32x32",href:genFavicon.genResizeFaviconUrl(e,32)},{rel:"icon",sizes:"16x16",href:genFavicon.genResizeFaviconUrl(e,16)},{rel:"apple-touch-icon",sizes:"180x180",href:genFavicon.genResizeFaviconUrl(e,180)}],generateSeoLinks=({favicon:e})=>[...generateFaviconLinks(e)];exports.generateFaviconLinks=generateFaviconLinks,exports.generateSeoLinks=generateSeoLinks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var core=require("@gem-sdk/core");const getFallbackV2=async(e,t,a=!0)=>{let r
|
|
1
|
+
"use strict";var core=require("@gem-sdk/core");const getFallbackV2=async(e,t,a=!0,r=!1)=>{let l=!r&&!!a&&!process.env.NEXT_PUBLIC_STOREFRONT_TOKEN,c=t.map(e=>core.prefetchQueries(e.data,{isSample:l,isStorefront:a})).flat(),s=await Promise.allSettled(c.map(({query:t,variables:a,func:r})=>r?r(e,a):t?e([t,a]):{})),u=c.reduce((e,{key:t},a)=>{let r=s[a];return r?.status==="fulfilled"?{...e,[t]:r.value}:e},{});return u};exports.getFallbackV2=getFallbackV2;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),Head=require("next/head"),router=require("next/router"),parseHtml=require("../libs/parse-html.js"),react=require("react"),dynamic=require("next/dynamic");const PreviewTemplate=({components:e,builderData:t,sectionData:s,themeStyle:r,fontStyle:n,elementFontStyle:a,customCodeHeader:i,customFonts:l,pageBackground:c,publicStoreFrontData:o,page:u,collection:d,dynamicCollection:m,dynamicProduct:g})=>{let{disableExternalLinks:x}=core.usePreviewSharePage(),p=router.useRouter(),{t:j}=core.useI18n(),h="custom-code-header",y=dynamic(()=>import("@gem-sdk/core").then(e=>e.CollectionProvider)),R=u?.type==="GP_COLLECTION"?y:react.Fragment;return(react.useEffect(()=>{let e=document.querySelectorAll(`[class*="${h}-"]`),t=[];e.length>1&&e.forEach(e=>{let s=e.className;if(t.includes(s)){e.remove();return}t.push(s)})},[]),react.useEffect(()=>{x()},[x]),p.isFallback)?jsxRuntime.jsx("div",{className:"gp-flex gp-h-[100vh] gp-items-center gp-justify-center",children:jsxRuntime.jsxs("div",{className:"gp-flex gp-gap-2",children:[jsxRuntime.jsx("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_alternate] gp-rounded-full gp-bg-slate-800"}),jsxRuntime.jsx("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_200ms_linear_alternate] gp-rounded-full gp-bg-slate-800"}),jsxRuntime.jsx("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_500ms_alternate] gp-rounded-full gp-bg-slate-800"})]})}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs(Head,{children:[parseHtml.parseHtml(h,i,!0),r&&jsxRuntime.jsx("style",{"data-id":"global-style",type:"text/css",dangerouslySetInnerHTML:{__html:r}},"global-style"),n&&jsxRuntime.jsx("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:n}},"google-fonts"),a&&a.map(e=>jsxRuntime.jsx("style",{"data-id":"google-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:e}},e)),l&&jsxRuntime.jsx("style",{"data-id":"custom-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:l}},n),c?.isUsePageBackground&&c?.background&&jsxRuntime.jsx("style",{children:`
|
|
2
|
+
body {
|
|
3
|
+
background: ${c.background};
|
|
4
|
+
}
|
|
5
|
+
`},`page_background_${c?.background}`)]}),jsxRuntime.jsx(core.PageProvider,{publicStoreFrontData:o,dynamicCollection:m,dynamicProduct:g,children:jsxRuntime.jsx(R,{collection:d,children:jsxRuntime.jsx(core.BuilderComponentProvider,{components:e,children:jsxRuntime.jsx("div",{id:"storefront","data-page-name":u?.name,"data-assigned-product-title":g?.productTitle,"data-assigned-collection-title":m?.collectionTitle,children:jsxRuntime.jsx(core.SectionProvider,{data:s,children:jsxRuntime.jsx(core.I18nProvider,{t:j,children:t?.map(e=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsx(core.BuilderProvider,{state:e.data,lazy:e.lazy,priority:e.priority,isPreview:!0,children:jsxRuntime.jsx(core.Render,{uid:e.uid})},e.uid)}))})})})})})})]})};exports.PreviewTemplate=PreviewTemplate;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import{jsxs as a,Fragment as t,jsx as e}from"react/jsx-runtime";import{gtag as r}from"@gem-sdk/core";import{usePathname as g}from"next/navigation";import n from"next/script";let SharePageTracking=({trackingId:o,params:i})=>{let m=g(),d=()=>{r.sharePageView(m,o,i)};return o?a(t,{children:[e(n,{strategy:"lazyOnload",onReady:d,src:`https://www.googletagmanager.com/gtag/js?id=${o}`}),e(n,{id:"gtag-init",strategy:"lazyOnload",dangerouslySetInnerHTML:{__html:`
|
|
3
|
+
window.dataLayer = window.dataLayer || [];
|
|
4
|
+
function gtag(){dataLayer.push(arguments);}
|
|
5
|
+
gtag('js', new Date());
|
|
6
|
+
gtag('config', '${o}');
|
|
7
|
+
`}})]}):null};export{SharePageTracking};
|
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{getCollectionProps}from"./libs/api/get-collection-props.js";export{getHomePageProps}from"./libs/api/get-home-page-props.js";export{getHomePagePropsV2}from"./libs/api/get-home-page-props-v2.js";export{getPreviewProps}from"./libs/api/get-preview-props.js";export{getBuilderProps}from"./libs/api/get-builder-props.js";export{getProductProps}from"./libs/api/get-product-props.js";export{getStaticPagePropsV2}from"./libs/api/get-static-page-props-v2.js";export{getPostPurchasePropsPreview}from"./libs/api/get-post-purchase-props-preview.js";export{getStaticPagePropsPreview}from"./libs/api/get-static-page-props-preview.js";export{createAppAPIFetcher,createFetcher,createShopifyFetcher}from"./libs/fetcher.js";export{getLayout}from"./libs/get-layout.js";export{genCSS}from"./libs/helpers/gen-css.js";export{useTrackingView}from"./libs/hooks/use-tracking-view.js";export{usePagePreview}from"./libs/hooks/usePagePreview.js";export{isBot}from"./libs/helpers/user-agent.js";export{normalizePageSectionResponseV2,parseBuilderTemplateV2}from"./libs/helpers/normalize.js";export{getFallbackV2}from"./libs/helpers/get-fallback.js";export{retryWithDelay}from"./libs/helpers/common.js";export{getStaticPaths}from"./libs/getStaticPaths.js";export{getFontFromGroupSetting,getFontsFromDataBuilder}from"./libs/helpers/gen-fonts.js";export{getFontFromGlobalStyle,getFonts}from"./libs/google-fonts.js";export{getStorefrontApi}from"./libs/get-storefront-api.js";export{ErrorBoundary}from"./components/ErrorBoundary.js";export{ErrorFallback}from"./components/ErrorFallback.js";export{Page404}from"./pages/404.js";export{Page500}from"./pages/500.js";export{GoogleAnalytic}from"./components/GoogleAnalytic.js";export{FacebookPixel}from"./components/FacebookPixel.js";export{TikTokPixel}from"./components/TikTokPixel.js";export{default as CollectionDetailPage}from"./pages/collection-detail.js";export{PreviewPage}from"./pages/preview.js";export{default as ProductDetailPage}from"./pages/product-detail.js";export{default as StaticPage}from"./pages/static.js";export{BuilderPage}from"./pages/builder.js";export{StaticPageV2}from"./pages/static-v2.js";
|
|
1
|
+
export{getCollectionProps}from"./libs/api/get-collection-props.js";export{getCollectionSharePageProps}from"./libs/api/get-collection-share-page-props.js";export{getHomePageProps}from"./libs/api/get-home-page-props.js";export{getHomePagePropsV2}from"./libs/api/get-home-page-props-v2.js";export{getPreviewProps}from"./libs/api/get-preview-props.js";export{getBuilderProps}from"./libs/api/get-builder-props.js";export{getProductProps}from"./libs/api/get-product-props.js";export{getStaticPagePropsV2}from"./libs/api/get-static-page-props-v2.js";export{getSharePageProps}from"./libs/api/get-share-page-props.js";export{getPostPurchasePropsPreview}from"./libs/api/get-post-purchase-props-preview.js";export{getStaticPagePropsPreview}from"./libs/api/get-static-page-props-preview.js";export{getSharePageContentProps}from"./libs/api/get-preview-content-props.js";export{createAppAPIFetcher,createFetcher,createShopifyFetcher,createTemplateFetcher}from"./libs/fetcher.js";export{getLayout}from"./libs/get-layout.js";export{genCSS}from"./libs/helpers/gen-css.js";export{useTrackingView}from"./libs/hooks/use-tracking-view.js";export{usePagePreview}from"./libs/hooks/usePagePreview.js";export{isBot}from"./libs/helpers/user-agent.js";export{normalizePageSectionResponseV2,parseBuilderTemplateV2}from"./libs/helpers/normalize.js";export{getFallbackV2}from"./libs/helpers/get-fallback.js";export{retryWithDelay}from"./libs/helpers/common.js";export{SharePageTracking}from"./components/SharePageTracking.js";export{getStaticPaths}from"./libs/getStaticPaths.js";export{getFontFromGroupSetting,getFontsFromDataBuilder}from"./libs/helpers/gen-fonts.js";export{getFontFromGlobalStyle,getFonts}from"./libs/google-fonts.js";export{getStorefrontApi}from"./libs/get-storefront-api.js";export{ErrorBoundary}from"./components/ErrorBoundary.js";export{ErrorFallback}from"./components/ErrorFallback.js";export{Page404}from"./pages/404.js";export{Page500}from"./pages/500.js";export{GoogleAnalytic}from"./components/GoogleAnalytic.js";export{FacebookPixel}from"./components/FacebookPixel.js";export{TikTokPixel}from"./components/TikTokPixel.js";export{default as CollectionDetailPage}from"./pages/collection-detail.js";export{PreviewPage}from"./pages/preview.js";export{default as ProductDetailPage}from"./pages/product-detail.js";export{default as StaticPage}from"./pages/static.js";export{BuilderPage}from"./pages/builder.js";export{StaticPageV2}from"./pages/static-v2.js";export{PreviewTemplate}from"./pages/preview-template.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{CollectionsDocument as e}from"@gem-sdk/core";import{serializableJson as o}from"../helpers/parse-json.js";let getCollectionSharePageProps=r=>async t=>{let l={first:1,orderBy:{direction:"DESC",field:"UPDATED_AT"},where:{isSample:!1,baseID:t||void 0}},[i]=await Promise.all([r([e,l])]);if(!i||!i?.collections?.edges?.[0]?.node)throw Error("Collection not found");let s=i?.collections?.edges?.[0]?.node;return o({collection:s})};export{getCollectionSharePageProps};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{StorePropertyDocument as e}from"@gem-sdk/core";import{captureException as l}from"@sentry/nextjs";import{getCustomFonts as t}from"../custom-fonts.js";import{getFontStyleFromPageTemplate as o,getFontFromGlobalStyle as r}from"../google-fonts.js";import{genCSS as s}from"../helpers/gen-css.js";import{parseBuilderTemplateV2 as n}from"../helpers/normalize.js";import{serializableJson as a,parseJson as u}from"../helpers/parse-json.js";import{createFetcher as i}from"../fetcher.js";import{getCollectionSharePageProps as p}from"./get-collection-share-page-props.js";let getSharePageContentProps=c=>async f=>{try{let{sharedPage:l,customFonts:m,publicToken:d}=await c([f]);if(!l||!d)return null;let{page:y,themeStyle:P,pageMeta:C,shopMeta:g,moneyFormat:v,moneyWithCurrencyFormat:_}=l,{sectionPosition:h}=y??{},O=n({...l,sectionPosition:h}),j=null,I=null,L=null;if(y?.type==="GP_COLLECTION"){let e=(C??[]).find(e=>"selected_preview_collection"===e.key)?.value,l=e?JSON.parse(e??{}):null;I=l?.collectionId,L=l?.collectionTitle}let T=null;if(y?.type==="GP_PRODUCT"){let e=(C??[]).find(e=>"selected_preview_product"===e.key)?.value;T=e?JSON.parse(e??{}):null}let[S,w,N,D,G]=await Promise.allSettled([o(O),r(P?.data),t(m),i(d)([e]),y?.type==="GP_COLLECTION"?p(i(d))(I??void 0):null]);j="fulfilled"===G.status?G.value?.collection:null;let k="fulfilled"===S.status?S.value:null,E="fulfilled"===w.status?w.value:null,U="fulfilled"===N.status?N.value:null,b="fulfilled"===D.status?D.value:void 0;return a({builderData:O,page:y,themeStyle:s(P?.data,!1),pageMeta:C,shopMeta:g,elementFontStyle:k,fontStyle:E,customFonts:U,publicStoreFrontData:d?{token:d,endpoint:process.env.NEXT_PUBLIC_API_URL??""}:null,pageType:y?.type,moneyFormat:v,moneyWithCurrencyFormat:_,swatches:u(b?.storeProperty?.swatchesConfig),collection:j,dynamicCollection:y?.type==="GP_COLLECTION"?{collectionId:j?.baseID,collectionTitle:L}:null,dynamicProduct:y?.type==="GP_PRODUCT"?T:null})}catch(e){return l(e),null}};export{getSharePageContentProps};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{captureException as t}from"@sentry/nextjs";import{serializableJson as e}from"../helpers/parse-json.js";let getSharePageProps=r=>async a=>{try{let{sharedPage:t,publicToken:l}=await r([a]);if(!t||!l)return null;let{share:n,shopMeta:o,page:i,pageMeta:s}=t,m=n?.thumbnails?Array.isArray(n.thumbnails)?n.thumbnails.map(t=>({url:t})):"string"==typeof n.thumbnails?[{url:n.thumbnails}]:[]:[],p={defaultTitle:o?.shop?.name??"",title:n?.title,openGraph:{site_name:o?.shop?.name??"",locale:o?.localization?.country?.isoCode??"",title:n?.title??o?.shop?.name??"",images:m},nofollow:!0,noindex:!0};return e({seo:p,share:n,page:i,pageMeta:s})}catch(e){return t(e),null}};export{getSharePageProps};
|
package/dist/esm/libs/fetcher.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getStorefrontApi as e}from"./get-storefront-api.js";import{extractOperation as r}from"./helpers/extract-operation.js";let createFetcher=e=>{let t=e||process.env.NEXT_PUBLIC_SHOP_TOKEN;return async e=>{let[o,n,
|
|
1
|
+
import{getStorefrontApi as e}from"./get-storefront-api.js";import{extractOperation as r}from"./helpers/extract-operation.js";let createFetcher=e=>{let t=e||process.env.NEXT_PUBLIC_SHOP_TOKEN;return async e=>{let[o,n,s]=e;if(!t)throw Error("shopToken is not defined");let i=process.env.NEXT_PUBLIC_API_URL;if(!i)throw Error("NEXT_PUBLIC_API_URL is not defined");let h=r(o);h&&(i=`${i}?gp-online-store-operation=${h}`);let a={"Content-Type":"application/json","X-GemX-Shop-Token":t};return fetch(i,{method:"POST",headers:a,body:JSON.stringify({query:o,variables:n,operationName:s})}).then(e=>e.json()).then(e=>e.errors?Promise.reject(e.errors):e.data)}},createAppAPIFetcher=(e,t)=>{let o=process.env.NEXT_APP_API_URL;return async n=>{let[s,i,h]=n;if(!e)throw Error("shopToken is not defined");if(!o)throw Error("NEXT_APP_API_URL is not defined");let a=r(s);a&&(o=`${o}?gp-online-store-operation=${a}`);let c={"Content-Type":"application/json",Authorization:`Token ${e}`,"X-GemX-Shop-ID":t||""};return fetch(`${o}?gp-online-store-operation=${h}`,{method:"POST",headers:c,body:JSON.stringify({query:s,variables:i,operationName:h})}).then(e=>e.json()).then(e=>e.errors?Promise.reject(e.errors):e.data)}},createShopifyFetcher=(r,t)=>{let o=r??process.env.NEXT_PUBLIC_STOREFRONT_TOKEN,n=t??process.env.NEXT_PUBLIC_STOREFRONT_HANDLE;return async r=>{if(!o)throw Error("NEXT_PUBLIC_STOREFRONT_TOKEN is not defined");if(!n)throw Error("NEXT_PUBLIC_STOREFRONT_HANDLE is not defined");let t={"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":o},[s,i]=r;return fetch(e(n),{method:"POST",headers:t,body:JSON.stringify({query:s,variables:i})}).then(e=>e.json()).then(e=>e.errors?Promise.reject(e.errors):e.data)}},createTemplateFetcher=e=>{let r=process.env.NEXT_PUBLIC_URL_SHARE_PAGE;return async()=>{if(!r)throw Error("NEXT_PUBLIC_URL_SHARE_PAGE is not defined");try{let t=await fetch(`${r}/share/page/${e}`,{method:"GET"});if(!t.ok)throw Error(`HTTP error! status: ${t.status}`);let o=await t.json();if(o.errors)throw Error(`API errors: ${JSON.stringify(o.errors)}`);return o.result}catch(e){throw console.error("Template fetcher error:",e),e}}};export{createAppAPIFetcher,createFetcher,createShopifyFetcher,createTemplateFetcher};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{genResizeFaviconUrl as e}from"./gen-favicon.js";
|
|
1
|
+
import{genResizeFaviconUrl as e}from"./gen-favicon.js";let generateFaviconLinks=n=>[{rel:"icon",sizes:"32x32",href:e(n,32)},{rel:"icon",sizes:"16x16",href:e(n,16)},{rel:"apple-touch-icon",sizes:"180x180",href:e(n,180)}],generateSeoLinks=({favicon:e})=>[...generateFaviconLinks(e)];export{generateFaviconLinks,generateSeoLinks};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{prefetchQueries as e}from"@gem-sdk/core";let getFallbackV2=async(t,a,l=!0)=>{let r
|
|
1
|
+
import{prefetchQueries as e}from"@gem-sdk/core";let getFallbackV2=async(t,a,l=!0,r=!1)=>{let s=!r&&!!l&&!process.env.NEXT_PUBLIC_STOREFRONT_TOKEN,c=a.map(t=>e(t.data,{isSample:s,isStorefront:l})).flat(),m=await Promise.allSettled(c.map(({query:e,variables:a,func:l})=>l?l(t,a):e?t([e,a]):{})),o=c.reduce((e,{key:t},a)=>{let l=m[a];return l?.status==="fulfilled"?{...e,[t]:l.value}:e},{});return o};export{getFallbackV2};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as a}from"react/jsx-runtime";import{usePreviewSharePage as l,useI18n as r,PageProvider as n,BuilderComponentProvider as s,SectionProvider as i,I18nProvider as o,BuilderProvider as d,Render as c}from"@gem-sdk/core";import p from"next/head";import{useRouter as g}from"next/router";import{parseHtml as m}from"../libs/parse-html.js";import{useEffect as u,Fragment as h}from"react";import f from"next/dynamic";let PreviewTemplate=({components:y,builderData:_,sectionData:b,themeStyle:x,fontStyle:k,elementFontStyle:v,customCodeHeader:T,customFonts:N,pageBackground:P,publicStoreFrontData:L,page:S,collection:I,dynamicCollection:q,dynamicProduct:C})=>{let{disableExternalLinks:H}=l(),M=g(),{t:j}=r(),w="custom-code-header",F=f(()=>import("@gem-sdk/core").then(e=>e.CollectionProvider)),$=S?.type==="GP_COLLECTION"?F:h;return(u(()=>{let e=document.querySelectorAll(`[class*="${w}-"]`),t=[];e.length>1&&e.forEach(e=>{let a=e.className;if(t.includes(a)){e.remove();return}t.push(a)})},[]),u(()=>{H()},[H]),M.isFallback)?e("div",{className:"gp-flex gp-h-[100vh] gp-items-center gp-justify-center",children:t("div",{className:"gp-flex gp-gap-2",children:[e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_alternate] gp-rounded-full gp-bg-slate-800"}),e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_200ms_linear_alternate] gp-rounded-full gp-bg-slate-800"}),e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_500ms_alternate] gp-rounded-full gp-bg-slate-800"})]})}):t(a,{children:[t(p,{children:[m(w,T,!0),x&&e("style",{"data-id":"global-style",type:"text/css",dangerouslySetInnerHTML:{__html:x}},"global-style"),k&&e("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:k}},"google-fonts"),v&&v.map(t=>e("style",{"data-id":"google-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:t}},t)),N&&e("style",{"data-id":"custom-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:N}},k),P?.isUsePageBackground&&P?.background&&e("style",{children:`
|
|
2
|
+
body {
|
|
3
|
+
background: ${P.background};
|
|
4
|
+
}
|
|
5
|
+
`},`page_background_${P?.background}`)]}),e(n,{publicStoreFrontData:L,dynamicCollection:q,dynamicProduct:C,children:e($,{collection:I,children:e(s,{components:y,children:e("div",{id:"storefront","data-page-name":S?.name,"data-assigned-product-title":C?.productTitle,"data-assigned-collection-title":q?.collectionTitle,children:e(i,{data:b,children:e(o,{t:j,children:_?.map(t=>e(a,{children:e(d,{state:t.data,lazy:t.lazy,priority:t.priority,isPreview:!0,children:e(c,{uid:t.uid})},t.uid)}))})})})})})})]})};export{PreviewTemplate};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -57,6 +57,15 @@ type PageBuilderPropsV2 = {
|
|
|
57
57
|
} & Omit<PageBuilderProps, 'builderData'>;
|
|
58
58
|
type AdditionalPageBuilderProps = {
|
|
59
59
|
components: Record<string, React__default.ComponentType<any>>;
|
|
60
|
+
collection?: any;
|
|
61
|
+
dynamicCollection?: {
|
|
62
|
+
collectionId?: string;
|
|
63
|
+
collectionTitle?: string;
|
|
64
|
+
};
|
|
65
|
+
dynamicProduct?: {
|
|
66
|
+
productId?: string;
|
|
67
|
+
productTitle?: string;
|
|
68
|
+
};
|
|
60
69
|
};
|
|
61
70
|
type NextPageWithLayout<P = PageBuilderProps, IP = P> = NextPage<P, IP> & {
|
|
62
71
|
getLayout?: (page: React__default.ReactElement, pageProps?: any) => React__default.ReactNode;
|
|
@@ -102,22 +111,77 @@ type StaticPagePropsV2 = PageBuilderPropsV2 & {
|
|
|
102
111
|
isPreview?: boolean;
|
|
103
112
|
domain?: string;
|
|
104
113
|
};
|
|
114
|
+
type SharePageAPIResponse = {
|
|
115
|
+
sharedPage: SharePageProps;
|
|
116
|
+
customFonts: ShopType.CustomFont[];
|
|
117
|
+
publicToken?: string;
|
|
118
|
+
};
|
|
119
|
+
type SharePageType = {
|
|
120
|
+
designerName?: string | null;
|
|
121
|
+
id: string;
|
|
122
|
+
thumbnails?: string[] | null;
|
|
123
|
+
title: string;
|
|
124
|
+
};
|
|
125
|
+
type SharePageProps = PageBuilderPropsV2 & {
|
|
126
|
+
publicStoreFrontData?: PublicStoreFrontData | null;
|
|
127
|
+
seo?: NextSeoProps;
|
|
128
|
+
builderData?: {
|
|
129
|
+
uid: string;
|
|
130
|
+
lazy?: boolean;
|
|
131
|
+
priority?: boolean;
|
|
132
|
+
data: BuilderState;
|
|
133
|
+
}[];
|
|
134
|
+
page?: {
|
|
135
|
+
id: string;
|
|
136
|
+
name?: string;
|
|
137
|
+
sectionPosition?: string[];
|
|
138
|
+
type?: string;
|
|
139
|
+
shopID?: string;
|
|
140
|
+
};
|
|
141
|
+
themeStyle?: any;
|
|
142
|
+
share?: SharePageType;
|
|
143
|
+
pageSections?: {
|
|
144
|
+
id: BigInt;
|
|
145
|
+
themePageID: BigInt;
|
|
146
|
+
shopID: BigInt;
|
|
147
|
+
cid: string;
|
|
148
|
+
name: string;
|
|
149
|
+
component: any;
|
|
150
|
+
};
|
|
151
|
+
pageMeta?: {
|
|
152
|
+
id: string;
|
|
153
|
+
themePageID: string;
|
|
154
|
+
key: string;
|
|
155
|
+
value: string;
|
|
156
|
+
}[];
|
|
157
|
+
shopMeta?: any;
|
|
158
|
+
pageType?: ShopType.PublishedThemePageType;
|
|
159
|
+
moneyFormat?: string | null;
|
|
160
|
+
moneyWithCurrencyFormat?: string | null;
|
|
161
|
+
trackingId?: string | null;
|
|
162
|
+
};
|
|
105
163
|
|
|
106
164
|
declare const getCollectionProps: (fetcher: FetchFunc) => (handle?: string) => Promise<CollectionDetailPageProps>;
|
|
107
165
|
|
|
166
|
+
declare const getCollectionSharePageProps: (fetcher: FetchFunc) => (baseId?: string) => Promise<{
|
|
167
|
+
collection: any;
|
|
168
|
+
}>;
|
|
169
|
+
|
|
108
170
|
declare const getHomePageProps: (fetcher: FetchFunc, shopifyFetcher: FetchFunc) => () => Promise<PageBuilderProps>;
|
|
109
171
|
|
|
110
172
|
declare const getHomePagePropsV2: (fetcher: FetchFunc, shopifyFetcher: FetchFunc) => () => Promise<PageBuilderPropsV2>;
|
|
111
173
|
|
|
112
174
|
declare const getPreviewProps: (fetcher: FetchFunc, shopifyFetcher: FetchFunc) => (pageType: ShopType.PublishedThemePageType, slug?: string) => Promise<PageBuilderProps>;
|
|
113
175
|
|
|
114
|
-
type Props$
|
|
115
|
-
declare const getBuilderProps: (fetcher: FetchFunc, shopifyFetcher: FetchFunc) => Promise<Props$
|
|
176
|
+
type Props$5 = Pick<PageBuilderProps, 'swr' | 'themeStyle' | 'seo' | 'currency' | 'locale' | 'swatches'>;
|
|
177
|
+
declare const getBuilderProps: (fetcher: FetchFunc, shopifyFetcher: FetchFunc) => Promise<Props$5>;
|
|
116
178
|
|
|
117
179
|
declare const getProductProps: (fetcher: FetchFunc) => (handle?: string) => Promise<ProductPageProps>;
|
|
118
180
|
|
|
119
181
|
declare const getStaticPagePropsV2: (fetcher: FetchFunc, shopifyFetcher: FetchFunc) => (slug: string) => Promise<PageBuilderPropsV2>;
|
|
120
182
|
|
|
183
|
+
declare const getSharePageProps: (fetcher: FetchFunc) => (slug: string) => Promise<SharePageProps | null>;
|
|
184
|
+
|
|
121
185
|
declare const getPostPurchasePropsPreview: (fetcher: FetchFunc, librarySaleFunnelID?: string, storeFrontFetcher?: FetchFunc) => (data: {
|
|
122
186
|
id: string;
|
|
123
187
|
currentOfferID: string;
|
|
@@ -127,9 +191,12 @@ declare const getPostPurchasePropsPreview: (fetcher: FetchFunc, librarySaleFunne
|
|
|
127
191
|
|
|
128
192
|
declare const getStaticPagePropsPreview: (fetcher: FetchFunc, shopifyFetcher: FetchFunc) => (slug: string) => Promise<PageBuilderPropsV2>;
|
|
129
193
|
|
|
194
|
+
declare const getSharePageContentProps: (fetcher: FetchFunc) => (slug: string) => Promise<SharePageProps | null>;
|
|
195
|
+
|
|
130
196
|
declare const createFetcher: (token?: string | null) => FetchFunc;
|
|
131
197
|
declare const createAppAPIFetcher: (token?: string | null, shopID?: string) => FetchFunc;
|
|
132
198
|
declare const createShopifyFetcher: (storefrontToken?: string, handle?: string) => FetchFunc;
|
|
199
|
+
declare const createTemplateFetcher: (handle: string) => FetchFunc;
|
|
133
200
|
|
|
134
201
|
declare const getLayout: (page: React.ReactElement, pageProps?: any) => react_jsx_runtime.JSX.Element;
|
|
135
202
|
|
|
@@ -179,7 +246,7 @@ declare const parseBuilderTemplateV2: (data?: ParseBuilderTemplateV2Props) => {
|
|
|
179
246
|
|
|
180
247
|
declare const getFallbackV2: (fetcher: FetchFunc, data: {
|
|
181
248
|
data: any;
|
|
182
|
-
}[], isStorefront?: boolean) => Promise<{}>;
|
|
249
|
+
}[], isStorefront?: boolean, disableIsSample?: boolean) => Promise<{}>;
|
|
183
250
|
|
|
184
251
|
type RetryConfig = {
|
|
185
252
|
retries?: number;
|
|
@@ -188,6 +255,15 @@ type RetryConfig = {
|
|
|
188
255
|
};
|
|
189
256
|
declare const retryWithDelay: <T = unknown>(fn: () => T, config?: RetryConfig) => Promise<T>;
|
|
190
257
|
|
|
258
|
+
type Props$4 = {
|
|
259
|
+
trackingId?: string | null;
|
|
260
|
+
params?: {
|
|
261
|
+
page_id?: string;
|
|
262
|
+
source_shop_id?: string;
|
|
263
|
+
};
|
|
264
|
+
};
|
|
265
|
+
declare const SharePageTracking: ({ trackingId, params }: Props$4) => react_jsx_runtime.JSX.Element | null;
|
|
266
|
+
|
|
191
267
|
declare const getStaticPaths: GetStaticPaths;
|
|
192
268
|
|
|
193
269
|
type FontType = 'bunny' | 'google';
|
|
@@ -268,4 +344,6 @@ declare const BuilderPage: React.FC<BuilderPageProps>;
|
|
|
268
344
|
|
|
269
345
|
declare const StaticPageV2: React.FC<StaticPagePropsV2 & AdditionalPageBuilderProps>;
|
|
270
346
|
|
|
271
|
-
|
|
347
|
+
declare const PreviewTemplate: React.FC<SharePageProps & AdditionalPageBuilderProps>;
|
|
348
|
+
|
|
349
|
+
export { AppPropsWithLayout, BuilderPage, CollectionDetailPage, ErrorBoundary, ErrorFallback, FacebookPixel, GoogleAnalytic, NextPageWithLayout, Page404, Page500, PageBuilderProps, PageBuilderPropsV2, PreviewPage, PreviewTemplate, ProductDetailPage, SharePageAPIResponse, SharePageProps, SharePageTracking, StaticPage, StaticPagePropsV2, StaticPageV2, TikTokPixel, createAppAPIFetcher, createFetcher, createShopifyFetcher, createTemplateFetcher, genCSS, getBuilderProps, getCollectionProps, getCollectionSharePageProps, getFallbackV2, getFontFromGlobalStyle, getFontFromGroupSetting, getFonts, getFontsFromDataBuilder, getHomePageProps, getHomePagePropsV2, getLayout, getPostPurchasePropsPreview, getPreviewProps, getProductProps, getSharePageContentProps, getSharePageProps, getStaticPagePropsPreview, getStaticPagePropsV2, getStaticPaths, getStorefrontApi, isBot, normalizePageSectionResponseV2, parseBuilderTemplateV2, retryWithDelay, usePagePreview, useTrackingView };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gem-sdk/pages",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
"next": "14.2.20"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@gem-sdk/core": "4.0
|
|
30
|
-
"@gem-sdk/plugin-cookie-bar": "
|
|
31
|
-
"@gem-sdk/plugin-quick-view": "
|
|
32
|
-
"@gem-sdk/plugin-sticky-add-to-cart": "
|
|
29
|
+
"@gem-sdk/core": "4.1.0",
|
|
30
|
+
"@gem-sdk/plugin-cookie-bar": "4.1.0",
|
|
31
|
+
"@gem-sdk/plugin-quick-view": "4.1.0",
|
|
32
|
+
"@gem-sdk/plugin-sticky-add-to-cart": "4.1.0"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"next": ">=14"
|