@gem-sdk/pages 3.0.0-pre-production.0 → 3.0.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.
Files changed (150) hide show
  1. package/dist/cjs/components/ErrorBoundary.js +2 -40
  2. package/dist/cjs/components/ErrorFallback.js +2 -26
  3. package/dist/cjs/components/FacebookPixel.js +4 -36
  4. package/dist/cjs/components/FooterForPostPurchase.js +2 -34
  5. package/dist/cjs/components/GoogleAnalytic.js +6 -67
  6. package/dist/cjs/components/TikTokPixel.js +4 -19
  7. package/dist/cjs/components/builder/Body.js +2 -36
  8. package/dist/cjs/components/builder/Footer.js +2 -154
  9. package/dist/cjs/components/builder/Header.js +2 -189
  10. package/dist/cjs/components/builder/PopupManager.js +2 -63
  11. package/dist/cjs/components/builder/SwitchView.js +2 -184
  12. package/dist/cjs/components/builder/Toolbar.js +2 -706
  13. package/dist/cjs/components/builder/Toolbox.js +2 -494
  14. package/dist/cjs/components/builder/const.js +1 -56
  15. package/dist/cjs/components/builder/toolbar/const.js +1 -7
  16. package/dist/cjs/components/builder/toolbar/utils/findDOMClosest.js +1 -41
  17. package/dist/cjs/components/builder/toolbar/utils/findOverflowParent.js +1 -20
  18. package/dist/cjs/components/builder/toolbar/utils/getChildrenByAttrSelector.js +1 -18
  19. package/dist/cjs/components/builder/toolbar/utils/getDOMElementParents.js +1 -32
  20. package/dist/cjs/components/builder/toolbar/utils/isOverParent.js +1 -16
  21. package/dist/cjs/components/builder/toolbar/utils/isOverToolbarPosition.js +1 -12
  22. package/dist/cjs/components/builder/toolbar/utils/isSection.js +1 -8
  23. package/dist/cjs/components/builder/toolbar/utils/notVisible.js +1 -8
  24. package/dist/cjs/components/builder/toolbar/utils/waitForElementToExist.js +1 -27
  25. package/dist/cjs/components/image-to-layout/AddSectionImageToLayout.js +2 -150
  26. package/dist/cjs/components/image-to-layout/DropElement.js +2 -190
  27. package/dist/cjs/components/image-to-layout/ImageToLayout.js +2 -41
  28. package/dist/cjs/constants/index.js +1 -0
  29. package/dist/cjs/index.js +1 -82
  30. package/dist/cjs/layouts/main.js +2 -30
  31. package/dist/cjs/libs/api/get-builder-props.js +1 -46
  32. package/dist/cjs/libs/api/get-collection-props.js +1 -68
  33. package/dist/cjs/libs/api/get-home-page-props-v2.js +1 -145
  34. package/dist/cjs/libs/api/get-home-page-props.js +1 -151
  35. package/dist/cjs/libs/api/get-post-purchase-props-preview.js +1 -300
  36. package/dist/cjs/libs/api/get-preview-props.js +1 -18
  37. package/dist/cjs/libs/api/get-product-props.js +1 -73
  38. package/dist/cjs/libs/api/get-static-page-props-preview.js +1 -159
  39. package/dist/cjs/libs/api/get-static-page-props-v2.js +1 -168
  40. package/dist/cjs/libs/api/get-static-page-props.js +1 -148
  41. package/dist/cjs/libs/custom-fonts.js +6 -60
  42. package/dist/cjs/libs/fetcher.js +1 -100
  43. package/dist/cjs/libs/get-layout.js +1 -13
  44. package/dist/cjs/libs/get-storefront-api.js +1 -12
  45. package/dist/cjs/libs/getStaticPaths.js +1 -10
  46. package/dist/cjs/libs/google-fonts.js +1 -118
  47. package/dist/cjs/libs/helpers/check-option-font.js +1 -65
  48. package/dist/cjs/libs/helpers/common.js +1 -27
  49. package/dist/cjs/libs/helpers/extract-operation.js +1 -0
  50. package/dist/cjs/libs/helpers/gen-css.js +1 -135
  51. package/dist/cjs/libs/helpers/gen-fonts.js +1 -90
  52. package/dist/cjs/libs/helpers/generate-manifres.js +1 -5
  53. package/dist/cjs/libs/helpers/get-fallback.js +1 -34
  54. package/dist/cjs/libs/helpers/get-metafield.js +1 -0
  55. package/dist/cjs/libs/helpers/normalize.js +1 -103
  56. package/dist/cjs/libs/helpers/parse-json.js +1 -16
  57. package/dist/cjs/libs/helpers/sentry.js +1 -17
  58. package/dist/cjs/libs/helpers/user-agent.js +1 -7
  59. package/dist/cjs/libs/hooks/use-tracking-view.js +2 -42
  60. package/dist/cjs/libs/hooks/usePagePreview.js +1 -92
  61. package/dist/cjs/libs/parse-html.js +1 -34
  62. package/dist/cjs/libs/shopify-cdn-with-google-fonts.js +1 -1845
  63. package/dist/cjs/pages/404.js +2 -43
  64. package/dist/cjs/pages/500.js +2 -74
  65. package/dist/cjs/pages/CollectionGlobalProvider.js +2 -59
  66. package/dist/cjs/pages/builder.js +2 -115
  67. package/dist/cjs/pages/collection-detail.js +2 -64
  68. package/dist/cjs/pages/preview.js +2 -26
  69. package/dist/cjs/pages/product-detail.js +2 -69
  70. package/dist/cjs/pages/static-v2.js +5 -133
  71. package/dist/cjs/pages/static.js +2 -75
  72. package/dist/cjs/store/libs-store.js +1 -14
  73. package/dist/esm/components/ErrorBoundary.js +2 -38
  74. package/dist/esm/components/ErrorFallback.js +2 -24
  75. package/dist/esm/components/FacebookPixel.js +4 -34
  76. package/dist/esm/components/FooterForPostPurchase.js +2 -30
  77. package/dist/esm/components/GoogleAnalytic.js +6 -65
  78. package/dist/esm/components/TikTokPixel.js +4 -17
  79. package/dist/esm/components/builder/Body.js +2 -32
  80. package/dist/esm/components/builder/Footer.js +2 -150
  81. package/dist/esm/components/builder/Header.js +2 -185
  82. package/dist/esm/components/builder/PopupManager.js +2 -59
  83. package/dist/esm/components/builder/SwitchView.js +2 -180
  84. package/dist/esm/components/builder/Toolbar.js +2 -702
  85. package/dist/esm/components/builder/Toolbox.js +2 -490
  86. package/dist/esm/components/builder/const.js +1 -54
  87. package/dist/esm/components/builder/toolbar/const.js +1 -4
  88. package/dist/esm/components/builder/toolbar/utils/findDOMClosest.js +1 -39
  89. package/dist/esm/components/builder/toolbar/utils/findOverflowParent.js +1 -18
  90. package/dist/esm/components/builder/toolbar/utils/getChildrenByAttrSelector.js +1 -16
  91. package/dist/esm/components/builder/toolbar/utils/getDOMElementParents.js +1 -30
  92. package/dist/esm/components/builder/toolbar/utils/isOverParent.js +1 -14
  93. package/dist/esm/components/builder/toolbar/utils/isOverToolbarPosition.js +1 -10
  94. package/dist/esm/components/builder/toolbar/utils/isSection.js +1 -6
  95. package/dist/esm/components/builder/toolbar/utils/notVisible.js +1 -6
  96. package/dist/esm/components/builder/toolbar/utils/waitForElementToExist.js +1 -25
  97. package/dist/esm/components/image-to-layout/AddSectionImageToLayout.js +2 -146
  98. package/dist/esm/components/image-to-layout/DropElement.js +2 -188
  99. package/dist/esm/components/image-to-layout/ImageToLayout.js +2 -37
  100. package/dist/esm/constants/index.js +1 -0
  101. package/dist/esm/index.js +1 -36
  102. package/dist/esm/layouts/main.js +2 -26
  103. package/dist/esm/libs/api/get-builder-props.js +1 -44
  104. package/dist/esm/libs/api/get-collection-props.js +1 -66
  105. package/dist/esm/libs/api/get-home-page-props-v2.js +1 -143
  106. package/dist/esm/libs/api/get-home-page-props.js +1 -149
  107. package/dist/esm/libs/api/get-post-purchase-props-preview.js +1 -292
  108. package/dist/esm/libs/api/get-preview-props.js +1 -16
  109. package/dist/esm/libs/api/get-product-props.js +1 -71
  110. package/dist/esm/libs/api/get-static-page-props-preview.js +1 -157
  111. package/dist/esm/libs/api/get-static-page-props-v2.js +1 -166
  112. package/dist/esm/libs/api/get-static-page-props.js +1 -146
  113. package/dist/esm/libs/custom-fonts.js +6 -55
  114. package/dist/esm/libs/fetcher.js +1 -96
  115. package/dist/esm/libs/get-layout.js +1 -11
  116. package/dist/esm/libs/get-storefront-api.js +1 -10
  117. package/dist/esm/libs/getStaticPaths.js +1 -8
  118. package/dist/esm/libs/google-fonts.js +1 -112
  119. package/dist/esm/libs/helpers/check-option-font.js +1 -63
  120. package/dist/esm/libs/helpers/common.js +1 -24
  121. package/dist/esm/libs/helpers/extract-operation.js +1 -0
  122. package/dist/esm/libs/helpers/gen-css.js +1 -133
  123. package/dist/esm/libs/helpers/gen-fonts.js +1 -87
  124. package/dist/esm/libs/helpers/generate-manifres.js +1 -3
  125. package/dist/esm/libs/helpers/get-fallback.js +1 -32
  126. package/dist/esm/libs/helpers/get-metafield.js +1 -0
  127. package/dist/esm/libs/helpers/normalize.js +1 -96
  128. package/dist/esm/libs/helpers/parse-json.js +1 -13
  129. package/dist/esm/libs/helpers/sentry.js +1 -15
  130. package/dist/esm/libs/helpers/user-agent.js +1 -5
  131. package/dist/esm/libs/hooks/use-tracking-view.js +2 -40
  132. package/dist/esm/libs/hooks/usePagePreview.js +1 -90
  133. package/dist/esm/libs/parse-html.js +1 -32
  134. package/dist/esm/libs/shopify-cdn-with-google-fonts.js +1 -1843
  135. package/dist/esm/pages/404.js +2 -41
  136. package/dist/esm/pages/500.js +2 -72
  137. package/dist/esm/pages/CollectionGlobalProvider.js +2 -55
  138. package/dist/esm/pages/builder.js +2 -113
  139. package/dist/esm/pages/collection-detail.js +2 -60
  140. package/dist/esm/pages/preview.js +2 -24
  141. package/dist/esm/pages/product-detail.js +2 -65
  142. package/dist/esm/pages/static-v2.js +5 -131
  143. package/dist/esm/pages/static.js +2 -71
  144. package/dist/esm/store/libs-store.js +1 -12
  145. package/dist/types/index.d.ts +61 -63
  146. package/package.json +7 -7
  147. package/dist/cjs/components/builder/InteractionSelectOnPageHeader.js +0 -192
  148. package/dist/cjs/libs/helpers/gen-favicon.js +0 -22
  149. package/dist/esm/components/builder/InteractionSelectOnPageHeader.js +0 -188
  150. package/dist/esm/libs/helpers/gen-favicon.js +0 -20
