cloudcommerce 2.6.2 → 2.6.4

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 (158) hide show
  1. package/.github/workflows/test-apps.yml +1 -1
  2. package/CHANGELOG.md +21 -0
  3. package/README.md +2 -0
  4. package/ecomplus-stores/barradoce/functions/many/package.json +3 -3
  5. package/ecomplus-stores/barradoce/functions/ssr/content/reviews.json +71 -0
  6. package/ecomplus-stores/barradoce/functions/ssr/content/types.d.ts +5 -0
  7. package/ecomplus-stores/barradoce/functions/ssr/package.json +6 -6
  8. package/ecomplus-stores/barradoce/functions/ssr/src/components/ProductDetails.vue +2 -1
  9. package/ecomplus-stores/barradoce/functions/ssr/src/env.d.ts +1 -0
  10. package/ecomplus-stores/barradoce/functions/with-apps/package.json +3 -3
  11. package/ecomplus-stores/barradoce/package.json +2 -2
  12. package/package.json +7 -7
  13. package/packages/api/package.json +1 -1
  14. package/packages/apps/affiliate-program/package.json +1 -1
  15. package/packages/apps/correios/package.json +1 -1
  16. package/packages/apps/custom-payment/package.json +1 -1
  17. package/packages/apps/custom-shipping/package.json +1 -1
  18. package/packages/apps/datafrete/package.json +1 -1
  19. package/packages/apps/discounts/package.json +1 -1
  20. package/packages/apps/emails/package.json +1 -1
  21. package/packages/apps/fb-conversions/package.json +1 -1
  22. package/packages/apps/flash-courier/package.json +1 -1
  23. package/packages/apps/frenet/package.json +1 -1
  24. package/packages/apps/galaxpay/package.json +1 -1
  25. package/packages/apps/google-analytics/package.json +1 -1
  26. package/packages/apps/jadlog/package.json +1 -1
  27. package/packages/apps/loyalty-points/package.json +1 -1
  28. package/packages/apps/mandae/package.json +1 -1
  29. package/packages/apps/melhor-envio/package.json +1 -1
  30. package/packages/apps/mercadopago/package.json +1 -1
  31. package/packages/apps/pagarme/package.json +2 -2
  32. package/packages/apps/pagarme-v5/package.json +1 -1
  33. package/packages/apps/paghiper/package.json +1 -1
  34. package/packages/apps/pix/package.json +1 -1
  35. package/packages/apps/tiny-erp/package.json +1 -1
  36. package/packages/apps/webhooks/package.json +1 -1
  37. package/packages/cli/package.json +2 -2
  38. package/packages/config/package.json +1 -1
  39. package/packages/emails/package.json +2 -2
  40. package/packages/eslint/package.json +6 -6
  41. package/packages/events/package.json +1 -1
  42. package/packages/feeds/package.json +1 -1
  43. package/packages/firebase/package.json +2 -2
  44. package/packages/i18n/package.json +1 -1
  45. package/packages/modules/package.json +1 -1
  46. package/packages/passport/package.json +1 -1
  47. package/packages/ssr/lib/lib/cron-ssr-save-views.js +71 -66
  48. package/packages/ssr/lib/lib/cron-ssr-save-views.js.map +1 -1
  49. package/packages/ssr/package.json +6 -6
  50. package/packages/ssr/src/lib/cron-ssr-save-views.ts +84 -77
  51. package/packages/storefront/dist/client/_astro/AccountPage.B4WZaOzX.js +1 -0
  52. package/packages/storefront/dist/client/_astro/CartSidebar.DAGdpIcU.js +1 -0
  53. package/packages/storefront/dist/client/_astro/HeroSlider.Dq_9kcdU.js +1 -0
  54. package/packages/storefront/dist/client/_astro/PitchBar.BwLlIs6F.js +1 -0
  55. package/packages/storefront/dist/client/_astro/Prices.BgHTq5id.js +1 -0
  56. package/packages/storefront/dist/client/_astro/ProductDetails.CnYNdPl5.js +7 -0
  57. package/packages/storefront/dist/client/_astro/ProductShelf.kfADQTUO.js +1 -0
  58. package/packages/storefront/dist/client/_astro/SearchModal.DcmvABes.js +1 -0
  59. package/packages/storefront/dist/client/_astro/SearchShowcase.C9GWwOnF.js +1 -0
  60. package/packages/storefront/dist/client/_astro/ShippingCalculator.DE01D7dt.js +1 -0
  61. package/packages/storefront/dist/client/_astro/ShopHeader.Cf4t6O6z.js +7 -0
  62. package/packages/storefront/dist/client/_astro/_commonjsHelpers.Cpj98o6Y.js +1 -0
  63. package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.CBemkWnU.js +5 -0
  64. package/packages/storefront/dist/client/_astro/{_slug_.4W7qhV-L.css → _slug_.DX_OkMX7.css} +1 -1
  65. package/packages/storefront/dist/client/_astro/{afetch.OifQZgwR.js → afetch.DPLba2tr.js} +1 -1
  66. package/packages/storefront/dist/client/_astro/client.CdXC84C5.js +1 -0
  67. package/packages/storefront/dist/client/_astro/customer-session.CNe1heRH.js +7 -0
  68. package/packages/storefront/dist/client/_astro/{firebase-app.iLdzDVjL.js → firebase-app.CBckq0Sj.js} +1 -1
  69. package/packages/storefront/dist/client/_astro/{format-money.1_HtF5S2.js → format-money.DINpWB0x.js} +1 -1
  70. package/packages/storefront/dist/client/_astro/grid-title.D4m7-g3h.js +1 -0
  71. package/packages/storefront/dist/client/_astro/hoisted.B2rH1xwX.js +8 -0
  72. package/packages/storefront/dist/client/_astro/hoisted.DBPXHTEb.js +1 -0
  73. package/packages/storefront/dist/client/_astro/hoisted.EBqhuD5o.js +1 -0
  74. package/packages/storefront/dist/client/_astro/{hoisted.GaT7bmE3.js → hoisted.ut_nNM_H.js} +1 -1
  75. package/packages/storefront/dist/client/_astro/i18n.B3skIOFg.js +1 -0
  76. package/packages/storefront/dist/client/_astro/img-sizes.rFK7so02.js +1 -0
  77. package/packages/storefront/dist/client/_astro/img.D5a6GzeE.js +1 -0
  78. package/packages/storefront/dist/client/_astro/index.CFw6O-Kt.js +1 -0
  79. package/packages/storefront/dist/client/_astro/index.DBfgCyd-.js +1 -0
  80. package/packages/storefront/dist/client/_astro/{modules-info.HP6478mG.js → modules-info.BHKiT6oA.js} +1 -1
  81. package/packages/storefront/dist/client/_astro/name.BZA9xqh-.js +1 -0
  82. package/packages/storefront/dist/client/_astro/photoswipe.esm.C0FT-EY-.js +4 -0
  83. package/packages/storefront/dist/client/_astro/price.CHiL6Z1J.js +1 -0
  84. package/packages/storefront/dist/client/_astro/sf-utils.Cigv01cN.js +13 -0
  85. package/packages/storefront/dist/client/_astro/shopping-cart.D-w8Z-4p.js +1 -0
  86. package/packages/storefront/dist/client/_astro/use-analytics.CQDdNgwF.js +1 -0
  87. package/packages/storefront/dist/client/_astro/use-cms-preview.4Hq7LCmA.js +1 -0
  88. package/packages/storefront/dist/client/_astro/use-product-card.CQRlRsNX.js +1 -0
  89. package/packages/storefront/dist/client/_astro/use-text-value.UjCYLWjm.js +4 -0
  90. package/packages/storefront/dist/client/img/uploads/logo.png +0 -0
  91. package/packages/storefront/dist/server/chunks/{CartSidebar_3_1aFp67.mjs → CartSidebar_BmwcZuxv.mjs} +36 -4
  92. package/packages/storefront/dist/server/chunks/{SearchModal_2azP1u7P.mjs → SearchModal_BvEnUvAx.mjs} +4 -3
  93. package/packages/storefront/dist/server/chunks/_.._DORZHe_Z.mjs +5 -0
  94. package/packages/storefront/dist/server/chunks/{_page__qqIVxbal.mjs → _page__DU3kNewy.mjs} +1 -1
  95. package/packages/storefront/dist/server/chunks/{account_vK6pmJlz.mjs → account_CaTloREf.mjs} +1 -1
  96. package/packages/storefront/dist/server/chunks/astro/{assets-service_631fRtTy.mjs → assets-service_B77Hm2ue.mjs} +2 -2
  97. package/packages/storefront/dist/server/chunks/{astro_u-oSb215.mjs → astro_ISB6VLqs.mjs} +178 -59
  98. package/packages/storefront/dist/server/chunks/index_BTDpenpc.mjs +5 -0
  99. package/packages/storefront/dist/server/chunks/index_D0q4ab_n.mjs +5 -0
  100. package/packages/storefront/dist/server/chunks/{node_zqXXqc-u.mjs → node_C7sdLKL4.mjs} +1 -1
  101. package/packages/storefront/dist/server/chunks/pages/{__ZucPYaOo.mjs → __B4CsSrck.mjs} +1751 -344
  102. package/packages/storefront/dist/server/chunks/pages/{_page__0sN9U0SD.mjs → _page__sb5Idhgp.mjs} +2 -3
  103. package/packages/storefront/dist/server/chunks/pages/{account_OQr_6KN1.mjs → account_iWjHfkwu.mjs} +2 -3
  104. package/packages/storefront/dist/server/chunks/pages/{index_3IjgOEIq.mjs → index_BZlpKBRL.mjs} +41 -4
  105. package/packages/storefront/dist/server/chunks/pages/node_GFu-CQ19.mjs +852 -0
  106. package/packages/storefront/dist/server/chunks/pages/{~fallback_133FK-CP.mjs → ~fallback_C07rzeay.mjs} +2 -3
  107. package/packages/storefront/dist/server/chunks/{index__05fnqFh.mjs → ~fallback_YpJa9BIL.mjs} +1 -1
  108. package/packages/storefront/dist/server/entry.mjs +751 -912
  109. package/packages/storefront/dist/server/manifest_KFjAaJaC.mjs +201 -0
  110. package/packages/storefront/dist/server/renderers.mjs +1 -1
  111. package/packages/storefront/package.json +8 -8
  112. package/packages/storefront/src/lib/composables/use-breadcrumbs.ts +2 -1
  113. package/packages/storefront/src/lib/composables/use-search-showcase.ts +2 -1
  114. package/packages/storefront/src/lib/content.d.ts +4 -1
  115. package/packages/storefront/src/lib/custom-content.d.ts +9 -0
  116. package/packages/storefront/src/lib/ssr-context.ts +6 -4
  117. package/packages/test-base/package.json +1 -1
  118. package/packages/types/package.json +1 -1
  119. package/packages/storefront/dist/client/_astro/AccountPage.0M6_FdU6.js +0 -1
  120. package/packages/storefront/dist/client/_astro/CartSidebar.L0Vbhsdt.js +0 -1
  121. package/packages/storefront/dist/client/_astro/HeroSlider.ju9TsLrJ.js +0 -1
  122. package/packages/storefront/dist/client/_astro/PitchBar.yqD9ycx5.js +0 -1
  123. package/packages/storefront/dist/client/_astro/Prices.xI1rdM1e.js +0 -1
  124. package/packages/storefront/dist/client/_astro/ProductDetails.FQtM5kpd.js +0 -7
  125. package/packages/storefront/dist/client/_astro/ProductShelf.-4fsYkPB.js +0 -1
  126. package/packages/storefront/dist/client/_astro/ProductShelf.GAAhKdTN.js +0 -1
  127. package/packages/storefront/dist/client/_astro/QuantitySelector.v7L8EYOR.js +0 -1
  128. package/packages/storefront/dist/client/_astro/SearchModal.rasg5jV6.js +0 -1
  129. package/packages/storefront/dist/client/_astro/SearchShowcase.kA6jICYo.js +0 -1
  130. package/packages/storefront/dist/client/_astro/ShopHeader.v_L96Y90.js +0 -7
  131. package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.xATGHWd9.js +0 -5
  132. package/packages/storefront/dist/client/_astro/client.YJ00ta5M.js +0 -1
  133. package/packages/storefront/dist/client/_astro/customer-session.ZD6tLDQJ.js +0 -7
  134. package/packages/storefront/dist/client/_astro/grid-title.pK2Nn3i-.js +0 -1
  135. package/packages/storefront/dist/client/_astro/hoisted.ICXGWNEA.js +0 -1
  136. package/packages/storefront/dist/client/_astro/hoisted.XOXTrHqn.js +0 -1
  137. package/packages/storefront/dist/client/_astro/i18n.zhlBzJt8.js +0 -1
  138. package/packages/storefront/dist/client/_astro/img-sizes.gxAI9JNh.js +0 -1
  139. package/packages/storefront/dist/client/_astro/img.AnjeGdy_.js +0 -1
  140. package/packages/storefront/dist/client/_astro/index.KfrHdfOH.js +0 -1
  141. package/packages/storefront/dist/client/_astro/index.ShNlAyu1.js +0 -1
  142. package/packages/storefront/dist/client/_astro/name.VA3MEpe0.js +0 -1
  143. package/packages/storefront/dist/client/_astro/photoswipe.esm.Ylh9TGkz.js +0 -4
  144. package/packages/storefront/dist/client/_astro/price.Easct8WC.js +0 -1
  145. package/packages/storefront/dist/client/_astro/sf-utils.c42cbZ9W.js +0 -13
  146. package/packages/storefront/dist/client/_astro/shopping-cart.nSNNOrp9.js +0 -1
  147. package/packages/storefront/dist/client/_astro/use-analytics.wTmoP8B1.js +0 -1
  148. package/packages/storefront/dist/client/_astro/use-product-card.UFr8SCuD.js +0 -1
  149. package/packages/storefront/dist/client/_astro/use-text-value.lKqoIagH.js +0 -4
  150. package/packages/storefront/dist/server/chunks/_.._19fCuQdO.mjs +0 -5
  151. package/packages/storefront/dist/server/chunks/pages/node_OmjWRf8D.mjs +0 -112
  152. package/packages/storefront/dist/server/chunks/~fallback_Wahcp9Wk.mjs +0 -5
  153. package/packages/storefront/dist/server/manifest_9FASPYUE.mjs +0 -202
  154. /package/packages/storefront/dist/client/_astro/{index-bea2a320.eWykogwr.js → index-bea2a320.CHELEM8n.js} +0 -0
  155. /package/packages/storefront/dist/client/_astro/{photoswipe-lightbox.esm.dZBqKD9u.js → photoswipe-lightbox.esm.BbYxSZIB.js} +0 -0
  156. /package/packages/storefront/dist/client/_astro/{photoswipe.0V7m2jWu.js → photoswipe.CNpEZKfy.js} +0 -0
  157. /package/packages/storefront/dist/client/_astro/{server-data.4C60Esyt.js → server-data.CUHTES8a.js} +0 -0
  158. /package/packages/storefront/dist/server/chunks/{photoswipe_IcWDJiwc.mjs → photoswipe_wusPJBJF.mjs} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/modules",
