@gem-sdk/pages 2.0.0-dev.161 → 2.0.0-dev.173

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.
@@ -21,6 +21,7 @@ const Toolbox = ()=>{
21
21
  const changeStorefrontInfo = core.useShopStore((s)=>s.changeStorefrontInfo);
22
22
  const setDynamicProduct = core.usePageStore((s)=>s.setDynamicProduct);
23
23
  const setPostPurchaseProductOffers = core.usePageStore((s)=>s.setPostPurchaseProductOffers);
24
+ const setDynamicDiscountOffer = core.usePageStore((s)=>s.setDynamicDiscountOffer);
24
25
  const setSalePageProductId = core.usePageStore((s)=>s.setSalePageProductId);
25
26
  const setDynamicCollection = core.usePageStore((s)=>s.setDynamicCollection);
26
27
  const initState = core.useBuilderPreviewStore((s)=>s.initState);
@@ -346,6 +347,13 @@ const Toolbox = ()=>{
346
347
  }, [
347
348
  setPostPurchaseProductOffers
348
349
  ]);
350
+ const onUpdateDynamicDiscountOffer = react.useCallback((e)=>{
351
+ const dynamicDiscountOffer = e.detail;
352
+ if (!dynamicDiscountOffer) return;
353
+ setDynamicDiscountOffer(dynamicDiscountOffer);
354
+ }, [
355
+ setDynamicDiscountOffer
356
+ ]);
349
357
  const onUpdateSalePageProductId = react.useCallback((e)=>{
350
358
  const id = e.detail;
351
359
  if (!id) return;
@@ -417,6 +425,7 @@ const Toolbox = ()=>{
417
425
  window.addEventListener('update-item-name', onUpdateItemName);
418
426
  window.addEventListener('update-item-attribute', onUpdateItemAttribute);
419
427
  window.addEventListener('set-product-offer', onUpdateProductOffers);
428
+ window.addEventListener('set-dynamic-discount-offer', onUpdateDynamicDiscountOffer);
420
429
  window.addEventListener('update-sale-page-product-id', onUpdateSalePageProductId);
421
430
  window.addEventListener('limit-create-theme-section', onLimitCreateThemeSection);
422
431
  window.addEventListener('update-interaction-is-select-on-page', onUpdateInteractionIsSelectOnPage);
@@ -474,7 +483,8 @@ const Toolbox = ()=>{
474
483
  onUpdateInteractionIsSelectOnPage,
475
484
  onUpdateInteractionSettingType,
476
485
  onUpdateFontType,
477
- onChangeSidebarMode
486
+ onChangeSidebarMode,
487
+ onUpdateDynamicDiscountOffer
478
488
  ]);
479
489
  return /*#__PURE__*/ jsxRuntime.jsx("div", {
480
490
  className: "toolbox"
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ exports.PublishedThemePageMetafields = void 0;
4
+ (function(PublishedThemePageMetafields) {
5
+ PublishedThemePageMetafields["CUSTOM_CODE_HEADER"] = 'custom_code_header';
6
+ PublishedThemePageMetafields["CUSTOM_CODE_BODY"] = 'custom_code_body';
7
+ PublishedThemePageMetafields["ANALYTICS_GA_TRACKING_ID"] = 'analytics_ga_tracking_id';
8
+ PublishedThemePageMetafields["ANALYTICS_FB_PIXEL_ID"] = 'analytics_fb_pixel_id';
9
+ PublishedThemePageMetafields["ANALYTICS_TIKTOK_PIXEL_ID"] = 'analytics_tiktok_pixel_id';
10
+ PublishedThemePageMetafields["GLOBAL_META_DESCRIPTION"] = 'global-meta-description';
11
+ PublishedThemePageMetafields["GLOBAL_META_THUMBNAIL"] = 'global-meta-thumbnail';
12
+ })(exports.PublishedThemePageMetafields || (exports.PublishedThemePageMetafields = {}));
@@ -9,13 +9,15 @@ var getFallback = require('../helpers/get-fallback.js');
9
9
  var normalize = require('../helpers/normalize.js');
10
10
  var parseJson = require('../helpers/parse-json.js');
11
11
  var nextjs = require('@sentry/nextjs');
12
+ var index = require('../../constants/index.js');
13
+ var getMetafield = require('../helpers/get-metafield.js');
12
14
 
13
15
  const getHomePagePropsV2 = (fetcher, shopifyFetcher)=>async ()=>{
14
16
  try {
15
17
  const variables = {
16
18
  slugType: 'STATIC'
17
19
  };
18
- const [theme, storeProperty, shopifyMeta] = await Promise.allSettled([
20
+ const [theme, storeProperty, shopifyMeta, publishedShopMetas] = await Promise.allSettled([
19
21
  fetcher([
20
22
  core.PublishedThemePagesDocument,
21
23
  variables
@@ -25,11 +27,21 @@ const getHomePagePropsV2 = (fetcher, shopifyFetcher)=>async ()=>{
25
27
  ]),
26
28
  shopifyFetcher([
27
29
  adapterShopify.ShopMetaDocument
30
+ ]),
31
+ fetcher([
32
+ core.PublishedShopMetasDocument,
33
+ {
34
+ keys: [
35
+ index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,
36
+ index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL
37
+ ]
38
+ }
28
39
  ])
29
40
  ]);
30
41
  if (theme.status === 'rejected') {
31
42
  throw new Error(theme.reason?.[0]);
32
43
  }
44
+ const publishedShopMetaValue = publishedShopMetas.status === 'fulfilled' ? publishedShopMetas.value : undefined;
33
45
  const dataBuilder = theme.value?.publishedThemePages?.[0];
34
46
  if (!dataBuilder) {
35
47
  throw new Error(`No data builder found for Home page`);
@@ -41,8 +53,8 @@ const getHomePagePropsV2 = (fetcher, shopifyFetcher)=>async ()=>{
41
53
  getFallback.getFallbackV2(fetcher, homeTemplate)
42
54
  ]);
43
55
  const mobileOnly = dataBuilder.isMobile ?? false;
44
- const description = dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-description')?.value;
45
- const thumbnail = parseJson.parseJson(dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-thumbnail')?.value);
56
+ const description = getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value;
57
+ const thumbnail = parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value);
46
58
  const shopMeta = shopifyMeta.status === 'fulfilled' ? shopifyMeta.value : undefined;
47
59
  const shopData = storeProperty.status === 'fulfilled' ? storeProperty.value : undefined;
48
60
  const favicon = shopData?.storeProperty?.favicon ?? '/favicon/favicon-32x32.png';
@@ -129,11 +141,11 @@ const getHomePagePropsV2 = (fetcher, shopifyFetcher)=>async ()=>{
129
141
  swatches: parseJson.parseJson(shopData?.storeProperty?.swatchesConfig),
130
142
  seo,
131
143
  mobileOnly,
132
- gaTrackingId: dataBuilder.themePageAnalytic?.gaTrackingID ?? null,
133
- facebookPixelId: dataBuilder.themePageAnalytic?.fbPixelID ?? null,
134
- tiktokPixelId: dataBuilder.themePageAnalytic?.tiktokPixelID ?? null,
135
- customCodeHeader: dataBuilder.themePageCustomCode?.header ?? null,
136
- customCodeBody: dataBuilder.themePageCustomCode?.body ?? null,
144
+ gaTrackingId: getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_GA_TRACKING_ID, dataBuilder?.metafields) ?? null,
145
+ facebookPixelId: getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_FB_PIXEL_ID, dataBuilder?.metafields) ?? null,
146
+ tiktokPixelId: getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_TIKTOK_PIXEL_ID, dataBuilder?.metafields) ?? null,
147
+ customCodeHeader: getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.CUSTOM_CODE_HEADER, dataBuilder?.metafields) ?? null,
148
+ customCodeBody: getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.CUSTOM_CODE_BODY, dataBuilder?.metafields) ?? null,
137
149
  pageHandle: dataBuilder.handle ?? null
138
150
  });
139
151
  } catch (err) {
@@ -7,6 +7,8 @@ var genCss = require('../helpers/gen-css.js');
7
7
  var generateManifres = require('../helpers/generate-manifres.js');
8
8
  var normalize = require('../helpers/normalize.js');
9
9
  var parseJson = require('../helpers/parse-json.js');
10
+ var index = require('../../constants/index.js');
11
+ var getMetafield = require('../helpers/get-metafield.js');
10
12
 
11
13
  const getHomePageProps = (fetcher, shopifyFetcher)=>async ()=>{
12
14
  const pageType = 'STATIC';
@@ -17,7 +19,7 @@ const getHomePageProps = (fetcher, shopifyFetcher)=>async ()=>{
17
19
  // PublishedThemePagesDocument,
18
20
  // variables,
19
21
  // ]);
20
- const [theme, storeProperty, shopifyMeta] = await Promise.allSettled([
22
+ const [theme, storeProperty, shopifyMeta, publishedShopMetas] = await Promise.allSettled([
21
23
  fetcher([
22
24
  core.PublishedThemePagesDocument,
23
25
  variables
@@ -27,6 +29,15 @@ const getHomePageProps = (fetcher, shopifyFetcher)=>async ()=>{
27
29
  ]),
28
30
  shopifyFetcher([
29
31
  adapterShopify.ShopMetaDocument
32
+ ]),
33
+ fetcher([
34
+ core.PublishedShopMetasDocument,
35
+ {
36
+ keys: [
37
+ index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,
38
+ index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL
39
+ ]
40
+ }
30
41
  ])
31
42
  ]);
32
43
  if (theme.status === 'rejected') {
@@ -34,6 +45,7 @@ const getHomePageProps = (fetcher, shopifyFetcher)=>async ()=>{
34
45
  pageType
35
46
  };
36
47
  }
48
+ const publishedShopMetaValue = publishedShopMetas.status === 'fulfilled' ? publishedShopMetas.value : undefined;
37
49
  const dataBuilder = theme.value.publishedThemePages?.[0];
38
50
  const homeTemplate = normalize.parseBuilderTemplate(dataBuilder);
39
51
  const fontStyle = await googleFonts.getFontFromGlobalStyle(dataBuilder?.pageStyle?.data);
@@ -58,8 +70,8 @@ const getHomePageProps = (fetcher, shopifyFetcher)=>async ()=>{
58
70
  }
59
71
  return acc;
60
72
  }, {});
61
- const description = dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-description')?.value;
62
- const thumbnail = parseJson.parseJson(dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-thumbnail')?.value);
73
+ const description = getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value;
74
+ const thumbnail = parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value);
63
75
  const shopMeta = shopifyMeta.status === 'fulfilled' ? shopifyMeta.value : undefined;
64
76
  const shopData = storeProperty.status === 'fulfilled' ? storeProperty.value : undefined;
65
77
  const favicon = shopData?.storeProperty?.favicon ?? '/favicon/favicon-32x32.png';
@@ -10,6 +10,8 @@ var normalize = require('../helpers/normalize.js');
10
10
  var parseJson = require('../helpers/parse-json.js');
11
11
  var nextjs = require('@sentry/nextjs');
12
12
  var customFonts = require('../custom-fonts.js');
13
+ var getMetafield = require('../helpers/get-metafield.js');
14
+ var index = require('../../constants/index.js');
13
15
 
14
16
  const getStaticPagePropsV2 = (fetcher, shopifyFetcher)=>async (slug)=>{
15
17
  try {
@@ -33,7 +35,9 @@ const getStaticPagePropsV2 = (fetcher, shopifyFetcher)=>async (slug)=>{
33
35
  core.PublishedShopMetasDocument,
34
36
  {
35
37
  keys: [
36
- 'source_font'
38
+ 'source_font',
39
+ index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,
40
+ index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL
37
41
  ]
38
42
  }
39
43
  ])
@@ -56,8 +60,8 @@ const getStaticPagePropsV2 = (fetcher, shopifyFetcher)=>async (slug)=>{
56
60
  customFonts.getCustomFonts(themePageCustomFonts)
57
61
  ]);
58
62
  const mobileOnly = dataBuilder.isMobile ?? false;
59
- const description = dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-description')?.value;
60
- const thumbnail = parseJson.parseJson(dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-thumbnail')?.value);
63
+ const description = getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value;
64
+ const thumbnail = parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value);
61
65
  const shopMeta = shopifyMeta.status === 'fulfilled' ? shopifyMeta.value : undefined;
62
66
  const shopData = storeProperty.status === 'fulfilled' ? storeProperty.value : undefined;
63
67
  const favicon = shopData?.storeProperty?.favicon ?? '/favicon/favicon-32x32.png';
@@ -145,11 +149,11 @@ const getStaticPagePropsV2 = (fetcher, shopifyFetcher)=>async (slug)=>{
145
149
  swatches: parseJson.parseJson(shopData?.storeProperty?.swatchesConfig),
146
150
  seo,
147
151
  mobileOnly,
148
- gaTrackingId: dataBuilder.themePageAnalytic?.gaTrackingID ?? null,
149
- facebookPixelId: dataBuilder.themePageAnalytic?.fbPixelID ?? null,
150
- tiktokPixelId: dataBuilder.themePageAnalytic?.tiktokPixelID ?? null,
151
- customCodeHeader: dataBuilder.themePageCustomCode?.header ?? null,
152
- customCodeBody: dataBuilder.themePageCustomCode?.body ?? null,
152
+ gaTrackingId: getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_GA_TRACKING_ID, dataBuilder?.metafields) ?? null,
153
+ facebookPixelId: getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_FB_PIXEL_ID, dataBuilder?.metafields) ?? null,
154
+ tiktokPixelId: getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_TIKTOK_PIXEL_ID, dataBuilder?.metafields) ?? null,
155
+ customCodeHeader: getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.CUSTOM_CODE_HEADER, dataBuilder?.metafields) ?? null,
156
+ customCodeBody: getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.CUSTOM_CODE_BODY, dataBuilder?.metafields) ?? null,
153
157
  pageHandle: dataBuilder.handle ?? null,
154
158
  customFonts: customFonts$1,
155
159
  interaction: dataBuilder?.interaction,
@@ -7,6 +7,8 @@ var genCss = require('../helpers/gen-css.js');
7
7
  var generateManifres = require('../helpers/generate-manifres.js');
8
8
  var normalize = require('../helpers/normalize.js');
9
9
  var parseJson = require('../helpers/parse-json.js');
10
+ var index = require('../../constants/index.js');
11
+ var getMetafield = require('../helpers/get-metafield.js');
10
12
 
11
13
  const getStaticPageProps = (fetcher, shopifyFetcher)=>async (slug)=>{
12
14
  const pageType = 'STATIC';
@@ -14,7 +16,7 @@ const getStaticPageProps = (fetcher, shopifyFetcher)=>async (slug)=>{
14
16
  slug,
15
17
  slugType: pageType
16
18
  };
17
- const [theme, storeProperty, shopifyMeta] = await Promise.allSettled([
19
+ const [theme, storeProperty, shopifyMeta, publishedShopMetas] = await Promise.allSettled([
18
20
  fetcher([
19
21
  core.PublishedThemePagesDocument,
20
22
  variables
@@ -24,6 +26,16 @@ const getStaticPageProps = (fetcher, shopifyFetcher)=>async (slug)=>{
24
26
  ]),
25
27
  shopifyFetcher([
26
28
  adapterShopify.ShopMetaDocument
29
+ ]),
30
+ fetcher([
31
+ core.PublishedShopMetasDocument,
32
+ {
33
+ keys: [
34
+ 'source_font',
35
+ index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,
36
+ index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL
37
+ ]
38
+ }
27
39
  ])
28
40
  ]);
29
41
  if (theme.status === 'rejected') {
@@ -31,6 +43,7 @@ const getStaticPageProps = (fetcher, shopifyFetcher)=>async (slug)=>{
31
43
  pageType
32
44
  };
33
45
  }
46
+ const publishedShopMetaValue = publishedShopMetas.status === 'fulfilled' ? publishedShopMetas.value : undefined;
34
47
  const dataBuilder = theme.value.publishedThemePages?.[0];
35
48
  const pageTemplate = normalize.parseBuilderTemplate(dataBuilder);
36
49
  const fontStyle = await googleFonts.getFontFromGlobalStyle(dataBuilder?.pageStyle?.data);
@@ -55,8 +68,8 @@ const getStaticPageProps = (fetcher, shopifyFetcher)=>async (slug)=>{
55
68
  }
56
69
  return acc;
57
70
  }, {});
58
- const description = dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-description')?.value;
59
- const thumbnail = parseJson.parseJson(dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-thumbnail')?.value);
71
+ const description = getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value;
72
+ const thumbnail = parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value);
60
73
  const shopMeta = shopifyMeta.status === 'fulfilled' ? shopifyMeta.value : undefined;
61
74
  const shopData = storeProperty.status === 'fulfilled' ? storeProperty.value : undefined;
62
75
  const favicon = shopData?.storeProperty?.favicon ?? '/favicon/favicon-32x32.png';
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ const getPublishedThemePageMetafieldByKey = (key, metafields)=>{
4
+ return metafields?.find((item)=>item?.key === key)?.value;
5
+ };
6
+
7
+ exports.getPublishedThemePageMetafieldByKey = getPublishedThemePageMetafieldByKey;
@@ -17,6 +17,7 @@ const Toolbox = ()=>{
17
17
  const changeStorefrontInfo = useShopStore((s)=>s.changeStorefrontInfo);
18
18
  const setDynamicProduct = usePageStore((s)=>s.setDynamicProduct);
19
19
  const setPostPurchaseProductOffers = usePageStore((s)=>s.setPostPurchaseProductOffers);
20
+ const setDynamicDiscountOffer = usePageStore((s)=>s.setDynamicDiscountOffer);
20
21
  const setSalePageProductId = usePageStore((s)=>s.setSalePageProductId);
21
22
  const setDynamicCollection = usePageStore((s)=>s.setDynamicCollection);
22
23
  const initState = useBuilderPreviewStore((s)=>s.initState);
@@ -342,6 +343,13 @@ const Toolbox = ()=>{
342
343
  }, [
343
344
  setPostPurchaseProductOffers
344
345
  ]);
346
+ const onUpdateDynamicDiscountOffer = useCallback((e)=>{
347
+ const dynamicDiscountOffer = e.detail;
348
+ if (!dynamicDiscountOffer) return;
349
+ setDynamicDiscountOffer(dynamicDiscountOffer);
350
+ }, [
351
+ setDynamicDiscountOffer
352
+ ]);
345
353
  const onUpdateSalePageProductId = useCallback((e)=>{
346
354
  const id = e.detail;
347
355
  if (!id) return;
@@ -413,6 +421,7 @@ const Toolbox = ()=>{
413
421
  window.addEventListener('update-item-name', onUpdateItemName);
414
422
  window.addEventListener('update-item-attribute', onUpdateItemAttribute);
415
423
  window.addEventListener('set-product-offer', onUpdateProductOffers);
424
+ window.addEventListener('set-dynamic-discount-offer', onUpdateDynamicDiscountOffer);
416
425
  window.addEventListener('update-sale-page-product-id', onUpdateSalePageProductId);
417
426
  window.addEventListener('limit-create-theme-section', onLimitCreateThemeSection);
418
427
  window.addEventListener('update-interaction-is-select-on-page', onUpdateInteractionIsSelectOnPage);
@@ -470,7 +479,8 @@ const Toolbox = ()=>{
470
479
  onUpdateInteractionIsSelectOnPage,
471
480
  onUpdateInteractionSettingType,
472
481
  onUpdateFontType,
473
- onChangeSidebarMode
482
+ onChangeSidebarMode,
483
+ onUpdateDynamicDiscountOffer
474
484
  ]);
475
485
  return /*#__PURE__*/ jsx("div", {
476
486
  className: "toolbox"
@@ -0,0 +1,12 @@
1
+ var PublishedThemePageMetafields;
2
+ (function(PublishedThemePageMetafields) {
3
+ PublishedThemePageMetafields["CUSTOM_CODE_HEADER"] = 'custom_code_header';
4
+ PublishedThemePageMetafields["CUSTOM_CODE_BODY"] = 'custom_code_body';
5
+ PublishedThemePageMetafields["ANALYTICS_GA_TRACKING_ID"] = 'analytics_ga_tracking_id';
6
+ PublishedThemePageMetafields["ANALYTICS_FB_PIXEL_ID"] = 'analytics_fb_pixel_id';
7
+ PublishedThemePageMetafields["ANALYTICS_TIKTOK_PIXEL_ID"] = 'analytics_tiktok_pixel_id';
8
+ PublishedThemePageMetafields["GLOBAL_META_DESCRIPTION"] = 'global-meta-description';
9
+ PublishedThemePageMetafields["GLOBAL_META_THUMBNAIL"] = 'global-meta-thumbnail';
10
+ })(PublishedThemePageMetafields || (PublishedThemePageMetafields = {}));
11
+
12
+ export { PublishedThemePageMetafields };
@@ -1,4 +1,4 @@
1
- import { PublishedThemePagesDocument, StorePropertyDocument } from '@gem-sdk/core';
1
+ import { PublishedThemePagesDocument, StorePropertyDocument, PublishedShopMetasDocument } from '@gem-sdk/core';
2
2
  import { ShopMetaDocument } from '@gem-sdk/adapter-shopify';
3
3
  import { getFontStyleFromPageTemplate, getFontFromGlobalStyle } from '../google-fonts.js';
4
4
  import { genCSS } from '../helpers/gen-css.js';
@@ -7,13 +7,15 @@ import { getFallbackV2 } from '../helpers/get-fallback.js';
7
7
  import { parseBuilderTemplateV2 } from '../helpers/normalize.js';
8
8
  import { parseJson, serializableJson } from '../helpers/parse-json.js';
9
9
  import { captureException } from '@sentry/nextjs';
10
+ import { PublishedThemePageMetafields } from '../../constants/index.js';
11
+ import { getPublishedThemePageMetafieldByKey } from '../helpers/get-metafield.js';
10
12
 
11
13
  const getHomePagePropsV2 = (fetcher, shopifyFetcher)=>async ()=>{
12
14
  try {
13
15
  const variables = {
14
16
  slugType: 'STATIC'
15
17
  };
16
- const [theme, storeProperty, shopifyMeta] = await Promise.allSettled([
18
+ const [theme, storeProperty, shopifyMeta, publishedShopMetas] = await Promise.allSettled([
17
19
  fetcher([
18
20
  PublishedThemePagesDocument,
19
21
  variables
@@ -23,11 +25,21 @@ const getHomePagePropsV2 = (fetcher, shopifyFetcher)=>async ()=>{
23
25
  ]),
24
26
  shopifyFetcher([
25
27
  ShopMetaDocument
28
+ ]),
29
+ fetcher([
30
+ PublishedShopMetasDocument,
31
+ {
32
+ keys: [
33
+ PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,
34
+ PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL
35
+ ]
36
+ }
26
37
  ])
27
38
  ]);
28
39
  if (theme.status === 'rejected') {
29
40
  throw new Error(theme.reason?.[0]);
30
41
  }
42
+ const publishedShopMetaValue = publishedShopMetas.status === 'fulfilled' ? publishedShopMetas.value : undefined;
31
43
  const dataBuilder = theme.value?.publishedThemePages?.[0];
32
44
  if (!dataBuilder) {
33
45
  throw new Error(`No data builder found for Home page`);
@@ -39,8 +51,8 @@ const getHomePagePropsV2 = (fetcher, shopifyFetcher)=>async ()=>{
39
51
  getFallbackV2(fetcher, homeTemplate)
40
52
  ]);
41
53
  const mobileOnly = dataBuilder.isMobile ?? false;
42
- const description = dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-description')?.value;
43
- const thumbnail = parseJson(dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-thumbnail')?.value);
54
+ const description = getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value;
55
+ const thumbnail = parseJson(getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value);
44
56
  const shopMeta = shopifyMeta.status === 'fulfilled' ? shopifyMeta.value : undefined;
45
57
  const shopData = storeProperty.status === 'fulfilled' ? storeProperty.value : undefined;
46
58
  const favicon = shopData?.storeProperty?.favicon ?? '/favicon/favicon-32x32.png';
@@ -127,11 +139,11 @@ const getHomePagePropsV2 = (fetcher, shopifyFetcher)=>async ()=>{
127
139
  swatches: parseJson(shopData?.storeProperty?.swatchesConfig),
128
140
  seo,
129
141
  mobileOnly,
130
- gaTrackingId: dataBuilder.themePageAnalytic?.gaTrackingID ?? null,
131
- facebookPixelId: dataBuilder.themePageAnalytic?.fbPixelID ?? null,
132
- tiktokPixelId: dataBuilder.themePageAnalytic?.tiktokPixelID ?? null,
133
- customCodeHeader: dataBuilder.themePageCustomCode?.header ?? null,
134
- customCodeBody: dataBuilder.themePageCustomCode?.body ?? null,
142
+ gaTrackingId: getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.ANALYTICS_GA_TRACKING_ID, dataBuilder?.metafields) ?? null,
143
+ facebookPixelId: getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.ANALYTICS_FB_PIXEL_ID, dataBuilder?.metafields) ?? null,
144
+ tiktokPixelId: getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.ANALYTICS_TIKTOK_PIXEL_ID, dataBuilder?.metafields) ?? null,
145
+ customCodeHeader: getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.CUSTOM_CODE_HEADER, dataBuilder?.metafields) ?? null,
146
+ customCodeBody: getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.CUSTOM_CODE_BODY, dataBuilder?.metafields) ?? null,
135
147
  pageHandle: dataBuilder.handle ?? null
136
148
  });
137
149
  } catch (err) {
@@ -1,10 +1,12 @@
1
- import { PublishedThemePagesDocument, StorePropertyDocument, prefetchQueries } from '@gem-sdk/core';
1
+ import { PublishedThemePagesDocument, StorePropertyDocument, PublishedShopMetasDocument, prefetchQueries } from '@gem-sdk/core';
2
2
  import { ShopMetaDocument } from '@gem-sdk/adapter-shopify';
3
3
  import { getFontFromGlobalStyle } from '../google-fonts.js';
4
4
  import { genCSS } from '../helpers/gen-css.js';
5
5
  import { generateManifest } from '../helpers/generate-manifres.js';
6
6
  import { parseBuilderTemplate } from '../helpers/normalize.js';
7
7
  import { parseJson, serializableJson } from '../helpers/parse-json.js';
8
+ import { PublishedThemePageMetafields } from '../../constants/index.js';
9
+ import { getPublishedThemePageMetafieldByKey } from '../helpers/get-metafield.js';
8
10
 
9
11
  const getHomePageProps = (fetcher, shopifyFetcher)=>async ()=>{
10
12
  const pageType = 'STATIC';
@@ -15,7 +17,7 @@ const getHomePageProps = (fetcher, shopifyFetcher)=>async ()=>{
15
17
  // PublishedThemePagesDocument,
16
18
  // variables,
17
19
  // ]);
18
- const [theme, storeProperty, shopifyMeta] = await Promise.allSettled([
20
+ const [theme, storeProperty, shopifyMeta, publishedShopMetas] = await Promise.allSettled([
19
21
  fetcher([
20
22
  PublishedThemePagesDocument,
21
23
  variables
@@ -25,6 +27,15 @@ const getHomePageProps = (fetcher, shopifyFetcher)=>async ()=>{
25
27
  ]),
26
28
  shopifyFetcher([
27
29
  ShopMetaDocument
30
+ ]),
31
+ fetcher([
32
+ PublishedShopMetasDocument,
33
+ {
34
+ keys: [
35
+ PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,
36
+ PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL
37
+ ]
38
+ }
28
39
  ])
29
40
  ]);
30
41
  if (theme.status === 'rejected') {
@@ -32,6 +43,7 @@ const getHomePageProps = (fetcher, shopifyFetcher)=>async ()=>{
32
43
  pageType
33
44
  };
34
45
  }
46
+ const publishedShopMetaValue = publishedShopMetas.status === 'fulfilled' ? publishedShopMetas.value : undefined;
35
47
  const dataBuilder = theme.value.publishedThemePages?.[0];
36
48
  const homeTemplate = parseBuilderTemplate(dataBuilder);
37
49
  const fontStyle = await getFontFromGlobalStyle(dataBuilder?.pageStyle?.data);
@@ -56,8 +68,8 @@ const getHomePageProps = (fetcher, shopifyFetcher)=>async ()=>{
56
68
  }
57
69
  return acc;
58
70
  }, {});
59
- const description = dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-description')?.value;
60
- const thumbnail = parseJson(dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-thumbnail')?.value);
71
+ const description = getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value;
72
+ const thumbnail = parseJson(getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value);
61
73
  const shopMeta = shopifyMeta.status === 'fulfilled' ? shopifyMeta.value : undefined;
62
74
  const shopData = storeProperty.status === 'fulfilled' ? storeProperty.value : undefined;
63
75
  const favicon = shopData?.storeProperty?.favicon ?? '/favicon/favicon-32x32.png';
@@ -8,6 +8,8 @@ import { parseBuilderTemplateV2, extractPageBackground } from '../helpers/normal
8
8
  import { parseJson, serializableJson } from '../helpers/parse-json.js';
9
9
  import { captureException } from '@sentry/nextjs';
10
10
  import { getCustomFonts } from '../custom-fonts.js';
11
+ import { getPublishedThemePageMetafieldByKey } from '../helpers/get-metafield.js';
12
+ import { PublishedThemePageMetafields } from '../../constants/index.js';
11
13
 
12
14
  const getStaticPagePropsV2 = (fetcher, shopifyFetcher)=>async (slug)=>{
13
15
  try {
@@ -31,7 +33,9 @@ const getStaticPagePropsV2 = (fetcher, shopifyFetcher)=>async (slug)=>{
31
33
  PublishedShopMetasDocument,
32
34
  {
33
35
  keys: [
34
- 'source_font'
36
+ 'source_font',
37
+ PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,
38
+ PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL
35
39
  ]
36
40
  }
37
41
  ])
@@ -54,8 +58,8 @@ const getStaticPagePropsV2 = (fetcher, shopifyFetcher)=>async (slug)=>{
54
58
  getCustomFonts(themePageCustomFonts)
55
59
  ]);
56
60
  const mobileOnly = dataBuilder.isMobile ?? false;
57
- const description = dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-description')?.value;
58
- const thumbnail = parseJson(dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-thumbnail')?.value);
61
+ const description = getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value;
62
+ const thumbnail = parseJson(getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value);
59
63
  const shopMeta = shopifyMeta.status === 'fulfilled' ? shopifyMeta.value : undefined;
60
64
  const shopData = storeProperty.status === 'fulfilled' ? storeProperty.value : undefined;
61
65
  const favicon = shopData?.storeProperty?.favicon ?? '/favicon/favicon-32x32.png';
@@ -143,11 +147,11 @@ const getStaticPagePropsV2 = (fetcher, shopifyFetcher)=>async (slug)=>{
143
147
  swatches: parseJson(shopData?.storeProperty?.swatchesConfig),
144
148
  seo,
145
149
  mobileOnly,
146
- gaTrackingId: dataBuilder.themePageAnalytic?.gaTrackingID ?? null,
147
- facebookPixelId: dataBuilder.themePageAnalytic?.fbPixelID ?? null,
148
- tiktokPixelId: dataBuilder.themePageAnalytic?.tiktokPixelID ?? null,
149
- customCodeHeader: dataBuilder.themePageCustomCode?.header ?? null,
150
- customCodeBody: dataBuilder.themePageCustomCode?.body ?? null,
150
+ gaTrackingId: getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.ANALYTICS_GA_TRACKING_ID, dataBuilder?.metafields) ?? null,
151
+ facebookPixelId: getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.ANALYTICS_FB_PIXEL_ID, dataBuilder?.metafields) ?? null,
152
+ tiktokPixelId: getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.ANALYTICS_TIKTOK_PIXEL_ID, dataBuilder?.metafields) ?? null,
153
+ customCodeHeader: getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.CUSTOM_CODE_HEADER, dataBuilder?.metafields) ?? null,
154
+ customCodeBody: getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.CUSTOM_CODE_BODY, dataBuilder?.metafields) ?? null,
151
155
  pageHandle: dataBuilder.handle ?? null,
152
156
  customFonts,
153
157
  interaction: dataBuilder?.interaction,
@@ -1,10 +1,12 @@
1
- import { PublishedThemePagesDocument, StorePropertyDocument, prefetchQueries } from '@gem-sdk/core';
1
+ import { PublishedThemePagesDocument, StorePropertyDocument, PublishedShopMetasDocument, prefetchQueries } from '@gem-sdk/core';
2
2
  import { ShopMetaDocument } from '@gem-sdk/adapter-shopify';
3
3
  import { getFontFromGlobalStyle } from '../google-fonts.js';
4
4
  import { genCSS } from '../helpers/gen-css.js';
5
5
  import { generateManifest } from '../helpers/generate-manifres.js';
6
6
  import { parseBuilderTemplate } from '../helpers/normalize.js';
7
7
  import { parseJson, serializableJson } from '../helpers/parse-json.js';
8
+ import { PublishedThemePageMetafields } from '../../constants/index.js';
9
+ import { getPublishedThemePageMetafieldByKey } from '../helpers/get-metafield.js';
8
10
 
9
11
  const getStaticPageProps = (fetcher, shopifyFetcher)=>async (slug)=>{
10
12
  const pageType = 'STATIC';
@@ -12,7 +14,7 @@ const getStaticPageProps = (fetcher, shopifyFetcher)=>async (slug)=>{
12
14
  slug,
13
15
  slugType: pageType
14
16
  };
15
- const [theme, storeProperty, shopifyMeta] = await Promise.allSettled([
17
+ const [theme, storeProperty, shopifyMeta, publishedShopMetas] = await Promise.allSettled([
16
18
  fetcher([
17
19
  PublishedThemePagesDocument,
18
20
  variables
@@ -22,6 +24,16 @@ const getStaticPageProps = (fetcher, shopifyFetcher)=>async (slug)=>{
22
24
  ]),
23
25
  shopifyFetcher([
24
26
  ShopMetaDocument
27
+ ]),
28
+ fetcher([
29
+ PublishedShopMetasDocument,
30
+ {
31
+ keys: [
32
+ 'source_font',
33
+ PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,
34
+ PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL
35
+ ]
36
+ }
25
37
  ])
26
38
  ]);
27
39
  if (theme.status === 'rejected') {
@@ -29,6 +41,7 @@ const getStaticPageProps = (fetcher, shopifyFetcher)=>async (slug)=>{
29
41
  pageType
30
42
  };
31
43
  }
44
+ const publishedShopMetaValue = publishedShopMetas.status === 'fulfilled' ? publishedShopMetas.value : undefined;
32
45
  const dataBuilder = theme.value.publishedThemePages?.[0];
33
46
  const pageTemplate = parseBuilderTemplate(dataBuilder);
34
47
  const fontStyle = await getFontFromGlobalStyle(dataBuilder?.pageStyle?.data);
@@ -53,8 +66,8 @@ const getStaticPageProps = (fetcher, shopifyFetcher)=>async (slug)=>{
53
66
  }
54
67
  return acc;
55
68
  }, {});
56
- const description = dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-description')?.value;
57
- const thumbnail = parseJson(dataBuilder?.themePageDataSEO?.find((item)=>item?.key === 'global-meta-thumbnail')?.value);
69
+ const description = getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value;
70
+ const thumbnail = parseJson(getPublishedThemePageMetafieldByKey(PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL, dataBuilder?.metafields) || publishedShopMetaValue?.publishedShopMetas?.find((item)=>item?.key === PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value);
58
71
  const shopMeta = shopifyMeta.status === 'fulfilled' ? shopifyMeta.value : undefined;
59
72
  const shopData = storeProperty.status === 'fulfilled' ? storeProperty.value : undefined;
60
73
  const favicon = shopData?.storeProperty?.favicon ?? '/favicon/favicon-32x32.png';
@@ -0,0 +1,5 @@
1
+ const getPublishedThemePageMetafieldByKey = (key, metafields)=>{
2
+ return metafields?.find((item)=>item?.key === key)?.value;
3
+ };
4
+
5
+ export { getPublishedThemePageMetafieldByKey };
@@ -123,8 +123,8 @@ declare const usePagePreview: (dataBuilder: ThemePageQueryResponse['themePage'],
123
123
  pageConfig: {
124
124
  mobileOnly: boolean;
125
125
  locale: string | null;
126
- languageIsoCode: ("ID" | "AF" | "AM" | "AR" | "AZ" | "BE" | "BG" | "BM" | "BN" | "BO" | "BR" | "BS" | "CA" | "CU" | "CY" | "DE" | "DZ" | "EE" | "ES" | "ET" | "FI" | "FO" | "FR" | "GA" | "GD" | "GL" | "HR" | "HU" | "IS" | "IT" | "KI" | "KM" | "KN" | "KW" | "KY" | "LB" | "LT" | "LU" | "LV" | "MG" | "MK" | "ML" | "MN" | "MR" | "MS" | "MT" | "MY" | "NE" | "NL" | "NO" | "OM" | "PA" | "PL" | "PS" | "PT" | "RO" | "RU" | "RW" | "SD" | "SE" | "SG" | "SI" | "SK" | "SL" | "SN" | "SO" | "SR" | "SV" | "TA" | "TG" | "TH" | "TK" | "TO" | "TR" | "TT" | "UG" | "UZ" | "AK" | "AS" | "CE" | "CS" | "DA" | "EL" | "EN" | "EO" | "EU" | "FA" | "FF" | "FY" | "GU" | "GV" | "HA" | "HE" | "HI" | "HY" | "IA" | "IG" | "II" | "JA" | "JV" | "KA" | "KK" | "KL" | "KO" | "KS" | "KU" | "LG" | "LN" | "LO" | "MI" | "NB" | "ND" | "NN" | "OR" | "OS" | "PT_BR" | "PT_PT" | "QU" | "RM" | "RN" | "SQ" | "SU" | "SW" | "TE" | "TI" | "UK" | "UR" | "VI" | "VO" | "WO" | "XH" | "YI" | "YO" | "ZH" | "ZH_CN" | "ZH_TW" | "ZU") | null;
127
- countryIsoCode: ("ID" | "AC" | "AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" | "AN" | "AO" | "AR" | "AT" | "AU" | "AW" | "AX" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BL" | "BM" | "BN" | "BO" | "BQ" | "BR" | "BS" | "BT" | "BV" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG" | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV" | "CW" | "CX" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GT" | "GW" | "GY" | "HK" | "HM" | "HN" | "HR" | "HT" | "HU" | "IE" | "IL" | "IM" | "IN" | "IO" | "IQ" | "IR" | "IS" | "IT" | "JE" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MF" | "MG" | "MK" | "ML" | "MM" | "MN" | "MO" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK" | "PL" | "PM" | "PN" | "PS" | "PT" | "PY" | "QA" | "RE" | "RO" | "RS" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "SS" | "ST" | "SV" | "SX" | "SY" | "SZ" | "TA" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TL" | "TM" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "UM" | "US" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VN" | "VU" | "WF" | "WS" | "XK" | "YE" | "YT" | "ZA" | "ZM" | "ZW" | "ZZ") | null;
126
+ languageIsoCode: ("ID" | "LT" | "AF" | "AM" | "AR" | "AZ" | "BE" | "BG" | "BM" | "BN" | "BO" | "BR" | "BS" | "CA" | "CU" | "CY" | "DE" | "DZ" | "EE" | "ES" | "ET" | "FI" | "FO" | "FR" | "GA" | "GD" | "GL" | "HR" | "HU" | "IS" | "IT" | "KI" | "KM" | "KN" | "KW" | "KY" | "LB" | "LU" | "LV" | "MG" | "MK" | "ML" | "MN" | "MR" | "MS" | "MT" | "MY" | "NE" | "NL" | "NO" | "OM" | "PA" | "PL" | "PS" | "PT" | "RO" | "RU" | "RW" | "SD" | "SE" | "SG" | "SI" | "SK" | "SL" | "SN" | "SO" | "SR" | "SV" | "TA" | "TG" | "TH" | "TK" | "TO" | "TR" | "TT" | "UG" | "UZ" | "AK" | "AS" | "CE" | "CS" | "DA" | "EL" | "EN" | "EO" | "EU" | "FA" | "FF" | "FY" | "GU" | "GV" | "HA" | "HE" | "HI" | "HY" | "IA" | "IG" | "II" | "JA" | "JV" | "KA" | "KK" | "KL" | "KO" | "KS" | "KU" | "LG" | "LN" | "LO" | "MI" | "NB" | "ND" | "NN" | "OR" | "OS" | "PT_BR" | "PT_PT" | "QU" | "RM" | "RN" | "SQ" | "SU" | "SW" | "TE" | "TI" | "UK" | "UR" | "VI" | "VO" | "WO" | "XH" | "YI" | "YO" | "ZH" | "ZH_CN" | "ZH_TW" | "ZU") | null;
127
+ countryIsoCode: ("ID" | "GT" | "LT" | "AC" | "AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" | "AN" | "AO" | "AR" | "AT" | "AU" | "AW" | "AX" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BL" | "BM" | "BN" | "BO" | "BQ" | "BR" | "BS" | "BT" | "BV" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG" | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV" | "CW" | "CX" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GW" | "GY" | "HK" | "HM" | "HN" | "HR" | "HT" | "HU" | "IE" | "IL" | "IM" | "IN" | "IO" | "IQ" | "IR" | "IS" | "IT" | "JE" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MF" | "MG" | "MK" | "ML" | "MM" | "MN" | "MO" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK" | "PL" | "PM" | "PN" | "PS" | "PT" | "PY" | "QA" | "RE" | "RO" | "RS" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "SS" | "ST" | "SV" | "SX" | "SY" | "SZ" | "TA" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TL" | "TM" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "UM" | "US" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VN" | "VU" | "WF" | "WS" | "XK" | "YE" | "YT" | "ZA" | "ZM" | "ZW" | "ZZ") | null;
128
128
  moneyFormat: string | null;
129
129
  currency: ("AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BRL" | "BSD" | "BTN" | "BWP" | "BYN" | "BYR" | "BZD" | "CAD" | "CDF" | "CHF" | "CLP" | "CNY" | "COP" | "CRC" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JEP" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KID" | "KMF" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LTL" | "LVL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLL" | "SOS" | "SRD" | "SSP" | "STD" | "STN" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "UYU" | "UZS" | "VED" | "VEF" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XCD" | "XOF" | "XPF" | "XXX" | "YER" | "ZAR" | "ZMW") | null;
130
130
  swatches: any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/pages",
3
- "version": "2.0.0-dev.161",
3
+ "version": "2.0.0-dev.173",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -26,7 +26,7 @@
26
26
  "next": "latest"
27
27
  },
28
28
  "devDependencies": {
29
- "@gem-sdk/core": "2.0.0-dev.160",
29
+ "@gem-sdk/core": "2.0.0-dev.173",
30
30
  "@gem-sdk/plugin-cookie-bar": "1.58.0-dev.142",
31
31
  "@gem-sdk/plugin-quick-view": "1.58.0-dev.142",
32
32
  "@gem-sdk/plugin-sticky-add-to-cart": "1.58.0-dev.142"