@@ -1,96 +1 @@
1
- const normalizeBuilderData = (data)=>{
2
- const result = {};
3
- function compose(cData, currData = {}) {
4
- if (cData) {
5
- const { childrens, dateModified, editorConfigs, ...rest } = cData;
6
- if (rest.type === 'section') {
7
- currData[rest.uid] = rest;
8
- } else {
9
- const items = childrens?.map((child)=>child?.uid) ?? [];
10
- currData[rest.uid] = {
11
- ...rest,
12
- childrens: items
13
- };
14
- if (childrens) {
15
- childrens.map((child)=>compose(child, currData));
16
- }
17
- }
18
- }
19
- }
20
- compose(data, result);
21
- return {
22
- ...result
23
- };
24
- };
25
- const orderSection = (sections, orders)=>{
26
- // Filter out sections that are not in the order list
27
- const ids = orders?.filter((id)=>sections?.some((v)=>v?.id === id));
28
- // Return the ordered sections
29
- const orderedSections = ids?.map((id)=>sections?.find((v)=>v?.id === id)) ?? [];
30
- // Return the sections that are not in the order list
31
- const sectionsNotInOrder = sections?.filter((v)=>(!v?.id || !ids?.includes(v.id)) && !v?.deletedAt) ?? [];
32
- // Return the ordered sections + the sections that are not in the order list
33
- return orderedSections.concat(sectionsNotInOrder);
34
- };
35
- function normalizePageSectionResponse(sections, orders) {
36
- const sortedSections = orderSection(sections, orders);
37
- const childrens = sortedSections.map((item)=>{
38
- if (!item?.component) return false;
39
- try {
40
- const data = JSON.parse(item.component);
41
- return data;
42
- } catch {
43
- return false;
44
- }
45
- }).filter(Boolean);
46
- return normalizeBuilderData({
47
- uid: 'ROOT',
48
- tag: 'Root',
49
- childrens
50
- });
51
- }
52
- function normalizePageSectionResponseV2(sections, orders) {
53
- const sortedSections = orderSection(sections, orders);
54
- const childrens = sortedSections.map((item)=>{
55
- if (!item?.component) return false;
56
- try {
57
- const data = JSON.parse(item.component);
58
- return data;
59
- } catch {
60
- return false;
61
- }
62
- }).filter(Boolean);
63
- return childrens.map((v)=>{
64
- return {
65
- uid: v.uid,
66
- lazy: Boolean(v.settings?.lazy),
67
- priority: Boolean(v.settings?.priority),
68
- data: normalizeBuilderData(v)
69
- };
70
- });
71
- }
72
- const parseBuilderTemplateV2 = (data)=>{
73
- return normalizePageSectionResponseV2([
74
- ...data?.pageSections ?? [],
75
- ...data?.themePageCustomSections ?? [],
76
- ...data?.themeSections ?? []
77
- ], data?.sectionPosition);
78
- };
79
- const parseBuilderTemplate = (data)=>{
80
- return normalizePageSectionResponse([
81
- ...data?.pageSections ?? [],
82
- ...data?.themePageCustomSections ?? []
83
- ], data?.sectionPosition);
84
- };
85
- const parseBuilderLibraryTemplate = (data)=>{
86
- return normalizePageSectionResponseV2([
87
- ...data?.sections ?? []
88
- ], data?.sectionPosition);
89
- };
90
- const parseShopLibraryPageTemplate = (data)=>{
91
- return normalizePageSectionResponseV2([
92
- ...data?.shopLibrarySections ?? []
93
- ], data?.sectionPosition);
94
- };
95
-
96
- export { normalizeBuilderData, normalizePageSectionResponseV2, parseBuilderLibraryTemplate, parseBuilderTemplate, parseBuilderTemplateV2, parseShopLibraryPageTemplate };
1
+ let normalizeBuilderData=e=>{let t={};function r(e,t={}){if(e){let{childrens:i,dateModified:a,editorConfigs:n,...o}=e;if("section"===o.type)t[o.uid]=o;else{let e=i?.map(e=>e?.uid)??[];t[o.uid]={...o,childrens:e},i&&i.map(e=>r(e,t))}}}return r(e,t),{...t}},orderSection=(e,t)=>{let r=t?.filter(t=>e?.some(e=>e?.id===t)),i=r?.map(t=>e?.find(e=>e?.id===t))??[],a=e?.filter(e=>(!e?.id||!r?.includes(e.id))&&!e?.deletedAt)??[];return i.concat(a)};function normalizePageSectionResponse(e,t){let r=orderSection(e,t),i=r.map(e=>{if(!e?.component)return!1;try{let t=JSON.parse(e.component);return t}catch{return!1}}).filter(Boolean);return normalizeBuilderData({uid:"ROOT",tag:"Root",childrens:i})}function normalizePageSectionResponseV2(e,t){let r=orderSection(e,t),i=r.map(e=>{if(!e?.component)return!1;try{let t=JSON.parse(e.component);return t}catch{return!1}}).filter(Boolean);return i.map(e=>({uid:e.uid,lazy:!!e.settings?.lazy,priority:!!e.settings?.priority,data:normalizeBuilderData(e)}))}let parseBuilderTemplateV2=e=>normalizePageSectionResponseV2([...e?.pageSections??[],...e?.themePageCustomSections??[],...e?.themeSections??[]],e?.sectionPosition),parseBuilderTemplate=e=>normalizePageSectionResponse([...e?.pageSections??[],...e?.themePageCustomSections??[]],e?.sectionPosition),extractPageBackground=e=>{try{let t=e?.metafields?.find(e=>e?.key==="page_background")?.value;return JSON.parse(t??"{}")}catch{return{}}},parseBuilderLibraryTemplate=e=>normalizePageSectionResponseV2([...e?.sections??[]],e?.sectionPosition),parseShopLibraryPageTemplate=e=>normalizePageSectionResponseV2([...e?.shopLibrarySections??[]],e?.sectionPosition);export{extractPageBackground,normalizeBuilderData,normalizePageSectionResponseV2,parseBuilderLibraryTemplate,parseBuilderTemplate,parseBuilderTemplateV2,parseShopLibraryPageTemplate};
@@ -1,13 +1 @@
1
- const parseJson = (json)=>{
2
- if (!json) return null;
3
- try {
4
- return JSON.parse(json);
5
- } catch (e) {
6
- return null;
7
- }
8
- };
9
- const serializableJson = (props)=>{
10
- return JSON.parse(JSON.stringify(props));
11
- };
12
-
13
- export { parseJson, serializableJson };
1
+ let parseJson=r=>{if(!r)return null;try{return JSON.parse(r)}catch(r){return null}},serializableJson=r=>JSON.parse(JSON.stringify(r));export{parseJson,serializableJson};
@@ -1,15 +1 @@
1
- import { withScope, captureMessage } from '@sentry/nextjs';
2
-
3
- const sentryCaptureException = (funcName, message, data, options)=>{
4
- withScope((scope)=>{
5
- scope.setLevel(options?.level ?? 'log');
6
- if (options?.tag) {
7
- scope.setTag(options?.tag.key, options?.tag.value);
8
- }
9
- scope.setExtra('function', funcName);
10
- scope.setExtra('data', JSON.stringify(data));
11
- captureMessage(`${funcName}: ${message}`);
12
- });
13
- };
14
-
15
- export { sentryCaptureException };
1
+ import{withScope as t,captureMessage as e}from"@sentry/nextjs";let sentryCaptureException=(a,r,n,s)=>{t(t=>{t.setLevel(s?.level??"log"),s?.tag&&t.setTag(s?.tag.key,s?.tag.value),t.setExtra("function",a),t.setExtra("data",JSON.stringify(n)),e(`${a}: ${r}`)})};export{sentryCaptureException};
@@ -1,5 +1 @@
1
- function isBot(input) {
2
- return /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Chrome-Lighthouse|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(input);
3
- }
4
-
5
- export { isBot };
1
+ function isBot(o){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Chrome-Lighthouse|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(o)}export{isBot};
@@ -1,40 +1,2 @@
1
- import { PageViewUpDocument } from '@gem-sdk/core';
2
- import { useCallback, useEffect } from 'react';
3
-
4
- const useTrackingView = (token, handle, isFallback)=>{
5
- const shopToken = token || process.env.NEXT_PUBLIC_SHOP_TOKEN;
6
- const apiURL = process.env.NEXT_PUBLIC_API_URL;
7
- const sendTracking = useCallback((handle)=>{
8
- if (!apiURL || !shopToken) return;
9
- const variables = {
10
- pageHandle: handle
11
- };
12
- const headers = {
13
- 'Content-Type': 'application/json',
14
- 'X-GemX-Shop-Token': shopToken
15
- };
16
- fetch(apiURL, {
17
- method: 'POST',
18
- headers,
19
- body: JSON.stringify({
20
- query: PageViewUpDocument,
21
- variables
22
- })
23
- }).finally(()=>{
24
- //
25
- });
26
- }, [
27
- apiURL,
28
- shopToken
29
- ]);
30
- useEffect(()=>{
31
- if (!handle || isFallback) return;
32
- sendTracking(handle);
33
- }, [
34
- handle,
35
- sendTracking,
36
- isFallback
37
- ]);
38
- };
39
-
40
- export { useTrackingView };
1
+ 'use client';
2
+ import{PageViewUpDocument as e}from"@gem-sdk/core";import{useCallback as o,useEffect as r}from"react";let useTrackingView=(t,n,i)=>{let p=t||process.env.NEXT_PUBLIC_SHOP_TOKEN,s=process.env.NEXT_PUBLIC_API_URL,a=o(o=>{if(!s||!p)return;let r={pageHandle:o},t={"Content-Type":"application/json","X-GemX-Shop-Token":p};fetch(s,{method:"POST",headers:t,body:JSON.stringify({query:e,variables:r})}).finally(()=>{})},[s,p]);r(()=>{n&&!i&&a(n)},[n,a,i])};export{useTrackingView};
@@ -1,90 +1 @@
1
- import { generateManifest } from '../helpers/generate-manifres.js';
2
- import { parseJson } from '../helpers/parse-json.js';
3
-
4
- const usePagePreview = (dataBuilder, storeProperty, shopifyMeta)=>{
5
- const mobileOnly = dataBuilder?.isMobile ?? false;
6
- const shopMeta = shopifyMeta?.status === 'fulfilled' ? shopifyMeta.value : undefined;
7
- const shopData = storeProperty.status === 'fulfilled' ? storeProperty.value : undefined;
8
- const favicon = shopData?.storeProperty?.favicon ?? '/favicon/favicon-32x32.png';
9
- const languageIsoCode = shopMeta?.localization.language.isoCode ?? null;
10
- const countryIsoCode = shopMeta?.localization.country.isoCode ?? null;
11
- const moneyFormat = shopMeta?.shop.moneyFormat ?? null;
12
- const currency = shopMeta?.localization.country.currency.isoCode ?? null;
13
- const swatches = parseJson(shopData?.storeProperty?.swatchesConfig);
14
- const locale = !languageIsoCode || !countryIsoCode ? null : `${languageIsoCode}-${countryIsoCode}`;
15
- const seo = {
16
- defaultTitle: shopMeta?.shop.name,
17
- title: dataBuilder?.name,
18
- openGraph: {
19
- site_name: shopMeta?.shop.name,
20
- locale: shopMeta?.localization.country.isoCode,
21
- title: dataBuilder?.name ?? shopMeta?.shop.name
22
- },
23
- nofollow: true,
24
- noindex: true,
25
- canonical: `/preview/${dataBuilder?.id}`,
26
- additionalMetaTags: [
27
- {
28
- name: 'theme-color',
29
- content: '#000000'
30
- }
31
- ],
32
- additionalLinkTags: [
33
- {
34
- rel: 'icon',
35
- sizes: '32x32',
36
- href: `${favicon}-/crop/1:1/center/-/smart_resize/32x32/`
37
- },
38
- {
39
- rel: 'icon',
40
- sizes: '16x16',
41
- href: `${favicon}-/crop/1:1/center/-/smart_resize/16x16/`
42
- },
43
- {
44
- rel: 'apple-touch-icon',
45
- sizes: '180x180',
46
- href: `${favicon}-/crop/1:1/center/-/smart_resize/180x180/`
47
- },
48
- {
49
- rel: 'manifest',
50
- href: generateManifest({
51
- theme_color: '#000000',
52
- background_color: '#ffffff',
53
- display: 'standalone',
54
- scope: '/',
55
- start_url: '/',
56
- name: shopMeta?.shop.name,
57
- short_name: shopMeta?.shop.name,
58
- description: shopMeta?.shop.description,
59
- icons: [
60
- {
61
- src: `${favicon}-/crop/1:1/center/-/smart_resize/192x192/`,
62
- sizes: '192x192',
63
- type: 'image/png',
64
- purpose: 'any maskable'
65
- },
66
- {
67
- src: `${favicon}-/crop/1:1/center/-/smart_resize/512x512/`,
68
- sizes: '512x512',
69
- type: 'image/png'
70
- }
71
- ]
72
- })
73
- }
74
- ]
75
- };
76
- return {
77
- seo,
78
- pageConfig: {
79
- mobileOnly,
80
- locale,
81
- languageIsoCode,
82
- countryIsoCode,
83
- moneyFormat,
84
- currency,
85
- swatches
86
- }
87
- };
88
- };
89
-
90
- export { usePagePreview };
1
+ import{generateManifest as e}from"../helpers/generate-manifres.js";import{parseJson as o}from"../helpers/parse-json.js";let usePagePreview=(r,a,n)=>{let s=r?.isMobile??!1,i=n?.status==="fulfilled"?n.value:void 0,t="fulfilled"===a.status?a.value:void 0,l=t?.storeProperty?.favicon??"/favicon/favicon-32x32.png",c=i?.localization.language.isoCode??null,p=i?.localization.country.isoCode??null,m=i?.shop.moneyFormat??null,f=i?.localization.country.currency.isoCode??null,u=o(t?.storeProperty?.swatchesConfig),d=c&&p?`${c}-${p}`:null,h={defaultTitle:i?.shop.name,title:r?.name,openGraph:{site_name:i?.shop.name,locale:i?.localization.country.isoCode,title:r?.name??i?.shop.name},nofollow:!0,noindex:!0,canonical:`/preview/${r?.id}`,additionalMetaTags:[{name:"theme-color",content:"#000000"}],additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${l}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${l}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${l}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:e({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:i?.shop.name,short_name:i?.shop.name,description:i?.shop.description,icons:[{src:`${l}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${l}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]};return{seo:h,pageConfig:{mobileOnly:s,locale:d,languageIsoCode:c,countryIsoCode:p,moneyFormat:m,currency:f,swatches:u}}};export{usePagePreview};
@@ -1,32 +1 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import parse, { Element, Text } from 'html-react-parser';
3
-
4
- const parseHtml = (key, html, isHead)=>{
5
- if (!html) return undefined;
6
- try {
7
- return parse(html, {
8
- replace: (node)=>{
9
- if (node.type !== 'script' || !(node instanceof Element)) return null;
10
- const child = node.children?.[0];
11
- if (!child) return null;
12
- if (!(child instanceof Text) && !isHead) return /*#__PURE__*/ jsx("script", {
13
- id: key,
14
- ...node.attribs
15
- }, key);
16
- if (child instanceof Text && isHead) {
17
- return /*#__PURE__*/ jsx("script", {
18
- id: key,
19
- ...node.attribs,
20
- dangerouslySetInnerHTML: {
21
- __html: child.data
22
- }
23
- }, key);
24
- }
25
- }
26
- });
27
- } catch {
28
- return undefined;
29
- }
30
- };
31
-
32
- export { parseHtml };
1
+ import{jsx as t}from"react/jsx-runtime";import r,{Element as e,Text as i}from"html-react-parser";let parseHtml=(n,a,l)=>{if(a)try{return r(a,{replace:r=>{if("script"!==r.type||!(r instanceof e))return null;let a=r.children?.[0];return a?a instanceof i||l?a instanceof i&&l?t("script",{id:n,...r.attribs,dangerouslySetInnerHTML:{__html:a.data}},n):void 0:t("script",{id:n,...r.attribs},n):null}})}catch{return}};export{parseHtml};