cloudcommerce 2.0.9 → 2.2.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 (156) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/LICENSE +21 -0
  3. package/README.md +3 -7
  4. package/action.yml +70 -6
  5. package/ecomplus-stores/barra-doce/.github/workflows/build-and-deploy.yml +4 -2
  6. package/ecomplus-stores/barra-doce/.vscode/settings.json +8 -1
  7. package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
  8. package/ecomplus-stores/barra-doce/functions/ssr/package.json +6 -6
  9. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopHeader.vue +5 -9
  10. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopHeaderMenu.vue +6 -3
  11. package/ecomplus-stores/barra-doce/functions/ssr/src/layouts/PageHeader.astro +2 -2
  12. package/ecomplus-stores/barra-doce/functions/ssr/src/pages/[...slug].astro +10 -2
  13. package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
  14. package/ecomplus-stores/barra-doce/package.json +2 -4
  15. package/ecomplus-stores/tia-sonia/.github/workflows/build-and-deploy.yml +4 -2
  16. package/ecomplus-stores/tia-sonia/.vscode/settings.json +7 -1
  17. package/ecomplus-stores/tia-sonia/package.json +0 -2
  18. package/package.json +8 -8
  19. package/packages/__skeleton/package.json +1 -1
  20. package/packages/api/lib/api.js +1 -1
  21. package/packages/api/lib/api.js.map +1 -1
  22. package/packages/api/package.json +2 -2
  23. package/packages/api/src/api.ts +1 -1
  24. package/packages/apps/affiliate-program/package.json +2 -2
  25. package/packages/apps/correios/package.json +2 -2
  26. package/packages/apps/custom-payment/package.json +2 -2
  27. package/packages/apps/custom-shipping/package.json +2 -2
  28. package/packages/apps/datafrete/package.json +2 -2
  29. package/packages/apps/discounts/package.json +2 -2
  30. package/packages/apps/emails/package.json +2 -2
  31. package/packages/apps/fb-conversions/package.json +2 -2
  32. package/packages/apps/flash-courier/package.json +2 -2
  33. package/packages/apps/frenet/package.json +2 -2
  34. package/packages/apps/galaxpay/package.json +2 -2
  35. package/packages/apps/google-analytics/package.json +2 -2
  36. package/packages/apps/jadlog/package.json +2 -2
  37. package/packages/apps/loyalty-points/package.json +2 -2
  38. package/packages/apps/mandae/package.json +2 -2
  39. package/packages/apps/melhor-envio/package.json +2 -2
  40. package/packages/apps/mercadopago/package.json +2 -2
  41. package/packages/apps/pagarme/package.json +2 -2
  42. package/packages/apps/pagarme-v5/package.json +2 -2
  43. package/packages/apps/paghiper/package.json +2 -2
  44. package/packages/apps/pix/package.json +2 -2
  45. package/packages/apps/tiny-erp/package.json +2 -2
  46. package/packages/apps/webhooks/package.json +2 -2
  47. package/packages/cli/ci/bunny-config-base.sh +225 -0
  48. package/packages/cli/ci/bunny-prepare-ab.sh +173 -0
  49. package/packages/cli/ci/bunny-remove-ab.sh +54 -0
  50. package/packages/cli/ci/bunny-setup.sh +103 -0
  51. package/packages/cli/lib/cli.js +6 -0
  52. package/packages/cli/package.json +3 -2
  53. package/packages/cli/src/cli.ts +6 -0
  54. package/packages/config/package.json +2 -2
  55. package/packages/emails/package.json +2 -2
  56. package/packages/eslint/base.eslintrc.cjs +2 -0
  57. package/packages/eslint/package.json +4 -4
  58. package/packages/eslint/storefront.eslintrc.cjs +0 -2
  59. package/packages/events/package.json +2 -2
  60. package/packages/feeds/package.json +2 -2
  61. package/packages/firebase/package.json +3 -3
  62. package/packages/i18n/package.json +2 -2
  63. package/packages/modules/package.json +2 -2
  64. package/packages/passport/package.json +2 -2
  65. package/packages/ssr/lib/lib/cron-ssr-save-views.js +76 -4
  66. package/packages/ssr/lib/lib/cron-ssr-save-views.js.map +1 -1
  67. package/packages/ssr/package.json +3 -3
  68. package/packages/ssr/src/lib/cron-ssr-save-views.ts +78 -4
  69. package/packages/storefront/client.d.ts +2 -0
  70. package/packages/storefront/dist/client/_astro/{AccountPage.9BlGHXT3.js → AccountPage.89hLh9p2.js} +1 -1
  71. package/packages/storefront/dist/client/_astro/{CartSidebar.55UgTcV0.js → CartSidebar.G25ZUnKP.js} +1 -1
  72. package/packages/storefront/dist/client/_astro/{ProductDetails.ENLKdSz_.js → ProductDetails.ntFWLjla.js} +1 -1
  73. package/packages/storefront/dist/client/_astro/{ProductShelf.lCBJky3e.js → ProductShelf.PPitdYxI.js} +1 -1
  74. package/packages/storefront/dist/client/_astro/{ProductShelf.CNf5JDrU.js → ProductShelf.xSxmHkTe.js} +1 -1
  75. package/packages/storefront/dist/client/_astro/{SearchModal.4osqtafp.js → SearchModal.R55jFaBZ.js} +1 -1
  76. package/packages/storefront/dist/client/_astro/{SearchShowcase.hg6TWrz3.js → SearchShowcase.I1PPFu_n.js} +1 -1
  77. package/packages/storefront/dist/client/_astro/{ShopHeader.xLMeJpqV.js → ShopHeader.OLf0l4Ot.js} +2 -2
  78. package/packages/storefront/dist/client/_astro/{_slug_.r344YGqG.css → _slug_.Hc-dqhcW.css} +1 -1
  79. package/packages/storefront/dist/client/_astro/customer-session.AcETMuhI.js +7 -0
  80. package/packages/storefront/dist/client/_astro/ecom-icon_12falx.png +0 -0
  81. package/packages/storefront/dist/client/_astro/ecom-icon_15pqnO.png +0 -0
  82. package/packages/storefront/dist/client/_astro/ecom-icon_t3guw.png +0 -0
  83. package/packages/storefront/dist/client/_astro/{firebase-app.cPMfoOsn.js → firebase-app.VduCDgof.js} +1 -1
  84. package/packages/storefront/dist/client/_astro/headphone_T2Jjc.avif +0 -0
  85. package/packages/storefront/dist/client/_astro/headphone_Z1CG18r.webp +0 -0
  86. package/packages/storefront/dist/client/_astro/{hoisted.J15ErMtK.js → hoisted.PxLuJZKI.js} +1 -1
  87. package/packages/storefront/dist/client/_astro/{hoisted.KYhwGfsv.js → hoisted.WBjTfX6e.js} +1 -1
  88. package/packages/storefront/dist/client/_astro/{hoisted.HGTzAuTI.js → hoisted.Wi6YpdWJ.js} +1 -1
  89. package/packages/storefront/dist/client/_astro/{index-dd468b12.D5s8VdAL.js → index-dd468b12.fl8bpn8l.js} +3 -3
  90. package/packages/storefront/dist/client/_astro/logo_1UBsBq.webp +0 -0
  91. package/packages/storefront/dist/client/_astro/logo_Z1K5PE9.png +0 -0
  92. package/packages/storefront/dist/client/_astro/logo_Z1KIIl1.avif +0 -0
  93. package/packages/storefront/dist/client/_astro/passion_LHbe9.webp +0 -0
  94. package/packages/storefront/dist/client/_astro/passion_Z23MeUb.avif +0 -0
  95. package/packages/storefront/dist/client/_astro/rect8589_1TtOHY.png +0 -0
  96. package/packages/storefront/dist/client/_astro/rect8589_1f5opX.webp +0 -0
  97. package/packages/storefront/dist/client/_astro/rect8589_IUskt.webp +0 -0
  98. package/packages/storefront/dist/client/_astro/rect8589_Uxfdf.png +0 -0
  99. package/packages/storefront/dist/client/_astro/rect8589_Z15uApA.png +0 -0
  100. package/packages/storefront/dist/client/_astro/rect8589_Z1Ap1Im.avif +0 -0
  101. package/packages/storefront/dist/client/_astro/rect8589_Z1JT1HB.webp +0 -0
  102. package/packages/storefront/dist/client/_astro/rect8589_ZY9mtN.avif +0 -0
  103. package/packages/storefront/dist/client/_astro/rect8589_tMFW0.avif +0 -0
  104. package/packages/storefront/dist/client/_astro/rect859_1TgQXS.avif +0 -0
  105. package/packages/storefront/dist/client/_astro/rect859_2Nm1z.avif +0 -0
  106. package/packages/storefront/dist/client/_astro/rect859_DIqwR.png +0 -0
  107. package/packages/storefront/dist/client/_astro/rect859_Z1IKDb2.png +0 -0
  108. package/packages/storefront/dist/client/_astro/rect859_Z29FI4V.webp +0 -0
  109. package/packages/storefront/dist/client/_astro/rect859_Z2kFHGk.avif +0 -0
  110. package/packages/storefront/dist/client/_astro/rect859_ZkpPFI.webp +0 -0
  111. package/packages/storefront/dist/client/_astro/rect859_jXzBi.png +0 -0
  112. package/packages/storefront/dist/client/_astro/rect859_x1l16.webp +0 -0
  113. package/packages/storefront/dist/client/_astro/rect89_1TSfW7.avif +0 -0
  114. package/packages/storefront/dist/client/_astro/rect89_Z1re32x.webp +0 -0
  115. package/packages/storefront/dist/client/_astro/{shopping-cart.ZdSCrjS6.js → shopping-cart.dJsZkyuD.js} +1 -1
  116. package/packages/storefront/dist/client/_astro/use-analytics.uqK_2k_k.js +1 -0
  117. package/packages/storefront/dist/client/_astro/{use-product-card.-9TsgDDW.js → use-product-card.WRVLjenR.js} +1 -1
  118. package/packages/storefront/dist/client/~fallback.html +98 -0
  119. package/packages/storefront/dist/client/~index.html +128 -0
  120. package/packages/storefront/dist/server/chunks/{CartSidebar_7UWmGIF6.mjs → CartSidebar_yYIzwp_R.mjs} +1 -1
  121. package/packages/storefront/dist/server/chunks/{SearchModal_MNdcYMws.mjs → SearchModal_GvRUZ6ce.mjs} +1 -1
  122. package/packages/storefront/dist/server/chunks/{_.._h5R83hoK.mjs → _.._Lq3r7hpv.mjs} +1 -1
  123. package/packages/storefront/dist/server/chunks/{_page__lWVlZyRe.mjs → _page__LqbeNfr1.mjs} +1 -1
  124. package/packages/storefront/dist/server/chunks/{account_jmelxnlw.mjs → account_4n4rpirV.mjs} +1 -1
  125. package/packages/storefront/dist/server/chunks/astro/{assets-service_xNulQtBO.mjs → assets-service_yXRChsFH.mjs} +11 -66
  126. package/packages/storefront/dist/server/chunks/{astro_tggR3S_9.mjs → astro_F4pl3toV.mjs} +1 -7
  127. package/packages/storefront/dist/server/chunks/{index_e3ytAL8v.mjs → index_SwXtE1IM.mjs} +1 -1
  128. package/packages/storefront/dist/server/chunks/{node_kUJIRL0c.mjs → node_Nzz44v5l.mjs} +1 -1
  129. package/packages/storefront/dist/server/chunks/pages/{__wihn0dYD.mjs → __z8Igc_-f.mjs} +102 -298
  130. package/packages/storefront/dist/server/chunks/pages/{_page__Sb1eYhpz.mjs → _page__-V1Q-Ymk.mjs} +3 -17
  131. package/packages/storefront/dist/server/chunks/pages/account_frSUn7gD.mjs +22 -0
  132. package/packages/storefront/dist/server/chunks/pages/{index_mQXYNYRg.mjs → index_QqJiJpFy.mjs} +4 -15
  133. package/packages/storefront/dist/server/chunks/pages/node_FoDIj_f7.mjs +257 -0
  134. package/packages/storefront/dist/server/chunks/pages/~fallback_t0lNhRm9.mjs +33 -0
  135. package/packages/storefront/dist/server/chunks/~fallback_EWqi0UyU.mjs +6 -0
  136. package/packages/storefront/dist/server/entry.mjs +8 -8
  137. package/packages/storefront/dist/server/images.dist.csv +30 -0
  138. package/packages/storefront/dist/server/images.src.csv +11 -0
  139. package/packages/storefront/dist/server/manifest_ZHJUD8_m.mjs +196 -0
  140. package/packages/storefront/dist/server/renderers.mjs +1 -1
  141. package/packages/storefront/dist/server/static-builds.csv +71 -0
  142. package/packages/storefront/package.json +4 -4
  143. package/packages/storefront/src/lib/layouts/BaseHead.astro +1 -0
  144. package/packages/storefront/src/lib/state/use-analytics.ts +24 -6
  145. package/packages/test-base/package.json +2 -2
  146. package/packages/types/package.json +2 -2
  147. package/LICENSE.md +0 -230
  148. package/ecomplus-stores/barra-doce/LICENSE.md +0 -230
  149. package/ecomplus-stores/tia-sonia/LICENSE.md +0 -230
  150. package/packages/storefront/dist/client/_astro/customer-session.hXdZh5Ii.js +0 -7
  151. package/packages/storefront/dist/client/_astro/use-analytics.tCrQbW8O.js +0 -1
  152. package/packages/storefront/dist/server/chunks/pages/account_-mULVQUB.mjs +0 -32
  153. package/packages/storefront/dist/server/chunks/pages/node_-qe5LuQh.mjs +0 -112
  154. package/packages/storefront/dist/server/chunks/pages/~fallback_ad_xyGHU.mjs +0 -58
  155. package/packages/storefront/dist/server/chunks/~fallback_EZqiEAFE.mjs +0 -6
  156. package/packages/storefront/dist/server/manifest_RrmXPEuL.mjs +0 -196
