@gem-sdk/pages 1.64.0 → 2.0.0-dev.168
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/ErrorBoundary.js +1 -0
- package/dist/cjs/components/ErrorFallback.js +1 -0
- package/dist/cjs/components/FacebookPixel.js +7 -9
- package/dist/cjs/components/FooterForPostPurchase.js +1 -0
- package/dist/cjs/components/GoogleAnalytic.js +9 -10
- package/dist/cjs/components/TikTokPixel.js +1 -0
- package/dist/cjs/components/builder/Body.js +1 -0
- package/dist/cjs/components/builder/Footer.js +1 -0
- package/dist/cjs/components/builder/Header.js +4 -5
- package/dist/cjs/components/builder/PopupManager.js +1 -0
- package/dist/cjs/components/builder/SwitchView.js +1 -0
- package/dist/cjs/components/builder/Toolbar.js +1 -0
- package/dist/cjs/components/builder/Toolbox.js +12 -1
- package/dist/cjs/components/image-to-layout/AddSectionImageToLayout.js +1 -0
- package/dist/cjs/components/image-to-layout/DropElement.js +1 -0
- package/dist/cjs/components/image-to-layout/ImageToLayout.js +1 -0
- package/dist/cjs/index.js +12 -14
- package/dist/cjs/layouts/main.js +2 -1
- package/dist/cjs/libs/api/get-builder-props.js +7 -2
- package/dist/cjs/libs/api/get-post-purchase-props-preview.js +1 -0
- package/dist/cjs/libs/api/get-static-page-props-preview.js +1 -6
- package/dist/cjs/libs/api/get-static-page-props-v2.js +2 -1
- package/dist/cjs/libs/helpers/gen-css.js +1 -1
- package/dist/cjs/libs/helpers/normalize.js +9 -0
- package/dist/cjs/libs/hooks/use-tracking-view.js +1 -0
- package/dist/cjs/libs/parse-html.js +23 -15
- package/dist/cjs/pages/404.js +1 -0
- package/dist/cjs/pages/500.js +1 -0
- package/dist/cjs/pages/CollectionGlobalProvider.js +1 -0
- package/dist/cjs/pages/builder.js +14 -22
- package/dist/cjs/pages/collection-detail.js +31 -40
- package/dist/cjs/pages/preview.js +1 -0
- package/dist/cjs/pages/product-detail.js +18 -29
- package/dist/cjs/pages/static-v2.js +40 -72
- package/dist/cjs/pages/static.js +34 -44
- package/dist/esm/components/ErrorBoundary.js +1 -0
- package/dist/esm/components/ErrorFallback.js +1 -0
- package/dist/esm/components/FacebookPixel.js +7 -9
- package/dist/esm/components/FooterForPostPurchase.js +1 -0
- package/dist/esm/components/GoogleAnalytic.js +9 -10
- package/dist/esm/components/TikTokPixel.js +1 -0
- package/dist/esm/components/builder/Body.js +1 -0
- package/dist/esm/components/builder/Footer.js +1 -0
- package/dist/esm/components/builder/Header.js +4 -5
- package/dist/esm/components/builder/PopupManager.js +1 -0
- package/dist/esm/components/builder/SwitchView.js +1 -0
- package/dist/esm/components/builder/Toolbar.js +1 -0
- package/dist/esm/components/builder/Toolbox.js +12 -1
- package/dist/esm/components/image-to-layout/AddSectionImageToLayout.js +1 -0
- package/dist/esm/components/image-to-layout/DropElement.js +1 -0
- package/dist/esm/components/image-to-layout/ImageToLayout.js +1 -0
- package/dist/esm/index.js +6 -7
- package/dist/esm/layouts/main.js +2 -1
- package/dist/esm/libs/api/get-builder-props.js +8 -3
- package/dist/esm/libs/api/get-post-purchase-props-preview.js +1 -0
- package/dist/esm/libs/api/get-static-page-props-preview.js +2 -7
- package/dist/esm/libs/api/get-static-page-props-v2.js +3 -2
- package/dist/esm/libs/helpers/gen-css.js +1 -1
- package/dist/esm/libs/helpers/normalize.js +9 -1
- package/dist/esm/libs/hooks/use-tracking-view.js +1 -0
- package/dist/esm/libs/parse-html.js +23 -15
- package/dist/esm/pages/404.js +1 -0
- package/dist/esm/pages/500.js +1 -0
- package/dist/esm/pages/CollectionGlobalProvider.js +1 -0
- package/dist/esm/pages/builder.js +14 -22
- package/dist/esm/pages/collection-detail.js +32 -41
- package/dist/esm/pages/preview.js +1 -0
- package/dist/esm/pages/product-detail.js +19 -30
- package/dist/esm/pages/static-v2.js +41 -73
- package/dist/esm/pages/static.js +35 -45
- package/dist/types/index.d.ts +37 -34
- package/package.json +5 -5
- package/dist/cjs/components/builder/InteractionSelectOnPageHeader.js +0 -192
- package/dist/cjs/libs/helpers/sentry.js +0 -17
- package/dist/esm/components/builder/InteractionSelectOnPageHeader.js +0 -188
- package/dist/esm/libs/helpers/sentry.js +0 -15
|
@@ -1,25 +1,23 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
5
|
var core = require('@gem-sdk/core');
|
|
5
|
-
var
|
|
6
|
+
var navigation = require('next/navigation');
|
|
6
7
|
var Script = require('next/script');
|
|
7
8
|
var react = require('react');
|
|
8
9
|
|
|
9
10
|
const FacebookPixel = ({ pixelId })=>{
|
|
10
|
-
const
|
|
11
|
+
const pathName = navigation.usePathname();
|
|
12
|
+
const searchParams = navigation.useSearchParams();
|
|
11
13
|
react.useEffect(()=>{
|
|
12
14
|
const handleRouteChange = ()=>{
|
|
13
15
|
core.fpixel.pageview();
|
|
14
16
|
};
|
|
15
|
-
|
|
16
|
-
router$1.events.on('hashChangeComplete', handleRouteChange);
|
|
17
|
-
return ()=>{
|
|
18
|
-
router$1.events.off('routeChangeComplete', handleRouteChange);
|
|
19
|
-
router$1.events.off('hashChangeComplete', handleRouteChange);
|
|
20
|
-
};
|
|
17
|
+
handleRouteChange();
|
|
21
18
|
}, [
|
|
22
|
-
|
|
19
|
+
pathName,
|
|
20
|
+
searchParams
|
|
23
21
|
]);
|
|
24
22
|
if (!pixelId) return null;
|
|
25
23
|
return /*#__PURE__*/ jsxRuntime.jsx(Script, {
|
|
@@ -1,29 +1,28 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
5
|
var core = require('@gem-sdk/core');
|
|
5
|
-
var
|
|
6
|
+
var navigation = require('next/navigation');
|
|
6
7
|
var Script = require('next/script');
|
|
7
8
|
var react = require('react');
|
|
8
9
|
|
|
9
10
|
const GoogleAnalytic = ({ trackingId })=>{
|
|
10
|
-
const
|
|
11
|
+
const searchParams = navigation.useSearchParams();
|
|
12
|
+
const pathName = navigation.usePathname();
|
|
11
13
|
react.useEffect(()=>{
|
|
14
|
+
const url = pathName + searchParams.toString();
|
|
12
15
|
const handleRouteChange = (url)=>{
|
|
13
16
|
core.gtag.pageview(url, trackingId);
|
|
14
17
|
};
|
|
15
|
-
|
|
16
|
-
router$1.events.on('hashChangeComplete', handleRouteChange);
|
|
17
|
-
return ()=>{
|
|
18
|
-
router$1.events.off('routeChangeComplete', handleRouteChange);
|
|
19
|
-
router$1.events.off('hashChangeComplete', handleRouteChange);
|
|
20
|
-
};
|
|
18
|
+
handleRouteChange(url);
|
|
21
19
|
}, [
|
|
22
20
|
trackingId,
|
|
23
|
-
|
|
21
|
+
pathName,
|
|
22
|
+
searchParams
|
|
24
23
|
]);
|
|
25
24
|
const handleOnReady = ()=>{
|
|
26
|
-
core.gtag.pageview(
|
|
25
|
+
core.gtag.pageview(pathName, trackingId);
|
|
27
26
|
};
|
|
28
27
|
if (!trackingId) return null;
|
|
29
28
|
if (trackingId.startsWith('UA-')) return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
@@ -5,7 +6,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
7
|
var core = require('@gem-sdk/core');
|
|
7
8
|
var SwitchView = require('./SwitchView.js');
|
|
8
|
-
var InteractionSelectOnPageHeader = require('./InteractionSelectOnPageHeader.js');
|
|
9
9
|
|
|
10
10
|
const defaultMargin = {
|
|
11
11
|
desktop: '16px',
|
|
@@ -22,7 +22,7 @@ const sizeCheck = {
|
|
|
22
22
|
const Header = (props)=>{
|
|
23
23
|
const { pageType, isOriginTemplate, openPageSetting } = props;
|
|
24
24
|
const layoutSetting = core.useShopStore((s)=>s.layoutSettings);
|
|
25
|
-
|
|
25
|
+
core.usePageStore((s)=>s.sidebarMode);
|
|
26
26
|
const activeHeader = layoutSetting?.showHeader || isOriginTemplate;
|
|
27
27
|
const headerColor = activeHeader ? HEADER_ON_COLOR : HEADER_OFF_COLOR;
|
|
28
28
|
return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
@@ -122,7 +122,7 @@ const Header = (props)=>{
|
|
|
122
122
|
})
|
|
123
123
|
]
|
|
124
124
|
}),
|
|
125
|
-
!
|
|
125
|
+
!isOriginTemplate && /*#__PURE__*/ jsxRuntime.jsx("button", {
|
|
126
126
|
className: "gp-header gp-invisible gp-absolute gp-left-[8px] gp-flex gp-h-[24px] gp-cursor-pointer gp-items-center gp-justify-center gp-rounded gp-bg-[#EEEEEE] gp-p-[4px] hover:gp-bg-[#f4f4f4] group-hover:gp-visible",
|
|
127
127
|
onClick: openPageSetting,
|
|
128
128
|
children: /*#__PURE__*/ jsxRuntime.jsxs("div", {
|
|
@@ -180,8 +180,7 @@ const Header = (props)=>{
|
|
|
180
180
|
})
|
|
181
181
|
]
|
|
182
182
|
})
|
|
183
|
-
})
|
|
184
|
-
sidebarMode === 'interaction' && /*#__PURE__*/ jsxRuntime.jsx(InteractionSelectOnPageHeader.default, {})
|
|
183
|
+
})
|
|
185
184
|
]
|
|
186
185
|
});
|
|
187
186
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
@@ -20,6 +21,7 @@ const Toolbox = ()=>{
|
|
|
20
21
|
const changeStorefrontInfo = core.useShopStore((s)=>s.changeStorefrontInfo);
|
|
21
22
|
const setDynamicProduct = core.usePageStore((s)=>s.setDynamicProduct);
|
|
22
23
|
const setPostPurchaseProductOffers = core.usePageStore((s)=>s.setPostPurchaseProductOffers);
|
|
24
|
+
const setDynamicDiscountOffer = core.usePageStore((s)=>s.setDynamicDiscountOffer);
|
|
23
25
|
const setSalePageProductId = core.usePageStore((s)=>s.setSalePageProductId);
|
|
24
26
|
const setDynamicCollection = core.usePageStore((s)=>s.setDynamicCollection);
|
|
25
27
|
const initState = core.useBuilderPreviewStore((s)=>s.initState);
|
|
@@ -345,6 +347,13 @@ const Toolbox = ()=>{
|
|
|
345
347
|
}, [
|
|
346
348
|
setPostPurchaseProductOffers
|
|
347
349
|
]);
|
|
350
|
+
const onUpdateDynamicDiscountOffer = react.useCallback((e)=>{
|
|
351
|
+
const dynamicDiscountOffer = e.detail;
|
|
352
|
+
if (!dynamicDiscountOffer) return;
|
|
353
|
+
setDynamicDiscountOffer(dynamicDiscountOffer);
|
|
354
|
+
}, [
|
|
355
|
+
setDynamicDiscountOffer
|
|
356
|
+
]);
|
|
348
357
|
const onUpdateSalePageProductId = react.useCallback((e)=>{
|
|
349
358
|
const id = e.detail;
|
|
350
359
|
if (!id) return;
|
|
@@ -416,6 +425,7 @@ const Toolbox = ()=>{
|
|
|
416
425
|
window.addEventListener('update-item-name', onUpdateItemName);
|
|
417
426
|
window.addEventListener('update-item-attribute', onUpdateItemAttribute);
|
|
418
427
|
window.addEventListener('set-product-offer', onUpdateProductOffers);
|
|
428
|
+
window.addEventListener('set-dynamic-discount-offer', onUpdateDynamicDiscountOffer);
|
|
419
429
|
window.addEventListener('update-sale-page-product-id', onUpdateSalePageProductId);
|
|
420
430
|
window.addEventListener('limit-create-theme-section', onLimitCreateThemeSection);
|
|
421
431
|
window.addEventListener('update-interaction-is-select-on-page', onUpdateInteractionIsSelectOnPage);
|
|
@@ -473,7 +483,8 @@ const Toolbox = ()=>{
|
|
|
473
483
|
onUpdateInteractionIsSelectOnPage,
|
|
474
484
|
onUpdateInteractionSettingType,
|
|
475
485
|
onUpdateFontType,
|
|
476
|
-
onChangeSidebarMode
|
|
486
|
+
onChangeSidebarMode,
|
|
487
|
+
onUpdateDynamicDiscountOffer
|
|
477
488
|
]);
|
|
478
489
|
return /*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
479
490
|
className: "toolbox"
|
package/dist/cjs/index.js
CHANGED
|
@@ -18,12 +18,6 @@ var userAgent = require('./libs/helpers/user-agent.js');
|
|
|
18
18
|
var normalize = require('./libs/helpers/normalize.js');
|
|
19
19
|
var getFallback = require('./libs/helpers/get-fallback.js');
|
|
20
20
|
var common = require('./libs/helpers/common.js');
|
|
21
|
-
var collectionDetail = require('./pages/collection-detail.js');
|
|
22
|
-
var preview = require('./pages/preview.js');
|
|
23
|
-
var productDetail = require('./pages/product-detail.js');
|
|
24
|
-
var _static = require('./pages/static.js');
|
|
25
|
-
var builder = require('./pages/builder.js');
|
|
26
|
-
var staticV2 = require('./pages/static-v2.js');
|
|
27
21
|
var getStaticPaths = require('./libs/getStaticPaths.js');
|
|
28
22
|
var genFonts = require('./libs/helpers/gen-fonts.js');
|
|
29
23
|
var googleFonts = require('./libs/google-fonts.js');
|
|
@@ -35,7 +29,12 @@ var _500 = require('./pages/500.js');
|
|
|
35
29
|
var GoogleAnalytic = require('./components/GoogleAnalytic.js');
|
|
36
30
|
var FacebookPixel = require('./components/FacebookPixel.js');
|
|
37
31
|
var TikTokPixel = require('./components/TikTokPixel.js');
|
|
38
|
-
var
|
|
32
|
+
var collectionDetail = require('./pages/collection-detail.js');
|
|
33
|
+
var preview = require('./pages/preview.js');
|
|
34
|
+
var productDetail = require('./pages/product-detail.js');
|
|
35
|
+
var _static = require('./pages/static.js');
|
|
36
|
+
var builder = require('./pages/builder.js');
|
|
37
|
+
var staticV2 = require('./pages/static-v2.js');
|
|
39
38
|
|
|
40
39
|
|
|
41
40
|
|
|
@@ -60,12 +59,6 @@ exports.normalizePageSectionResponseV2 = normalize.normalizePageSectionResponseV
|
|
|
60
59
|
exports.parseBuilderTemplateV2 = normalize.parseBuilderTemplateV2;
|
|
61
60
|
exports.getFallbackV2 = getFallback.getFallbackV2;
|
|
62
61
|
exports.retryWithDelay = common.retryWithDelay;
|
|
63
|
-
exports.CollectionDetailPage = collectionDetail.default;
|
|
64
|
-
exports.PreviewPage = preview.PreviewPage;
|
|
65
|
-
exports.ProductDetailPage = productDetail.default;
|
|
66
|
-
exports.StaticPage = _static.default;
|
|
67
|
-
exports.BuilderPage = builder.BuilderPage;
|
|
68
|
-
exports.StaticPageV2 = staticV2.StaticPageV2;
|
|
69
62
|
exports.getStaticPaths = getStaticPaths.getStaticPaths;
|
|
70
63
|
exports.getFontFromGroupSetting = genFonts.getFontFromGroupSetting;
|
|
71
64
|
exports.getFontsFromDataBuilder = genFonts.getFontsFromDataBuilder;
|
|
@@ -79,4 +72,9 @@ exports.Page500 = _500.Page500;
|
|
|
79
72
|
exports.GoogleAnalytic = GoogleAnalytic.GoogleAnalytic;
|
|
80
73
|
exports.FacebookPixel = FacebookPixel.FacebookPixel;
|
|
81
74
|
exports.TikTokPixel = TikTokPixel.TikTokPixel;
|
|
82
|
-
exports.
|
|
75
|
+
exports.CollectionDetailPage = collectionDetail.default;
|
|
76
|
+
exports.PreviewPage = preview.PreviewPage;
|
|
77
|
+
exports.ProductDetailPage = productDetail.default;
|
|
78
|
+
exports.StaticPage = _static.default;
|
|
79
|
+
exports.BuilderPage = builder.BuilderPage;
|
|
80
|
+
exports.StaticPageV2 = staticV2.StaticPageV2;
|
package/dist/cjs/layouts/main.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
@@ -10,7 +11,7 @@ const MainLayout = ({ children, ...props })=>{
|
|
|
10
11
|
const mobileOnly = core.useShopStore((s)=>s.mobileOnly);
|
|
11
12
|
return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
12
13
|
children: [
|
|
13
|
-
parseHtml.parseHtml(
|
|
14
|
+
parseHtml.parseHtml(props?.customCodeBody),
|
|
14
15
|
/*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
15
16
|
className: core.cls({
|
|
16
17
|
'gp-max-w-mobile gp-mx-auto gp-w-full': mobileOnly
|
|
@@ -5,16 +5,20 @@ var adapterShopify = require('@gem-sdk/adapter-shopify');
|
|
|
5
5
|
var parseJson = require('../helpers/parse-json.js');
|
|
6
6
|
|
|
7
7
|
const getBuilderProps = async (fetcher, shopifyFetcher)=>{
|
|
8
|
-
const [storeProperty, shopifyMeta] = await Promise.allSettled([
|
|
8
|
+
const [storeProperty, shopifyMeta, shopifyInfo] = await Promise.allSettled([
|
|
9
9
|
fetcher([
|
|
10
10
|
core.StorePropertyDocument
|
|
11
11
|
]),
|
|
12
12
|
shopifyFetcher([
|
|
13
13
|
adapterShopify.ShopMetaDocument
|
|
14
|
+
]),
|
|
15
|
+
fetcher([
|
|
16
|
+
core.ShopShopifyDocument
|
|
14
17
|
])
|
|
15
18
|
]);
|
|
16
19
|
const shopMeta = shopifyMeta.status === 'fulfilled' ? shopifyMeta.value : undefined;
|
|
17
20
|
const shopData = storeProperty.status === 'fulfilled' ? storeProperty.value : undefined;
|
|
21
|
+
const shopInfo = shopifyInfo.status === 'fulfilled' ? shopifyInfo.value : undefined;
|
|
18
22
|
const seo = shopMeta ? {
|
|
19
23
|
titleTemplate: `%s | ${shopMeta.shop.name}`,
|
|
20
24
|
defaultTitle: shopMeta?.shop.name,
|
|
@@ -34,7 +38,8 @@ const getBuilderProps = async (fetcher, shopifyFetcher)=>{
|
|
|
34
38
|
swr: {
|
|
35
39
|
revalidateOnMount: true
|
|
36
40
|
},
|
|
37
|
-
seo
|
|
41
|
+
seo,
|
|
42
|
+
timezone: shopInfo?.shopShopify?.timezone
|
|
38
43
|
});
|
|
39
44
|
};
|
|
40
45
|
|
|
@@ -10,7 +10,6 @@ var getFallback = require('../helpers/get-fallback.js');
|
|
|
10
10
|
var normalize = require('../helpers/normalize.js');
|
|
11
11
|
var parseJson = require('../helpers/parse-json.js');
|
|
12
12
|
var customFonts = require('../custom-fonts.js');
|
|
13
|
-
var sentry = require('../helpers/sentry.js');
|
|
14
13
|
|
|
15
14
|
const getStaticPagePropsPreview = (fetcher, shopifyFetcher)=>async (slug)=>{
|
|
16
15
|
try {
|
|
@@ -32,10 +31,6 @@ const getStaticPagePropsPreview = (fetcher, shopifyFetcher)=>async (slug)=>{
|
|
|
32
31
|
])
|
|
33
32
|
]);
|
|
34
33
|
if (theme.status === 'rejected') {
|
|
35
|
-
sentry.sentryCaptureException('PreviewThemePageDocument', JSON.stringify(theme), {
|
|
36
|
-
variables,
|
|
37
|
-
theme
|
|
38
|
-
});
|
|
39
34
|
throw new Error(theme.reason?.[0]);
|
|
40
35
|
}
|
|
41
36
|
const dataBuilder = theme.value.previewThemePage;
|
|
@@ -148,7 +143,7 @@ const getStaticPagePropsPreview = (fetcher, shopifyFetcher)=>async (slug)=>{
|
|
|
148
143
|
customCodeHeader: dataBuilder.customCode?.header ?? null,
|
|
149
144
|
customCodeBody: dataBuilder.customCode?.body ?? null,
|
|
150
145
|
customFonts: customFonts$1,
|
|
151
|
-
|
|
146
|
+
pageBackground: normalize.extractPageBackground(dataBuilder)
|
|
152
147
|
});
|
|
153
148
|
} catch (err) {
|
|
154
149
|
nextjs.captureException(err);
|
|
@@ -152,7 +152,8 @@ const getStaticPagePropsV2 = (fetcher, shopifyFetcher)=>async (slug)=>{
|
|
|
152
152
|
customCodeBody: dataBuilder.themePageCustomCode?.body ?? null,
|
|
153
153
|
pageHandle: dataBuilder.handle ?? null,
|
|
154
154
|
customFonts: customFonts$1,
|
|
155
|
-
interaction: dataBuilder?.interaction
|
|
155
|
+
interaction: dataBuilder?.interaction,
|
|
156
|
+
pageBackground: normalize.extractPageBackground(dataBuilder)
|
|
156
157
|
});
|
|
157
158
|
} catch (err) {
|
|
158
159
|
nextjs.captureException(err);
|
|
@@ -83,6 +83,14 @@ const parseBuilderTemplate = (data)=>{
|
|
|
83
83
|
...data?.themePageCustomSections ?? []
|
|
84
84
|
], data?.sectionPosition);
|
|
85
85
|
};
|
|
86
|
+
const extractPageBackground = (data)=>{
|
|
87
|
+
try {
|
|
88
|
+
const pageBackgroundStr = data?.metafields?.find((item)=>item?.key === 'page_background')?.value;
|
|
89
|
+
return JSON.parse(pageBackgroundStr ?? '{}');
|
|
90
|
+
} catch {
|
|
91
|
+
return {};
|
|
92
|
+
}
|
|
93
|
+
};
|
|
86
94
|
const parseBuilderLibraryTemplate = (data)=>{
|
|
87
95
|
return normalizePageSectionResponseV2([
|
|
88
96
|
...data?.sections ?? []
|
|
@@ -94,6 +102,7 @@ const parseShopLibraryPageTemplate = (data)=>{
|
|
|
94
102
|
], data?.sectionPosition);
|
|
95
103
|
};
|
|
96
104
|
|
|
105
|
+
exports.extractPageBackground = extractPageBackground;
|
|
97
106
|
exports.normalizeBuilderData = normalizeBuilderData;
|
|
98
107
|
exports.normalizePageSectionResponseV2 = normalizePageSectionResponseV2;
|
|
99
108
|
exports.parseBuilderLibraryTemplate = parseBuilderLibraryTemplate;
|
|
@@ -2,27 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var parse = require('html-react-parser');
|
|
5
|
+
var Script = require('next/script');
|
|
5
6
|
|
|
6
|
-
const parseHtml = (
|
|
7
|
+
const parseHtml = (html, isHead)=>{
|
|
7
8
|
if (!html) return undefined;
|
|
8
9
|
try {
|
|
9
10
|
return parse(html, {
|
|
10
11
|
replace: (node)=>{
|
|
11
|
-
if (node.type
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
12
|
+
if (node.type === 'script' && node instanceof parse.Element) {
|
|
13
|
+
const child = node.children?.[0];
|
|
14
|
+
if (child instanceof parse.Text) {
|
|
15
|
+
if (isHead) return /*#__PURE__*/ jsxRuntime.jsx("script", {
|
|
16
|
+
...node.attribs,
|
|
17
|
+
dangerouslySetInnerHTML: {
|
|
18
|
+
__html: child.data
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
else return /*#__PURE__*/ jsxRuntime.jsx(Script, {
|
|
22
|
+
...node.attribs,
|
|
23
|
+
dangerouslySetInnerHTML: {
|
|
24
|
+
__html: child.data
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
} else {
|
|
28
|
+
if (!isHead) {
|
|
29
|
+
return /*#__PURE__*/ jsxRuntime.jsx(Script, {
|
|
30
|
+
...node.attribs
|
|
31
|
+
});
|
|
24
32
|
}
|
|
25
|
-
}
|
|
33
|
+
}
|
|
26
34
|
}
|
|
27
35
|
}
|
|
28
36
|
});
|
package/dist/cjs/pages/404.js
CHANGED
package/dist/cjs/pages/500.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
5
|
var core = require('@gem-sdk/core');
|
|
5
|
-
var nextSeo = require('next-seo');
|
|
6
|
-
var Head = require('next/head');
|
|
7
6
|
var react = require('react');
|
|
8
7
|
var Toolbox = require('../components/builder/Toolbox.js');
|
|
9
8
|
var Header = require('../components/builder/Header.js');
|
|
@@ -15,7 +14,7 @@ var Toolbar = require('../components/builder/Toolbar.js');
|
|
|
15
14
|
var SwitchView = require('../components/builder/SwitchView.js');
|
|
16
15
|
var Body = require('../components/builder/Body.js');
|
|
17
16
|
|
|
18
|
-
const BuilderPage = ({ components,
|
|
17
|
+
const BuilderPage = ({ components, themeStyle, fontStyle, sectionData, pageType, editorImageToLayout, isThemeSectionEditor, hiddenToolbar, pageName, isOriginTemplate })=>{
|
|
19
18
|
const [loadSuccess, setLoadSuccess] = react.useState(false);
|
|
20
19
|
const isDisableHeaderFooter = ()=>{
|
|
21
20
|
return isThemeSectionEditor;
|
|
@@ -38,26 +37,19 @@ const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, page
|
|
|
38
37
|
};
|
|
39
38
|
return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
40
39
|
children: [
|
|
41
|
-
/*#__PURE__*/ jsxRuntime.jsx(
|
|
42
|
-
|
|
40
|
+
themeStyle && /*#__PURE__*/ jsxRuntime.jsx("style", {
|
|
41
|
+
type: "text/css",
|
|
42
|
+
id: "global-style",
|
|
43
|
+
dangerouslySetInnerHTML: {
|
|
44
|
+
__html: themeStyle
|
|
45
|
+
}
|
|
43
46
|
}),
|
|
44
|
-
/*#__PURE__*/ jsxRuntime.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
__html: themeStyle
|
|
51
|
-
}
|
|
52
|
-
}),
|
|
53
|
-
fontStyle && /*#__PURE__*/ jsxRuntime.jsx("style", {
|
|
54
|
-
"data-id": "google-fonts",
|
|
55
|
-
type: "text/css",
|
|
56
|
-
dangerouslySetInnerHTML: {
|
|
57
|
-
__html: fontStyle
|
|
58
|
-
}
|
|
59
|
-
})
|
|
60
|
-
]
|
|
47
|
+
fontStyle && /*#__PURE__*/ jsxRuntime.jsx("style", {
|
|
48
|
+
"data-id": "google-fonts",
|
|
49
|
+
type: "text/css",
|
|
50
|
+
dangerouslySetInnerHTML: {
|
|
51
|
+
__html: fontStyle
|
|
52
|
+
}
|
|
61
53
|
}),
|
|
62
54
|
/*#__PURE__*/ jsxRuntime.jsx(core.PageProvider, {
|
|
63
55
|
children: /*#__PURE__*/ jsxRuntime.jsx(core.BuilderComponentProvider, {
|
|
@@ -1,56 +1,47 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
5
|
|
|
5
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
7
|
var core = require('@gem-sdk/core');
|
|
7
|
-
var nextSeo = require('next-seo');
|
|
8
8
|
var dynamic = require('next/dynamic');
|
|
9
|
-
var
|
|
10
|
-
var router = require('next/router');
|
|
9
|
+
var react = require('react');
|
|
11
10
|
|
|
12
11
|
const CollectionProvider = dynamic(()=>import('@gem-sdk/core').then((m)=>m.CollectionProvider));
|
|
13
|
-
const CollectionDetailPage = ({
|
|
14
|
-
const router$1 = router.useRouter();
|
|
15
|
-
if (router$1.isFallback) {
|
|
16
|
-
return /*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
17
|
-
children: "Loading..."
|
|
18
|
-
});
|
|
19
|
-
}
|
|
12
|
+
const CollectionDetailPage = ({ components, builderData, sectionData, themeStyle, collection, fontStyle })=>{
|
|
20
13
|
return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
21
14
|
children: [
|
|
22
|
-
/*#__PURE__*/ jsxRuntime.jsx(
|
|
23
|
-
|
|
15
|
+
themeStyle && /*#__PURE__*/ jsxRuntime.jsx("style", {
|
|
16
|
+
"data-id": "global-style",
|
|
17
|
+
type: "text/css",
|
|
18
|
+
dangerouslySetInnerHTML: {
|
|
19
|
+
__html: themeStyle
|
|
20
|
+
}
|
|
24
21
|
}),
|
|
25
|
-
/*#__PURE__*/ jsxRuntime.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
__html: themeStyle
|
|
32
|
-
}
|
|
33
|
-
}),
|
|
34
|
-
fontStyle && /*#__PURE__*/ jsxRuntime.jsx("style", {
|
|
35
|
-
"data-id": "google-fonts",
|
|
36
|
-
type: "text/css",
|
|
37
|
-
dangerouslySetInnerHTML: {
|
|
38
|
-
__html: fontStyle
|
|
39
|
-
}
|
|
40
|
-
})
|
|
41
|
-
]
|
|
22
|
+
fontStyle && /*#__PURE__*/ jsxRuntime.jsx("style", {
|
|
23
|
+
"data-id": "google-fonts",
|
|
24
|
+
type: "text/css",
|
|
25
|
+
dangerouslySetInnerHTML: {
|
|
26
|
+
__html: fontStyle
|
|
27
|
+
}
|
|
42
28
|
}),
|
|
43
|
-
/*#__PURE__*/ jsxRuntime.jsx(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
29
|
+
/*#__PURE__*/ jsxRuntime.jsx(react.Suspense, {
|
|
30
|
+
fallback: /*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
31
|
+
children: "Loading..."
|
|
32
|
+
}),
|
|
33
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(core.PageProvider, {
|
|
34
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(core.BuilderComponentProvider, {
|
|
35
|
+
components: components,
|
|
36
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(core.SectionProvider, {
|
|
37
|
+
data: sectionData,
|
|
38
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(CollectionProvider, {
|
|
39
|
+
collection: collection,
|
|
40
|
+
children: builderData && /*#__PURE__*/ jsxRuntime.jsx(core.BuilderProvider, {
|
|
41
|
+
state: builderData,
|
|
42
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(core.Render, {
|
|
43
|
+
uid: "ROOT"
|
|
44
|
+
})
|
|
54
45
|
})
|
|
55
46
|
})
|
|
56
47
|
})
|