3
3
  "type": "module",
4
- "version": "2.6.2",
4
+ "version": "2.6.4",
5
5
  "description": "E-Com Plus Cloud Commerce modules API",
6
6
  "main": "lib/index.cjs",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/passport",
3
3
  "type": "module",
4
- "version": "2.6.2",
4
+ "version": "2.6.4",
5
5
  "description": "E-Com Plus Cloud Commerce customers authentication (passport) API",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,5 +1,5 @@
1
1
  import { getFirestore } from 'firebase-admin/firestore';
2
- import { info, error } from 'firebase-functions/logger';
2
+ import { error } from 'firebase-functions/logger';
3
3
  import axios from 'axios';
4
4
  import api from '@cloudcommerce/api';
5
5
  import config from '@cloudcommerce/firebase/lib/config';
@@ -7,7 +7,7 @@ import { deleteQueryBatch } from '@cloudcommerce/firebase/lib/helpers/firestore'
7
7
 
8
8
  const saveViews = async () => {
9
9
  const deployRand = process.env.DEPLOY_RAND || '_';
10
- /* eslint-disable no-await-in-loop */
10
+ const projectId = process.env.GCLOUD_PROJECT;
11
11
  const db = getFirestore();
12
12
  const productViewsSnapshot = await db.collection('ssrProductViews')
13
13
  .limit(500).get();
@@ -17,7 +17,9 @@ const saveViews = async () => {
17
17
  if (countUnsaved > 0) {
18
18
  const productId = doc.id;
19
19
  try {
20
+ // eslint-disable-next-line no-await-in-loop
20
21
  const { views } = (await api.get(`products/${productId}`)).data;
22
+ // eslint-disable-next-line no-await-in-loop
21
23
  await api.patch(`products/${productId}`, {
22
24
  views: countUnsaved + (views || 0),
23
25
  });
@@ -41,27 +43,28 @@ const saveViews = async () => {
41
43
  },
42
44
  });
43
45
  try {
46
+ const storageAuthReqs = [];
44
47
  if (!bunnyStorageName || !bunnyStoragePass) {
45
- const { data } = await bunnyAxios.get('/storagezone');
46
- for (let i = 0; i < data.length; i++) {
47
- const bunnyStorage = data[i];
48
- if (bunnyStorageName) {
49
- if (bunnyStorage.Name === bunnyStorageName) {
48
+ storageAuthReqs.push(bunnyAxios.get('/storagezone').then(({ data }) => {
49
+ for (let i = 0; i < data.length; i++) {
50
+ const bunnyStorage = data[i];
51
+ if (bunnyStorageName) {
52
+ if (bunnyStorage.Name === bunnyStorageName) {
53
+ bunnyStoragePass = bunnyStorage.Password;
54
+ break;
55
+ }
56
+ continue;
57
+ }
58
+ if (bunnyStorage.Name.startsWith('storefront-isr-')) {
59
+ bunnyStorageName = bunnyStorage.Name;
50
60
  bunnyStoragePass = bunnyStorage.Password;
51
61
  break;
52
62
  }
53
- continue;
54
- }
55
- if (bunnyStorage.Name.startsWith('storefront-isr-')) {
56
- bunnyStorageName = bunnyStorage.Name;
57
- bunnyStoragePass = bunnyStorage.Password;
58
- break;
59
63
  }
60
- }
64
+ }));
61
65
  }
62
- if (bunnyStorageName && bunnyStoragePass) {
63
- if (!bunnyZoneName) {
64
- const { data } = await bunnyAxios.get('/pullzone');
66
+ if (!bunnyZoneName) {
67
+ storageAuthReqs.push(bunnyAxios.get('/pullzone').then(({ data }) => {
65
68
  for (let i = 0; i < data.length; i++) {
66
69
  const pullZone = data[i];
67
70
  if (pullZone.Hostnames.find(({ Value }) => Value === domain)) {
@@ -69,20 +72,21 @@ const saveViews = async () => {
69
72
  break;
70
73
  }
71
74
  }
72
- }
73
- if (bunnyZoneName) {
74
- const { data } = await axios({
75
- url: `https://storage.bunnycdn.com/${bunnyStorageName}/__bcdn_perma_cache__/`,
76
- headers: {
77
- AccessKey: bunnyStoragePass,
78
- },
79
- });
80
- for (let i = 0; i < data.length; i++) {
81
- const { ObjectName } = data[i];
82
- if (ObjectName.startsWith(`pullzone__${bunnyZoneName}__`)
83
- && (!permaCacheZoneFolder || permaCacheZoneFolder < ObjectName)) {
84
- permaCacheZoneFolder = ObjectName;
85
- }
75
+ }));
76
+ }
77
+ await Promise.all(storageAuthReqs);
78
+ if (bunnyStorageName && bunnyStoragePass && bunnyZoneName) {
79
+ const { data } = await axios({
80
+ url: `https://storage.bunnycdn.com/${bunnyStorageName}/__bcdn_perma_cache__/`,
81
+ headers: {
82
+ AccessKey: bunnyStoragePass,
83
+ },
84
+ });
85
+ for (let i = 0; i < data.length; i++) {
86
+ const { ObjectName } = data[i];
87
+ if (ObjectName.startsWith(`pullzone__${bunnyZoneName}__`)
88
+ && (!permaCacheZoneFolder || permaCacheZoneFolder < ObjectName)) {
89
+ permaCacheZoneFolder = ObjectName;
86
90
  }
87
91
  }
88
92
  }
@@ -92,6 +96,7 @@ const saveViews = async () => {
92
96
  .where('at', '<', new Date(Date.now() - 1000 * sMaxAge))
93
97
  .get();
94
98
  const purgedUrls = [];
99
+ const purgeReqs = [];
95
100
  for (let i = 0; i < pageViewsSnapshot.docs.length; i++) {
96
101
  const doc = pageViewsSnapshot.docs[i];
97
102
  const data = doc.data();
@@ -101,47 +106,47 @@ const saveViews = async () => {
101
106
  const url = data.url.replace(/\?.*$/, '');
102
107
  doc.ref.update({ isCachePurged: true });
103
108
  if (url?.startsWith(`https://${domain}`) && !purgedUrls.includes(url)) {
104
- const reqs = [
105
- bunnyAxios('/purge', {
106
- method: 'POST',
107
- params: {
108
- async: permaCacheZoneFolder ? 'true' : 'false',
109
- url,
110
- },
111
- }),
112
- ];
109
+ purgeReqs.push(bunnyAxios('/purge', {
110
+ method: 'POST',
111
+ params: {
112
+ async: 'false',
113
+ url,
114
+ },
115
+ }));
113
116
  purgedUrls.push(url);
114
117
  if (permaCacheZoneFolder) {
115
118
  let pathname = url.replace(`https://${domain}`, '');
116
- if (pathname.charAt(0) === '/') {
117
- pathname = pathname.slice(1);
118
- }
119
- const paths = pathname.split('/');
120
- const filename = paths.pop() || '';
121
- let folderpath = paths.join('/');
122
- if (folderpath) folderpath += '/';
123
- // https://support.bunny.net/hc/en-us/articles/360017048720-Perma-Cache-Folder-Structure-Explained
124
- const permaCachePath = `__bcdn_perma_cache__/${permaCacheZoneFolder}`
125
- + `/${folderpath}___${filename}___/___file___`;
126
- reqs.push(axios({
127
- method: 'DELETE',
128
- url: `https://storage.bunnycdn.com/${bunnyStorageName}/${permaCachePath}`,
129
- headers: {
130
- AccessKey: bunnyStoragePass,
131
- },
132
- }).catch((err) => {
133
- if (err.response?.status !== 404) throw err;
134
- }));
119
+ const freshHtmlUrl = `https://${projectId}.web.app${pathname}`
120
+ + `?__isrV=${deployRand}&t=${Date.now()}`;
121
+ purgeReqs.push(
122
+ // eslint-disable-next-line no-loop-func
123
+ axios.get(freshHtmlUrl).then(({ data: freshHtml }) => {
124
+ if (pathname.charAt(0) === '/') {
125
+ pathname = pathname.slice(1);
126
+ }
127
+ const paths = pathname.split('/');
128
+ const filename = paths.pop() || '';
129
+ let folderpath = paths.join('/');
130
+ if (folderpath) folderpath += '/';
131
+ // https://support.bunny.net/hc/en-us/articles/360017048720-Perma-Cache-Folder-Structure-Explained
132
+ const permaCachePath = `__bcdn_perma_cache__/${permaCacheZoneFolder}`
133
+ + `/${folderpath}___${filename}___/___file___`;
134
+ axios({
135
+ method: 'PUT',
136
+ url: `https://storage.bunnycdn.com/${bunnyStorageName}/${permaCachePath}`,
137
+ headers: {
138
+ 'Content-Type': 'application/octet-stream',
139
+ Accept: 'application/json',
140
+ AccessKey: bunnyStoragePass,
141
+ },
142
+ data: freshHtml,
143
+ });
144
+ }),
145
+ );
135
146
  }
136
- await Promise.all(reqs).then(([, deletePermaCacheRes]) => {
137
- if (deletePermaCacheRes) {
138
- info(`Full cache bump ${url}`);
139
- return axios.get(`${url}?__isrV=${deployRand}`).catch(error);
140
- }
141
- return null;
142
- });
143
147
  }
144
148
  }
149
+ await Promise.all(purgeReqs);
145
150
  } catch (err) {
146
151
  if (err.response) {
147
152
  const _err = new Error('Cant purge bunny.net cache');
@@ -1 +1 @@
1
- {"version":3,"file":"cron-ssr-save-views.js","sourceRoot":"","sources":["../../src/lib/cron-ssr-save-views.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cron-ssr-save-views.js","sourceRoot":"","sources":["../../src/lib/cron-ssr-save-views.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/ssr",
3
3
  "type": "module",
4
- "version": "2.6.2",
4
+ "version": "2.6.4",
5
5
  "description": "E-Com Plus Cloud Commerce storefront SSR",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -26,24 +26,24 @@
26
26
  "build:workers": "npx tsc -p src/cloudflare --outDir cloudflare && npx eslint --ext .js cloudflare --fix"
27
27
  },
28
28
  "dependencies": {
29
- "@astrojs/node": "8.2.0",
29
+ "@astrojs/node": "8.2.1",
30
30
  "@cloudcommerce/api": "workspace:*",
31
31
  "@cloudcommerce/firebase": "workspace:*",
32
32
  "@cloudcommerce/i18n": "workspace:*",
33
33
  "@ecomplus/utils": "1.5.0-rc.6",
34
34
  "@vueuse/core": "10.8.0",
35
- "astro": "4.4.1",
35
+ "astro": "4.4.4",
36
36
  "astro-capo": "^0.0.1",
37
37
  "axios": "^1.6.7",
38
38
  "firebase-admin": "^12.0.0",
39
39
  "firebase-functions": "^4.7.0",
40
40
  "mitt": "^3.0.1",
41
- "vue": "^3.4.19",
42
- "yaml": "^2.3.4"
41
+ "vue": "^3.4.20",
42
+ "yaml": "^2.4.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@cloudcommerce/types": "workspace:*",
46
- "@cloudflare/workers-types": "^4.20240208.0",
46
+ "@cloudflare/workers-types": "^4.20240222.0",
47
47
  "@firebase/app-types": "^0.9.0",
48
48
  "typescript": "~5.2.2"
49
49
  }
@@ -1,5 +1,5 @@
1
1
  import { getFirestore } from 'firebase-admin/firestore';
2
- import { info, error } from 'firebase-functions/logger';
2
+ import { error } from 'firebase-functions/logger';
3
3
  import axios from 'axios';
4
4
  import api from '@cloudcommerce/api';
5
5
  import config from '@cloudcommerce/firebase/lib/config';
@@ -7,7 +7,7 @@ import { deleteQueryBatch } from '@cloudcommerce/firebase/lib/helpers/firestore'
7
7
 
8
8
  const saveViews = async () => {
9
9
  const deployRand = process.env.DEPLOY_RAND || '_';
10
- /* eslint-disable no-await-in-loop */
10
+ const projectId = process.env.GCLOUD_PROJECT as string;
11
11
  const db = getFirestore();
12
12
  const productViewsSnapshot = await db.collection('ssrProductViews')
13
13
  .limit(500).get();
@@ -17,7 +17,9 @@ const saveViews = async () => {
17
17
  if (countUnsaved > 0) {
18
18
  const productId = doc.id as string & { length: 24 };
19
19
  try {
20
+ // eslint-disable-next-line no-await-in-loop
20
21
  const { views } = (await api.get(`products/${productId}`)).data;
22
+ // eslint-disable-next-line no-await-in-loop
21
23
  await api.patch(`products/${productId}`, {
22
24
  views: countUnsaved + (views || 0),
23
25
  });
@@ -41,50 +43,56 @@ const saveViews = async () => {
41
43
  },
42
44
  });
43
45
  try {
46
+ const storageAuthReqs: Promise<any>[] = [];
44
47
  if (!bunnyStorageName || !bunnyStoragePass) {
45
- const { data } = await bunnyAxios.get('/storagezone');
46
- for (let i = 0; i < data.length; i++) {
47
- const bunnyStorage = data[i];
48
- if (bunnyStorageName) {
49
- if (bunnyStorage.Name === bunnyStorageName) {
50
- bunnyStoragePass = bunnyStorage.Password;
51
- break;
48
+ storageAuthReqs.push(
49
+ bunnyAxios.get('/storagezone').then(({ data }) => {
50
+ for (let i = 0; i < data.length; i++) {
51
+ const bunnyStorage = data[i];
52
+ if (bunnyStorageName) {
53
+ if (bunnyStorage.Name === bunnyStorageName) {
54
+ bunnyStoragePass = bunnyStorage.Password;
55
+ break;
56
+ }
57
+ continue;
58
+ }
59
+ if (bunnyStorage.Name.startsWith('storefront-isr-')) {
60
+ bunnyStorageName = bunnyStorage.Name;
61
+ bunnyStoragePass = bunnyStorage.Password;
62
+ break;
63
+ }
52
64
  }
53
- continue;
54
- }
55
- if (bunnyStorage.Name.startsWith('storefront-isr-')) {
56
- bunnyStorageName = bunnyStorage.Name;
57
- bunnyStoragePass = bunnyStorage.Password;
58
- break;
59
- }
60
- }
65
+ }),
66
+ );
61
67
  }
62
- if (bunnyStorageName && bunnyStoragePass) {
63
- if (!bunnyZoneName) {
64
- const { data } = await bunnyAxios.get('/pullzone');
65
- for (let i = 0; i < data.length; i++) {
66
- const pullZone = data[i];
67
- if (pullZone.Hostnames.find(({ Value }) => Value === domain)) {
68
- bunnyZoneName = pullZone.Name;
69
- break;
70
- }
71
- }
72
- }
73
- if (bunnyZoneName) {
74
- const { data } = await axios({
75
- url: `https://storage.bunnycdn.com/${bunnyStorageName}/__bcdn_perma_cache__/`,
76
- headers: {
77
- AccessKey: bunnyStoragePass,
78
- },
79
- });
80
- for (let i = 0; i < data.length; i++) {
81
- const { ObjectName } = data[i];
82
- if (
83
- ObjectName.startsWith(`pullzone__${bunnyZoneName}__`)
84
- && (!permaCacheZoneFolder || permaCacheZoneFolder < ObjectName)
85
- ) {
86
- permaCacheZoneFolder = ObjectName;
68
+ if (!bunnyZoneName) {
69
+ storageAuthReqs.push(
70
+ bunnyAxios.get('/pullzone').then(({ data }) => {
71
+ for (let i = 0; i < data.length; i++) {
72
+ const pullZone = data[i];
73
+ if (pullZone.Hostnames.find(({ Value }) => Value === domain)) {
74
+ bunnyZoneName = pullZone.Name;
75
+ break;
76
+ }
87
77
  }
78
+ }),
79
+ );
80
+ }
81
+ await Promise.all(storageAuthReqs);
82
+ if (bunnyStorageName && bunnyStoragePass && bunnyZoneName) {
83
+ const { data } = await axios({
84
+ url: `https://storage.bunnycdn.com/${bunnyStorageName}/__bcdn_perma_cache__/`,
85
+ headers: {
86
+ AccessKey: bunnyStoragePass,
87
+ },
88
+ });
89
+ for (let i = 0; i < data.length; i++) {
90
+ const { ObjectName } = data[i];
91
+ if (
92
+ ObjectName.startsWith(`pullzone__${bunnyZoneName}__`)
93
+ && (!permaCacheZoneFolder || permaCacheZoneFolder < ObjectName)
94
+ ) {
95
+ permaCacheZoneFolder = ObjectName;
88
96
  }
89
97
  }
90
98
  }
@@ -94,6 +102,7 @@ const saveViews = async () => {
94
102
  .where('at', '<', new Date(Date.now() - 1000 * sMaxAge))
95
103
  .get();
96
104
  const purgedUrls: string[] = [];
105
+ const purgeReqs: Promise<any>[] = [];
97
106
  for (let i = 0; i < pageViewsSnapshot.docs.length; i++) {
98
107
  const doc = pageViewsSnapshot.docs[i];
99
108
  const data = doc.data() as { url: string, isCachePurged?: true };
@@ -103,49 +112,47 @@ const saveViews = async () => {
103
112
  const url = data.url.replace(/\?.*$/, '');
104
113
  doc.ref.update({ isCachePurged: true });
105
114
  if (url?.startsWith(`https://${domain}`) && !purgedUrls.includes(url)) {
106
- const reqs: Promise<any>[] = [
107
- bunnyAxios('/purge', {
108
- method: 'POST',
109
- params: {
110
- async: permaCacheZoneFolder ? 'true' : 'false',
111
- url,
112
- },
113
- }),
114
- ];
115
+ purgeReqs.push(bunnyAxios('/purge', {
116
+ method: 'POST',
117
+ params: {
118
+ async: 'false',
119
+ url,
120
+ },
121
+ }));
115
122
  purgedUrls.push(url);
116
123
  if (permaCacheZoneFolder) {
117
124
  let pathname = url.replace(`https://${domain}`, '');
118
- if (pathname.charAt(0) === '/') {
119
- pathname = pathname.slice(1);
120
- }
121
- const paths = pathname.split('/');
122
- const filename = paths.pop() || '';
123
- let folderpath = paths.join('/');
124
- if (folderpath) folderpath += '/';
125
- // https://support.bunny.net/hc/en-us/articles/360017048720-Perma-Cache-Folder-Structure-Explained
126
- const permaCachePath = `__bcdn_perma_cache__/${permaCacheZoneFolder}`
127
- + `/${folderpath}___${filename}___/___file___`;
128
- reqs.push(
129
- axios({
130
- method: 'DELETE',
131
- url: `https://storage.bunnycdn.com/${bunnyStorageName}/${permaCachePath}`,
132
- headers: {
133
- AccessKey: bunnyStoragePass,
134
- },
135
- }).catch((err) => {
136
- if (err.response?.status !== 404) throw err;
125
+ const freshHtmlUrl = `https://${projectId}.web.app${pathname}`
126
+ + `?__isrV=${deployRand}&t=${Date.now()}`;
127
+ purgeReqs.push(
128
+ // eslint-disable-next-line no-loop-func
129
+ axios.get(freshHtmlUrl).then(({ data: freshHtml }: { data: string }) => {
130
+ if (pathname.charAt(0) === '/') {
131
+ pathname = pathname.slice(1);
132
+ }
133
+ const paths = pathname.split('/');
134
+ const filename = paths.pop() || '';
135
+ let folderpath = paths.join('/');
136
+ if (folderpath) folderpath += '/';
137
+ // https://support.bunny.net/hc/en-us/articles/360017048720-Perma-Cache-Folder-Structure-Explained
138
+ const permaCachePath = `__bcdn_perma_cache__/${permaCacheZoneFolder}`
139
+ + `/${folderpath}___${filename}___/___file___`;
140
+ axios({
141
+ method: 'PUT',
142
+ url: `https://storage.bunnycdn.com/${bunnyStorageName}/${permaCachePath}`,
143
+ headers: {
144
+ 'Content-Type': 'application/octet-stream',
145
+ Accept: 'application/json',
146
+ AccessKey: bunnyStoragePass,
147
+ },
148
+ data: freshHtml,
149
+ });
137
150
  }),
138
151
  );
139
152
  }
140
- await Promise.all(reqs).then(([, deletePermaCacheRes]) => {
141
- if (deletePermaCacheRes) {
142
- info(`Full cache bump ${url}`);
143
- return axios.get(`${url}?__isrV=${deployRand}`).catch(error);
144
- }
145
- return null;
146
- });
147
153
  }
148
154
  }
155
+ await Promise.all(purgeReqs);
149
156
  } catch (err: any) {
150
157
  if (err.response) {
151
158
  const _err: any = new Error('Cant purge bunny.net cache');
@@ -0,0 +1 @@
1
+ import{a as f,w as h,d as P,c as M,i as C,o as l,e as c,Z as F,f as i,a0 as b,a1 as r,l as S,j as k,n as A,g as L,h as U,a4 as T,a5 as V,F as j,k as B}from"./sf-utils.Cigv01cN.js";import{_ as N,a as I,v as R,w as x}from"./_plugin-vue_export-helper.CBemkWnU.js";import{e as q,f as _,E as D,a as O,d as E}from"./customer-session.CNe1heRH.js";import{u as z}from"./index.DBfgCyd-.js";import{g as G,b as K,c as W}from"./index-bea2a320.CHELEM8n.js";import{u as Y}from"./index.CFw6O-Kt.js";import"./server-data.CUHTES8a.js";const Z=m=>{q();const s=m?.canUseUrlParams!==!1?z("history"):{},e=s.sign_up!==void 0&&s.sign_up!=="0",a=s.password!==void 0&&s.password!=="0",u=f(e),n=f(!e&&!a);h(u,p=>{p?(n.value=!0,s.sign_up="1"):s.sign_up="0"}),h(n,p=>{s.password=p?"0":"1"});const o=f(""),d=f(!1),g=Y(async p=>{d.value=!0;const v=Date.now(),y=G();if(_.value){window.localStorage.setItem(D,_.value);try{if(n.value){const w=new URL(p||window.location.toString());w.searchParams.append("email",_.value),await K(y,_.value,{url:w.toString(),handleCodeInApp:!0})}else await W(y,_.value,o.value)}catch(w){console.warn(w.code),console.error(w)}setTimeout(()=>{d.value=!1},Math.min(2e3-(Date.now()-v),1))}},2e3);return{isLinkSignIn:n,isSignUp:u,email:_,password:o,isSubmitting:d,submitLogin:g}},$=P({__name:"LoginForm",props:{loginLinkActionUrl:{}},setup(m,{expose:t}){t();const{isLinkSignIn:s,isSignUp:e,email:a,password:u,isSubmitting:n,submitLogin:o}=Z(),d=f(!1),g=f(0),p=M(()=>g.value>9);h(n,()=>{!n.value&&s.value&&(d.value=!0,g.value+=1)}),h([a,e],()=>{d.value=!1}),h(p,()=>{s.value=!1});const v={isLinkSignIn:s,isSignUp:e,email:a,password:u,isSubmitting:n,submitLogin:o,isEmailSentMsg:d,countEmailsSent:g,isLinkSignInBlocked:p,get customerName(){return O}};return Object.defineProperty(v,"__isScriptSetup",{enumerable:!1,value:!0}),v}}),H={class:"text-base-600 mb-4 text-2xl font-light"},J={key:0},Q={key:1,class:"lowercase"},X={key:0,for:"login-form-email"},ee={class:"relative"},se=["disabled"],te={key:0,class:"text-success-800 absolute left-0 top-0 mt-4 font-medium"},ne=i("i",{class:"i-check mr-1"},null,-1);function ie(m,t,s,e,a,u){const n=C("Fade");return l(),c("form",{class:"text-base-800 w-full max-w-sm bg-white p-6 text-base md:p-8",onSubmit:t[4]||(t[4]=x(()=>e.submitLogin(s.loginLinkActionUrl),["prevent"]))},[F(m.$slots,"head"),i("p",H,[b(r("Olá")+" "),e.customerName?(l(),c("span",J,r(e.customerName),1)):(l(),c("span",Q,r("Visitante")))]),e.isLinkSignIn?(l(),c("label",X,r("Enviar link de acesso por e-mail"))):S("",!0),k(i("input",{id:"login-form-email",type:"email",placeholder:"email@mail.com","onUpdate:modelValue":t[0]||(t[0]=o=>e.email=o),class:"mb-0.5 mt-2 w-full",required:""},null,512),[[I,e.email]]),e.isLinkSignIn?S("",!0):k((l(),c("input",{key:1,type:"password",placeholder:"Senha","onUpdate:modelValue":t[1]||(t[1]=o=>e.password=o),class:"mb-0.5 mt-2 w-full lowercase",required:""},null,512)),[[I,e.password]]),i("div",ee,[i("div",{class:A(["transition-opacity",e.isEmailSentMsg&&"opacity-0 invisible"])},[k(i("a",{href:"?password",class:"text-base-500 ui-link text-right text-sm lowercase",onClick:t[2]||(t[2]=x(o=>e.isLinkSignIn=!e.isLinkSignIn,["prevent"]))},r(e.isLinkSignIn?"Entrar com senha":"Esqueci minha senha"),513),[[R,!e.isSignUp&&!e.isLinkSignInBlocked]]),i("button",{type:"submit",disabled:e.isSubmitting,class:A(["ui-btn-lg ui-btn-primary mb-2 mt-5 w-full",e.isSubmitting&&"opacity-50"])},r(e.isSignUp?"Cadastrar":"Acessar minha conta"),11,se)],2),L(n,{speed:"slow"},{default:U(()=>[e.isEmailSentMsg?(l(),c("p",te,[ne,b(" "+r("Te enviamos o e-mail, verifique sua caixa de entrada e spam se necessário."),1)])):S("",!0)]),_:1}),i("a",{href:"?sign_up",class:"ui-btn-lg ui-btn-contrast block w-full text-center",onClick:t[3]||(t[3]=x(o=>e.isSignUp=!e.isSignUp,["prevent"]))},r(e.isSignUp?"Acessar minha conta":"Criar uma conta"),1)])],32)}const ae=N($,[["render",ie]]),oe=P({__name:"AccountPage",setup(m,{expose:t}){t();let s=null;{const{location:a}=window,u=new URLSearchParams(a.search).get("return_url");if(!u){const n=new URL(a.toString());n.pathname="/app/",n.hash=`#${a.pathname.replace("/app/","/")}`,s=n.toString()}h(E,()=>{E.value&&(a.href=u||s)},{immediate:!0})}const e={get loginLinkActionUrl(){return s},set loginLinkActionUrl(a){s=a},LoginForm:ae};return Object.defineProperty(e,"__isScriptSetup",{enumerable:!1,value:!0}),e}}),re={class:"from-secondary-700 to-secondary-950 flex min-h-screen w-full flex-col justify-center bg-gradient-to-br"},le={class:"mx-auto p-4"},ce=i("section",{class:"ui-section text-center"},[i("a",{href:"/",class:"text-base-200 hover:text-white"},[i("i",{class:"i-arrow-right mr-1 rotate-180"}),b(" "+r("Ir para a loja"))])],-1),me={class:"overflow-hidden rounded-md shadow-md ring-4 ring-black/10"},ue={class:"mb-5 text-center"},de={href:"/",class:"inline-block"},pe={key:0,class:"ui-section px-0"},ge={class:"mx-auto flex max-w-sm flex-wrap items-center justify-evenly gap-4 px-3"};function _e(m,t,s,e,a,u){const n=C("ALink");return l(),c("article",re,[i("div",le,[ce,i("section",me,[L(e.LoginForm,T(V({loginLinkActionUrl:e.loginLinkActionUrl})),{head:U(()=>[i("div",ue,[i("a",de,[F(m.$slots,"logo")])])]),_:3},16)]),m.$settings.serviceLinks?.length?(l(),c("nav",pe,[i("ul",ge,[(l(!0),c(j,null,B(m.$settings.serviceLinks,({title:o,href:d},g)=>(l(),c("li",{key:`s-${g}`},[L(n,{href:d,class:"text-base-200 ui-link hover:text-white"},{default:U(()=>[b(r(o),1)]),_:2},1032,["href"])]))),128))])])):S("",!0)])])}const xe=N(oe,[["render",_e]]);export{xe as default};
@@ -0,0 +1 @@
1
+ import{_ as v,w as f}from"./_plugin-vue_export-helper.CBemkWnU.js";import{c as _,d as y,i as b,o as i,e as c,g as u,h as x,$ as C,l as g,f as t,a1 as o,a as S,a0 as h,F as I,k as w}from"./sf-utils.Cigv01cN.js";import{f as F}from"./modules-info.BHKiT6oA.js";import{p as V,r as P,s as j,t as z}from"./shopping-cart.D-w8Z-4p.js";import{Q as A,C as L,S as q}from"./ShippingCalculator.DE01D7dt.js";import{P as k}from"./Prices.BgHTq5id.js";import{n as B}from"./name.BZA9xqh-.js";import{i as N}from"./img.D5a6GzeE.js";import"./afetch.DPLba2tr.js";import"./server-data.CUHTES8a.js";import"./format-money.DINpWB0x.js";import"./price.CHiL6Z1J.js";import"./customer-session.CNe1heRH.js";import"./index.CFw6O-Kt.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./i18n.B3skIOFg.js";const E=a=>{const r=_(()=>!a.item&&a.product?V(a.product):null),s=_(()=>a.item||r.value),e=_(()=>B(s.value)),m=_(()=>{const{slug:n}=s.value;return typeof n=="string"?`/${n}`:null}),l=_(()=>{if(s.value.picture)return N(s.value.picture,void 0,a.pictureSize||"small")}),p=_(()=>s.value.final_price||s.value.price);return{cartItem:s,title:e,link:m,image:l,finalPrice:p}},Q=y({__name:"CartItem",props:{item:{},product:{},pictureSize:{}},setup(a,{expose:r}){r();const s=a,{cartItem:e,title:m,link:l,image:p,finalPrice:n}=E(s),d={props:s,cartItem:e,title:m,link:l,image:p,finalPrice:n,get removeCartItem(){return P},QuantitySelector:A,Prices:k};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),M={class:"relative bg-white shadow-sm"},O={class:"text-base-700 group-hover:text-base-900 flex-auto py-2 text-sm group-hover:underline"},D=t("span",{class:"border-3 border-danger-700/30 text-danger-800 flex size-5 flex-col justify-center rounded-full text-sm leading-none"},[t("i",{class:"i-close mx-auto my-0"})],-1),R=[D],T={class:"border-base-100 flex items-center justify-between border-t-2"},U={class:"border-base-100 border-r-2"};function G(a,r,s,e,m,l){const p=b("AImg"),n=b("ALink");return i(),c("article",M,[u(n,{href:e.link,class:"group flex items-center gap-5 p-4"},{default:x(()=>[e.image?(i(),C(p,{key:0,picture:e.image,alt:e.title,class:"size-20 object-cover"},null,8,["picture","alt"])):g("",!0),t("p",O,o(e.title),1)]),_:1},8,["href"]),e.cartItem._id?(i(),c("button",{key:0,onClick:r[0]||(r[0]=f(d=>e.removeCartItem(e.cartItem._id),["stop"])),class:"absolute right-0 top-0 p-2 opacity-70 hover:opacity-100","aria-label":"Remover"},R)):g("",!0),t("div",T,[t("div",U,[u(e.QuantitySelector,{modelValue:e.cartItem.quantity,"onUpdate:modelValue":r[1]||(r[1]=d=>e.cartItem.quantity=d),min:e.cartItem.min_quantity,max:e.cartItem.max_quantity},null,8,["modelValue","min","max"])]),u(e.Prices,{"base-price":e.cartItem.base_price,price:e.finalPrice,"has-cashback":!1,"has-price-options":!1,class:"px-4 py-2.5 text-right text-[95%]"},null,8,["base-price","price"])])])}const H=v(Q,[["render",G]]),J=y({__name:"CartSidebar",emits:["close"],setup(a,{expose:r,emit:s}){r();const e=s,m=S(!1),l={emit:e,hasShippingCalculator:m,get freeShippingFromValue(){return F},get shoppingCart(){return j},get totalItems(){return z},CheckoutLink:L,Prices:k,CartItem:H,ShippingCalculator:q};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),K={class:"flex h-screen flex-col bg-white"},W={class:"z-10 flex items-center justify-end gap-3 px-6 py-4 shadow ring-1 ring-black/5"},X=t("span",{class:"text-base-600 text-right text-base font-medium"},o("Meu carrinho de compras"),-1),Y={class:"min-w-[3rem] text-right"},Z={class:"ui-badge-pill-lg"},$={class:"bg-base-50 grow overflow-y-auto"},ee={key:0,class:"text-center text-sm"},te={key:0,class:"secondary-subtle p-3"},re=t("strong",{class:"lowercase"},o("Frete grátis"),-1),se={key:1,class:"bg-success-50 text-success-800 p-3"},ae=t("i",{class:"text-success-900 i-check mr-1"},null,-1),ie={class:"px-4 pb-2 pt-4"},oe={class:"z-10 px-5 pb-3 pt-4 ring-2 ring-black/5"},ne={class:"grid grid-cols-5 items-center gap-3 text-right"},ce=t("div",{class:"col-span-2"},o("Subtotal"),-1),le={key:0,class:"my-2.5 text-right"},me=t("i",{class:"i-truck text-base-500 ml-1"},null,-1),pe=t("i",{class:"i-check mr-2"},null,-1),de=t("i",{class:"i-arrow-right mr-1 rotate-180"},null,-1);function ue(a,r,s,e,m,l){const p=b("Fade");return i(),c("aside",K,[t("header",W,[X,t("span",Y,[t("span",Z,o(e.totalItems),1)])]),t("article",$,[e.freeShippingFromValue?(i(),c("div",ee,[e.freeShippingFromValue>e.shoppingCart.subtotal?(i(),c("div",te,[h(o("Adicione $1 para ganhar".replace("$1",a.$money(e.freeShippingFromValue-e.shoppingCart.subtotal)))+" ",1),re])):(i(),c("div",se,[ae,h(" "+o("Frete grátis a partir de")+" "+o(a.$money(e.freeShippingFromValue)),1)]))])):g("",!0),t("ul",ie,[(i(!0),c(I,null,w(e.shoppingCart.items,(n,d)=>(i(),c("li",{key:d},[u(e.CartItem,{item:n,class:"mb-3"},null,8,["item"])]))),128))])]),t("footer",oe,[t("div",ne,[ce,u(e.Prices,{price:e.shoppingCart.subtotal,class:"col-span-3 text-lg"},null,8,["price"])]),e.hasShippingCalculator?g("",!0):(i(),c("div",le,[t("a",{href:"#",class:"ui-link text-base-700 decoration-base-300",onClick:r[0]||(r[0]=f(n=>e.hasShippingCalculator=!0,["prevent","stop"]))},[h(o("Calcular frete")+" "),me])])),u(p,{slide:"down"},{default:x(()=>[e.hasShippingCalculator?(i(),C(e.ShippingCalculator,{key:0,"shipped-items":e.shoppingCart.items,class:"my-2.5 flex flex-wrap justify-end","can-auto-submit":""},null,8,["shipped-items"])):g("",!0)]),_:1}),u(e.CheckoutLink,{to:"checkout",class:"ui-btn-lg ui-btn-primary my-2.5 w-full text-right"},{default:x(()=>[pe,h(" "+o("Finalizar compra"))]),_:1}),t("a",{href:"#",onClick:r[1]||(r[1]=f(n=>e.emit("close"),["prevent"])),class:"text-base-500 ui-link hover:text-base-700 text-sm"},[de,h(" "+o("Continuar comprando"))])])])}const je=v(J,[["render",ue]]);export{je as default};
@@ -0,0 +1 @@
1
+ import{c as d,d as w,i as x,o as r,e as l,g as c,h as o,Z as T,n as b,$ as v,a0 as y,a1 as f,a2 as B,l as m,a as C,T as H,j,f as _,F as L,k as z,a3 as N}from"./sf-utils.Cigv01cN.js";import{_ as k,v as P}from"./_plugin-vue_export-helper.CBemkWnU.js";import{p as g}from"./modules-info.BHKiT6oA.js";import"./afetch.DPLba2tr.js";import"./server-data.CUHTES8a.js";import"./format-money.DINpWB0x.js";import"./price.CHiL6Z1J.js";const V=s=>{const a=d(()=>s.title?g(s.title).value:""),t=d(()=>s.subtitle?g(s.subtitle).value:""),e=d(()=>s.buttonText?g(s.buttonText).value:""),i=d(()=>!!(a.value||t.value||e.value));return{parsedTitle:a,parsedSubtitle:t,parsedButtonText:e,hasHeader:i}},D=w({__name:"Banner",props:{img:{},alt:{},mobileImg:{},href:{},title:{},subtitle:{},buttonLink:{},buttonText:{},headingTag:{default:"h3"}},setup(s,{expose:a}){a();const t=s,{hasHeader:e,parsedTitle:i,parsedSubtitle:p,parsedButtonText:n}=V(t),u={props:t,hasHeader:e,parsedTitle:i,parsedSubtitle:p,parsedButtonText:n};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),M={key:0,class:"mb-3 p-12 sm:mb-0 xl:ps-32"},A={key:1,class:"mt-4 text-lg md:mt-6"};function F(s,a,t,e,i,p){const n=x("ALink");return r(),l("div",{class:b(["mx-auto overflow-x-hidden",e.hasHeader?"grid grid-cols-1 sm:grid-cols-2 items-center":null])},[c(n,{href:t.href,class:b(e.hasHeader?"sm:order-last [&_img]:max-w-full sm:[&_img]:max-w-none [&_img]:aspect-video sm:[&_img]:aspect-[2.5] [&_img]:object-cover":"[&_img]:max-w-full")},{default:o(()=>[T(s.$slots,"picture")]),_:3},8,["href","class"]),e.hasHeader?(r(),l("div",M,[e.parsedTitle?(r(),v(B(t.headingTag),{key:0,class:"ui-title mt-1"},{default:o(()=>[y(f(e.parsedTitle),1)]),_:1})):m("",!0),e.parsedSubtitle?(r(),l("p",A,f(e.parsedSubtitle),1)):m("",!0),e.parsedButtonText?(r(),v(n,{key:2,href:t.buttonLink,class:"ui-btn-lg ui-btn-contrast mt-7 min-w-[150px] md:mt-10"},{default:o(()=>[y(f(e.parsedButtonText),1)]),_:1},8,["href"])):m("",!0)])):m("",!0)],2)}const O=k(D,[["render",F]]),E=w({__name:"HeroSlider",props:{autoplay:{},slides:{}},setup(s,{expose:a}){a();const t=C(!1);H(()=>{t.value=!0});const e={isMounted:t,Banner:O};return Object.defineProperty(e,"__isScriptSetup",{enumerable:!1,value:!0}),e}}),I={class:"relative mx-auto mb-9 md:mb-12"},Z={class:"absolute bottom-5 right-5 z-10 flex w-screen items-center justify-end xl:left-1/2 xl:right-auto xl:-ms-[640px] xl:max-w-screen-xl"},q=_("i",{class:"i-arrow-right rotate-180"},null,-1),G=_("i",{class:"i-arrow-right"},null,-1);function J(s,a,t,e,i,p){const n=x("CarouselControl"),u=x("Carousel");return r(),l("section",I,[c(u,{autoplay:t.autoplay,class:"secondary [&>*]:items-center"},{controls:o(()=>[j(_("div",Z,[_("div",{class:b(["text-primary relative h-10 w-20 rounded-full bg-white/50 shadow-sm ring-1 ring-black/5 transition-opacity",e.isMounted?"opacity-100":"opacity-20 [&>*]:cursor-wait"])},[c(n,{class:"hover:bg-primary/10 size-10 rounded-full","is-prev":""},{default:o(()=>[q]),_:1}),c(n,{class:"hover:bg-primary/10 size-10 rounded-full"},{default:o(()=>[G]),_:1})],2)],512),[[P,t.slides.length>1]])]),default:o(()=>[(r(!0),l(L,null,z(t.slides,(S,h)=>(r(),l("li",{key:h,class:"shrink-0 basis-full"},[c(e.Banner,N({...S,headingTag:h===0?"h2":"h3"},{class:"w-screen max-w-screen-2xl"}),{picture:o(()=>[T(s.$slots,`picture-${h}`)]),_:2},1040)]))),128))]),_:3},8,["autoplay"])])}const $=k(E,[["render",J]]);export{$ as default};
@@ -0,0 +1 @@
1
+ import{c as m,d as C,e as n,f as h,g as l,h as d,i as u,o as i,j as x,F as b,k as g,n as k,l as S}from"./sf-utils.Cigv01cN.js";import{_ as y,v as B}from"./_plugin-vue_export-helper.CBemkWnU.js";import{p as V}from"./modules-info.BHKiT6oA.js";import{u as P}from"./use-cms-preview.4Hq7LCmA.js";import"./afetch.DPLba2tr.js";import"./server-data.CUHTES8a.js";import"./format-money.DINpWB0x.js";import"./price.CHiL6Z1J.js";const w=r=>{const{liveContent:a}=P(["layout","header","pitchBar"]),t=m(()=>(a.value||r.slides).map(({html:o})=>V(o).value.replace(/<\/?p>/g,"").replace(/&lt;(\/?d-md)&gt;/g,"<$1>"))),e=m(()=>t.value.filter(s=>s).length);return{parsedContents:t,countValidSlides:e}},L=C({__name:"PitchBar",props:{slides:{}},setup(r,{expose:a}){a();const t=r,{parsedContents:e,countValidSlides:s}=w(t),o={props:t,parsedContents:e,countValidSlides:s};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),N={class:"bg-base-100 relative z-20"},j={class:"container mx-auto px-3 py-1 md:w-2/3"},z=["innerHTML"],A={class:"text-base-400 text-xl leading-none"};function F(r,a,t,e,s,o){const f=u("ALink"),_=u("CarouselControl"),v=u("Carousel");return i(),n("div",N,[h("div",j,[l(v,{autoplay:e.countValidSlides>1?7e3:void 0},{controls:d(()=>[x(h("div",A,[l(_,{class:"bg-base-100 hover:text-base-700 pr-2","is-prev":""}),l(_,{class:"bg-base-100 hover:text-base-700 pl-2"})],512),[[B,e.countValidSlides>1]])]),default:d(()=>[(i(!0),n(b,null,g(t.slides,(c,p)=>(i(),n("li",{key:p,class:"h-full shrink-0 basis-full text-center"},[l(f,{href:c.href,target:c.target,class:k(["inline-block px-8",c.href?"hover:underline":null])},{default:d(()=>[e.parsedContents[p]?(i(),n("span",{key:0,innerHTML:e.parsedContents[p],class:"text-base-800 prose text-sm"},null,8,z)):S("",!0)]),_:2},1032,["href","target","class"])]))),128))]),_:1},8,["autoplay"])])])}const I=y(L,[["render",F]]);export{I as default};
@@ -0,0 +1 @@
1
+ import{_ as T}from"./_plugin-vue_export-helper.CBemkWnU.js";import{c as s,d as I,i as M,o as i,e as r,a1 as o,l,f as h,a0 as N,n as j,g as D,h as L}from"./sf-utils.Cigv01cN.js";import{a as W,i as S,d as z,l as R}from"./modules-info.BHKiT6oA.js";import{p as g,o as E}from"./price.CHiL6Z1J.js";const me="Acima de",de="Marcas",_e="Categorias",he="Dias",ve="Desconto",Pe="Grátis",be="Frete grátis",fe="Maior preço",ye="Menor preço",pe="Nome",ge="Retire hoje",ke="Receba hoje",Ve="Produtos relacionados",Oe="Lançamentos",xe="Relevância",De="Vendas",Le="Até amanhã",Be="Até",Ne="Dias úteis",w=(a,c)=>{const{type:n,value:e}=c;let d;return e?(n==="percentage"?d=a*((100-e)/100):d=a-e,d>0?d:0):a},F=a=>{const c=s(()=>a.product||{price:a.price||0,base_price:a.basePrice}),n=s(()=>{const{variations:t}=c.value;if(t){const u=g(c.value);for(let P=0;P<t.length;P++)if(g({...c.value,...t[P]})>u)return!0}return!1}),e=s(()=>{const t=g(c.value),u=W.value;return u&&(!u.min_amount||t>u.min_amount)?w(t,u):t}),d=s(()=>{if(E(c.value))return c.value.base_price;const t=g(c.value);return t>e.value?t:0}),_=s(()=>a.installmentsOption||S.value||{max_number:1}),m=s(()=>{if(_.value.max_number<=1)return 1;const t=_.value.min_installment||5,u=Math.floor(e.value/t);return Math.min(u,_.value.max_number)}),b=s(()=>_.value.monthly_interest||0),k=s(()=>{if(m.value>=2){if(!b.value)return e.value/m.value;const t=b.value/100;return e.value*t/(1-(1+t)**-m.value)}return 0}),f=s(()=>{const t=a.discountOption||z.value;return t&&(!t.min_amount||t.min_amount<=e.value)&&(!a.isAmountTotal||t.apply_at==="total")?t:{}}),V=s(()=>{const{label:t}=f.value;return t?t.includes(" ")?t:`via ${t}`:""}),O=s(()=>w(e.value,f.value)),v=s(()=>{if(a.loyaltyPointsProgram)return a.loyaltyPointsProgram;const t=R.value;if(t){const u=Object.keys(t);for(let P=0;P<u.length;P++){const p=t[u[P]];if(p?.earn_percentage&&p.earn_percentage>0)return p}}return{ratio:0}}),y=s(()=>v.value.min_subtotal_to_earn||0),A=s(()=>v.value.name||""),B=s(()=>v.value.earn_percentage||0),x=s(()=>B.value*v.value.ratio),C=s(()=>x.value>=1?e.value*(x.value/100):0);return{hasVariedPrices:n,salePrice:e,comparePrice:d,installmentsObject:_,installmentsNumber:m,monthlyInterest:b,installmentValue:k,discountObject:f,discountLabel:V,priceWithDiscount:O,pointsProgramObject:v,pointsMinPrice:y,pointsProgramName:A,earnPointsPercentage:B,cashbackPercentage:x,cashbackValue:C}},q=I({__name:"Prices",props:{isBig:{type:Boolean},isLiteral:{type:Boolean},hasCashback:{type:Boolean,default:!0},hasPriceOptions:{type:Boolean,default:!0},product:{},price:{},basePrice:{},isAmountTotal:{type:Boolean},installmentsOption:{},discountOption:{},loyaltyPointsProgram:{}},setup(a,{expose:c}){c();const n=a,{hasVariedPrices:e,salePrice:d,comparePrice:_,cashbackPercentage:m,cashbackValue:b,installmentsNumber:k,monthlyInterest:f,installmentValue:V,priceWithDiscount:O,discountLabel:v}=F(n),y={props:n,hasVariedPrices:e,salePrice:d,comparePrice:_,cashbackPercentage:m,cashbackValue:b,installmentsNumber:k,monthlyInterest:f,installmentValue:V,priceWithDiscount:O,discountLabel:v};return Object.defineProperty(y,"__isScriptSetup",{enumerable:!1,value:!0}),y}}),G={key:0,class:"text-base-500 mr-1 text-[87%]"},U={key:0},H={key:1},J={key:0},K={key:0,class:"relative z-10"},Q=["data-tooltip"],X=h("i",{class:"i-arrow-uturn-left mr-1"},null,-1),Y={class:"font-medium"},Z=h("small",null," cashback",-1),$={key:0},ee={key:0},te={key:1},ae={key:2},ne={key:0},se={key:0},oe={key:1};function ie(a,c,n,e,d,_){const m=M("Fade");return i(),r("div",{class:j(["text-base-600 [&>div]:[font-size:90%] [&_small]:lowercase [&_small]:[font-size:92%]",n.isBig?"text-lg":null])},[e.comparePrice?(i(),r("span",G,[n.isLiteral?(i(),r("small",U,o("De "))):l("",!0),h("s",null,o(a.$money(e.comparePrice)),1),n.isLiteral?(i(),r("small",H,o(" Por"))):l("",!0)])):l("",!0),h("strong",{class:j(["text-base-800",n.isBig?"text-4xl block":"inline-block"])},[e.hasVariedPrices?(i(),r("small",J,o("A partir de "))):l("",!0),N(" "+o(a.$money(e.salePrice)),1)],2),D(m,{slide:"down"},{default:L(()=>[e.cashbackValue&&n.hasCashback?(i(),r("div",K,[h("span",{"data-tooltip":"Receba $1 de volta".replace("$1",a.$percentage(e.cashbackPercentage))},[X,h("span",Y,o(a.$money(e.cashbackValue)),1),Z],8,Q)])):l("",!0)]),_:1}),D(m,{slide:"down"},{default:L(()=>[e.installmentValue&&n.hasPriceOptions?(i(),r("div",$,[n.isLiteral?(i(),r("small",ee,o("Até "))):l("",!0),N(" "+o(e.installmentsNumber)+"x ",1),n.isLiteral?(i(),r("small",te,o(" De "))):l("",!0),h("span",null,o(a.$money(e.installmentValue)),1),!e.monthlyInterest&&n.isLiteral?(i(),r("small",ae,o(" Sem juros"))):l("",!0)])):l("",!0)]),_:1}),D(m,{slide:"down"},{default:L(()=>[e.priceWithDiscount<e.salePrice&&n.hasPriceOptions?(i(),r("div",ne,[e.discountLabel?l("",!0):(i(),r("small",se,o("A partir de "))),h("span",null,o(a.$money(e.priceWithDiscount)),1),e.discountLabel?(i(),r("small",oe,o(` ${e.discountLabel}`),1)):l("",!0)])):l("",!0)]),_:1})],2)}const je=T(q,[["render",ie]]);export{je as P,me as a,de as b,_e as c,xe as d,De as e,ye as f,fe as g,ve as h,Be as i,Oe as j,pe as k,Ne as l,he as m,Le as n,ge as o,ke as p,Pe as q,be as r,Ve as s};
@@ -0,0 +1,7 @@
1
+ import{d as D,a as S,i as V,o as u,e as m,$ as I,h as A,f as v,l as b,F as w,k as P,n as z,g as k,aa as U,ab as H,Y as J,r as L,w as E,a8 as M,c as Q,a0 as B,a1 as C,ac as K,T as W,Z as X}from"./sf-utils.Cigv01cN.js";import{_ as F,w as Y}from"./_plugin-vue_export-helper.CBemkWnU.js";import{u as $}from"./index.DBfgCyd-.js";import{a as tt}from"./shopping-cart.D-w8Z-4p.js";import{u as et}from"./use-product-card.CQRlRsNX.js";import{C as ot,Q as it,S as rt}from"./ShippingCalculator.DE01D7dt.js";import{P as at}from"./Prices.BgHTq5id.js";import{_ as j}from"./customer-session.CNe1heRH.js";import"./server-data.CUHTES8a.js";import{i as st}from"./img-sizes.rFK7so02.js";import"./index.CFw6O-Kt.js";import{g as nt}from"./grid-title.D4m7-g3h.js";import"./price.CHiL6Z1J.js";import"./use-analytics.CQDdNgwF.js";import"./afetch.DPLba2tr.js";import"./name.BZA9xqh-.js";import"./i18n.B3skIOFg.js";import"./img.D5a6GzeE.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./modules-info.BHKiT6oA.js";import"./format-money.DINpWB0x.js";const T=(a,n,l)=>{if(typeof a!="object"||a===null)return[];let t=[];if(typeof a=="object"&&a!==null)if(Array.isArray(a))a.length&&(a[0].specifications?a.forEach(e=>{t=t.concat(T(e,n,l))}):a[0].text&&(t=a));else{const{specifications:e}=a;if(e)for(const s in e)e[s]&&s===n&&(t=e[n]);if(t&&!t.length&&Array.isArray(l)&&l.length){let s,d;return l&&(d=l.find(i=>i.grid_id===n))&&d.options&&(s=d.options.map(i=>{let r;return i.colors&&i.colors.length?r=i.colors[0]:r=i.option_id,{text:i.text,value:r}})),T(s,n)}}return t},Z=(a,n,l,t=", ")=>{let e=T(a,n,l);if(e.length){let s=e[0].text;for(let d=1;d<e.length;d++)s+=t+e[d].text;return s}return null},lt=(a,n,l,t)=>{const e=T(a,l,t);for(let s=0;s<e.length;s++)if(e[s].text===n)return e[s].value},q=(a,n,l,t)=>{let e={};return a&&Array.isArray(a.variations)&&a.variations.forEach(s=>{if(l&&s.quantity<=0)return;let d=s.specifications,i=r=>Z(s,r,t);if(d){if(n){for(let r in n)if(n.hasOwnProperty(r)&&(!d[r]||i(r)!==n[r]))return}for(let r in d)if(d.hasOwnProperty(r)){let f=i(r);if(!e.hasOwnProperty(r))e[r]=[];else if(e[r].indexOf(f)!==-1)continue;e[r].push(f)}}}),e},ct=D({__name:"ImagesGallery",props:{pictures:{}},setup(a,{expose:n}){n();const l=S(0),t=S("");let e;const s=S(!1),i={activeIndex:l,psId:t,get lightbox(){return e},set lightbox(r){e=r},isLoadingLightbox:s,zoom:r=>{if(t.value=`ps-${H()}`,!e&&!s.value){s.value=!0;const f="photoswipe-style";Promise.all([j(()=>import("./photoswipe-lightbox.esm.BbYxSZIB.js"),__vite__mapDeps([])),j(()=>import("./photoswipe.esm.C0FT-EY-.js"),__vite__mapDeps([])),!document.getElementById(f)&&j(()=>import("./photoswipe.CNpEZKfy.js"),__vite__mapDeps([]))]).then(([{default:o},{default:c},h])=>{if(h){const{default:y}=h,g=document.createElement("style");g.id=f,g.textContent=y,document.head.appendChild(g)}e=new o({gallery:`#${t.value} > div`,children:"a",pswpModule:c,showAnimationDuration:300,hideAnimationDuration:300}),e.init(),e.loadAndOpen(r),s.value=!1})}},get getImgSizes(){return st}};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),dt={class:"-mx-4 flex w-screen gap-3 sm:mx-0 sm:w-full md:h-[525px] 2xl:gap-5"},ut=["onClick"],mt=v("span",{class:"absolute bottom-0 block h-2 w-full bg-gradient-to-b from-transparent to-white"},null,-1),ft={class:"relative aspect-square h-full grow md:aspect-auto"},pt={key:0,class:"bg-base-200 i-arrow-path absolute left-1/2 top-1/2 -ml-7 -mt-7 size-14 animate-spin","aria-label":"Carregando"},gt={key:1,class:"mt-2 flex justify-center gap-1.5 md:hidden"},ht=["aria-label","onClick"];function _t(a,n,l,t,e,s){const d=V("AImg"),i=V("CarouselControl"),r=V("Carousel"),f=V("ALink");return u(),m("div",dt,[l.pictures.length>1?(u(),I(r,{key:0,axis:"y",class:"group hidden w-[300px] shrink-0 md:block"},{controls:A(()=>[v("span",null,[l.pictures.length>6?(u(),I(i,{key:0,class:"text-primary hover:bg-primary-300/60 !bottom-3 !left-1/2 -ml-5 size-10 rounded-full bg-white/60 text-xl opacity-0 shadow-sm ring-1 ring-black/5 group-hover:opacity-90"})):b("",!0),mt])]),default:A(()=>[(u(!0),m(w,null,P(Math.ceil(l.pictures.length/2),o=>(u(),m("li",{key:o,class:z(["grid w-full grid-cols-2 gap-3 px-1 pb-3",o===1&&"pt-1"])},[(u(!0),m(w,null,P([1,2].map(c=>(o-1)*2+(c-1)),c=>(u(),m(w,{key:`${o}-${c}`},[c<l.pictures.length?(u(),m("button",{key:0,class:"bg-secondary-100 block rounded md:h-[175px]",onClick:h=>t.activeIndex=c},[k(d,{picture:l.pictures[c],class:z(["ring-secondary/10 size-full rounded border-2 object-cover opacity-90 transition-colors",c===t.activeIndex?"border-secondary/50 ring-4 cursor-auto":"border-transparent hover:border-primary hover:ring-4 hover:ring-primary/20"])},null,8,["picture","class"])],8,ut)):b("",!0)],64))),128))],2))),128))]),_:1})):b("",!0),v("div",ft,[k(r,{as:"div",index:t.activeIndex,"onUpdate:index":n[1]||(n[1]=o=>t.activeIndex=o),class:z(["text-base-600 [&_i]:i-arrow-right mx-auto size-full max-w-[525px] [&>*]:h-full [&_i]:mx-2 [&_i]:text-2xl",t.isLoadingLightbox&&"opacity-80"]),id:t.psId},{default:A(()=>[n[0]||(U(-1),n[0]=(u(!0),m(w,null,P(l.pictures,(o,c)=>(u(),I(f,{key:`big-${c}`,href:o.zoom?.size&&o.zoom.url,"data-pswp-width":t.getImgSizes(o.zoom||"").width,"data-pswp-height":t.getImgSizes(o.zoom||"").height,target:"_blank",rel:"noreferrer",class:z(["shrink-0 basis-full",o.zoom?.size&&"cursor-zoom-in"]),onClick:Y(()=>o.zoom?.size&&t.zoom(c),["prevent"])},{default:A(()=>[k(d,{picture:o,"preferred-size":"big",class:"size-full rounded object-cover",fetchpriority:c===0?"high":"low",loading:c===0?"eager":"lazy"},null,8,["picture","fetchpriority","loading"])]),_:2},1032,["href","data-pswp-width","data-pswp-height","class","onClick"]))),128)),U(1),n[0])]),_:1},8,["index","class","id"]),t.isLoadingLightbox?(u(),m("i",pt)):b("",!0),l.pictures.length>1?(u(),m("ul",gt,[(u(!0),m(w,null,P(l.pictures.length,o=>(u(),m("li",{key:`d-${o}`},[v("button",{class:z(["bg-base-700 block h-1.5 w-3 rounded-full",t.activeIndex!==o-1&&"opacity-40"]),"aria-label":`Imagem ${o}`,onClick:c=>t.activeIndex=o-1},null,10,ht)]))),128))])):b("",!0)])])}const vt=F(ct,[["render",_t]]),yt=a=>{const n=J(a.grids||globalThis.$storefront.data.grids||[]);n.length||window.addEventListener("storefront:data:data",()=>{globalThis.$storefront.data.grids?.forEach(o=>n.push(o))},{once:!0});const l=L({}),t=L({});E(M(a,"variations"),()=>{Object.assign(t,q(a,void 0,!0));const o=q(a);Object.keys(o).forEach(c=>{t[c]?l[c]=t[c]:delete l[c]})},{immediate:!0});const e=Q(()=>Object.keys(l)),s=L({}),d=S(),i=({optionText:o,gridId:c,gridIndex:h})=>{s[c]=o;const y={};for(let p=0;p<=h;p++){const _=e[p];s[_]&&(y[_]=s[_])}const g=q(a,y,!0);for(let p=h+1;p<e.value.length;p++){const _=e[p],O=g[_];t[_]=O,s[_]&&!O.includes(s[_])&&delete s[_]}const x=a.variations.slice(0);for(let p=0;p<x.length;p++){const _=x[p],{specifications:O}=_,R=Object.keys(O);for(let G=0;G<R.length;G++){const N=R[G];if(s[N]!==Z(_,N)){x.splice(p,1),p-=1;break}}}d.value=x[0]?._id||null};return E(M(a,"variationId"),o=>{if(!o||o===d.value)return;const c=a.variations.find(x=>x._id===o);if(!c){d.value=null;return}const{specifications:h}=c,y=Object.keys(h),g=(x=0)=>{const p=y[x];if(y[x]&&h[p]&&h[p].length===1){const _=h[p][0].text;l[p].find(O=>O===_)&&(i({optionText:_,gridId:p,gridIndex:e.value.indexOf(p)}),g(x+1))}};g()},{immediate:!0}),{grids:n,variationsGrids:l,activeVariationsGrids:t,selectOption:i,selectedOptions:s,variationId:d,getGridTitle:o=>nt(o,n),getColorOptionBg:o=>{const c=o.split(",").map(h=>lt(a.variations,h.trim(),"colors"));return c.length>1?`background:linear-gradient(to right bottom, ${c[0]} 50%, ${c[1]} 50%)`:`background:${c[0]}`}}},bt=D({__name:"SkuSelector",props:{variations:{},variationId:{},grids:{}},emits:["update:variationId"],setup(a,{expose:n,emit:l}){n();const t=a,e=l,{variationsGrids:s,activeVariationsGrids:d,selectOption:i,selectedOptions:r,variationId:f,getGridTitle:o,getColorOptionBg:c}=yt(t);E(f,y=>{e("update:variationId",y)});const h={props:t,emit:e,variationsGrids:s,activeVariationsGrids:d,selectOption:i,selectedOptions:r,variationId:f,getGridTitle:o,getColorOptionBg:c};return Object.defineProperty(h,"__isScriptSetup",{enumerable:!1,value:!0}),h}}),xt={class:"text-base-700 text-sm font-medium"},kt={key:0,class:"text-base-800"},wt={key:0,class:"mt-2 flex gap-2"},Ct=["onClick"];function St(a,n,l,t,e,s){return u(),m("div",null,[(u(!0),m(w,null,P(t.variationsGrids,(d,i)=>(u(),m("div",{key:i,class:"mt-3"},[v("span",xt,[B(C(t.getGridTitle(i))+": ",1),t.selectedOptions[i]?(u(),m("strong",kt,C(t.selectedOptions[i]),1)):b("",!0)]),d.length<7?(u(),m("ul",wt,[(u(!0),m(w,null,P(d,(r,f)=>(u(),m("li",{key:`${i}-${f}`},[v("button",{class:z(["ring-primary/60 rounded border",[t.selectedOptions[i]===r?"border-primary ring-2":null,i==="colors"?"size-9 text-[0px]":"px-2.5 py-2 leading-none",t.activeVariationsGrids[i].includes(r)?"border-primary-400 bg-primary-100 text-primary-950":"border-primary-300 bg-primary-200 text-primary-600"]]),style:K(i==="colors"&&t.getColorOptionBg(r)),onClick:o=>t.selectOption({optionText:r,gridId:i,gridIndex:f})},C(r),15,Ct)]))),128))])):b("",!0)]))),128))])}const Ot=F(bt,[["render",St]]),zt=D({__name:"ProductDetails",props:{product:{default:()=>globalThis.$storefront.apiContext?.doc},cmsPreview:{}},setup(a,{expose:n}){n();const l=a,{product:t,title:e,isActive:s}=et(l),d=S(t.min_quantity||1),i=$("history"),r=S(!1),f=S(null);E(f,g=>{g&&(i.var=g,r.value=!1)}),W(()=>{E(i,({var:g})=>{typeof g=="string"&&g&&(f.value=g)},{immediate:!0})});const o=Q(()=>!!(!t.variations?.length||f.value)),c=g=>(o.value?r.value=!1:(g&&g.preventDefault(),r.value=!0),!r.value),y={props:l,product:t,title:e,isActive:s,quantity:d,params:i,hasSkuSelectionAlert:r,variationId:f,isSkuSelected:o,checkVariation:c,addToCart:()=>{c()&&tt(t,f.value||void 0,d.value)},CheckoutLink:ot,QuantitySelector:it,Prices:at,ImagesGallery:vt,SkuSelector:Ot,ShippingCalculator:rt};return Object.defineProperty(y,"__isScriptSetup",{enumerable:!1,value:!0}),y}}),At={class:"relative grid grid-cols-1 items-start gap-x-5 ui-section lg:grid-cols-4 lg:gap-x-4 2xl:gap-x-6"},Pt={class:"w-full lg:col-span-3"},Vt={class:"top-0 pt-4 transition-transform lg:sticky lg:pb-4 lg:sticky-header:translate-y-14"},It={class:"text-lg text-secondary-900 ui-text-brand"},Et={key:0,class:"mt-5"},Tt={key:0,class:"inline-block ui-alert"},Gt=v("i",{class:"ml-1 -rotate-90 i-arrow-right"},null,-1),Lt={class:"mt-5 flex flex-wrap items-center gap-x-4 gap-y-2 md:flex-nowrap lg:mt-4 lg:flex-wrap"},jt=v("i",{class:"mr-1 i-chevron-double-right"},null,-1),qt=["data-tooltip"],Bt={class:"mt-6 rounded border-2 border-base-50 border-t-base-100 p-4 lg:mt-4"},Dt={class:"w-full lg:col-span-3"};function Ft(a,n,l,t,e,s){const d=V("Fade");return u(),m("section",At,[v("div",Pt,[t.product.pictures?.length?(u(),I(t.ImagesGallery,{key:0,pictures:t.product.pictures,class:"mb-5"},null,8,["pictures"])):b("",!0)]),v("div",Vt,[v("h1",It,C(t.title),1),t.isActive?(u(),m("div",Et,[k(t.Prices,{product:t.product,"is-big":"","is-literal":""},null,8,["product"]),t.product.variations?(u(),I(t.SkuSelector,{key:0,variations:t.product.variations,"variation-id":t.variationId,"onUpdate:variationId":n[0]||(n[0]=i=>t.variationId=i),class:"my-4"},null,8,["variations","variation-id"])):b("",!0),k(d,{slide:"down"},{default:A(()=>[t.hasSkuSelectionAlert?(u(),m("div",Tt,[B(C("Por favor selecione uma opção em cada campo acima")+" "),Gt])):b("",!0)]),_:1}),v("div",Lt,[k(t.QuantitySelector,{modelValue:t.quantity,"onUpdate:modelValue":n[1]||(n[1]=i=>t.quantity=i),min:t.product.min_quantity,max:t.product.quantity,class:"rounded border-base-100 md:mr-5 lg:mb-2 lg:mr-auto lg:border-2"},null,8,["modelValue","min","max"]),k(t.CheckoutLink,{class:"grow text-center ui-btn-lg ui-btn-primary",to:"checkout","cart-item":{product_id:t.product._id,quantity:t.quantity,variation_id:t.variationId||void 0},"data-tooltip":t.isSkuSelected?null:"Escolha os detalhes do produto para comprar",onClick:t.checkVariation},{default:A(()=>[jt,B(" "+C("Comprar"))]),_:1},8,["cart-item","data-tooltip"]),v("button",{class:"grow ui-btn-lg ui-btn-contrast",onClick:Y(t.addToCart,["prevent"]),"data-tooltip":t.isSkuSelected?null:"Escolha os detalhes do produto para comprar"},C("Adicionar ao carrinho"),8,qt)]),v("div",Bt,[k(t.ShippingCalculator,{"shipped-items":[{...t.product,quantity:t.quantity}],"has-label":""},null,8,["shipped-items"])])])):b("",!0)]),v("div",Dt,[X(a.$slots,"description")])])}const le=F(zt,[["render",Ft]]);export{le as default};
2
+ function __vite__mapDeps(indexes) {
3
+ if (!__vite__mapDeps.viteFileDeps) {
4
+ __vite__mapDeps.viteFileDeps = []
5
+ }
6
+ return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
7
+ }