@@ -29,7 +29,62 @@ const saveViews = async () => {
29
29
  }
30
30
  const { domain } = config.get().settingsContent;
31
31
  if (domain && process.env.BUNNYNET_API_KEY) {
32
+ let bunnyStorageName = process.env.BUNNYNET_STORAGE_NAME;
33
+ let bunnyStoragePass = process.env.BUNNYNET_STORAGE_PASS;
34
+ let bunnyZoneName = process.env.BUNNYNET_ZONE_NAME;
35
+ let permaCacheZoneFolder = '';
36
+ const bunnyAxios = axios.create({
37
+ baseURL: 'https://api.bunny.net/',
38
+ headers: {
39
+ AccessKey: process.env.BUNNYNET_API_KEY,
40
+ },
41
+ });
32
42
  try {
43
+ if (!bunnyStorageName || !bunnyStoragePass) {
44
+ const { data } = await bunnyAxios.get('/storagezone');
45
+ for (let i = 0; i < data.length; i++) {
46
+ const bunnyStorage = data[i];
47
+ if (bunnyStorageName) {
48
+ if (bunnyStorage.Name === bunnyStorageName) {
49
+ bunnyStoragePass = bunnyStorage.Password;
50
+ break;
51
+ }
52
+ continue;
53
+ }
54
+ if (bunnyStorage.Name.startsWith('storefront-isr-')) {
55
+ bunnyStorageName = bunnyStorage.Name;
56
+ bunnyStoragePass = bunnyStorage.Password;
57
+ break;
58
+ }
59
+ }
60
+ }
61
+ if (bunnyStorageName && bunnyStoragePass) {
62
+ if (!bunnyZoneName) {
63
+ const { data } = await bunnyAxios.get('/pullzone');
64
+ for (let i = 0; i < data.length; i++) {
65
+ const pullZone = data[i];
66
+ if (pullZone.Hostnames.find(({ Value }) => Value === domain)) {
67
+ bunnyZoneName = pullZone.Name;
68
+ break;
69
+ }
70
+ }
71
+ }
72
+ if (bunnyZoneName) {
73
+ const { data } = await axios({
74
+ url: `https://storage.bunnycdn.com/${bunnyStorageName}/__bcdn_perma_cache__/`,
75
+ headers: {
76
+ AccessKey: bunnyStoragePass,
77
+ },
78
+ });
79
+ for (let i = 0; i < data.length; i++) {
80
+ const { ObjectName } = data[i];
81
+ if (ObjectName.startsWith(`pullzone__${bunnyZoneName}__`)
82
+ && (!permaCacheZoneFolder || permaCacheZoneFolder < ObjectName)) {
83
+ permaCacheZoneFolder = ObjectName;
84
+ }
85
+ }
86
+ }
87
+ }
33
88
  const pageViewsSnapshot = await db.collection('ssrPageViews')
34
89
  .where('at', '>', new Date(Date.now() - 1000 * 60 * 20))
35
90
  .get();
@@ -38,17 +93,34 @@ const saveViews = async () => {
38
93
  const doc = pageViewsSnapshot.docs[i];
39
94
  const { url } = doc.data();
40
95
  if (url?.startsWith(`https://${domain}`) && !purgedUrls.includes(url)) {
41
- await axios('https://api.bunny.net/purge', {
96
+ await bunnyAxios('/purge', {
42
97
  method: 'POST',
43
98
  params: {
44
99
  async: 'false',
45
100
  url,
46
101
  },
47
- headers: {
48
- AccessKey: process.env.BUNNYNET_API_KEY,
49
- },
50
102
  });
51
103
  purgedUrls.push(url);
104
+ if (permaCacheZoneFolder) {
105
+ let pathname = url.replace(`https://${domain}`, '');
106
+ if (pathname.charAt(0) === '/') {
107
+ pathname = pathname.slice(1);
108
+ }
109
+ const paths = pathname.split('/');
110
+ const filename = paths.pop() || '';
111
+ let folderpath = paths.join('/');
112
+ if (folderpath) folderpath += '/';
113
+ // https://support.bunny.net/hc/en-us/articles/360017048720-Perma-Cache-Folder-Structure-Explained
114
+ const permaCachePath = `__bcdn_perma_cache__/${permaCacheZoneFolder}`
115
+ + `/${folderpath}___${filename}___/___file___`;
116
+ await axios({
117
+ method: 'DELETE',
118
+ url: `https://storage.bunnycdn.com/${bunnyStorageName}/${permaCachePath}`,
119
+ headers: {
120
+ AccessKey: bunnyStoragePass,
121
+ },
122
+ });
123
+ }
52
124
  }
53
125
  }
54
126
  } catch (err) {
@@ -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.0.9",
4
+ "version": "2.2.0",
5
5
  "description": "E-Com Plus Cloud Commerce storefront SSR",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -16,7 +16,7 @@
16
16
  "directory": "packages/ssr"
17
17
  },
18
18
  "author": "E-Com Club Softwares para E-commerce <ti@e-com.club>",
19
- "license": "Apache 2.0 with Commons Clause",
19
+ "license": "MIT",
20
20
  "bugs": {
21
21
  "url": "https://github.com/ecomplus/cloud-commerce/issues"
22
22
  },
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "devDependencies": {
45
45
  "@cloudcommerce/types": "workspace:*",
46
- "@cloudflare/workers-types": "^4.20231218.0",
46
+ "@cloudflare/workers-types": "^4.20240117.0",
47
47
  "@firebase/app-types": "^0.9.0",
48
48
  "typescript": "~5.2.2"
49
49
  }
@@ -29,7 +29,64 @@ const saveViews = async () => {
29
29
  }
30
30
  const { domain } = config.get().settingsContent;
31
31
  if (domain && process.env.BUNNYNET_API_KEY) {
32
+ let bunnyStorageName = process.env.BUNNYNET_STORAGE_NAME;
33
+ let bunnyStoragePass = process.env.BUNNYNET_STORAGE_PASS;
34
+ let bunnyZoneName = process.env.BUNNYNET_ZONE_NAME;
35
+ let permaCacheZoneFolder = '';
36
+ const bunnyAxios = axios.create({
37
+ baseURL: 'https://api.bunny.net/',
38
+ headers: {
39
+ AccessKey: process.env.BUNNYNET_API_KEY,
40
+ },
41
+ });
32
42
  try {
43
+ if (!bunnyStorageName || !bunnyStoragePass) {
44
+ const { data } = await bunnyAxios.get('/storagezone');
45
+ for (let i = 0; i < data.length; i++) {
46
+ const bunnyStorage = data[i];
47
+ if (bunnyStorageName) {
48
+ if (bunnyStorage.Name === bunnyStorageName) {
49
+ bunnyStoragePass = bunnyStorage.Password;
50
+ break;
51
+ }
52
+ continue;
53
+ }
54
+ if (bunnyStorage.Name.startsWith('storefront-isr-')) {
55
+ bunnyStorageName = bunnyStorage.Name;
56
+ bunnyStoragePass = bunnyStorage.Password;
57
+ break;
58
+ }
59
+ }
60
+ }
61
+ if (bunnyStorageName && bunnyStoragePass) {
62
+ if (!bunnyZoneName) {
63
+ const { data } = await bunnyAxios.get('/pullzone');
64
+ for (let i = 0; i < data.length; i++) {
65
+ const pullZone = data[i];
66
+ if (pullZone.Hostnames.find(({ Value }) => Value === domain)) {
67
+ bunnyZoneName = pullZone.Name;
68
+ break;
69
+ }
70
+ }
71
+ }
72
+ if (bunnyZoneName) {
73
+ const { data } = await axios({
74
+ url: `https://storage.bunnycdn.com/${bunnyStorageName}/__bcdn_perma_cache__/`,
75
+ headers: {
76
+ AccessKey: bunnyStoragePass,
77
+ },
78
+ });
79
+ for (let i = 0; i < data.length; i++) {
80
+ const { ObjectName } = data[i];
81
+ if (
82
+ ObjectName.startsWith(`pullzone__${bunnyZoneName}__`)
83
+ && (!permaCacheZoneFolder || permaCacheZoneFolder < ObjectName)
84
+ ) {
85
+ permaCacheZoneFolder = ObjectName;
86
+ }
87
+ }
88
+ }
89
+ }
33
90
  const pageViewsSnapshot = await db.collection('ssrPageViews')
34
91
  .where('at', '>', new Date(Date.now() - 1000 * 60 * 20))
35
92
  .get();
@@ -38,17 +95,34 @@ const saveViews = async () => {
38
95
  const doc = pageViewsSnapshot.docs[i];
39
96
  const { url } = doc.data() as { url: string };
40
97
  if (url?.startsWith(`https://${domain}`) && !purgedUrls.includes(url)) {
41
- await axios('https://api.bunny.net/purge', {
98
+ await bunnyAxios('/purge', {
42
99
  method: 'POST',
43
100
  params: {
44
101
  async: 'false',
45
102
  url,
46
103
  },
47
- headers: {
48
- AccessKey: process.env.BUNNYNET_API_KEY,
49
- },
50
104
  });
51
105
  purgedUrls.push(url);
106
+ if (permaCacheZoneFolder) {
107
+ let pathname = url.replace(`https://${domain}`, '');
108
+ if (pathname.charAt(0) === '/') {
109
+ pathname = pathname.slice(1);
110
+ }
111
+ const paths = pathname.split('/');
112
+ const filename = paths.pop() || '';
113
+ let folderpath = paths.join('/');
114
+ if (folderpath) folderpath += '/';
115
+ // https://support.bunny.net/hc/en-us/articles/360017048720-Perma-Cache-Folder-Structure-Explained
116
+ const permaCachePath = `__bcdn_perma_cache__/${permaCacheZoneFolder}`
117
+ + `/${folderpath}___${filename}___/___file___`;
118
+ await axios({
119
+ method: 'DELETE',
120
+ url: `https://storage.bunnycdn.com/${bunnyStorageName}/${permaCachePath}`,
121
+ headers: {
122
+ AccessKey: bunnyStoragePass,
123
+ },
124
+ });
125
+ }
52
126
  }
53
127
  }
54
128
  } catch (err: any) {
@@ -25,6 +25,8 @@ interface Window {
25
25
  ECOM_CURRENCY: string;
26
26
  ECOM_CURRENCY_SYMBOL: string;
27
27
  ECOM_COUNTRY_CODE: string;
28
+ GIT_BRANCH: string;
29
+ AB_EXPERIMENT_ID?: string;
28
30
  $storefront?: import('@@sf/$storefront').$Storefront & {
29
31
  modulesInfoPreset?: Partial<typeof import('./src/lib/state/modules-info').default>,
30
32
  };
@@ -1 +1 @@
1
- import{_ as P,a as A,v as M,w as k}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{e as T,f as _,E as V,a as R,d as I}from"./customer-session.hXdZh5Ii.js";import{u as j}from"./index.R7A-Pg5V.js";import{g as B,b as O,c as q}from"./index-dd468b12.D5s8VdAL.js";import{b as D}from"./index.q6KIyKlJ.js";import{a as f,w as h,d as C,c as z,M as F,N as l,O as c,Z as N,R as i,S as b,P as r,Q as S,W as x,T as E,U as L,V as U,a2 as W,a3 as Y,X as G,Y as K}from"./runtime-core.esm-bundler.XTSAdOlw.js";import"./sf-utils.Z4H-dRBJ.js";const Q=m=>{T();const s=m?.canUseUrlParams!==!1?j("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=D(async p=>{d.value=!0;const v=Date.now(),y=B();if(_.value){window.localStorage.setItem(V,_.value);try{if(n.value){const w=new URL(p||window.location.toString());w.searchParams.append("email",_.value),await O(y,_.value,{url:w.toString(),handleCodeInApp:!0})}else await q(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}},X=C({__name:"LoginForm",props:{loginLinkActionUrl:{}},setup(m,{expose:t}){t();const{isLinkSignIn:s,isSignUp:e,email:a,password:u,isSubmitting:n,submitLogin:o}=Q(),d=f(!1),g=f(0),p=z(()=>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 R}};return Object.defineProperty(v,"__isScriptSetup",{enumerable:!1,value:!0}),v}}),Z={class:"text-base-600 mb-4 text-2xl font-light"},$={key:0},H={key:1,class:"lowercase"},J={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=F("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]=k(()=>e.submitLogin(s.loginLinkActionUrl),["prevent"]))},[N(m.$slots,"head"),i("p",Z,[b(r("Olá")+" "),e.customerName?(l(),c("span",$,r(e.customerName),1)):(l(),c("span",H,r("Visitante")))]),e.isLinkSignIn?(l(),c("label",J,r("Enviar link de acesso por e-mail"))):S("",!0),x(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),[[A,e.email]]),e.isLinkSignIn?S("",!0):x((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)),[[A,e.password]]),i("div",ee,[i("div",{class:E(["transition-opacity",e.isEmailSentMsg&&"opacity-0 invisible"])},[x(i("a",{href:"?password",class:"text-base-500 ui-link text-right text-sm lowercase",onClick:t[2]||(t[2]=k(o=>e.isLinkSignIn=!e.isLinkSignIn,["prevent"]))},r(e.isLinkSignIn?"Entrar com senha":"Esqueci minha senha"),513),[[M,!e.isSignUp&&!e.isLinkSignInBlocked]]),i("button",{type:"submit",disabled:e.isSubmitting,class:E(["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]=k(o=>e.isSignUp=!e.isSignUp,["prevent"]))},r(e.isSignUp?"Acessar minha conta":"Criar uma conta"),1)])],32)}const ae=P(X,[["render",ie]]),oe=C({__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(I,()=>{I.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=F("ALink");return l(),c("article",re,[i("div",le,[ce,i("section",me,[L(e.LoginForm,W(Y({loginLinkActionUrl:e.loginLinkActionUrl})),{head:U(()=>[i("div",ue,[i("a",de,[N(m.$slots,"logo")])])]),_:3},16)]),m.$settings.serviceLinks?.length?(l(),c("nav",pe,[i("ul",ge,[(l(!0),c(G,null,K(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=P(oe,[["render",_e]]);export{xe as default};
1
+ import{_ as P,a as A,v as M,w as k}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{e as T,f as _,E as V,a as R,d as I}from"./customer-session.AcETMuhI.js";import{u as j}from"./index.R7A-Pg5V.js";import{g as B,b as O,c as q}from"./index-dd468b12.fl8bpn8l.js";import{b as D}from"./index.q6KIyKlJ.js";import{a as f,w as h,d as C,c as z,M as F,N as l,O as c,Z as N,R as i,S as b,P as r,Q as S,W as x,T as E,U as L,V as U,a2 as W,a3 as Y,X as G,Y as K}from"./runtime-core.esm-bundler.XTSAdOlw.js";import"./sf-utils.Z4H-dRBJ.js";const Q=m=>{T();const s=m?.canUseUrlParams!==!1?j("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=D(async p=>{d.value=!0;const v=Date.now(),y=B();if(_.value){window.localStorage.setItem(V,_.value);try{if(n.value){const w=new URL(p||window.location.toString());w.searchParams.append("email",_.value),await O(y,_.value,{url:w.toString(),handleCodeInApp:!0})}else await q(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}},X=C({__name:"LoginForm",props:{loginLinkActionUrl:{}},setup(m,{expose:t}){t();const{isLinkSignIn:s,isSignUp:e,email:a,password:u,isSubmitting:n,submitLogin:o}=Q(),d=f(!1),g=f(0),p=z(()=>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 R}};return Object.defineProperty(v,"__isScriptSetup",{enumerable:!1,value:!0}),v}}),Z={class:"text-base-600 mb-4 text-2xl font-light"},$={key:0},H={key:1,class:"lowercase"},J={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=F("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]=k(()=>e.submitLogin(s.loginLinkActionUrl),["prevent"]))},[N(m.$slots,"head"),i("p",Z,[b(r("Olá")+" "),e.customerName?(l(),c("span",$,r(e.customerName),1)):(l(),c("span",H,r("Visitante")))]),e.isLinkSignIn?(l(),c("label",J,r("Enviar link de acesso por e-mail"))):S("",!0),x(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),[[A,e.email]]),e.isLinkSignIn?S("",!0):x((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)),[[A,e.password]]),i("div",ee,[i("div",{class:E(["transition-opacity",e.isEmailSentMsg&&"opacity-0 invisible"])},[x(i("a",{href:"?password",class:"text-base-500 ui-link text-right text-sm lowercase",onClick:t[2]||(t[2]=k(o=>e.isLinkSignIn=!e.isLinkSignIn,["prevent"]))},r(e.isLinkSignIn?"Entrar com senha":"Esqueci minha senha"),513),[[M,!e.isSignUp&&!e.isLinkSignInBlocked]]),i("button",{type:"submit",disabled:e.isSubmitting,class:E(["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]=k(o=>e.isSignUp=!e.isSignUp,["prevent"]))},r(e.isSignUp?"Acessar minha conta":"Criar uma conta"),1)])],32)}const ae=P(X,[["render",ie]]),oe=C({__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(I,()=>{I.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=F("ALink");return l(),c("article",re,[i("div",le,[ce,i("section",me,[L(e.LoginForm,W(Y({loginLinkActionUrl:e.loginLinkActionUrl})),{head:U(()=>[i("div",ue,[i("a",de,[N(m.$slots,"logo")])])]),_:3},16)]),m.$settings.serviceLinks?.length?(l(),c("nav",pe,[i("ul",ge,[(l(!0),c(G,null,K(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=P(oe,[["render",_e]]);export{xe as default};
@@ -1 +1 @@
1
- import{_ as b,w as x}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{f as C}from"./modules-info.tVRhvxNm.js";import{p as I,r as S,s as w,t as V}from"./shopping-cart.ZdSCrjS6.js";import{Q as P,C as F}from"./QuantitySelector.tumfWDjC.js";import{P as v}from"./Prices.Ye-m2HTo.js";import{c as p,d as y,M as f,N as i,O as m,U as d,V as k,$ as z,Q as h,P as o,R as t,S as g,X as j,Y as N}from"./runtime-core.esm-bundler.XTSAdOlw.js";import{g as A}from"./name.urFqJ5yn.js";import{g as L}from"./img.WnsidxCx.js";import"./afetch.5c8VmT0-.js";import"./sf-utils.Z4H-dRBJ.js";import"./format-money.iK5LGydz.js";import"./price.Easct8WC.js";import"./customer-session.hXdZh5Ii.js";import"./index.q6KIyKlJ.js";import"./i18n.Lxnz1oF-.js";const q=a=>{const s=p(()=>!a.item&&a.product?I(a.product):null),r=p(()=>a.item||s.value),e=p(()=>A(r.value)),n=p(()=>{const{slug:l}=r.value;return typeof l=="string"?`/${l}`:null}),u=p(()=>{if(r.value.picture)return L(r.value.picture,void 0,a.pictureSize||"small")}),c=p(()=>r.value.final_price||r.value.price);return{cartItem:r,title:e,link:n,image:u,finalPrice:c}},B=y({__name:"CartItem",props:{item:{},product:{},pictureSize:{}},setup(a,{expose:s}){s();const r=a,{cartItem:e,title:n,link:u,image:c,finalPrice:l}=q(r),_={props:r,cartItem:e,title:n,link:u,image:c,finalPrice:l,get removeCartItem(){return S},QuantitySelector:P,Prices:v};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}}),Q={class:"relative bg-white shadow-sm"},E={class:"text-base-700 group-hover:text-base-900 flex-auto py-2 text-sm group-hover:underline"},M=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),O=[M],R={class:"border-base-100 flex items-center justify-between border-t-2"},U={class:"border-base-100 border-r-2"};function D(a,s,r,e,n,u){const c=f("AImg"),l=f("ALink");return i(),m("article",Q,[d(l,{href:e.link,class:"group flex items-center gap-5 p-4"},{default:k(()=>[e.image?(i(),z(c,{key:0,picture:e.image,alt:e.title,class:"size-20 object-cover"},null,8,["picture","alt"])):h("",!0),t("p",E,o(e.title),1)]),_:1},8,["href"]),e.cartItem._id?(i(),m("button",{key:0,onClick:s[0]||(s[0]=x(_=>e.removeCartItem(e.cartItem._id),["stop"])),class:"absolute right-0 top-0 p-2 opacity-70 hover:opacity-100","aria-label":"Remover"},O)):h("",!0),t("div",R,[t("div",U,[d(e.QuantitySelector,{modelValue:e.cartItem.quantity,"onUpdate:modelValue":s[1]||(s[1]=_=>e.cartItem.quantity=_),min:e.cartItem.min_quantity,max:e.cartItem.max_quantity},null,8,["modelValue","min","max"])]),d(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 T=b(B,[["render",D]]),X=y({__name:"CartSidebar",emits:["close"],setup(a,{expose:s,emit:r}){s();const n={emit:r,get freeShippingFromValue(){return C},get shoppingCart(){return w},get totalItems(){return V},CheckoutLink:F,Prices:v,CartItem:T};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Y={class:"flex h-screen flex-col bg-white"},G={class:"z-10 flex items-center justify-end gap-3 px-6 py-4 shadow ring-1 ring-black/5"},H=t("span",{class:"text-base-600 text-right text-base font-medium"},o("Meu carrinho de compras"),-1),J={class:"min-w-[3rem] text-right"},K={class:"ui-badge-pill-lg"},W={class:"bg-base-50 grow overflow-y-auto"},Z={key:0,class:"text-center text-sm"},$={key:0,class:"secondary-subtle p-3"},ee=t("strong",{class:"lowercase"},o("Frete grátis"),-1),te={key:1,class:"bg-success-50 text-success-800 p-3"},re=t("i",{class:"text-success-900 i-check mr-1"},null,-1),se={class:"px-4 pb-2 pt-4"},ae={class:"z-10 px-5 pb-3 pt-4 ring-2 ring-black/5"},oe={class:"grid grid-cols-5 items-center gap-3 text-right"},ie=t("div",{class:"col-span-2"},o("Subtotal"),-1),ne=t("i",{class:"i-check mr-2"},null,-1),ce=t("i",{class:"i-arrow-right mr-1 rotate-180"},null,-1);function le(a,s,r,e,n,u){return i(),m("aside",Y,[t("header",G,[H,t("span",J,[t("span",K,o(e.totalItems),1)])]),t("article",W,[e.freeShippingFromValue?(i(),m("div",Z,[e.freeShippingFromValue>e.shoppingCart.subtotal?(i(),m("div",$,[g(o("Adicione $1 para ganhar".replace("$1",a.$money(e.freeShippingFromValue-e.shoppingCart.subtotal)))+" ",1),ee])):(i(),m("div",te,[re,g(" "+o("Frete grátis a partir de")+" "+o(a.$money(e.freeShippingFromValue)),1)]))])):h("",!0),t("ul",se,[(i(!0),m(j,null,N(e.shoppingCart.items,(c,l)=>(i(),m("li",{key:l},[d(e.CartItem,{item:c,class:"mb-3"},null,8,["item"])]))),128))])]),t("footer",ae,[t("div",oe,[ie,d(e.Prices,{price:e.shoppingCart.subtotal,class:"col-span-3 text-lg"},null,8,["price"])]),d(e.CheckoutLink,{to:"checkout",class:"ui-btn-lg ui-btn-primary my-2.5 w-full text-right"},{default:k(()=>[ne,g(" "+o("Finalizar compra"))]),_:1}),t("a",{href:"#",onClick:s[0]||(s[0]=x(c=>e.emit("close"),["prevent"])),class:"text-base-500 ui-link hover:text-base-700 text-sm"},[ce,g(" "+o("Continuar comprando"))])])])}const Se=b(X,[["render",le]]);export{Se as default};
1
+ import{_ as b,w as x}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{f as C}from"./modules-info.tVRhvxNm.js";import{p as I,r as S,s as w,t as V}from"./shopping-cart.dJsZkyuD.js";import{Q as P,C as F}from"./QuantitySelector.tumfWDjC.js";import{P as v}from"./Prices.Ye-m2HTo.js";import{c as p,d as y,M as f,N as i,O as m,U as d,V as k,$ as z,Q as h,P as o,R as t,S as g,X as j,Y as N}from"./runtime-core.esm-bundler.XTSAdOlw.js";import{g as A}from"./name.urFqJ5yn.js";import{g as L}from"./img.WnsidxCx.js";import"./afetch.5c8VmT0-.js";import"./sf-utils.Z4H-dRBJ.js";import"./format-money.iK5LGydz.js";import"./price.Easct8WC.js";import"./customer-session.AcETMuhI.js";import"./index.q6KIyKlJ.js";import"./i18n.Lxnz1oF-.js";const q=a=>{const s=p(()=>!a.item&&a.product?I(a.product):null),r=p(()=>a.item||s.value),e=p(()=>A(r.value)),n=p(()=>{const{slug:l}=r.value;return typeof l=="string"?`/${l}`:null}),u=p(()=>{if(r.value.picture)return L(r.value.picture,void 0,a.pictureSize||"small")}),c=p(()=>r.value.final_price||r.value.price);return{cartItem:r,title:e,link:n,image:u,finalPrice:c}},B=y({__name:"CartItem",props:{item:{},product:{},pictureSize:{}},setup(a,{expose:s}){s();const r=a,{cartItem:e,title:n,link:u,image:c,finalPrice:l}=q(r),_={props:r,cartItem:e,title:n,link:u,image:c,finalPrice:l,get removeCartItem(){return S},QuantitySelector:P,Prices:v};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}}),Q={class:"relative bg-white shadow-sm"},E={class:"text-base-700 group-hover:text-base-900 flex-auto py-2 text-sm group-hover:underline"},M=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),O=[M],R={class:"border-base-100 flex items-center justify-between border-t-2"},U={class:"border-base-100 border-r-2"};function D(a,s,r,e,n,u){const c=f("AImg"),l=f("ALink");return i(),m("article",Q,[d(l,{href:e.link,class:"group flex items-center gap-5 p-4"},{default:k(()=>[e.image?(i(),z(c,{key:0,picture:e.image,alt:e.title,class:"size-20 object-cover"},null,8,["picture","alt"])):h("",!0),t("p",E,o(e.title),1)]),_:1},8,["href"]),e.cartItem._id?(i(),m("button",{key:0,onClick:s[0]||(s[0]=x(_=>e.removeCartItem(e.cartItem._id),["stop"])),class:"absolute right-0 top-0 p-2 opacity-70 hover:opacity-100","aria-label":"Remover"},O)):h("",!0),t("div",R,[t("div",U,[d(e.QuantitySelector,{modelValue:e.cartItem.quantity,"onUpdate:modelValue":s[1]||(s[1]=_=>e.cartItem.quantity=_),min:e.cartItem.min_quantity,max:e.cartItem.max_quantity},null,8,["modelValue","min","max"])]),d(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 T=b(B,[["render",D]]),X=y({__name:"CartSidebar",emits:["close"],setup(a,{expose:s,emit:r}){s();const n={emit:r,get freeShippingFromValue(){return C},get shoppingCart(){return w},get totalItems(){return V},CheckoutLink:F,Prices:v,CartItem:T};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Y={class:"flex h-screen flex-col bg-white"},G={class:"z-10 flex items-center justify-end gap-3 px-6 py-4 shadow ring-1 ring-black/5"},H=t("span",{class:"text-base-600 text-right text-base font-medium"},o("Meu carrinho de compras"),-1),J={class:"min-w-[3rem] text-right"},K={class:"ui-badge-pill-lg"},W={class:"bg-base-50 grow overflow-y-auto"},Z={key:0,class:"text-center text-sm"},$={key:0,class:"secondary-subtle p-3"},ee=t("strong",{class:"lowercase"},o("Frete grátis"),-1),te={key:1,class:"bg-success-50 text-success-800 p-3"},re=t("i",{class:"text-success-900 i-check mr-1"},null,-1),se={class:"px-4 pb-2 pt-4"},ae={class:"z-10 px-5 pb-3 pt-4 ring-2 ring-black/5"},oe={class:"grid grid-cols-5 items-center gap-3 text-right"},ie=t("div",{class:"col-span-2"},o("Subtotal"),-1),ne=t("i",{class:"i-check mr-2"},null,-1),ce=t("i",{class:"i-arrow-right mr-1 rotate-180"},null,-1);function le(a,s,r,e,n,u){return i(),m("aside",Y,[t("header",G,[H,t("span",J,[t("span",K,o(e.totalItems),1)])]),t("article",W,[e.freeShippingFromValue?(i(),m("div",Z,[e.freeShippingFromValue>e.shoppingCart.subtotal?(i(),m("div",$,[g(o("Adicione $1 para ganhar".replace("$1",a.$money(e.freeShippingFromValue-e.shoppingCart.subtotal)))+" ",1),ee])):(i(),m("div",te,[re,g(" "+o("Frete grátis a partir de")+" "+o(a.$money(e.freeShippingFromValue)),1)]))])):h("",!0),t("ul",se,[(i(!0),m(j,null,N(e.shoppingCart.items,(c,l)=>(i(),m("li",{key:l},[d(e.CartItem,{item:c,class:"mb-3"},null,8,["item"])]))),128))])]),t("footer",ae,[t("div",oe,[ie,d(e.Prices,{price:e.shoppingCart.subtotal,class:"col-span-3 text-lg"},null,8,["price"])]),d(e.CheckoutLink,{to:"checkout",class:"ui-btn-lg ui-btn-primary my-2.5 w-full text-right"},{default:k(()=>[ne,g(" "+o("Finalizar compra"))]),_:1}),t("a",{href:"#",onClick:s[0]||(s[0]=x(c=>e.emit("close"),["prevent"])),class:"text-base-500 ui-link hover:text-base-700 text-sm"},[ce,g(" "+o("Continuar comprando"))])])])}const Se=b(X,[["render",le]]);export{Se as default};
@@ -1,4 +1,4 @@
1
- import{_ as D,w as Q}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{u as Z}from"./index.R7A-Pg5V.js";import{a as J}from"./shopping-cart.ZdSCrjS6.js";import{u as K}from"./use-product-card.-9TsgDDW.js";import{C as W,Q as $}from"./QuantitySelector.tumfWDjC.js";import{P as tt}from"./Prices.Ye-m2HTo.js";import{_ as G}from"./customer-session.hXdZh5Ii.js";import{u as et}from"./sf-utils.Z4H-dRBJ.js";import{d as R,a as C,M as I,N as u,O as f,$ as P,V,Q as b,R as v,X as k,T as z,U as w,Y as A,a7 as F,L as ot,r as L,w as T,a6 as M,c as H,S as B,P as S,a8 as it,H as rt,Z as at}from"./runtime-core.esm-bundler.XTSAdOlw.js";import{g as st}from"./img-sizes.gxAI9JNh.js";import"./index.q6KIyKlJ.js";import{g as nt}from"./grid-title.vGKBy72g.js";import"./price.Easct8WC.js";import"./use-analytics.tCrQbW8O.js";import"./afetch.5c8VmT0-.js";import"./name.urFqJ5yn.js";import"./i18n.Lxnz1oF-.js";import"./img.WnsidxCx.js";import"./modules-info.tVRhvxNm.js";import"./format-money.iK5LGydz.js";const q=(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(q(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}})),q(s,n)}}return t},X=q,lt=(a,n,l,t=", ")=>{let e=X(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},Y=lt,ct=(a,n,l,t)=>{const e=X(a,l,t);for(let s=0;s<e.length;s++)if(e[s].text===n)return e[s].value},dt=ct,ut=(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=>Y(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 m=i(r);if(!e.hasOwnProperty(r))e[r]=[];else if(e[r].indexOf(m)!==-1)continue;e[r].push(m)}}}),e},j=ut,mt=R({__name:"ImagesGallery",props:{pictures:{}},setup(a,{expose:n}){n();const l=C(0),t=C("");let e;const s=C(!1),i={activeIndex:l,psId:t,get lightbox(){return e},set lightbox(r){e=r},isLoadingLightbox:s,zoom:r=>{if(t.value=`ps-${et()}`,!e&&!s.value){s.value=!0;const m="photoswipe-style";Promise.all([G(()=>import("./photoswipe-lightbox.esm.dZBqKD9u.js"),__vite__mapDeps([])),G(()=>import("./photoswipe.esm.Ylh9TGkz.js"),__vite__mapDeps([])),!document.getElementById(m)&&G(()=>import("./photoswipe.0V7m2jWu.js"),__vite__mapDeps([]))]).then(([{default:o},{default:c},_])=>{if(_){const{default:y}=_,p=document.createElement("style");p.id=m,p.textContent=y,document.head.appendChild(p)}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}}),ft={class:"-mx-4 flex w-screen gap-3 sm:mx-0 sm:w-full md:h-[525px] 2xl:gap-5"},gt=["onClick"],pt=v("span",{class:"absolute bottom-0 block h-2 w-full bg-gradient-to-b from-transparent to-white"},null,-1),_t={class:"relative aspect-square h-full grow md:aspect-auto"},ht={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"},vt={key:1,class:"mt-2 flex justify-center gap-1.5 md:hidden"},yt=["aria-label","onClick"];function bt(a,n,l,t,e,s){const d=I("AImg"),i=I("CarouselControl"),r=I("Carousel"),m=I("ALink");return u(),f("div",ft,[l.pictures.length>1?(u(),P(r,{key:0,axis:"y",class:"group hidden w-[300px] shrink-0 md:block"},{controls:V(()=>[v("span",null,[l.pictures.length>6?(u(),P(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),pt])]),default:V(()=>[(u(!0),f(k,null,A(Math.ceil(l.pictures.length/2),o=>(u(),f("li",{key:o,class:z(["grid w-full grid-cols-2 gap-3 px-1 pb-3",o===1&&"pt-1"])},[(u(!0),f(k,null,A([1,2].map(c=>(o-1)*2+(c-1)),c=>(u(),f(k,{key:`${o}-${c}`},[c<l.pictures.length?(u(),f("button",{key:0,class:"bg-secondary-100 block rounded md:h-[175px]",onClick:_=>t.activeIndex=c},[w(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,gt)):b("",!0)],64))),128))],2))),128))]),_:1})):b("",!0),v("div",_t,[w(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:V(()=>[n[0]||(F(-1),n[0]=(u(!0),f(k,null,A(l.pictures,(o,c)=>(u(),P(m,{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:Q(()=>o.zoom?.size&&t.zoom(c),["prevent"])},{default:V(()=>[w(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)),F(1),n[0])]),_:1},8,["index","class","id"]),t.isLoadingLightbox?(u(),f("i",ht)):b("",!0),l.pictures.length>1?(u(),f("ul",vt,[(u(!0),f(k,null,A(l.pictures.length,o=>(u(),f("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,yt)]))),128))])):b("",!0)])])}const xt=D(mt,[["render",bt]]),kt=a=>{const n=ot(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({});T(M(a,"variations"),()=>{Object.assign(t,j(a,void 0,!0));const o=j(a);Object.keys(o).forEach(c=>{t[c]?l[c]=t[c]:delete l[c]})},{immediate:!0});const e=H(()=>Object.keys(l)),s=L({}),d=C(),i=({optionText:o,gridId:c,gridIndex:_})=>{s[c]=o;const y={};for(let g=0;g<=_;g++){const h=e[g];s[h]&&(y[h]=s[h])}const p=j(a,y,!0);for(let g=_+1;g<e.value.length;g++){const h=e[g],O=p[h];t[h]=O,s[h]&&!O.includes(s[h])&&delete s[h]}const x=a.variations.slice(0);for(let g=0;g<x.length;g++){const h=x[g],{specifications:O}=h,N=Object.keys(O);for(let E=0;E<N.length;E++){const U=N[E];if(s[U]!==Y(h,U)){x.splice(g,1),g-=1;break}}}d.value=x[0]?._id||null};return T(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:_}=c,y=Object.keys(_),p=(x=0)=>{const g=y[x];if(y[x]&&_[g]&&_[g].length===1){const h=_[g][0].text;l[g].find(O=>O===h)&&(i({optionText:h,gridId:g,gridIndex:e.value.indexOf(g)}),p(x+1))}};p()},{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(_=>dt(a.variations,_.trim(),"colors"));return c.length>1?`background:linear-gradient(to right bottom, ${c[0]} 50%, ${c[1]} 50%)`:`background:${c[0]}`}}},wt=R({__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:m,getGridTitle:o,getColorOptionBg:c}=kt(t);T(m,y=>{e("update:variationId",y)});const _={props:t,emit:e,variationsGrids:s,activeVariationsGrids:d,selectOption:i,selectedOptions:r,variationId:m,getGridTitle:o,getColorOptionBg:c};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}}),St={class:"text-base-700 text-sm font-medium"},Ct={key:0,class:"text-base-800"},Ot={key:0,class:"mt-2 flex gap-2"},zt=["onClick"];function Vt(a,n,l,t,e,s){return u(),f("div",null,[(u(!0),f(k,null,A(t.variationsGrids,(d,i)=>(u(),f("div",{key:i,class:"mt-3"},[v("span",St,[B(S(t.getGridTitle(i))+": ",1),t.selectedOptions[i]?(u(),f("strong",Ct,S(t.selectedOptions[i]),1)):b("",!0)]),d.length<7?(u(),f("ul",Ot,[(u(!0),f(k,null,A(d,(r,m)=>(u(),f("li",{key:`${i}-${m}`},[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:it(i==="colors"&&t.getColorOptionBg(r)),onClick:o=>t.selectOption({optionText:r,gridId:i,gridIndex:m})},S(r),15,zt)]))),128))])):b("",!0)]))),128))])}const At=D(wt,[["render",Vt]]),It=R({__name:"ProductDetails",props:{product:{default:()=>globalThis.$storefront.apiContext?.doc}},setup(a,{expose:n}){n();const l=a,{product:t,title:e,isActive:s}=K(l),d=C(t.min_quantity||1),i=Z("history"),r=C(!1),m=C(null);T(m,p=>{p&&(i.var=p,r.value=!1)}),rt(()=>{T(i,({var:p})=>{typeof p=="string"&&p&&(m.value=p)},{immediate:!0})});const o=H(()=>!!(!t.variations?.length||m.value)),c=p=>(o.value?r.value=!1:(p&&p.preventDefault(),r.value=!0),!r.value),y={props:l,product:t,title:e,isActive:s,quantity:d,params:i,hasSkuSelectionAlert:r,variationId:m,isSkuSelected:o,checkVariation:c,addToCart:()=>{c()&&J(t,m.value?m.value:void 0)},CheckoutLink:W,QuantitySelector:$,Prices:tt,ImagesGallery:xt,SkuSelector:At};return Object.defineProperty(y,"__isScriptSetup",{enumerable:!1,value:!0}),y}}),Pt={class:"ui-section relative grid grid-cols-1 items-start gap-5 md:gap-4 lg:grid-cols-4 2xl:gap-6"},Tt={class:"w-full lg:col-span-3"},Et={class:"lg:sticky-header:translate-y-14 top-0 py-4 transition-transform lg:sticky"},Gt={class:"text-secondary-900 ui-text-brand text-lg"},Lt={key:0,class:"mt-5"},jt={key:0,class:"ui-alert inline-block"},Bt=v("i",{class:"i-arrow-right ml-1 -rotate-90"},null,-1),qt={class:"mt-5 flex flex-wrap items-center gap-x-4 gap-y-2 md:flex-nowrap lg:mt-4 lg:flex-wrap"},Dt=v("i",{class:"i-chevron-double-right mr-1"},null,-1),Rt=["data-tooltip"],Nt={class:"w-full lg:col-span-3"};function Ut(a,n,l,t,e,s){const d=I("Fade");return u(),f("section",Pt,[v("div",Tt,[t.product.pictures?.length?(u(),P(t.ImagesGallery,{key:0,pictures:t.product.pictures},null,8,["pictures"])):b("",!0)]),v("div",Et,[v("h1",Gt,S(t.title),1),t.isActive?(u(),f("div",Lt,[w(t.Prices,{product:t.product,"is-big":"","is-literal":""},null,8,["product"]),t.product.variations?(u(),P(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),w(d,{slide:"down"},{default:V(()=>[t.hasSkuSelectionAlert?(u(),f("div",jt,[B(S("Por favor selecione uma opção em cada campo acima")+" "),Bt])):b("",!0)]),_:1}),v("div",qt,[w(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:"border-base-100 rounded md:mr-5 lg:mb-2 lg:mr-auto lg:border-2"},null,8,["modelValue","min","max"]),w(t.CheckoutLink,{class:"ui-btn-lg ui-btn-primary grow text-center",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:V(()=>[Dt,B(" "+S("Comprar"))]),_:1},8,["cart-item","data-tooltip"]),v("button",{class:"ui-btn-lg ui-btn-contrast grow",onClick:Q(t.addToCart,["prevent"]),"data-tooltip":t.isSkuSelected?null:"Escolha os detalhes do produto para comprar"},S("Adicionar ao carrinho"),8,Rt)])])):b("",!0)]),v("div",Nt,[at(a.$slots,"description")])])}const ce=D(It,[["render",Ut]]);export{ce as default};
1
+ import{_ as D,w as Q}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{u as Z}from"./index.R7A-Pg5V.js";import{a as J}from"./shopping-cart.dJsZkyuD.js";import{u as K}from"./use-product-card.WRVLjenR.js";import{C as W,Q as $}from"./QuantitySelector.tumfWDjC.js";import{P as tt}from"./Prices.Ye-m2HTo.js";import{_ as G}from"./customer-session.AcETMuhI.js";import{u as et}from"./sf-utils.Z4H-dRBJ.js";import{d as R,a as C,M as I,N as u,O as f,$ as P,V,Q as b,R as v,X as k,T as z,U as w,Y as A,a7 as F,L as ot,r as L,w as T,a6 as M,c as H,S as B,P as S,a8 as it,H as rt,Z as at}from"./runtime-core.esm-bundler.XTSAdOlw.js";import{g as st}from"./img-sizes.gxAI9JNh.js";import"./index.q6KIyKlJ.js";import{g as nt}from"./grid-title.vGKBy72g.js";import"./price.Easct8WC.js";import"./use-analytics.uqK_2k_k.js";import"./afetch.5c8VmT0-.js";import"./name.urFqJ5yn.js";import"./i18n.Lxnz1oF-.js";import"./img.WnsidxCx.js";import"./modules-info.tVRhvxNm.js";import"./format-money.iK5LGydz.js";const q=(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(q(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}})),q(s,n)}}return t},X=q,lt=(a,n,l,t=", ")=>{let e=X(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},Y=lt,ct=(a,n,l,t)=>{const e=X(a,l,t);for(let s=0;s<e.length;s++)if(e[s].text===n)return e[s].value},dt=ct,ut=(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=>Y(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 m=i(r);if(!e.hasOwnProperty(r))e[r]=[];else if(e[r].indexOf(m)!==-1)continue;e[r].push(m)}}}),e},j=ut,mt=R({__name:"ImagesGallery",props:{pictures:{}},setup(a,{expose:n}){n();const l=C(0),t=C("");let e;const s=C(!1),i={activeIndex:l,psId:t,get lightbox(){return e},set lightbox(r){e=r},isLoadingLightbox:s,zoom:r=>{if(t.value=`ps-${et()}`,!e&&!s.value){s.value=!0;const m="photoswipe-style";Promise.all([G(()=>import("./photoswipe-lightbox.esm.dZBqKD9u.js"),__vite__mapDeps([])),G(()=>import("./photoswipe.esm.Ylh9TGkz.js"),__vite__mapDeps([])),!document.getElementById(m)&&G(()=>import("./photoswipe.0V7m2jWu.js"),__vite__mapDeps([]))]).then(([{default:o},{default:c},_])=>{if(_){const{default:y}=_,p=document.createElement("style");p.id=m,p.textContent=y,document.head.appendChild(p)}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}}),ft={class:"-mx-4 flex w-screen gap-3 sm:mx-0 sm:w-full md:h-[525px] 2xl:gap-5"},gt=["onClick"],pt=v("span",{class:"absolute bottom-0 block h-2 w-full bg-gradient-to-b from-transparent to-white"},null,-1),_t={class:"relative aspect-square h-full grow md:aspect-auto"},ht={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"},vt={key:1,class:"mt-2 flex justify-center gap-1.5 md:hidden"},yt=["aria-label","onClick"];function bt(a,n,l,t,e,s){const d=I("AImg"),i=I("CarouselControl"),r=I("Carousel"),m=I("ALink");return u(),f("div",ft,[l.pictures.length>1?(u(),P(r,{key:0,axis:"y",class:"group hidden w-[300px] shrink-0 md:block"},{controls:V(()=>[v("span",null,[l.pictures.length>6?(u(),P(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),pt])]),default:V(()=>[(u(!0),f(k,null,A(Math.ceil(l.pictures.length/2),o=>(u(),f("li",{key:o,class:z(["grid w-full grid-cols-2 gap-3 px-1 pb-3",o===1&&"pt-1"])},[(u(!0),f(k,null,A([1,2].map(c=>(o-1)*2+(c-1)),c=>(u(),f(k,{key:`${o}-${c}`},[c<l.pictures.length?(u(),f("button",{key:0,class:"bg-secondary-100 block rounded md:h-[175px]",onClick:_=>t.activeIndex=c},[w(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,gt)):b("",!0)],64))),128))],2))),128))]),_:1})):b("",!0),v("div",_t,[w(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:V(()=>[n[0]||(F(-1),n[0]=(u(!0),f(k,null,A(l.pictures,(o,c)=>(u(),P(m,{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:Q(()=>o.zoom?.size&&t.zoom(c),["prevent"])},{default:V(()=>[w(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)),F(1),n[0])]),_:1},8,["index","class","id"]),t.isLoadingLightbox?(u(),f("i",ht)):b("",!0),l.pictures.length>1?(u(),f("ul",vt,[(u(!0),f(k,null,A(l.pictures.length,o=>(u(),f("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,yt)]))),128))])):b("",!0)])])}const xt=D(mt,[["render",bt]]),kt=a=>{const n=ot(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({});T(M(a,"variations"),()=>{Object.assign(t,j(a,void 0,!0));const o=j(a);Object.keys(o).forEach(c=>{t[c]?l[c]=t[c]:delete l[c]})},{immediate:!0});const e=H(()=>Object.keys(l)),s=L({}),d=C(),i=({optionText:o,gridId:c,gridIndex:_})=>{s[c]=o;const y={};for(let g=0;g<=_;g++){const h=e[g];s[h]&&(y[h]=s[h])}const p=j(a,y,!0);for(let g=_+1;g<e.value.length;g++){const h=e[g],O=p[h];t[h]=O,s[h]&&!O.includes(s[h])&&delete s[h]}const x=a.variations.slice(0);for(let g=0;g<x.length;g++){const h=x[g],{specifications:O}=h,N=Object.keys(O);for(let E=0;E<N.length;E++){const U=N[E];if(s[U]!==Y(h,U)){x.splice(g,1),g-=1;break}}}d.value=x[0]?._id||null};return T(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:_}=c,y=Object.keys(_),p=(x=0)=>{const g=y[x];if(y[x]&&_[g]&&_[g].length===1){const h=_[g][0].text;l[g].find(O=>O===h)&&(i({optionText:h,gridId:g,gridIndex:e.value.indexOf(g)}),p(x+1))}};p()},{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(_=>dt(a.variations,_.trim(),"colors"));return c.length>1?`background:linear-gradient(to right bottom, ${c[0]} 50%, ${c[1]} 50%)`:`background:${c[0]}`}}},wt=R({__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:m,getGridTitle:o,getColorOptionBg:c}=kt(t);T(m,y=>{e("update:variationId",y)});const _={props:t,emit:e,variationsGrids:s,activeVariationsGrids:d,selectOption:i,selectedOptions:r,variationId:m,getGridTitle:o,getColorOptionBg:c};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}}),St={class:"text-base-700 text-sm font-medium"},Ct={key:0,class:"text-base-800"},Ot={key:0,class:"mt-2 flex gap-2"},zt=["onClick"];function Vt(a,n,l,t,e,s){return u(),f("div",null,[(u(!0),f(k,null,A(t.variationsGrids,(d,i)=>(u(),f("div",{key:i,class:"mt-3"},[v("span",St,[B(S(t.getGridTitle(i))+": ",1),t.selectedOptions[i]?(u(),f("strong",Ct,S(t.selectedOptions[i]),1)):b("",!0)]),d.length<7?(u(),f("ul",Ot,[(u(!0),f(k,null,A(d,(r,m)=>(u(),f("li",{key:`${i}-${m}`},[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:it(i==="colors"&&t.getColorOptionBg(r)),onClick:o=>t.selectOption({optionText:r,gridId:i,gridIndex:m})},S(r),15,zt)]))),128))])):b("",!0)]))),128))])}const At=D(wt,[["render",Vt]]),It=R({__name:"ProductDetails",props:{product:{default:()=>globalThis.$storefront.apiContext?.doc}},setup(a,{expose:n}){n();const l=a,{product:t,title:e,isActive:s}=K(l),d=C(t.min_quantity||1),i=Z("history"),r=C(!1),m=C(null);T(m,p=>{p&&(i.var=p,r.value=!1)}),rt(()=>{T(i,({var:p})=>{typeof p=="string"&&p&&(m.value=p)},{immediate:!0})});const o=H(()=>!!(!t.variations?.length||m.value)),c=p=>(o.value?r.value=!1:(p&&p.preventDefault(),r.value=!0),!r.value),y={props:l,product:t,title:e,isActive:s,quantity:d,params:i,hasSkuSelectionAlert:r,variationId:m,isSkuSelected:o,checkVariation:c,addToCart:()=>{c()&&J(t,m.value?m.value:void 0)},CheckoutLink:W,QuantitySelector:$,Prices:tt,ImagesGallery:xt,SkuSelector:At};return Object.defineProperty(y,"__isScriptSetup",{enumerable:!1,value:!0}),y}}),Pt={class:"ui-section relative grid grid-cols-1 items-start gap-5 md:gap-4 lg:grid-cols-4 2xl:gap-6"},Tt={class:"w-full lg:col-span-3"},Et={class:"lg:sticky-header:translate-y-14 top-0 py-4 transition-transform lg:sticky"},Gt={class:"text-secondary-900 ui-text-brand text-lg"},Lt={key:0,class:"mt-5"},jt={key:0,class:"ui-alert inline-block"},Bt=v("i",{class:"i-arrow-right ml-1 -rotate-90"},null,-1),qt={class:"mt-5 flex flex-wrap items-center gap-x-4 gap-y-2 md:flex-nowrap lg:mt-4 lg:flex-wrap"},Dt=v("i",{class:"i-chevron-double-right mr-1"},null,-1),Rt=["data-tooltip"],Nt={class:"w-full lg:col-span-3"};function Ut(a,n,l,t,e,s){const d=I("Fade");return u(),f("section",Pt,[v("div",Tt,[t.product.pictures?.length?(u(),P(t.ImagesGallery,{key:0,pictures:t.product.pictures},null,8,["pictures"])):b("",!0)]),v("div",Et,[v("h1",Gt,S(t.title),1),t.isActive?(u(),f("div",Lt,[w(t.Prices,{product:t.product,"is-big":"","is-literal":""},null,8,["product"]),t.product.variations?(u(),P(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),w(d,{slide:"down"},{default:V(()=>[t.hasSkuSelectionAlert?(u(),f("div",jt,[B(S("Por favor selecione uma opção em cada campo acima")+" "),Bt])):b("",!0)]),_:1}),v("div",qt,[w(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:"border-base-100 rounded md:mr-5 lg:mb-2 lg:mr-auto lg:border-2"},null,8,["modelValue","min","max"]),w(t.CheckoutLink,{class:"ui-btn-lg ui-btn-primary grow text-center",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:V(()=>[Dt,B(" "+S("Comprar"))]),_:1},8,["cart-item","data-tooltip"]),v("button",{class:"ui-btn-lg ui-btn-contrast grow",onClick:Q(t.addToCart,["prevent"]),"data-tooltip":t.isSkuSelected?null:"Escolha os detalhes do produto para comprar"},S("Adicionar ao carrinho"),8,Rt)])])):b("",!0)]),v("div",Nt,[at(a.$slots,"description")])])}const ce=D(It,[["render",Ut]]);export{ce as default};
2
2
  function __vite__mapDeps(indexes) {
3
3
  if (!__vite__mapDeps.viteFileDeps) {
4
4
  __vite__mapDeps.viteFileDeps = []
@@ -1 +1 @@
1
- import{_ as I,w as z,v as N}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{b as R,c as V}from"./index.R7A-Pg5V.js";import{b as A}from"./customer-session.hXdZh5Ii.js";import{c as j,u as B}from"./use-product-card.-9TsgDDW.js";import{g as M}from"./index.q6KIyKlJ.js";import{a as p,L as O,d as L,M as w,N as r,O as d,U as h,V as b,$ as S,Q as C,R as v,S as y,P as x,a0 as T,T as P,ah as D,Z as Q,W as E,X as G,Y as H}from"./runtime-core.esm-bundler.XTSAdOlw.js";import{u as q}from"./sf-utils.Z4H-dRBJ.js";import{a as F}from"./shopping-cart.ZdSCrjS6.js";import{P as U}from"./Prices.Ye-m2HTo.js";const Ce="Acima de",Pe="Marcas",we="Categorias",Se="Desconto",Ae="Maior preço",Ie="Menor preço",Le="Nome",W="Produtos relacionados",Te="Lançamentos",ze="Relevância",Ne="Vendas",Re="Até",X=t=>{const s=p(t.title||""),i=p(t.titleLink||""),e=p(!1);let _=null;const u=p(null),n=O(t.products||[]);return t.products||(e.value=!0,_=(async()=>{const f=t.limit||24;let g=`offset=${t.page?(t.page-1)*f:0}&limit=${f}`;if(t.sort&&(g+=`&sort=${t.sort}`),t.isRelatedProducts){const{apiContext:o}=globalThis.$storefront;o?.resource==="products"&&(g=`like=${o.doc._id}`,!s.value&&s.value!==null&&(s.value=W))}else{let o=t.searchQuery||"",a;if(t.collectionId){try{const{data:c}=await A.get(`collections/${t.collectionId}`);a=c}catch(c){console.error(c),u.value=c}const m=a?.products;Array.isArray(m)&&m.length&&(o+=`&_id=${m.slice(0,60).join(",")}`),!s.value&&s.value!==null&&a?.name&&(s.value=a?.name)}g+=o}try{const{data:o}=await A.get(`search/v1?${g}`);if(t.isShuffle){let a=o.result.filter(k=>k.available&&j(k)).length,m,c;for(;a;)c=Math.floor(Math.random()*a--),m=o.result[a],o.result[a]=o.result[c],o.result[c]=m}o.result.forEach(a=>n.push(a))}catch(o){console.error(o),u.value=o}e.value=!1})()),{title:s,titleLink:i,isFetching:e,fetching:_,fetchError:u,products:n}},Y=L({__name:"ProductCard",props:{product:{},productId:{},listName:{},listId:{},headingTag:{default:"h3"}},setup(t,{expose:s}){s();const i=t,{product:e,title:_,link:u,images:n,isInStock:f,isActive:l,discountPercentage:g,hasVariations:o}=B(i),a=p(null),m=R(a),c=p(!1);M(m,()=>{c.value=!0});const k={props:i,product:e,title:_,link:u,images:n,isInStock:f,isActive:l,discountPercentage:g,hasVariations:o,card:a,isHovered:m,wasHoveredOnce:c,get addProductToCart(){return F},Prices:U};return Object.defineProperty(k,"__isScriptSetup",{enumerable:!1,value:!0}),k}}),Z=["data-sku"],J={class:"aspect-square p-2 transition-transform motion-safe:group-hover:scale-110"},K={class:"relative size-full overflow-hidden rounded bg-white group-hover:rounded-none"},$={key:0,class:"text-xs text-opacity-70"},ee={key:1,class:"from-base-50/20 to-base-100 size-full bg-gradient-to-br"},te={key:0,class:"uno-bm03rg"},oe={class:"relative z-10 flex grow flex-col justify-between p-4"},se={class:"pt-2"},ae={key:0},re={key:1,class:"bg-warning-100 text-warning-700 ui-badge"},ie=v("span",{class:"bg-on-primary text-primary mr-1 inline-block size-4 rounded-full text-center text-base leading-none opacity-80"}," + ",-1);function ne(t,s,i,e,_,u){const n=w("AImg"),f=w("ALink");return r(),d("article",{ref:"card","data-sku":e.product.sku,class:"group relative mx-auto h-full max-w-[350px] px-0.5 py-3 hover:z-[1]"},[h(f,{href:e.link,class:"flex h-full flex-col overflow-hidden rounded bg-white ring-black/5 group-hover:shadow group-hover:ring-1"},{default:b(()=>[v("div",J,[v("div",K,[e.images?.length?(r(),d("span",$,[h(n,{picture:e.images[0],alt:e.title,class:"absolute left-0 top-0 block size-full object-cover"},null,8,["picture","alt"]),e.images[1]&&e.wasHoveredOnce?(r(),S(n,{key:0,picture:e.images[1],alt:e.title,class:"absolute left-0 top-0 z-10 block size-full object-cover text-transparent opacity-0 transition-opacity group-hover:opacity-100 motion-safe:duration-300"},null,8,["picture","alt"])):C("",!0)])):(r(),d("div",ee))])]),e.discountPercentage?(r(),d("span",te,[y(" -"),v("strong",null,x(e.discountPercentage),1),y("% ")])):C("",!0),v("div",oe,[(r(),S(T(i.headingTag),{class:P(["ui-link line-clamp-2 no-underline",[e.isActive?"text-base-700":"text-base-500",e.link?"group-hover:text-primary group-hover:underline":null]])},{default:b(()=>[y(x(e.title),1)]),_:1},8,["class"])),v("div",se,[e.isActive?(r(),d("div",ae,[h(e.Prices,{product:e.product},null,8,["product"])])):(r(),d("span",re,x(e.isInStock?"Inativo":"Sem estoque"),1))]),e.isActive&&!e.hasVariations?(r(),d("button",{key:0,class:"uno-3suct9 ui-btn-sm ui-btn-primary",onClick:s[0]||(s[0]=z(l=>e.addProductToCart(e.product),["stop","prevent"]))},[ie,y(" "+x("Adicionar ao carrinho"))])):C("",!0)])]),_:1},8,["href"])],8,Z)}const le=I(Y,[["render",ne]]),ce=L({__name:"ProductShelf",props:{isGrid:{type:Boolean},collectionId:{},searchQuery:{},sort:{},title:{},titleLink:{},isShuffle:{type:Boolean},limit:{},page:{},products:{},isRelatedProducts:{type:Boolean}},async setup(t,{expose:s}){s();const i=t,[e,_]=V(),{title:u,titleLink:n,fetching:f,products:l}=X(i),g=u.value||`Shelf ${q()}`,o={props:i,DefineCarouselControl:e,ReuseCarouselControl:_,title:u,titleLink:n,fetching:f,products:l,listName:g,ProductCard:le};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),de={class:"ui-section"},ue={key:0,class:"mx-auto mb-4 max-w-prose text-center"},fe={class:"ui-text-brand text-3xl"};function me(t,s,i,e,_,u){const n=w("ALink"),f=w("CarouselControl");return r(),d("section",de,[e.title?(r(),d("div",ue,[v("h2",fe,[h(n,{href:e.titleLink,class:P(e.titleLink?"ui-link":"text-base-700")},{default:b(()=>[y(x(e.title),1)]),_:1},8,["href","class"])])])):C("",!0),(r(),S(T(i.isGrid?"ul":"Carousel"),{class:P(["group/shelf",i.isGrid&&"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4"])},D({default:b(()=>[(r(!0),d(G,null,H(e.products,l=>(r(),d("li",{key:l._id,class:"shrink-0 basis-1/2 md:basis-1/3 lg:basis-1/4"},[h(e.ProductCard,{product:l,"list-name":e.listName},null,8,["product","list-name"])]))),128))]),_:2},[i.isGrid?void 0:{name:"controls",fn:b(()=>[h(e.DefineCarouselControl,null,{default:b(({isPrev:l})=>[E(h(f,{class:P(["uno-t0rdy7",l?"!-left-4":"!-right-4"]),"is-prev":l},null,8,["class","is-prev"]),[[N,e.products.length>2]])]),_:1}),h(e.ReuseCarouselControl,{"is-prev":!0}),h(e.ReuseCarouselControl)]),key:"0"}]),1032,["class"])),Q(t.$slots,"append")])}const Ve=I(ce,[["render",me]]);export{Ve as P,we as a,Re as b,Ce as c,ze as d,Ne as e,Ie as f,Ae as g,Se as h,Pe as i,Te as j,Le as k};
1
+ import{_ as I,w as z,v as N}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{b as R,c as V}from"./index.R7A-Pg5V.js";import{b as A}from"./customer-session.AcETMuhI.js";import{c as j,u as B}from"./use-product-card.WRVLjenR.js";import{g as M}from"./index.q6KIyKlJ.js";import{a as p,L as O,d as L,M as w,N as r,O as d,U as h,V as b,$ as S,Q as C,R as v,S as y,P as x,a0 as T,T as P,ah as D,Z as Q,W as E,X as G,Y as H}from"./runtime-core.esm-bundler.XTSAdOlw.js";import{u as q}from"./sf-utils.Z4H-dRBJ.js";import{a as F}from"./shopping-cart.dJsZkyuD.js";import{P as U}from"./Prices.Ye-m2HTo.js";const Ce="Acima de",Pe="Marcas",we="Categorias",Se="Desconto",Ae="Maior preço",Ie="Menor preço",Le="Nome",W="Produtos relacionados",Te="Lançamentos",ze="Relevância",Ne="Vendas",Re="Até",X=t=>{const s=p(t.title||""),i=p(t.titleLink||""),e=p(!1);let _=null;const u=p(null),n=O(t.products||[]);return t.products||(e.value=!0,_=(async()=>{const f=t.limit||24;let g=`offset=${t.page?(t.page-1)*f:0}&limit=${f}`;if(t.sort&&(g+=`&sort=${t.sort}`),t.isRelatedProducts){const{apiContext:o}=globalThis.$storefront;o?.resource==="products"&&(g=`like=${o.doc._id}`,!s.value&&s.value!==null&&(s.value=W))}else{let o=t.searchQuery||"",a;if(t.collectionId){try{const{data:c}=await A.get(`collections/${t.collectionId}`);a=c}catch(c){console.error(c),u.value=c}const m=a?.products;Array.isArray(m)&&m.length&&(o+=`&_id=${m.slice(0,60).join(",")}`),!s.value&&s.value!==null&&a?.name&&(s.value=a?.name)}g+=o}try{const{data:o}=await A.get(`search/v1?${g}`);if(t.isShuffle){let a=o.result.filter(k=>k.available&&j(k)).length,m,c;for(;a;)c=Math.floor(Math.random()*a--),m=o.result[a],o.result[a]=o.result[c],o.result[c]=m}o.result.forEach(a=>n.push(a))}catch(o){console.error(o),u.value=o}e.value=!1})()),{title:s,titleLink:i,isFetching:e,fetching:_,fetchError:u,products:n}},Y=L({__name:"ProductCard",props:{product:{},productId:{},listName:{},listId:{},headingTag:{default:"h3"}},setup(t,{expose:s}){s();const i=t,{product:e,title:_,link:u,images:n,isInStock:f,isActive:l,discountPercentage:g,hasVariations:o}=B(i),a=p(null),m=R(a),c=p(!1);M(m,()=>{c.value=!0});const k={props:i,product:e,title:_,link:u,images:n,isInStock:f,isActive:l,discountPercentage:g,hasVariations:o,card:a,isHovered:m,wasHoveredOnce:c,get addProductToCart(){return F},Prices:U};return Object.defineProperty(k,"__isScriptSetup",{enumerable:!1,value:!0}),k}}),Z=["data-sku"],J={class:"aspect-square p-2 transition-transform motion-safe:group-hover:scale-110"},K={class:"relative size-full overflow-hidden rounded bg-white group-hover:rounded-none"},$={key:0,class:"text-xs text-opacity-70"},ee={key:1,class:"from-base-50/20 to-base-100 size-full bg-gradient-to-br"},te={key:0,class:"uno-bm03rg"},oe={class:"relative z-10 flex grow flex-col justify-between p-4"},se={class:"pt-2"},ae={key:0},re={key:1,class:"bg-warning-100 text-warning-700 ui-badge"},ie=v("span",{class:"bg-on-primary text-primary mr-1 inline-block size-4 rounded-full text-center text-base leading-none opacity-80"}," + ",-1);function ne(t,s,i,e,_,u){const n=w("AImg"),f=w("ALink");return r(),d("article",{ref:"card","data-sku":e.product.sku,class:"group relative mx-auto h-full max-w-[350px] px-0.5 py-3 hover:z-[1]"},[h(f,{href:e.link,class:"flex h-full flex-col overflow-hidden rounded bg-white ring-black/5 group-hover:shadow group-hover:ring-1"},{default:b(()=>[v("div",J,[v("div",K,[e.images?.length?(r(),d("span",$,[h(n,{picture:e.images[0],alt:e.title,class:"absolute left-0 top-0 block size-full object-cover"},null,8,["picture","alt"]),e.images[1]&&e.wasHoveredOnce?(r(),S(n,{key:0,picture:e.images[1],alt:e.title,class:"absolute left-0 top-0 z-10 block size-full object-cover text-transparent opacity-0 transition-opacity group-hover:opacity-100 motion-safe:duration-300"},null,8,["picture","alt"])):C("",!0)])):(r(),d("div",ee))])]),e.discountPercentage?(r(),d("span",te,[y(" -"),v("strong",null,x(e.discountPercentage),1),y("% ")])):C("",!0),v("div",oe,[(r(),S(T(i.headingTag),{class:P(["ui-link line-clamp-2 no-underline",[e.isActive?"text-base-700":"text-base-500",e.link?"group-hover:text-primary group-hover:underline":null]])},{default:b(()=>[y(x(e.title),1)]),_:1},8,["class"])),v("div",se,[e.isActive?(r(),d("div",ae,[h(e.Prices,{product:e.product},null,8,["product"])])):(r(),d("span",re,x(e.isInStock?"Inativo":"Sem estoque"),1))]),e.isActive&&!e.hasVariations?(r(),d("button",{key:0,class:"uno-3suct9 ui-btn-sm ui-btn-primary",onClick:s[0]||(s[0]=z(l=>e.addProductToCart(e.product),["stop","prevent"]))},[ie,y(" "+x("Adicionar ao carrinho"))])):C("",!0)])]),_:1},8,["href"])],8,Z)}const le=I(Y,[["render",ne]]),ce=L({__name:"ProductShelf",props:{isGrid:{type:Boolean},collectionId:{},searchQuery:{},sort:{},title:{},titleLink:{},isShuffle:{type:Boolean},limit:{},page:{},products:{},isRelatedProducts:{type:Boolean}},async setup(t,{expose:s}){s();const i=t,[e,_]=V(),{title:u,titleLink:n,fetching:f,products:l}=X(i),g=u.value||`Shelf ${q()}`,o={props:i,DefineCarouselControl:e,ReuseCarouselControl:_,title:u,titleLink:n,fetching:f,products:l,listName:g,ProductCard:le};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),de={class:"ui-section"},ue={key:0,class:"mx-auto mb-4 max-w-prose text-center"},fe={class:"ui-text-brand text-3xl"};function me(t,s,i,e,_,u){const n=w("ALink"),f=w("CarouselControl");return r(),d("section",de,[e.title?(r(),d("div",ue,[v("h2",fe,[h(n,{href:e.titleLink,class:P(e.titleLink?"ui-link":"text-base-700")},{default:b(()=>[y(x(e.title),1)]),_:1},8,["href","class"])])])):C("",!0),(r(),S(T(i.isGrid?"ul":"Carousel"),{class:P(["group/shelf",i.isGrid&&"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4"])},D({default:b(()=>[(r(!0),d(G,null,H(e.products,l=>(r(),d("li",{key:l._id,class:"shrink-0 basis-1/2 md:basis-1/3 lg:basis-1/4"},[h(e.ProductCard,{product:l,"list-name":e.listName},null,8,["product","list-name"])]))),128))]),_:2},[i.isGrid?void 0:{name:"controls",fn:b(()=>[h(e.DefineCarouselControl,null,{default:b(({isPrev:l})=>[E(h(f,{class:P(["uno-t0rdy7",l?"!-left-4":"!-right-4"]),"is-prev":l},null,8,["class","is-prev"]),[[N,e.products.length>2]])]),_:1}),h(e.ReuseCarouselControl,{"is-prev":!0}),h(e.ReuseCarouselControl)]),key:"0"}]),1032,["class"])),Q(t.$slots,"append")])}const Ve=I(ce,[["render",me]]);export{Ve as P,we as a,Re as b,Ce as c,ze as d,Ne as e,Ie as f,Ae as g,Se as h,Pe as i,Te as j,Le as k};
@@ -1 +1 @@
1
- import{P as j}from"./ProductShelf.lCBJky3e.js";import"./_plugin-vue_export-helper.SO-0jCqa.js";import"./runtime-core.esm-bundler.XTSAdOlw.js";import"./index.R7A-Pg5V.js";import"./index.q6KIyKlJ.js";import"./customer-session.hXdZh5Ii.js";import"./sf-utils.Z4H-dRBJ.js";import"./use-product-card.-9TsgDDW.js";import"./use-analytics.tCrQbW8O.js";import"./shopping-cart.ZdSCrjS6.js";import"./price.Easct8WC.js";import"./afetch.5c8VmT0-.js";import"./name.urFqJ5yn.js";import"./i18n.Lxnz1oF-.js";import"./img.WnsidxCx.js";import"./Prices.Ye-m2HTo.js";import"./modules-info.tVRhvxNm.js";import"./format-money.iK5LGydz.js";export{j as default};
1
+ import{P as j}from"./ProductShelf.PPitdYxI.js";import"./_plugin-vue_export-helper.SO-0jCqa.js";import"./runtime-core.esm-bundler.XTSAdOlw.js";import"./index.R7A-Pg5V.js";import"./index.q6KIyKlJ.js";import"./customer-session.AcETMuhI.js";import"./sf-utils.Z4H-dRBJ.js";import"./use-product-card.WRVLjenR.js";import"./use-analytics.uqK_2k_k.js";import"./shopping-cart.dJsZkyuD.js";import"./price.Easct8WC.js";import"./afetch.5c8VmT0-.js";import"./name.urFqJ5yn.js";import"./i18n.Lxnz1oF-.js";import"./img.WnsidxCx.js";import"./Prices.Ye-m2HTo.js";import"./modules-info.tVRhvxNm.js";import"./format-money.iK5LGydz.js";export{j as default};
@@ -1 +1 @@
1
- import{_ as Y}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{c as Q,g as q}from"./sf-utils.Z4H-dRBJ.js";import{S as J,s as N}from"./use-analytics.tCrQbW8O.js";import{a as T,w as V,a6 as K,d as Z,M as j,N as f,O as w,U as F,V as x,T as O,X as R,P as W,S as U,Y as z,R as S,Q as H,$ as G}from"./runtime-core.esm-bundler.XTSAdOlw.js";import{P as $}from"./ProductShelf.lCBJky3e.js";import"./customer-session.hXdZh5Ii.js";import"./index.q6KIyKlJ.js";import"./shopping-cart.ZdSCrjS6.js";import"./price.Easct8WC.js";import"./afetch.5c8VmT0-.js";import"./name.urFqJ5yn.js";import"./i18n.Lxnz1oF-.js";import"./index.R7A-Pg5V.js";import"./use-product-card.-9TsgDDW.js";import"./img.WnsidxCx.js";import"./Prices.Ye-m2HTo.js";import"./modules-info.tVRhvxNm.js";import"./format-money.iK5LGydz.js";var ee=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function te(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var X={exports:{}};(function(n){(function(a,i){n.exports?n.exports=i():a.Wade=i()})(ee,function(){var a={stopWords:["about","after","all","also","am","an","and","another","any","are","as","at","be","because","been","before","being","between","both","but","by","came","can","come","could","did","do","each","for","from","get","got","has","had","he","have","her","here","him","himself","his","how","if","in","into","is","it","like","make","many","me","might","more","most","much","must","my","never","now","of","on","only","or","other","our","out","over","said","same","see","should","since","some","still","such","take","than","that","the","their","them","then","there","these","they","this","those","through","to","too","under","up","very","was","way","we","well","were","what","where","which","while","who","with","would","you","your","a","i"],punctuationRE:/[.,!?:;"']/g},i=function(e,o){for(var r=o,c=0;c<e.length&&(r=r[e[c]])!==void 0;c++);return r},t=function(e,o,r,c){for(var h=null,s=0;s<e.length;s++){var u=e[s];(h=r[u])===void 0?(r[u]=o.length,o.push({index:u,score:c})):o[h].score+=c}},k=function(e,o,r,c,h){var s=i(e,o);s!==void 0&&s.id!==void 0&&t(s.id,r,c,h)},g=function(e,o,r,c,h){var s=i(e,o);if(s!==void 0)for(var u=[s],m=null,d=0;u.length!==0;){(m=u[d]).id!==void 0&&t(m.id,r,c,h),u.pop(),d--;for(var _ in m)u.push(m[_]),d++}},v=function(e){var o=e.length-1;return e[0]===" "&&(e=e.substring(1)),e[o]===" "&&(e=e.substring(0,o)),e.split(" ")},y=function(e){return e.toLowerCase()},p=function(e){return e.replace(a.punctuationRE,"")},E=function(e){for(var o=v(e),r=o.length;r--!=0;)l.config.stopWords.indexOf(o[r])!==-1&&o.splice(r,1);return o.join(" ")},l=function(e){var o=function(u){var m=o.index,d=l.process(u);if(d===!1)return[];for(var _=v(d),L=_.length,b=L-1,C=1/L,B=[],M={},P=0;P<b;P++)k(_[P],m,B,M,C);return g(_[b],m,B,M,C),B};if(Array.isArray(e)){for(var r=e.length,c=new Array(r),h=null,s=0;s<r;s++)(h=l.process(e[s]))!==!1&&(c[s]=h);o.index=l.index(c),o.data=c}else o.index=e.index,o.data=e.data;return o};return l.pipeline=[y,p,E],l.process=function(e){for(var o=l.pipeline,r=0;r<o.length;r++)e=o[r](e);return e.length!==0&&e},l.index=function(e){for(var o={},r=0;r<e.length;r++){var c=e[r];if(c!==void 0)for(var h=v(c),s=0;s<h.length;s++){for(var u=h[s],m=u.length-1,d=o,_=0;_<m;_++){var L=u[_],b=d[L];b=b===void 0?{}:b,d[L]=b,d=b}var C=u[m];d[C]===void 0?d[C]={id:[r]}:(d=d[C]).id===void 0?d.id=[r]:d.id.push(r)}}return o},l.save=function(e){return{data:e.data,index:e.index}},l.config=a,l.version="0.3.3",l})})(X);var oe=X.exports;const I=te(oe),A=[];["categories","brands","collections"].forEach(n=>{const a=globalThis.$storefront.data[n];if(a)for(let i=0;i<a.length;i++){const t=a[i];t.name&&t.slug&&A.push({text:Q(`${t.name} ${t.short_description}`),type:n,data:t})}});let D;A.length&&(globalThis.$storefront.settings.lang==="pt_br"&&(I.config.stopWords=["e","a","o","de","para","com","tem"]),D=I(A.map(({text:n})=>n)));const re=n=>{const a=new J({debounce:n.fetchDebounce||300});a.pageSize.value=n.productsLimit||12,a.isWithCount.value=!0,a.isWithBuckets.value=!1;const i=T(0),t=T([]);V(K(n,"term"),async g=>{if(a.fetch(g),D){const v=D(Q(g));t.value=v.map(({index:y})=>{const{name:p,slug:E}=A[y].data;return{title:p,href:`/${E}`}})}},{immediate:!0}),V(a.meta,()=>{i.value=a.meta.count||0});const k=T([]);return V(N,()=>{k.value=N.filter(g=>g!==n.term)},{immediate:!0}),{searchHistory:k,searchEngine:a,isFetching:a.isFetching,products:a.products,productCount:i,linkHits:t}},ne=Z({__name:"SearchModal",props:{term:{},fetchDebounce:{},productsLimit:{}},setup(n,{expose:a}){a();const i=n,{searchHistory:t,isFetching:k,products:g,productCount:v,linkHits:y}=re(i),p={props:i,searchHistory:t,isFetching:k,products:g,productCount:v,linkHits:y,get getSearchUrl(){return q},ProductShelf:$};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),ae={class:"relative"},ie={key:0,class:"bg-base-100/80 grid grid-cols-1 items-center gap-4 p-4 backdrop-blur-md md:grid-cols-2 md:rounded-b lg:mt-5 lg:grid-cols-3 lg:rounded"},se={class:"flex items-center justify-end gap-4 md:order-2"},le={key:0,class:"text-base-900 text-right text-sm lowercase"},ce=["href"],de={class:"lg:col-span-2"},ue=["href"],he=S("i",{class:"i-clock m-0","aria-label":"Buscar novamente"},null,-1);function fe(n,a,i,t,k,g){const v=j("ALink"),y=j("Carousel"),p=j("Fade"),E=j("Skeleton");return f(),w("article",ae,[F(p,{slide:"down"},{default:x(()=>[t.linkHits.length?(f(),w("section",{key:0,class:O(["bg-white p-4",!t.isFetching&&t.products.length?"lg:rounded-t":"lg:rounded"])},[S("nav",null,[F(y,{"wrapper-key":i.term,class:"px-6 [&>ul]:gap-3"},{default:x(()=>[(f(!0),w(R,null,z(t.linkHits,({title:l,href:e},o)=>(f(),w("li",{key:o,class:"shrink-0"},[F(v,{href:e,class:"ui-link"},{default:x(()=>[U(W(l),1)]),_:2},1032,["href"])]))),128))]),_:1},8,["wrapper-key"])])],2)):H("",!0)]),_:1}),t.isFetching?(f(),G(E,{key:0,class:"absolute top-0 w-full px-5 pt-20"})):H("",!0),F(p,{"is-leave-to":!1},{default:x(()=>[!t.isFetching&&t.products.length?(f(),G(t.ProductShelf,{key:0,products:t.products,class:O(["m-0 max-w-none bg-white px-4 lg:[&_[data-carousel-control=next]]:!-right-10 lg:[&_[data-carousel-control=previous]]:!-left-10",t.linkHits.length?"lg:rounded-b":"lg:rounded"])},null,8,["products","class"])):H("",!0)]),_:1}),F(p,{"is-leave-to":!1},{default:x(()=>[!t.isFetching&&(t.searchHistory.length||t.productCount>t.products.length)?(f(),w("section",ie,[S("div",se,[t.productCount>1?(f(),w("p",le,[S("strong",null,W(t.productCount),1),U(" "+W("Itens encontrados"))])):H("",!0),t.productCount>t.products.length?(f(),w("a",{key:1,href:t.getSearchUrl(i.term),class:"ui-btn ui-btn-primary w-auto whitespace-nowrap text-center"},W("Ver todos"),8,ce)):H("",!0)]),S("div",de,[S("nav",null,[F(y,{"wrapper-key":i.term,class:"px-6 [&>ul]:gap-2.5"},{previous:x(()=>[he]),default:x(()=>[(f(!0),w(R,null,z(t.searchHistory,(l,e)=>(f(),w("li",{key:e,class:"shrink-0"},[S("a",{href:t.getSearchUrl(l),class:"text-base-700 ui-link text-sm font-normal"},W(l),9,ue)]))),128))]),_:1},8,["wrapper-key"])])])])):H("",!0)]),_:1})])}const Ae=Y(ne,[["render",fe]]);export{Ae as default};
1
+ import{_ as Y}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{c as Q,g as q}from"./sf-utils.Z4H-dRBJ.js";import{S as J,s as N}from"./use-analytics.uqK_2k_k.js";import{a as T,w as V,a6 as K,d as Z,M as j,N as f,O as w,U as F,V as x,T as O,X as R,P as W,S as U,Y as z,R as S,Q as H,$ as G}from"./runtime-core.esm-bundler.XTSAdOlw.js";import{P as $}from"./ProductShelf.PPitdYxI.js";import"./customer-session.AcETMuhI.js";import"./index.q6KIyKlJ.js";import"./shopping-cart.dJsZkyuD.js";import"./price.Easct8WC.js";import"./afetch.5c8VmT0-.js";import"./name.urFqJ5yn.js";import"./i18n.Lxnz1oF-.js";import"./index.R7A-Pg5V.js";import"./use-product-card.WRVLjenR.js";import"./img.WnsidxCx.js";import"./Prices.Ye-m2HTo.js";import"./modules-info.tVRhvxNm.js";import"./format-money.iK5LGydz.js";var ee=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function te(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var X={exports:{}};(function(n){(function(a,i){n.exports?n.exports=i():a.Wade=i()})(ee,function(){var a={stopWords:["about","after","all","also","am","an","and","another","any","are","as","at","be","because","been","before","being","between","both","but","by","came","can","come","could","did","do","each","for","from","get","got","has","had","he","have","her","here","him","himself","his","how","if","in","into","is","it","like","make","many","me","might","more","most","much","must","my","never","now","of","on","only","or","other","our","out","over","said","same","see","should","since","some","still","such","take","than","that","the","their","them","then","there","these","they","this","those","through","to","too","under","up","very","was","way","we","well","were","what","where","which","while","who","with","would","you","your","a","i"],punctuationRE:/[.,!?:;"']/g},i=function(e,o){for(var r=o,c=0;c<e.length&&(r=r[e[c]])!==void 0;c++);return r},t=function(e,o,r,c){for(var h=null,s=0;s<e.length;s++){var u=e[s];(h=r[u])===void 0?(r[u]=o.length,o.push({index:u,score:c})):o[h].score+=c}},k=function(e,o,r,c,h){var s=i(e,o);s!==void 0&&s.id!==void 0&&t(s.id,r,c,h)},g=function(e,o,r,c,h){var s=i(e,o);if(s!==void 0)for(var u=[s],m=null,d=0;u.length!==0;){(m=u[d]).id!==void 0&&t(m.id,r,c,h),u.pop(),d--;for(var _ in m)u.push(m[_]),d++}},v=function(e){var o=e.length-1;return e[0]===" "&&(e=e.substring(1)),e[o]===" "&&(e=e.substring(0,o)),e.split(" ")},y=function(e){return e.toLowerCase()},p=function(e){return e.replace(a.punctuationRE,"")},E=function(e){for(var o=v(e),r=o.length;r--!=0;)l.config.stopWords.indexOf(o[r])!==-1&&o.splice(r,1);return o.join(" ")},l=function(e){var o=function(u){var m=o.index,d=l.process(u);if(d===!1)return[];for(var _=v(d),L=_.length,b=L-1,C=1/L,B=[],M={},P=0;P<b;P++)k(_[P],m,B,M,C);return g(_[b],m,B,M,C),B};if(Array.isArray(e)){for(var r=e.length,c=new Array(r),h=null,s=0;s<r;s++)(h=l.process(e[s]))!==!1&&(c[s]=h);o.index=l.index(c),o.data=c}else o.index=e.index,o.data=e.data;return o};return l.pipeline=[y,p,E],l.process=function(e){for(var o=l.pipeline,r=0;r<o.length;r++)e=o[r](e);return e.length!==0&&e},l.index=function(e){for(var o={},r=0;r<e.length;r++){var c=e[r];if(c!==void 0)for(var h=v(c),s=0;s<h.length;s++){for(var u=h[s],m=u.length-1,d=o,_=0;_<m;_++){var L=u[_],b=d[L];b=b===void 0?{}:b,d[L]=b,d=b}var C=u[m];d[C]===void 0?d[C]={id:[r]}:(d=d[C]).id===void 0?d.id=[r]:d.id.push(r)}}return o},l.save=function(e){return{data:e.data,index:e.index}},l.config=a,l.version="0.3.3",l})})(X);var oe=X.exports;const I=te(oe),A=[];["categories","brands","collections"].forEach(n=>{const a=globalThis.$storefront.data[n];if(a)for(let i=0;i<a.length;i++){const t=a[i];t.name&&t.slug&&A.push({text:Q(`${t.name} ${t.short_description}`),type:n,data:t})}});let D;A.length&&(globalThis.$storefront.settings.lang==="pt_br"&&(I.config.stopWords=["e","a","o","de","para","com","tem"]),D=I(A.map(({text:n})=>n)));const re=n=>{const a=new J({debounce:n.fetchDebounce||300});a.pageSize.value=n.productsLimit||12,a.isWithCount.value=!0,a.isWithBuckets.value=!1;const i=T(0),t=T([]);V(K(n,"term"),async g=>{if(a.fetch(g),D){const v=D(Q(g));t.value=v.map(({index:y})=>{const{name:p,slug:E}=A[y].data;return{title:p,href:`/${E}`}})}},{immediate:!0}),V(a.meta,()=>{i.value=a.meta.count||0});const k=T([]);return V(N,()=>{k.value=N.filter(g=>g!==n.term)},{immediate:!0}),{searchHistory:k,searchEngine:a,isFetching:a.isFetching,products:a.products,productCount:i,linkHits:t}},ne=Z({__name:"SearchModal",props:{term:{},fetchDebounce:{},productsLimit:{}},setup(n,{expose:a}){a();const i=n,{searchHistory:t,isFetching:k,products:g,productCount:v,linkHits:y}=re(i),p={props:i,searchHistory:t,isFetching:k,products:g,productCount:v,linkHits:y,get getSearchUrl(){return q},ProductShelf:$};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),ae={class:"relative"},ie={key:0,class:"bg-base-100/80 grid grid-cols-1 items-center gap-4 p-4 backdrop-blur-md md:grid-cols-2 md:rounded-b lg:mt-5 lg:grid-cols-3 lg:rounded"},se={class:"flex items-center justify-end gap-4 md:order-2"},le={key:0,class:"text-base-900 text-right text-sm lowercase"},ce=["href"],de={class:"lg:col-span-2"},ue=["href"],he=S("i",{class:"i-clock m-0","aria-label":"Buscar novamente"},null,-1);function fe(n,a,i,t,k,g){const v=j("ALink"),y=j("Carousel"),p=j("Fade"),E=j("Skeleton");return f(),w("article",ae,[F(p,{slide:"down"},{default:x(()=>[t.linkHits.length?(f(),w("section",{key:0,class:O(["bg-white p-4",!t.isFetching&&t.products.length?"lg:rounded-t":"lg:rounded"])},[S("nav",null,[F(y,{"wrapper-key":i.term,class:"px-6 [&>ul]:gap-3"},{default:x(()=>[(f(!0),w(R,null,z(t.linkHits,({title:l,href:e},o)=>(f(),w("li",{key:o,class:"shrink-0"},[F(v,{href:e,class:"ui-link"},{default:x(()=>[U(W(l),1)]),_:2},1032,["href"])]))),128))]),_:1},8,["wrapper-key"])])],2)):H("",!0)]),_:1}),t.isFetching?(f(),G(E,{key:0,class:"absolute top-0 w-full px-5 pt-20"})):H("",!0),F(p,{"is-leave-to":!1},{default:x(()=>[!t.isFetching&&t.products.length?(f(),G(t.ProductShelf,{key:0,products:t.products,class:O(["m-0 max-w-none bg-white px-4 lg:[&_[data-carousel-control=next]]:!-right-10 lg:[&_[data-carousel-control=previous]]:!-left-10",t.linkHits.length?"lg:rounded-b":"lg:rounded"])},null,8,["products","class"])):H("",!0)]),_:1}),F(p,{"is-leave-to":!1},{default:x(()=>[!t.isFetching&&(t.searchHistory.length||t.productCount>t.products.length)?(f(),w("section",ie,[S("div",se,[t.productCount>1?(f(),w("p",le,[S("strong",null,W(t.productCount),1),U(" "+W("Itens encontrados"))])):H("",!0),t.productCount>t.products.length?(f(),w("a",{key:1,href:t.getSearchUrl(i.term),class:"ui-btn ui-btn-primary w-auto whitespace-nowrap text-center"},W("Ver todos"),8,ce)):H("",!0)]),S("div",de,[S("nav",null,[F(y,{"wrapper-key":i.term,class:"px-6 [&>ul]:gap-2.5"},{previous:x(()=>[he]),default:x(()=>[(f(!0),w(R,null,z(t.searchHistory,(l,e)=>(f(),w("li",{key:e,class:"shrink-0"},[S("a",{href:t.getSearchUrl(l),class:"text-base-700 ui-link text-sm font-normal"},W(l),9,ue)]))),128))]),_:1},8,["wrapper-key"])])])])):H("",!0)]),_:1})])}const Ae=Y(ne,[["render",fe]]);export{Ae as default};