cloudcommerce 0.18.1 → 0.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/package.json +1 -1
- package/packages/api/package.json +1 -1
- package/packages/apps/affilate-program/package.json +1 -1
- package/packages/apps/correios/package.json +1 -1
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/datafrete/package.json +1 -1
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/package.json +1 -1
- package/packages/apps/fb-conversions/package.json +1 -1
- package/packages/apps/flash-courier/package.json +1 -1
- package/packages/apps/frenet/package.json +1 -1
- package/packages/apps/galaxpay/package.json +1 -1
- package/packages/apps/google-analytics/package.json +1 -1
- package/packages/apps/jadlog/package.json +1 -1
- package/packages/apps/loyalty-points/package.json +1 -1
- package/packages/apps/melhor-envio/package.json +1 -1
- package/packages/apps/mercadopago/package.json +1 -1
- package/packages/apps/pagarme/package.json +1 -1
- package/packages/apps/paghiper/package.json +1 -1
- package/packages/apps/pix/package.json +1 -1
- package/packages/apps/tiny-erp/package.json +1 -1
- package/packages/apps/webhooks/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +1 -1
- package/packages/events/package.json +1 -1
- package/packages/feeds/package.json +1 -1
- package/packages/firebase/package.json +1 -1
- package/packages/i18n/package.json +1 -1
- package/packages/modules/package.json +1 -1
- package/packages/passport/package.json +1 -1
- package/packages/ssr/lib/firebase/serve-storefront.js +67 -72
- package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
- package/packages/ssr/package.json +1 -1
- package/packages/ssr/src/firebase/serve-storefront.ts +78 -76
- package/packages/storefront/dist/client/_astro/ShopHeader.a06de422.js +4 -0
- package/packages/storefront/dist/client/sw.js +1 -1
- package/packages/storefront/dist/server/chunks/{_...ed1d4ed7.mjs → _...4cff750f.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/{account@_@astro.97e06bd2.mjs → account@_@astro.9bc80fb8.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/{endpoint@_@js.e9171d18.mjs → endpoint@_@js.36a1cfa7.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/{fallback@_@astro.4a1f8c08.mjs → fallback@_@astro.6af59549.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/{index@_@astro.de13f221.mjs → index@_@astro.1ea814dc.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/{index@_@astro.7472fe37.mjs → index@_@astro.846e70bb.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/pages/{_...slug_.astro.9e731356.mjs → _...slug_.astro.906634b2.mjs} +8 -3
- package/packages/storefront/dist/server/chunks/pages/{endpoint.js.96a9b7f9.mjs → endpoint.js.ffec1d05.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/pages/{fallback.astro.3ebb4e85.mjs → fallback.astro.0a073a86.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/pages/{index.astro.8d786fcb.mjs → index.astro.fb8fe537.mjs} +1 -1
- package/packages/storefront/dist/server/entry.mjs +8 -8
- package/packages/storefront/dist/server/renderers.mjs +1 -1
- package/packages/storefront/package.json +1 -1
- package/packages/storefront/src/lib/state/customer-session.ts +1 -1
- package/packages/storefront/src/lib/state/shopping-cart.ts +1 -1
- package/packages/types/package.json +1 -1
- package/packages/storefront/dist/client/_astro/ShopHeader.f66a56cb.js +0 -4
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { OutgoingHttpHeaders } from 'node:http';
|
|
2
|
+
import type { Readable } from 'node:stream';
|
|
2
3
|
import type { Request, Response } from 'firebase-functions';
|
|
3
|
-
import
|
|
4
|
+
import { memoryUsage } from 'node:process';
|
|
4
5
|
import { join as joinPath } from 'node:path';
|
|
5
6
|
import { readFile } from 'node:fs/promises';
|
|
6
|
-
import { getFirestore, Timestamp } from 'firebase-admin/firestore';
|
|
7
7
|
import logger from 'firebase-functions/logger';
|
|
8
8
|
|
|
9
9
|
declare global {
|
|
@@ -18,14 +18,15 @@ declare global {
|
|
|
18
18
|
const {
|
|
19
19
|
STOREFRONT_BASE_DIR,
|
|
20
20
|
SSR_CACHE_MAXAGE,
|
|
21
|
-
|
|
21
|
+
SSR_CACHE_MIN_HEAP_FREE,
|
|
22
22
|
SSR_PROXY_DEBUG,
|
|
23
23
|
SSR_PROXY_TIMEOUT,
|
|
24
24
|
} = process.env;
|
|
25
25
|
|
|
26
26
|
const cacheMaxAge = SSR_CACHE_MAXAGE ? Number(SSR_CACHE_MAXAGE) : 1000 * 60 * 2;
|
|
27
|
-
const
|
|
28
|
-
|
|
27
|
+
const cacheMinHeapFree = SSR_CACHE_MIN_HEAP_FREE
|
|
28
|
+
? Number(SSR_CACHE_MIN_HEAP_FREE)
|
|
29
|
+
: 536870912; /* 512MiB */
|
|
29
30
|
|
|
30
31
|
const baseDir = STOREFRONT_BASE_DIR || process.cwd();
|
|
31
32
|
const clientRoot = new URL(joinPath(baseDir, 'dist/client/'), import.meta.url);
|
|
@@ -36,6 +37,55 @@ const builtImages: BuiltImage[] = [];
|
|
|
36
37
|
const isProxyDebug = SSR_PROXY_DEBUG ? String(SSR_PROXY_DEBUG).toLowerCase() === 'true' : false;
|
|
37
38
|
const proxyTimeout = SSR_PROXY_TIMEOUT ? Number(SSR_PROXY_TIMEOUT) : 3000;
|
|
38
39
|
|
|
40
|
+
type CacheData = {
|
|
41
|
+
headers: OutgoingHttpHeaders,
|
|
42
|
+
status: number,
|
|
43
|
+
chunks: Readable[],
|
|
44
|
+
};
|
|
45
|
+
const memCache = {
|
|
46
|
+
timers: {} as Record<string, NodeJS.Timeout>,
|
|
47
|
+
storage: [] as Array<{ key: string, data: CacheData | null }>,
|
|
48
|
+
set(key: string, data: CacheData) {
|
|
49
|
+
if (cacheMaxAge > 0) {
|
|
50
|
+
this.storage.push({ key, data });
|
|
51
|
+
if (this.timers[key]) {
|
|
52
|
+
clearTimeout(this.timers[key]);
|
|
53
|
+
}
|
|
54
|
+
this.timers[key] = setTimeout(() => {
|
|
55
|
+
this.pull(key);
|
|
56
|
+
}, cacheMaxAge);
|
|
57
|
+
const { heapTotal, heapUsed } = memoryUsage();
|
|
58
|
+
if (heapTotal - heapUsed < cacheMinHeapFree) {
|
|
59
|
+
this.pull();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
get(key: string) {
|
|
64
|
+
for (let i = this.storage.length - 1; i >= 0; i--) {
|
|
65
|
+
if (this.storage[i].key === key) {
|
|
66
|
+
return this.storage[i];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return undefined;
|
|
70
|
+
},
|
|
71
|
+
pull(key?: string) {
|
|
72
|
+
if (key) {
|
|
73
|
+
for (let i = this.storage.length - 1; i >= 0; i--) {
|
|
74
|
+
if (this.storage[i].key === key) {
|
|
75
|
+
this.storage.splice(i, 1);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
} else {
|
|
79
|
+
for (let i = 0; i < this.storage.length; i++) {
|
|
80
|
+
if (this.storage[i].key !== '__home') {
|
|
81
|
+
this.storage.splice(i, 1);
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
|
|
39
89
|
const proxy = async (req: Request, res: Response) => {
|
|
40
90
|
let proxyURL: URL | undefined;
|
|
41
91
|
try {
|
|
@@ -185,55 +235,27 @@ export default async (req: Request, res: Response) => {
|
|
|
185
235
|
return;
|
|
186
236
|
}
|
|
187
237
|
|
|
188
|
-
const startedAt = Date.now();
|
|
189
|
-
let ssrStartedAt: number | undefined;
|
|
190
|
-
let isSSRChunkSent = false;
|
|
191
238
|
const cacheKey = (!req.path || req.path === '/')
|
|
192
239
|
? '__home'
|
|
193
240
|
: req.path.slice(1).replace(/\//g, '_');
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
__timestamp,
|
|
210
|
-
} = cacheDoc.data();
|
|
211
|
-
const isFresh = (Timestamp.now().toMillis() - __timestamp.toMillis()) <= cacheMaxAge;
|
|
212
|
-
if (isFresh || isCacheSWR) {
|
|
213
|
-
cachedHeaders['X-SWR-Date'] = (isFresh ? 'fresh ' : '')
|
|
214
|
-
+ __timestamp.toDate().toISOString();
|
|
215
|
-
cachedHeaders['X-Function-Took'] = String(Date.now() - startedAt);
|
|
216
|
-
Object.keys(cachedHeaders).forEach((headerName) => {
|
|
217
|
-
res.set(headerName, cachedHeaders[headerName]);
|
|
218
|
-
});
|
|
219
|
-
res.status(cachedStatus).send(cachedBody);
|
|
220
|
-
isCachedBodySent = true;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
} catch (err) {
|
|
224
|
-
cacheRef = null;
|
|
225
|
-
logger.warn(err);
|
|
226
|
-
}
|
|
227
|
-
})();
|
|
228
|
-
}
|
|
229
|
-
if (gettingCacheDoc && (!isCacheSWR || isSWRLocked)) {
|
|
230
|
-
await gettingCacheDoc;
|
|
231
|
-
if (isCachedBodySent) return;
|
|
232
|
-
}
|
|
233
|
-
if (isCacheSWR) {
|
|
234
|
-
lockedCacheKeys.push(cacheKey);
|
|
241
|
+
if (req.query.__noCache === undefined && req.path.charAt(1) !== '~') {
|
|
242
|
+
const cached = memCache.get(cacheKey)?.data;
|
|
243
|
+
if (cached) {
|
|
244
|
+
const {
|
|
245
|
+
headers: cachedHeaders,
|
|
246
|
+
status: cachedStatus = 200,
|
|
247
|
+
chunks: cachedChunks,
|
|
248
|
+
} = cached;
|
|
249
|
+
res.writeHead(cachedStatus, cachedHeaders);
|
|
250
|
+
cachedChunks.forEach((chunk) => {
|
|
251
|
+
res.write(chunk);
|
|
252
|
+
});
|
|
253
|
+
res.end();
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
235
256
|
}
|
|
236
257
|
|
|
258
|
+
const startedAt = Date.now();
|
|
237
259
|
let status: number;
|
|
238
260
|
let headers: OutgoingHttpHeaders = {};
|
|
239
261
|
const chunks: any[] = [];
|
|
@@ -252,45 +274,26 @@ export default async (req: Request, res: Response) => {
|
|
|
252
274
|
status = _status;
|
|
253
275
|
if (_headers) {
|
|
254
276
|
headers = _headers;
|
|
255
|
-
|
|
256
|
-
headers['X-Function-Took'] = String(now - startedAt);
|
|
257
|
-
if (ssrStartedAt) {
|
|
258
|
-
headers['X-SSR-Took'] = String(now - ssrStartedAt);
|
|
259
|
-
}
|
|
277
|
+
headers['X-SSR-Took'] = String(Date.now() - startedAt);
|
|
260
278
|
}
|
|
261
279
|
};
|
|
262
280
|
const _write = res.write;
|
|
263
281
|
// @ts-ignore
|
|
264
282
|
res.write = function write(chunk: any) {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
_write.apply(res, arguments);
|
|
268
|
-
isSSRChunkSent = true;
|
|
269
|
-
}
|
|
283
|
+
// @ts-ignore
|
|
284
|
+
_write.apply(res, arguments);
|
|
270
285
|
chunks.push(chunk);
|
|
271
286
|
};
|
|
272
287
|
const _end = res.end;
|
|
273
288
|
// @ts-ignore
|
|
274
289
|
res.end = function end() {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
_end.apply(res, arguments);
|
|
278
|
-
}
|
|
290
|
+
// @ts-ignore
|
|
291
|
+
_end.apply(res, arguments);
|
|
279
292
|
if (!status) {
|
|
280
293
|
status = res.statusCode;
|
|
281
294
|
}
|
|
282
|
-
if (
|
|
283
|
-
|
|
284
|
-
headers,
|
|
285
|
-
status,
|
|
286
|
-
body: Buffer.concat(chunks).toString('utf8'),
|
|
287
|
-
__timestamp: Timestamp.now(),
|
|
288
|
-
}).catch(logger.warn);
|
|
289
|
-
}
|
|
290
|
-
for (let i = 0; i < lockedCacheKeys.length; i++) {
|
|
291
|
-
if (lockedCacheKeys[i] === cacheKey) {
|
|
292
|
-
lockedCacheKeys.splice(i, 1);
|
|
293
|
-
}
|
|
295
|
+
if (status === 200) {
|
|
296
|
+
memCache.set(cacheKey, { headers, status, chunks });
|
|
294
297
|
}
|
|
295
298
|
};
|
|
296
299
|
|
|
@@ -299,7 +302,6 @@ export default async (req: Request, res: Response) => {
|
|
|
299
302
|
import { handler as renderStorefront } from '../dist/server/entry.mjs';
|
|
300
303
|
global.$renderStorefront = renderStorefront;
|
|
301
304
|
*/
|
|
302
|
-
ssrStartedAt = Date.now();
|
|
303
305
|
global.$renderStorefront(req, res, async (err: any) => {
|
|
304
306
|
if (err) {
|
|
305
307
|
if (res.headersSent) {
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{R as Fe,K as X,r as y,N as x,X as ae,_ as V,s as N,W as Pt,a5 as ee,x as b,E as L,w as M,u as P,C as $,a7 as qe,z as h,D as te,J as D,a8 as ze,v as T,G as It,I as O,F as B,A as z,H as W,a9 as Et,h as Q,V as se,Z as de,aa as Y,L as oe,ab as Me,$ as Ge,a0 as Ye,ac as Ae,ad as $e}from"./_plugin-vue_export-helper.4e6dc3af.js";import{c as Mt,u as Tt,p as Ot,b as Ct}from"./index.ddc27a3a.js";import{w as Ft}from"./runtime-dom.esm-bundler.578d6e91.js";import{_ as At}from"./preload-helper.cf010ec4.js";import{a as $t}from"./api.7f62c1ff.js";import{i as Nt,f as Lt}from"./modules-info.d6bd555b.js";import"./session-utm.744b0db3.js";const Dt=e=>{if(e){if(e.display_name)return e.display_name;if(e.name&&e.name.given_name)return e.name.given_name}return""},Rt=Dt,Xe=(e,n,r=globalThis.localStorage)=>{if(!r)return Fe(n);let t;const o=r.getItem(e);if(o)try{t=JSON.parse(o)}catch{t=null,r.removeItem(e)}const l=Fe(t||n);return X(l,()=>{r.setItem(e,JSON.stringify(l))}),l},jt="ecomShoppingCart",Bt={items:[]},ke=Xe(jt,Bt),Je=y(()=>ke.items.map(e=>{let n=e.kit_product?.price&&e.kit_product.pack_quantity?e.kit_product.price/e.kit_product.pack_quantity:e.price;Array.isArray(e.customizations)&&e.customizations.forEach(o=>{if(o.add_to_price){const{type:l,addition:a}=o.add_to_price;n+=l==="fixed"?a:e.price*(a/100)}}),e.final_price=n;const r=e.min_quantity||1,t=e.max_quantity;return typeof e.quantity!="number"||Number.isNaN(e.quantity)||e.quantity<r?e.quantity=r:t&&e.quantity>t&&(e.quantity=t),e})),Ne=y(()=>Je.value.reduce((e,n)=>e+n.quantity*(n.final_price||n.price),0)),Pe=y(()=>Je.value.reduce((e,n)=>e+n.quantity,0)),Ht=y({get(){return{...ke,subtotal:Ne.value}},set(e){Object.assign(ke,e,{subtotal:Ne.value})}}),Vt=e=>{const{header:n,canSetStyles:r,canCreateHeightDiv:t,isShownOnScrollDown:o}={canSetStyles:!0,canCreateHeightDiv:!0,...e},{ready:l,start:a}=Mt(100,{controls:!0,immediate:!1}),s=x(0),c=x(0);let u;const{y:i}=Tt(document),g=y(()=>l.value&&i.value>c.value*1.2),p=x("none");X(g,async m=>{r&&n.value&&(n.value.style.position=m?"sticky":""),u&&(u.style.height=m?`${s.value}px`:""),m?(await Ot(300),p.value="opacity var(--transition-slow), transform var(--transition)"):(a(),p.value="none")});const d=x(!1);return X(i,(m,f)=>{d.value=m>0&&m<f}),ae(()=>{if(!n.value)throw new Error("<header> (props.header) not set");const m=()=>{const S=n.value;s.value=S.offsetHeight,c.value=s.value+window.pageYOffset+S.getBoundingClientRect().top,a()},f=n.value.getElementsByTagName("IMG");let _=!0;for(let S=0;S<f.length;S++){const I=f[S];(!I.complete||I.naturalHeight===0)&&(_=!1,I.onload=m)}_&&m(),window.addEventListener("resize",Ct(m,300)),r&&(n.value.style.willChange="transform",X([g,d],([S,I])=>{let k="",F="";S&&(!I||o)&&(k="0",F="translateY(-100%)");const w=n.value;w.style.opacity=k,w.style.transform=F}),X(p,S=>{n.value.style.transition=S})),t&&(u=document.createElement("div"),n.value.parentElement?.insertBefore(u,n.value))}),{staticHeight:s,staticY:c,isSticky:g,isScrollUp:d,transition:p}},Ut=(e,n)=>{const r=e.filter(({name:t,slug:o,parent:l})=>t&&o&&!l);return n?.length&&r.sort((t,o)=>{const l=n.indexOf(t.slug),a=n.indexOf(o.slug);return l>-1?a===-1||l<a?-1:1:a>-1?1:0}),r},Kt=(e,n,r=!1)=>{const t=e.filter(({name:o,slug:l,parent:a})=>o&&l&&a?a._id===n._id||a.slug&&a.slug===n.slug:!1);return r&&t.sort((o,l)=>o.name<l.name?-1:1),t},Wt=({header:e,categories:n,menuCategorySlugs:r,menuRandomCategories:t=7,isAlphabeticalSortSubmenu:o})=>{const{isSticky:l,staticHeight:a,staticY:s}=Vt({header:e}),c=y(()=>l.value?e.value?.offsetHeight:s.value),u=Ut(n,r),i=f=>Kt(n,f,!!o),g=f=>({...f,subcategories:i(f).map(_=>g(_))}),p=u.map(g);let d=0;const m=p.filter(({slug:f})=>r?.includes(f)?!0:d<t?(d+=1,!0):!1);return{isSticky:l,staticHeight:a,staticY:s,positionY:c,mainCategories:u,getSubcategories:i,getCategoryTree:g,categoryTrees:p,inlineMenuTrees:m}},qt=N({__name:"Drawer",props:{modelValue:{type:Boolean,default:!1},placement:{default:"start"},position:{default:"fixed"},hasCloseButton:{type:Boolean,default:!0},backdropTarget:{default:"#teleported-top"}},emits:["update:modelValue"],setup(e,{expose:n,emit:r}){n();const t=e,o=()=>r("update:modelValue",!1),l=x(null),a=d=>{l.value?.contains(d.target)||o()},s=d=>{d.key==="Escape"&&o()},c=x(0);X(Pt(t,"modelValue"),async d=>{d?(c.value=window.innerWidth-document.documentElement.clientWidth,document.body.style.overflow="hidden",document.body.style.paddingRight=`${c.value}px`,setTimeout(()=>{document.addEventListener("click",a,{passive:!0}),document.addEventListener("keydown",s,{passive:!0})},500)):(document.body.style.overflow="",document.body.style.paddingRight="",document.removeEventListener("click",a),document.removeEventListener("keydown",s))});const u=y(()=>{switch(t.placement){case"start":return"left";case"end":return"right";case"top":return"down";default:return"up"}}),i=y(()=>t.position==="fixed"),g=y(()=>t.placement==="start"||t.placement==="end"),p={props:t,emit:r,close:o,drawer:l,outsideClickListener:a,escClickListener:s,scrollbarWidth:c,slideTo:u,isFixed:i,isPlacementX:g};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),zt=["open","data-drawer"],Gt={class:"relative h-full"},Yt=["onClick"],Xt=h("i",{class:"i-close text-base-400 text-3xl"},null,-1),Jt={key:0,class:"fixed top-0 left-0 w-screen h-screen bg-black/50 z-40","data-drawer-backdrop":""};function Qt(e,n,r,t,o,l){const a=ee("Fade");return b(),L(a,{slide:t.slideTo,speed:"slow","is-floating":""},{default:M(()=>[r.modelValue?(b(),P("dialog",{key:0,ref:"drawer",class:$(["w-screen shadow p-0 m-0 z-50",[r.position,t.isFixed?`top-0 ${t.isPlacementX?"h-screen":""}`:null,t.isFixed&&r.placement!=="end"?"left-0":null,t.isFixed&&r.placement==="end"?"left-auto right-0":null,t.isPlacementX?"max-w-sm":null]]),style:qe({maxWidth:t.isPlacementX?void 0:`calc(100vw - ${t.scrollbarWidth}px)`}),open:r.modelValue,"data-drawer":r.placement},[h("div",Gt,[r.hasCloseButton?(b(),P("button",{key:0,type:"button","aria-label":"Fechar",onClick:Ft(t.close,["prevent"]),class:$(["absolute top-2",r.placement==="end"?"left-2":"right-2"]),"data-drawer-close":""},[te(e.$slots,"close",{},()=>[Xt])],10,Yt)):D("",!0),te(e.$slots,"default")]),(b(),L(ze,{to:r.backdropTarget},[T(a,null,{default:M(()=>[r.modelValue?(b(),P("div",Jt)):D("",!0)]),_:1})],8,["to"]))],14,zt)):D("",!0)]),_:3},8,["slide"])}const Zt=V(qt,[["render",Qt]]),Qe="ecomSession",Ie={customer:{display_name:"",main_email:""},auth:null},H=Xe(Qe,Ie),Te=y(()=>{const{auth:e}=H;return e&&new Date(e.expires).getTime()-Date.now()>1e3*10}),Ze=y(()=>H.customer),me=y(()=>Rt(Ze.value)),Le=y({get(){return Ze.value.main_email},set(e){H.customer.main_email=e}});let re;const et=y(()=>Te.value||!!re?.currentUser?.emailVerified),Oe=()=>{H.auth=Ie.auth,H.customer=Ie.customer,localStorage.removeItem(Qe),re.signOut()},tt=(e="Not authenticated")=>{const n=new Error(e);throw n.isNoAuth=!0,n},nt=async()=>{const e=await re.currentUser?.getIdToken();if(!e){tt("Can't get Firebase user ID token");return}const{domain:n}=window.$storefront.settings;try{const r=await fetch(`https://${n}/api/passport/token`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`}});H.auth=await r.json()}catch(r){console.error(r)}},en=async()=>(Te.value||await nt(),H.auth?H.auth.access_token:tt()),tn=async()=>{const e=await en(),n=H.auth,{data:r}=await $t.get(`customers/${n.customer_id}`,{accessToken:e});return H.customer=r,r};let De=!1;const rt=(e=!window.location.pathname.startsWith("/app/"))=>{if(De)return;De=!0;const n=()=>At(()=>import("./firebase-app.84207480.js"),[]).then(({getAuth:r,onAuthStateChanged:t,isSignInWithEmailLink:o,signInWithEmailLink:l})=>{if(re=r(),t(re,async a=>{if(a){if(a.displayName&&!me.value&&(H.customer.display_name=a.displayName),a.email&&(!Le.value||a.emailVerified)&&(H.customer.main_email=a.email),a.emailVerified){const s=a.email!==Le.value;(s||!Te.value)&&(await nt(),(s||!me.value)&&await tn())}}else Oe()}),o(re,window.location.href)){const s=new URLSearchParams(window.location.search).get("email");s&&l(re,s,window.location.href).then(()=>window.localStorage.removeItem("emailForSignIn")).catch(console.error)}}).catch(console.error);e?Nt(n):n()},{settings:Re,context:ko}=globalThis.$storefront,nn=["whatsapp","instagram","facebook","twitter","youtube","tiktok","pinterest"],be={};nn.forEach(e=>{Re[e]&&(be[e]=Re[e])});const rn=N({__name:"AccountLink",props:{to:{},accountUrl:{default:globalThis.$storefront.settings.account_url||"/app/account"},returnUrl:{default:globalThis.location?.href},isSignUp:{type:Boolean}},setup(e,{expose:n}){n();const r=e,t=y(()=>{let l=r.accountUrl;if(!r.to)return r.isSignUp?l+="?sign_up&":l+="?",`${l}return_url=${r.returnUrl}`;const{settings:a}=globalThis.$storefront;return r.to==="orders"&&a.orders_url?a.orders_url:r.to==="favorites"&&a.favorites_url?a.favorites_url:`${l}/${r.to}`}),o={props:r,href:t};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),on=["href"];function an(e,n,r,t,o,l){return b(),P("a",{href:t.href},[te(e.$slots,"default")],8,on)}const ot=V(rn,[["render",an]]);let ie;ie=navigator.userAgent,document.body?document.body.offsetWidth:window.screen.width;ie.includes("Safari")&&ie.includes("Chrome");const ln=/iPad|iPhone|iPod/.test(ie)&&!window.MSStream,sn=ln||/Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(ie),un=N({__name:"SocialNetworkIcon",props:{as:{default:"i"},network:{}},setup(e,{expose:n}){n();const r=e,t=y(()=>{switch(r.network){case"facebook":return"i-facebook";case"instagram":return"i-instagram";case"whatsapp":return"i-whatsapp";case"youtube":return"i-youtube";case"pinterest":return"i-pinterest";case"tiktok":return"i-tiktok";case"twitter":return"i-twitter";default:return""}}),o={props:r,iconClassName:t};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}});function cn(e,n,r,t,o,l){return b(),L(It(r.as),{class:$(t.iconClassName)},null,8,["class"])}const dn=V(un,[["render",cn]]),fn=N({__name:"SocialNetworkLink",props:{network:{},href:{},message:{}},setup(e,{expose:n}){n();const r=e,t=y(()=>{let l=r.href||be[r.network]||"";if(r.network==="whatsapp"){const a=l.replace(/[^+\d]/g,"");l=`https://${sn?"api":"web"}.whatsapp.com/send?phone=`+encodeURIComponent(a.charAt(0)==="+"?a:`+55${a}`),r.message&&(l+=`&text=${encodeURIComponent(r.message)}`)}return l}),o={props:r,fixedHref:t,SocialNetworkIcon:dn};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}});function pn(e,n,r,t,o,l){const a=ee("ALink");return b(),L(a,{href:t.fixedHref},{default:M(()=>[te(e.$slots,"default",{},()=>[T(t.SocialNetworkIcon,{network:r.network},null,8,["network"]),te(e.$slots,"append")])]),_:3},8,["href"])}const at=V(fn,[["render",pn]]),vn=N({__name:"ShopSidenavCategory",props:{categoryTree:{}},setup(e,{expose:n}){n();const r=x(!1),t=x(!0);X(r,l=>{l?setTimeout(()=>{t.value=!1},25):t.value=!0});const o={isOpen:r,isFaded:t};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),mn={class:"text-lg text-base-800"},hn=["href"],gn=["href"],bn={class:"inline"};function _n(e,n,r,t,o,l){const a=ee("AImg"),s=ee("ShopSidenavCategory",!0);return b(),P("li",mn,[r.categoryTree.subcategories.length?(b(),P("details",{key:0,class:"bg-white overflow-y-auto overflow-x-hidden z-10 open:absolute open:top-0 open:left-0 open:w-full open:h-full",onToggle:n[0]||(n[0]=c=>t.isOpen=!t.isOpen)},[h("summary",{class:$(["cursor-pointer list-none px-6 py-3 active:bg-base-100 transition-colors",t.isOpen?"bg-base-100":null])},[h("i",{class:$(t.isOpen?"i-arrow-left text-lg":"i-arrow-right float-right mb-0 mt-1 text-xl text-base-500")},null,2),!t.isOpen&&r.categoryTree.icon?(b(),L(a,{key:0,picture:r.categoryTree.icon,class:"w-auto h-5 inline mr-3"},null,8,["picture"])):D("",!0),h("h3",{class:$(["inline",t.isOpen?"ml-4 text-base":null])},O(r.categoryTree.name),3)],2),h("ul",{class:$(["mt-2 transition-opacity",t.isFaded?"opacity-20":"opacity-100"]),tabindex:"-1"},[(b(!0),P(B,null,z(r.categoryTree.subcategories,c=>(b(),L(s,{key:c._id,"category-tree":c},null,8,["category-tree"]))),128)),h("li",null,[h("a",{href:`/${r.categoryTree.slug}`,class:"block px-6 py-3 text-base underline active:bg-base-200"},O("Ver toda a categoria $1".replace("$1",r.categoryTree.name)),9,hn)])],2)],32)):(b(),P("a",{key:1,href:`/${r.categoryTree.slug}`,class:"block px-6 py-3 active:bg-base-200"},[!t.isOpen&&r.categoryTree.icon?(b(),L(a,{key:0,picture:r.categoryTree.icon,class:"w-auto h-5 inline mr-3"},null,8,["picture"])):D("",!0),h("h3",bn,O(r.categoryTree.name),1)],8,gn))])}const yn=V(vn,[["render",_n]]),wn=N({__name:"ShopSidenav",props:{categoryTrees:{}},setup(e,{expose:n}){n(),ae(()=>rt());const r={get customerName(){return me},get isLogged(){return et},get logout(){return Oe},get socialNetworks(){return be},AccountLink:ot,SocialNetworkLink:at,ShopSidenavCategory:yn};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),xn={class:"flex flex-col h-full"},Sn={class:"py-4 grow"},kn={class:"relative h-full"},Pn={class:"text-base"},In={class:"flex items-center px-2 py-4 bg-base-100"},En=h("i",{class:"i-account text-4xl text-base-500 m-0"},null,-1),Mn={class:"leading-tight"},Tn=h("small",{class:"block lowercase font-semibold text-primary"},O("Meus pedidos")+", "+O("Minha conta"),-1),On=h("span",{class:"text-base-600"},O("Sair"),-1),Cn=h("i",{class:"i-logout text-lg ml-1"},null,-1),Fn=[On,Cn],An={class:"flex gap-3 p-4 bg-base-200 text-xl text-base-700"};function $n(e,n,r,t,o,l){return b(),P("aside",xn,[h("nav",Sn,[h("ul",kn,[(b(!0),P(B,null,z(r.categoryTrees,a=>(b(),L(t.ShopSidenavCategory,{key:a._id,"category-tree":a},null,8,["category-tree"]))),128))])]),h("footer",Pn,[h("div",In,[T(t.AccountLink,{class:"p-2 grow flex items-center gap-3"},{default:M(()=>[En,h("span",Mn,[W(O(`Olá ${t.customerName||"Visitante"}`)+" ",1),Tn])]),_:1}),t.isLogged?(b(),P("button",{key:0,onClick:n[0]||(n[0]=(...a)=>t.logout&&t.logout(...a)),class:"p-2 text-right text-base-800"},Fn)):D("",!0)]),h("ul",An,[(b(!0),P(B,null,z(t.socialNetworks,(a,s)=>(b(),P("li",{key:s},[T(t.SocialNetworkLink,{network:s,class:"p-1 active:text-primary"},null,8,["network"])]))),128))])])])}const Nn=V(wn,[["render",$n]]);function K(e,n,...r){if(e in n){let o=n[e];return typeof o=="function"?o(...r):o}let t=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(o=>`"${o}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,K),t}var ue=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(ue||{}),Ln=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(Ln||{});function ne({visible:e=!0,features:n=0,ourProps:r,theirProps:t,...o}){var l;let a=st(t,r),s=Object.assign(o,{props:a});if(e||n&2&&a.static)return Se(s);if(n&1){let c=(l=a.unmount)==null||l?0:1;return K(c,{0(){return null},1(){return Se({...o,props:{...a,hidden:!0,style:{display:"none"}}})}})}return Se(s)}function Se({props:e,attrs:n,slots:r,slot:t,name:o}){var l,a;let{as:s,...c}=Dn(e,["unmount","static"]),u=(l=r.default)==null?void 0:l.call(r,t),i={};if(t){let g=!1,p=[];for(let[d,m]of Object.entries(t))typeof m=="boolean"&&(g=!0),m===!0&&p.push(d);g&&(i["data-headlessui-state"]=p.join(" "))}if(s==="template"){if(u=lt(u??[]),Object.keys(c).length>0||Object.keys(n).length>0){let[g,...p]=u??[];if(!Rn(g)||p.length>0)throw new Error(['Passing props on "template"!',"",`The current component <${o} /> is rendering a "template".`,"However we need to passthrough the following props:",Object.keys(c).concat(Object.keys(n)).map(f=>f.trim()).filter((f,_,S)=>S.indexOf(f)===_).sort((f,_)=>f.localeCompare(_)).map(f=>` - ${f}`).join(`
|
|
2
|
+
`),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',"Render a single element as the child so that we can forward the props onto that element."].map(f=>` - ${f}`).join(`
|
|
3
|
+
`)].join(`
|
|
4
|
+
`));let d=st((a=g.props)!=null?a:{},c),m=Et(g,d);for(let f in d)f.startsWith("on")&&(m.props||(m.props={}),m.props[f]=d[f]);return m}return Array.isArray(u)&&u.length===1?u[0]:u}return Q(s,Object.assign({},c,i),{default:()=>u})}function lt(e){return e.flatMap(n=>n.type===B?lt(n.children):[n])}function st(...e){if(e.length===0)return{};if(e.length===1)return e[0];let n={},r={};for(let t of e)for(let o in t)o.startsWith("on")&&typeof t[o]=="function"?(r[o]!=null||(r[o]=[]),r[o].push(t[o])):n[o]=t[o];if(n.disabled||n["aria-disabled"])return Object.assign(n,Object.fromEntries(Object.keys(r).map(t=>[t,void 0])));for(let t in r)Object.assign(n,{[t](o,...l){let a=r[t];for(let s of a){if(o instanceof Event&&o.defaultPrevented)return;s(o,...l)}}});return n}function Dn(e,n=[]){let r=Object.assign({},e);for(let t of n)t in r&&delete r[t];return r}function Rn(e){return e==null?!1:typeof e.type=="string"||typeof e.type=="object"||typeof e.type=="function"}let jn=0;function Bn(){return++jn}function Z(){return Bn()}var A=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))(A||{});function Hn(e){throw new Error("Unexpected object: "+e)}var R=(e=>(e[e.First=0]="First",e[e.Previous=1]="Previous",e[e.Next=2]="Next",e[e.Last=3]="Last",e[e.Specific=4]="Specific",e[e.Nothing=5]="Nothing",e))(R||{});function Vn(e,n){let r=n.resolveItems();if(r.length<=0)return null;let t=n.resolveActiveIndex(),o=t??-1,l=(()=>{switch(e.focus){case 0:return r.findIndex(a=>!n.resolveDisabled(a));case 1:{let a=r.slice().reverse().findIndex((s,c,u)=>o!==-1&&u.length-c-1>=o?!1:!n.resolveDisabled(s));return a===-1?a:r.length-1-a}case 2:return r.findIndex((a,s)=>s<=o?!1:!n.resolveDisabled(a));case 3:{let a=r.slice().reverse().findIndex(s=>!n.resolveDisabled(s));return a===-1?a:r.length-1-a}case 4:return r.findIndex(a=>n.resolveId(a)===e.id);case 5:return null;default:Hn(e)}})();return l===-1?t:l}function v(e){var n;return e==null||e.value==null?null:(n=e.value.$el)!=null?n:e.value}let it=Symbol("Context");var G=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(G||{});function ut(){return se(it,null)}function ct(e){de(it,e)}function je(e,n){if(e)return e;let r=n??"button";if(typeof r=="string"&&r.toLowerCase()==="button")return"button"}function dt(e,n){let r=x(je(e.value.type,e.value.as));return ae(()=>{r.value=je(e.value.type,e.value.as)}),Y(()=>{var t;r.value||v(n)&&v(n)instanceof HTMLButtonElement&&!((t=v(n))!=null&&t.hasAttribute("type"))&&(r.value="button")}),r}var Un=Object.defineProperty,Kn=(e,n,r)=>n in e?Un(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,Be=(e,n,r)=>(Kn(e,typeof n!="symbol"?n+"":n,r),r);class Wn{constructor(){Be(this,"current",this.detect()),Be(this,"currentId",0)}set(n){this.current!==n&&(this.currentId=0,this.current=n)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}}let _e=new Wn;function le(e){if(_e.isServer)return null;if(e instanceof Node)return e.ownerDocument;if(e!=null&&e.hasOwnProperty("value")){let n=v(e);if(n)return n.ownerDocument}return document}function qn({container:e,accept:n,walk:r,enabled:t}){Y(()=>{let o=e.value;if(!o||t!==void 0&&!t.value)return;let l=le(e);if(!l)return;let a=Object.assign(c=>n(c),{acceptNode:n}),s=l.createTreeWalker(o,NodeFilter.SHOW_ELEMENT,a,!1);for(;s.nextNode();)r(s.currentNode)})}let Ee=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var U=(e=>(e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll",e))(U||{}),he=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(he||{}),zn=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(zn||{});function fe(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(Ee)).sort((n,r)=>Math.sign((n.tabIndex||Number.MAX_SAFE_INTEGER)-(r.tabIndex||Number.MAX_SAFE_INTEGER)))}var ye=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(ye||{});function we(e,n=0){var r;return e===((r=le(e))==null?void 0:r.body)?!1:K(n,{0(){return e.matches(Ee)},1(){let t=e;for(;t!==null;){if(t.matches(Ee))return!0;t=t.parentElement}return!1}})}function ft(e){let n=le(e);oe(()=>{n&&!we(n.activeElement,0)&&Yn(e)})}var Gn=(e=>(e[e.Keyboard=0]="Keyboard",e[e.Mouse=1]="Mouse",e))(Gn||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function Yn(e){e?.focus({preventScroll:!0})}let Xn=["textarea","input"].join(",");function Jn(e){var n,r;return(r=(n=e?.matches)==null?void 0:n.call(e,Xn))!=null?r:!1}function pt(e,n=r=>r){return e.slice().sort((r,t)=>{let o=n(r),l=n(t);if(o===null||l===null)return 0;let a=o.compareDocumentPosition(l);return a&Node.DOCUMENT_POSITION_FOLLOWING?-1:a&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function Qn(e,n){return J(fe(),n,{relativeTo:e})}function J(e,n,{sorted:r=!0,relativeTo:t=null,skipElements:o=[]}={}){var l;let a=(l=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e?.ownerDocument)!=null?l:document,s=Array.isArray(e)?r?pt(e):e:fe(e);o.length>0&&s.length>1&&(s=s.filter(m=>!o.includes(m))),t=t??a.activeElement;let c=(()=>{if(n&5)return 1;if(n&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),u=(()=>{if(n&1)return 0;if(n&2)return Math.max(0,s.indexOf(t))-1;if(n&4)return Math.max(0,s.indexOf(t))+1;if(n&8)return s.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),i=n&32?{preventScroll:!0}:{},g=0,p=s.length,d;do{if(g>=p||g+p<=0)return 0;let m=u+g;if(n&16)m=(m+p)%p;else{if(m<0)return 3;if(m>=p)return 1}d=s[m],d?.focus(i),g+=c}while(d!==a.activeElement);return n&6&&Jn(d)&&d.select(),2}function He(e,n,r){_e.isServer||Y(t=>{document.addEventListener(e,n,r),t(()=>document.removeEventListener(e,n,r))})}function vt(e,n,r){_e.isServer||Y(t=>{window.addEventListener(e,n,r),t(()=>window.removeEventListener(e,n,r))})}function mt(e,n,r=y(()=>!0)){function t(l,a){if(!r.value||l.defaultPrevented)return;let s=a(l);if(s===null||!s.getRootNode().contains(s))return;let c=function u(i){return typeof i=="function"?u(i()):Array.isArray(i)||i instanceof Set?i:[i]}(e);for(let u of c){if(u===null)continue;let i=u instanceof HTMLElement?u:v(u);if(i!=null&&i.contains(s)||l.composed&&l.composedPath().includes(i))return}return!we(s,ye.Loose)&&s.tabIndex!==-1&&l.preventDefault(),n(l,s)}let o=x(null);He("mousedown",l=>{var a,s;r.value&&(o.value=((s=(a=l.composedPath)==null?void 0:a.call(l))==null?void 0:s[0])||l.target)},!0),He("click",l=>{o.value&&(t(l,()=>o.value),o.value=null)},!0),vt("blur",l=>t(l,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}var ce=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(ce||{});let ge=N({name:"Hidden",props:{as:{type:[Object,String],default:"div"},features:{type:Number,default:1}},setup(e,{slots:n,attrs:r}){return()=>{let{features:t,...o}=e,l={"aria-hidden":(t&2)===2?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(t&4)===4&&(t&2)!==2&&{display:"none"}}};return ne({ourProps:l,theirProps:o,slot:{},attrs:r,slots:n,name:"Hidden"})}}});function Ve(e){return[e.screenX,e.screenY]}function Zn(){let e=x([-1,-1]);return{wasMoved(n){let r=Ve(n);return e.value[0]===r[0]&&e.value[1]===r[1]?!1:(e.value=r,!0)},update(n){e.value=Ve(n)}}}var q=(e=>(e[e.Forwards=0]="Forwards",e[e.Backwards=1]="Backwards",e))(q||{});function ht(){let e=x(0);return vt("keydown",n=>{n.key==="Tab"&&(e.value=n.shiftKey?1:0)}),e}function er(e,n,r,t){_e.isServer||Y(o=>{e=e??window,e.addEventListener(n,r,t),o(()=>e.removeEventListener(n,r,t))})}let Ue=Symbol("PortalParentContext");function tr(){let e=se(Ue,null),n=x([]);function r(l){return n.value.push(l),e&&e.register(l),()=>t(l)}function t(l){let a=n.value.indexOf(l);a!==-1&&n.value.splice(a,1),e&&e.unregister(l)}let o={register:r,unregister:t,portals:n};return[n,N({name:"PortalWrapper",setup(l,{slots:a}){return de(Ue,o),()=>{var s;return(s=a.default)==null?void 0:s.call(a)}}})]}function nr({defaultContainers:e=[],portals:n}={}){let r=x(null),t=le(r);function o(){var l;let a=[];for(let s of e)s!==null&&(s instanceof HTMLElement?a.push(s):"value"in s&&s.value instanceof HTMLElement&&a.push(s.value));if(n!=null&&n.value)for(let s of n.value)a.push(s);for(let s of(l=t?.querySelectorAll("html > *, body > *"))!=null?l:[])s!==document.body&&s!==document.head&&s instanceof HTMLElement&&s.id!=="headlessui-portal-root"&&(s.contains(v(r))||a.some(c=>s.contains(c))||a.push(s));return a}return{resolveContainers:o,contains(l){return o().some(a=>a.contains(l))},mainTreeNodeRef:r,MainTreeNode(){return Q(ge,{features:ce.Hidden,ref:r})}}}let Ke=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function We(e){var n,r;let t=(n=e.innerText)!=null?n:"",o=e.cloneNode(!0);if(!(o instanceof HTMLElement))return t;let l=!1;for(let s of o.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))s.remove(),l=!0;let a=l?(r=o.innerText)!=null?r:"":t;return Ke.test(a)&&(a=a.replace(Ke,"")),a}function rr(e){let n=e.getAttribute("aria-label");if(typeof n=="string")return n.trim();let r=e.getAttribute("aria-labelledby");if(r){let t=r.split(" ").map(o=>{let l=document.getElementById(o);if(l){let a=l.getAttribute("aria-label");return typeof a=="string"?a.trim():We(l).trim()}return null}).filter(Boolean);if(t.length>0)return t.join(", ")}return We(e).trim()}function or(e){let n=x(""),r=x("");return()=>{let t=v(e);if(!t)return"";let o=t.innerText;if(n.value===o)return r.value;let l=rr(t).trim().toLowerCase();return n.value=o,r.value=l,l}}var ar=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(ar||{}),lr=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(lr||{});function sr(e){requestAnimationFrame(()=>requestAnimationFrame(e))}let gt=Symbol("MenuContext");function xe(e){let n=se(gt,null);if(n===null){let r=new Error(`<${e} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,xe),r}return n}let ir=N({name:"Menu",props:{as:{type:[Object,String],default:"template"}},setup(e,{slots:n,attrs:r}){let t=x(1),o=x(null),l=x(null),a=x([]),s=x(""),c=x(null),u=x(1);function i(p=d=>d){let d=c.value!==null?a.value[c.value]:null,m=pt(p(a.value.slice()),_=>v(_.dataRef.domRef)),f=d?m.indexOf(d):null;return f===-1&&(f=null),{items:m,activeItemIndex:f}}let g={menuState:t,buttonRef:o,itemsRef:l,items:a,searchQuery:s,activeItemIndex:c,activationTrigger:u,closeMenu:()=>{t.value=1,c.value=null},openMenu:()=>t.value=0,goToItem(p,d,m){let f=i(),_=Vn(p===R.Specific?{focus:R.Specific,id:d}:{focus:p},{resolveItems:()=>f.items,resolveActiveIndex:()=>f.activeItemIndex,resolveId:S=>S.id,resolveDisabled:S=>S.dataRef.disabled});s.value="",c.value=_,u.value=m??1,a.value=f.items},search(p){let d=s.value!==""?0:1;s.value+=p.toLowerCase();let m=(c.value!==null?a.value.slice(c.value+d).concat(a.value.slice(0,c.value+d)):a.value).find(_=>_.dataRef.textValue.startsWith(s.value)&&!_.dataRef.disabled),f=m?a.value.indexOf(m):-1;f===-1||f===c.value||(c.value=f,u.value=1)},clearSearch(){s.value=""},registerItem(p,d){let m=i(f=>[...f,{id:p,dataRef:d}]);a.value=m.items,c.value=m.activeItemIndex,u.value=1},unregisterItem(p){let d=i(m=>{let f=m.findIndex(_=>_.id===p);return f!==-1&&m.splice(f,1),m});a.value=d.items,c.value=d.activeItemIndex,u.value=1}};return mt([o,l],(p,d)=>{var m;g.closeMenu(),we(d,ye.Loose)||(p.preventDefault(),(m=v(o))==null||m.focus())},y(()=>t.value===0)),de(gt,g),ct(y(()=>K(t.value,{0:G.Open,1:G.Closed}))),()=>{let p={open:t.value===0,close:g.closeMenu};return ne({ourProps:{},theirProps:e,slot:p,slots:n,attrs:r,name:"Menu"})}}}),ur=N({name:"MenuButton",props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:"button"},id:{type:String,default:()=>`headlessui-menu-button-${Z()}`}},setup(e,{attrs:n,slots:r,expose:t}){let o=xe("MenuButton");t({el:o.buttonRef,$el:o.buttonRef});function l(u){switch(u.key){case A.Space:case A.Enter:case A.ArrowDown:u.preventDefault(),u.stopPropagation(),o.openMenu(),oe(()=>{var i;(i=v(o.itemsRef))==null||i.focus({preventScroll:!0}),o.goToItem(R.First)});break;case A.ArrowUp:u.preventDefault(),u.stopPropagation(),o.openMenu(),oe(()=>{var i;(i=v(o.itemsRef))==null||i.focus({preventScroll:!0}),o.goToItem(R.Last)});break}}function a(u){switch(u.key){case A.Space:u.preventDefault();break}}function s(u){e.disabled||(o.menuState.value===0?(o.closeMenu(),oe(()=>{var i;return(i=v(o.buttonRef))==null?void 0:i.focus({preventScroll:!0})})):(u.preventDefault(),o.openMenu(),sr(()=>{var i;return(i=v(o.itemsRef))==null?void 0:i.focus({preventScroll:!0})})))}let c=dt(y(()=>({as:e.as,type:n.type})),o.buttonRef);return()=>{var u;let i={open:o.menuState.value===0},{id:g,...p}=e,d={ref:o.buttonRef,id:g,type:c.value,"aria-haspopup":"menu","aria-controls":(u=v(o.itemsRef))==null?void 0:u.id,"aria-expanded":e.disabled?void 0:o.menuState.value===0,onKeydown:l,onKeyup:a,onClick:s};return ne({ourProps:d,theirProps:p,slot:i,attrs:n,slots:r,name:"MenuButton"})}}}),cr=N({name:"MenuItems",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:()=>`headlessui-menu-items-${Z()}`}},setup(e,{attrs:n,slots:r,expose:t}){let o=xe("MenuItems"),l=x(null);t({el:o.itemsRef,$el:o.itemsRef}),qn({container:y(()=>v(o.itemsRef)),enabled:y(()=>o.menuState.value===0),accept(i){return i.getAttribute("role")==="menuitem"?NodeFilter.FILTER_REJECT:i.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(i){i.setAttribute("role","none")}});function a(i){var g;switch(l.value&&clearTimeout(l.value),i.key){case A.Space:if(o.searchQuery.value!=="")return i.preventDefault(),i.stopPropagation(),o.search(i.key);case A.Enter:if(i.preventDefault(),i.stopPropagation(),o.activeItemIndex.value!==null){let p=o.items.value[o.activeItemIndex.value];(g=v(p.dataRef.domRef))==null||g.click()}o.closeMenu(),ft(v(o.buttonRef));break;case A.ArrowDown:return i.preventDefault(),i.stopPropagation(),o.goToItem(R.Next);case A.ArrowUp:return i.preventDefault(),i.stopPropagation(),o.goToItem(R.Previous);case A.Home:case A.PageUp:return i.preventDefault(),i.stopPropagation(),o.goToItem(R.First);case A.End:case A.PageDown:return i.preventDefault(),i.stopPropagation(),o.goToItem(R.Last);case A.Escape:i.preventDefault(),i.stopPropagation(),o.closeMenu(),oe(()=>{var p;return(p=v(o.buttonRef))==null?void 0:p.focus({preventScroll:!0})});break;case A.Tab:i.preventDefault(),i.stopPropagation(),o.closeMenu(),oe(()=>Qn(v(o.buttonRef),i.shiftKey?U.Previous:U.Next));break;default:i.key.length===1&&(o.search(i.key),l.value=setTimeout(()=>o.clearSearch(),350));break}}function s(i){switch(i.key){case A.Space:i.preventDefault();break}}let c=ut(),u=y(()=>c!==null?(c.value&G.Open)===G.Open:o.menuState.value===0);return()=>{var i,g;let p={open:o.menuState.value===0},{id:d,...m}=e,f={"aria-activedescendant":o.activeItemIndex.value===null||(i=o.items.value[o.activeItemIndex.value])==null?void 0:i.id,"aria-labelledby":(g=v(o.buttonRef))==null?void 0:g.id,id:d,onKeydown:a,onKeyup:s,role:"menu",tabIndex:0,ref:o.itemsRef};return ne({ourProps:f,theirProps:m,slot:p,attrs:n,slots:r,features:ue.RenderStrategy|ue.Static,visible:u.value,name:"MenuItems"})}}}),dr=N({name:"MenuItem",inheritAttrs:!1,props:{as:{type:[Object,String],default:"template"},disabled:{type:Boolean,default:!1},id:{type:String,default:()=>`headlessui-menu-item-${Z()}`}},setup(e,{slots:n,attrs:r,expose:t}){let o=xe("MenuItem"),l=x(null);t({el:l,$el:l});let a=y(()=>o.activeItemIndex.value!==null?o.items.value[o.activeItemIndex.value].id===e.id:!1),s=or(l),c=y(()=>({disabled:e.disabled,get textValue(){return s()},domRef:l}));ae(()=>o.registerItem(e.id,c)),Me(()=>o.unregisterItem(e.id)),Y(()=>{o.menuState.value===0&&a.value&&o.activationTrigger.value!==0&&oe(()=>{var f,_;return(_=(f=v(l))==null?void 0:f.scrollIntoView)==null?void 0:_.call(f,{block:"nearest"})})});function u(f){if(e.disabled)return f.preventDefault();o.closeMenu(),ft(v(o.buttonRef))}function i(){if(e.disabled)return o.goToItem(R.Nothing);o.goToItem(R.Specific,e.id)}let g=Zn();function p(f){g.update(f)}function d(f){g.wasMoved(f)&&(e.disabled||a.value||o.goToItem(R.Specific,e.id,0))}function m(f){g.wasMoved(f)&&(e.disabled||a.value&&o.goToItem(R.Nothing))}return()=>{let{disabled:f}=e,_={active:a.value,disabled:f,close:o.closeMenu},{id:S,...I}=e;return ne({ourProps:{id:S,ref:l,role:"menuitem",tabIndex:f===!0?void 0:-1,"aria-disabled":f===!0?!0:void 0,disabled:void 0,onClick:u,onFocus:i,onPointerenter:p,onMouseenter:p,onPointermove:d,onMousemove:d,onPointerleave:m,onMouseleave:m},theirProps:{...r,...I},slot:_,attrs:r,slots:n,name:"MenuItem"})}}});var fr=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(fr||{});let bt=Symbol("PopoverContext");function Ce(e){let n=se(bt,null);if(n===null){let r=new Error(`<${e} /> is missing a parent <${wt.name} /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,Ce),r}return n}let pr=Symbol("PopoverGroupContext");function _t(){return se(pr,null)}let yt=Symbol("PopoverPanelContext");function vr(){return se(yt,null)}let wt=N({name:"Popover",props:{as:{type:[Object,String],default:"div"}},setup(e,{slots:n,attrs:r,expose:t}){var o;let l=x(null);t({el:l,$el:l});let a=x(1),s=x(null),c=x(null),u=x(null),i=x(null),g=y(()=>le(l)),p=y(()=>{var w,E;if(!v(s)||!v(i))return!1;for(let ve of document.querySelectorAll("body > *"))if(Number(ve?.contains(v(s)))^Number(ve?.contains(v(i))))return!0;let C=fe(),j=C.indexOf(v(s)),pe=(j+C.length-1)%C.length,xt=(j+1)%C.length,St=C[pe],kt=C[xt];return!((w=v(i))!=null&&w.contains(St))&&!((E=v(i))!=null&&E.contains(kt))}),d={popoverState:a,buttonId:x(null),panelId:x(null),panel:i,button:s,isPortalled:p,beforePanelSentinel:c,afterPanelSentinel:u,togglePopover(){a.value=K(a.value,{0:1,1:0})},closePopover(){a.value!==1&&(a.value=1)},close(w){d.closePopover();let E=(()=>w?w instanceof HTMLElement?w:w.value instanceof HTMLElement?v(w):v(d.button):v(d.button))();E?.focus()}};de(bt,d),ct(y(()=>K(a.value,{0:G.Open,1:G.Closed})));let m={buttonId:d.buttonId,panelId:d.panelId,close(){d.closePopover()}},f=_t(),_=f?.registerPopover,[S,I]=tr(),k=nr({portals:S,defaultContainers:[s,i]});function F(){var w,E,C,j;return(j=f?.isFocusWithinPopoverGroup())!=null?j:((w=g.value)==null?void 0:w.activeElement)&&(((E=v(s))==null?void 0:E.contains(g.value.activeElement))||((C=v(i))==null?void 0:C.contains(g.value.activeElement)))}return Y(()=>_?.(m)),er((o=g.value)==null?void 0:o.defaultView,"focus",w=>{var E,C;w.target!==window&&w.target instanceof HTMLElement&&a.value===0&&(F()||s&&i&&(k.contains(w.target)||(E=v(d.beforePanelSentinel))!=null&&E.contains(w.target)||(C=v(d.afterPanelSentinel))!=null&&C.contains(w.target)||d.closePopover()))},!0),mt(k.resolveContainers,(w,E)=>{var C;d.closePopover(),we(E,ye.Loose)||(w.preventDefault(),(C=v(s))==null||C.focus())},y(()=>a.value===0)),()=>{let w={open:a.value===0,close:d.close};return Q(I,{},()=>ne({theirProps:{...e,...r},ourProps:{ref:l},slot:w,slots:n,attrs:r,name:"Popover"}))}}}),mr=N({name:"PopoverButton",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1},id:{type:String,default:()=>`headlessui-popover-button-${Z()}`}},inheritAttrs:!1,setup(e,{attrs:n,slots:r,expose:t}){let o=Ce("PopoverButton"),l=y(()=>le(o.button));t({el:o.button,$el:o.button}),ae(()=>{o.buttonId.value=e.id}),Me(()=>{o.buttonId.value=null});let a=_t(),s=a?.closeOthers,c=vr(),u=y(()=>c===null?!1:c.value===o.panelId.value),i=x(null),g=`headlessui-focus-sentinel-${Z()}`;u.value||Y(()=>{o.button.value=i.value});let p=dt(y(()=>({as:e.as,type:n.type})),i);function d(k){var F,w,E,C,j;if(u.value){if(o.popoverState.value===1)return;switch(k.key){case A.Space:case A.Enter:k.preventDefault(),(w=(F=k.target).click)==null||w.call(F),o.closePopover(),(E=v(o.button))==null||E.focus();break}}else switch(k.key){case A.Space:case A.Enter:k.preventDefault(),k.stopPropagation(),o.popoverState.value===1&&s?.(o.buttonId.value),o.togglePopover();break;case A.Escape:if(o.popoverState.value!==0)return s?.(o.buttonId.value);if(!v(o.button)||(C=l.value)!=null&&C.activeElement&&!((j=v(o.button))!=null&&j.contains(l.value.activeElement)))return;k.preventDefault(),k.stopPropagation(),o.closePopover();break}}function m(k){u.value||k.key===A.Space&&k.preventDefault()}function f(k){var F,w;e.disabled||(u.value?(o.closePopover(),(F=v(o.button))==null||F.focus()):(k.preventDefault(),k.stopPropagation(),o.popoverState.value===1&&s?.(o.buttonId.value),o.togglePopover(),(w=v(o.button))==null||w.focus()))}function _(k){k.preventDefault(),k.stopPropagation()}let S=ht();function I(){let k=v(o.panel);if(!k)return;function F(){K(S.value,{[q.Forwards]:()=>J(k,U.First),[q.Backwards]:()=>J(k,U.Last)})===he.Error&&J(fe().filter(w=>w.dataset.headlessuiFocusGuard!=="true"),K(S.value,{[q.Forwards]:U.Next,[q.Backwards]:U.Previous}),{relativeTo:v(o.button)})}F()}return()=>{let k=o.popoverState.value===0,F={open:k},{id:w,...E}=e,C=u.value?{ref:i,type:p.value,onKeydown:d,onClick:f}:{ref:i,id:w,type:p.value,"aria-expanded":e.disabled?void 0:o.popoverState.value===0,"aria-controls":v(o.panel)?o.panelId.value:void 0,disabled:e.disabled?!0:void 0,onKeydown:d,onKeyup:m,onClick:f,onMousedown:_};return Q(B,[ne({ourProps:C,theirProps:{...n,...E},slot:F,attrs:n,slots:r,name:"PopoverButton"}),k&&!u.value&&o.isPortalled.value&&Q(ge,{id:g,features:ce.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:I})])}}}),hr=N({name:"PopoverPanel",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},focus:{type:Boolean,default:!1},id:{type:String,default:()=>`headlessui-popover-panel-${Z()}`}},inheritAttrs:!1,setup(e,{attrs:n,slots:r,expose:t}){let{focus:o}=e,l=Ce("PopoverPanel"),a=y(()=>le(l.panel)),s=`headlessui-focus-sentinel-before-${Z()}`,c=`headlessui-focus-sentinel-after-${Z()}`;t({el:l.panel,$el:l.panel}),ae(()=>{l.panelId.value=e.id}),Me(()=>{l.panelId.value=null}),de(yt,l.panelId),Y(()=>{var _,S;if(!o||l.popoverState.value!==0||!l.panel)return;let I=(_=a.value)==null?void 0:_.activeElement;(S=v(l.panel))!=null&&S.contains(I)||J(v(l.panel),U.First)});let u=ut(),i=y(()=>u!==null?(u.value&G.Open)===G.Open:l.popoverState.value===0);function g(_){var S,I;switch(_.key){case A.Escape:if(l.popoverState.value!==0||!v(l.panel)||a.value&&!((S=v(l.panel))!=null&&S.contains(a.value.activeElement)))return;_.preventDefault(),_.stopPropagation(),l.closePopover(),(I=v(l.button))==null||I.focus();break}}function p(_){var S,I,k,F,w;let E=_.relatedTarget;E&&v(l.panel)&&((S=v(l.panel))!=null&&S.contains(E)||(l.closePopover(),((k=(I=v(l.beforePanelSentinel))==null?void 0:I.contains)!=null&&k.call(I,E)||(w=(F=v(l.afterPanelSentinel))==null?void 0:F.contains)!=null&&w.call(F,E))&&E.focus({preventScroll:!0})))}let d=ht();function m(){let _=v(l.panel);if(!_)return;function S(){K(d.value,{[q.Forwards]:()=>{var I;J(_,U.First)===he.Error&&((I=v(l.afterPanelSentinel))==null||I.focus())},[q.Backwards]:()=>{var I;(I=v(l.button))==null||I.focus({preventScroll:!0})}})}S()}function f(){let _=v(l.panel);if(!_)return;function S(){K(d.value,{[q.Forwards]:()=>{let I=v(l.button),k=v(l.panel);if(!I)return;let F=fe(),w=F.indexOf(I),E=F.slice(0,w+1),C=[...F.slice(w+1),...E];for(let j of C.slice())if(j.dataset.headlessuiFocusGuard==="true"||k!=null&&k.contains(j)){let pe=C.indexOf(j);pe!==-1&&C.splice(pe,1)}J(C,U.First,{sorted:!1})},[q.Backwards]:()=>{var I;J(_,U.Previous)===he.Error&&((I=v(l.button))==null||I.focus())}})}S()}return()=>{let _={open:l.popoverState.value===0,close:l.close},{id:S,focus:I,...k}=e,F={ref:l.panel,id:S,onKeydown:g,onFocusout:o&&l.popoverState.value===0?p:void 0,tabIndex:-1};return ne({ourProps:F,theirProps:{...n,...k},attrs:n,slot:_,slots:{...r,default:(...w)=>{var E;return[Q(B,[i.value&&l.isPortalled.value&&Q(ge,{id:s,ref:l.beforePanelSentinel,features:ce.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:m}),(E=r.default)==null?void 0:E.call(r,...w),i.value&&l.isPortalled.value&&Q(ge,{id:c,ref:l.afterPanelSentinel,features:ce.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:f})])]}},features:ue.RenderStrategy|ue.Static,visible:i.value,name:"PopoverPanel"})}}});const gr=e=>{const n=y(()=>e.categoryTree.pictures?.[0]),r=y(()=>e.categoryTree.subcategories.filter(({subcategories:c})=>c.length)),t=y(()=>{let c=r.value.length;return n.value&&(c+=1),r.value.length<e.categoryTree.subcategories.length&&(c+=1),c}),o=y(()=>(e.megaMenuMaxCols||7)>=t.value),l=y(()=>o.value?e.categoryTree.subcategories.filter(({subcategories:c})=>!c.length):e.categoryTree.subcategories),a=y(()=>o.value?e.categoryTree.subcategories.filter(({subcategories:c})=>c.length):e.categoryTree.subcategories),s=y(()=>o.value?t.value:n.value?2:1);return{categoryPicture:n,isMegaMenu:o,subcategoryLinks:l,subcategoryCols:a,countMenuCols:s}},br=N({__name:"ShopHeaderSubmenu",props:{categoryTree:{},megaMenuMaxCols:{}},setup(e,{expose:n}){n();const r=e,{categoryPicture:t,subcategoryLinks:o,subcategoryCols:l,countMenuCols:a}=gr(r),s={props:r,categoryPicture:t,subcategoryLinks:o,subcategoryCols:l,countMenuCols:a,get Popover(){return wt},get PopoverButton(){return mr},get PopoverPanel(){return hr}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),_r={class:"relative"},yr={class:"flex gap-6 w-full"},wr={key:0,class:"flex-1"},xr=["href"],Sr=["href"],kr={class:"text-sm text-base-600 mt-1 mb-1.5"},Pr=["href"],Ir=["href"];function Er(e,n,r,t,o,l){const a=ee("AImg"),s=ee("Fade");return b(),L(t.Popover,null,{default:M(({open:c})=>[T(t.PopoverButton,{class:"outline-none"},{default:M(()=>[te(e.$slots,"button",Ge(Ye({open:c})))]),_:2},1024),h("div",_r,[T(s,null,{default:M(()=>[T(t.PopoverPanel,{class:$(["absolute z-20 top-3 left-1/2 -translate-x-1/2 !transform px-6 py-4 rounded backdrop-blur-md shadow bg-white/80 text-base text-base-700",t.countMenuCols===1?"w-60":t.countMenuCols===2?`w-screen ${t.categoryPicture?"max-w-lg":"max-w-sm"}`:t.countMenuCols===3?`w-screen ${t.categoryPicture?"max-w-xl":"max-w-md"}`:t.countMenuCols<6?"w-screen max-w-3xl":"w-screen max-w-5xl"])},{default:M(()=>[h("div",yr,[t.subcategoryLinks.length?(b(),P("ul",wr,[(b(!0),P(B,null,z(t.subcategoryLinks,(u,i)=>(b(),P("li",{key:`link-${i}`,class:$(t.subcategoryLinks.length>10?"text-sm mb-1":"mb-2")},[h("a",{href:`/${u.slug}`,class:"hover:text-primary"},[h("h3",null,O(u.name),1)],8,xr)],2))),128))])):D("",!0),(b(!0),P(B,null,z(t.subcategoryCols,(u,i)=>(b(),P("div",{key:u._id,class:"flex-1"},[h("a",{href:`/${u.slug}`,class:"hover:text-primary"},[h("h3",null,O(u.name),1)],8,Sr),h("ul",kr,[(b(!0),P(B,null,z(u.subcategories,(g,p)=>(b(),P("li",{key:`${i}-${p}`,class:"mb-0.5"},[h("a",{href:`/${g.slug}`,class:"hover:text-primary hover:underline"},[h("h3",null,O(g.name),1)],8,Pr)]))),128))])]))),128)),t.categoryPicture?(b(),P("div",{key:1,class:$(t.countMenuCols===2?"basis-1/2":t.countMenuCols<5?"basis-2/5":"basis-1/3")},[T(a,{picture:t.categoryPicture,class:"ml-auto rounded"},null,8,["picture"])],2)):D("",!0)]),h("a",{href:`/${r.categoryTree.slug}`,class:"block mt-1 text-xs text-base-600 leading-snug underline"},O("Ver toda a categoria $1".replace("$1",r.categoryTree.name)),9,Ir)]),_:1},8,["class"])]),_:1})])]),_:3})}const Mr=V(br,[["render",Er]]),Tr=N({__name:"ShopHeaderMenu",props:{inlineMenuTrees:{}},setup(e,{expose:n}){n();const r=e,t=y(()=>!!r.inlineMenuTrees.find(({subcategories:l})=>!l.length)),o={props:r,hasOneLevelSubcategories:t,ShopHeaderSubmenu:Mr};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),Or={class:"hover:text-primary group"},Cr=["href"],Fr={class:"inline"};function Ar(e,n,r,t,o,l){return b(),P("nav",null,[h("ul",{class:$(["flex gap-4 xl:gap-5 text-base-700",r.inlineMenuTrees.length<7?"text-base":"text-sm"])},[(b(!0),P(B,null,z(r.inlineMenuTrees,(a,s)=>(b(),P("li",{key:s},[a.subcategories.length?(b(),L(t.ShopHeaderSubmenu,{key:0,"category-tree":a},{button:M(({open:c})=>[h("span",Or,[h("h3",{class:$(["group-hover:underline inline",[r.inlineMenuTrees.length<7?"decoration-2":null,c?"underline":null]])},O(a.name),3),t.hasOneLevelSubcategories?(b(),P("i",{key:0,class:$(["i-chevron-down ml-1 transition-transform text-base-400 group-hover:text-primary-subtle",c?"rotate-180":null])},null,2)):D("",!0)])]),_:2},1032,["category-tree"])):(b(),P("a",{key:1,href:`/${a.slug}`,class:$(["hover:text-primary hover:underline",r.inlineMenuTrees.length<7?"decoration-2":null])},[h("h3",Fr,O(a.name),1)],10,Cr))]))),128))],2)])}const $r=V(Tr,[["render",Ar]]),Nr={},Lr={class:"w-full h-40 bg-base-300"};function Dr(e,n){return b(),P("div",Lr)}const Rr=V(Nr,[["render",Dr]]),jr=N({__name:"AccountMenu",props:{serviceLinks:{}},setup(e,{expose:n}){n();const r={get Menu(){return ir},get MenuButton(){return ur},get MenuItems(){return cr},get MenuItem(){return dr},get socialNetworks(){return be},get customerName(){return me},get initializeFirebaseAuth(){return rt},get isLogged(){return et},get logout(){return Oe},AccountLink:ot,SocialNetworkLink:at};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Br={key:0},Hr={class:"p-3 text-base-600"},Vr={class:"list-none"},Ur=h("i",{class:"i-favorites mr-1"},null,-1),Kr={class:"flex justify-center gap-2 p-2 text-base-500 text-base"},Wr=h("span",{class:"text-base-600"},O("Sair"),-1),qr=h("i",{class:"i-logout text-lg ml-1"},null,-1),zr=[Wr,qr];function Gr(e,n,r,t,o,l){const a=ee("ALink"),s=ee("Fade");return b(),L(t.Menu,{as:"div",class:"relative text-center text-sm text-base-800"},{default:M(({open:c})=>[c?(b(),P("div",Br,[n[0]||(Ae(-1),n[0]=h("span",null,[W(O(t.initializeFirebaseAuth()),1)]),Ae(1),n[0])])):D("",!0),T(t.MenuButton,{class:"outline-none"},{default:M(()=>[te(e.$slots,"button",Ge(Ye({open:c})))]),_:2},1024),T(s,null,{default:M(()=>[T(t.MenuItems,{class:"absolute -right-8 mt-2 w-56 rounded shadow ring-1 ring-black/5 bg-white divide-y divide-base-100 focus:outline-none"},{default:M(()=>[h("div",Hr,[W(O(`Olá ${t.customerName||"Visitante"}`)+" ",1),T(t.AccountLink,{role:"button",class:"ui-btn-sm ui-btn-primary block my-1"},{default:M(()=>[W(O("Acessar minha conta"))]),_:1}),t.isLogged?D("",!0):(b(),L(t.AccountLink,{key:0,"is-sign-up":"",class:"ui-link block"},{default:M(()=>[W(O("Criar uma conta"))]),_:1}))]),h("ul",Vr,[T(t.MenuItem,{as:"li"},{default:M(({active:u})=>[T(t.AccountLink,{to:"orders",class:$(["block p-2",u?"bg-base-100 text-primary":null])},{default:M(()=>[W(O("Meus pedidos"))]),_:2},1032,["class"])]),_:1}),T(t.MenuItem,{as:"li"},{default:M(({active:u})=>[T(t.AccountLink,{to:"favorites",class:$(["block p-2",u?"bg-base-100 text-primary":null])},{default:M(()=>[Ur,W(" "+O("Meus favoritos"))]),_:2},1032,["class"])]),_:1}),(b(!0),P(B,null,z(r.serviceLinks,({title:u,href:i},g)=>(b(),L(t.MenuItem,{as:"li",key:`s-${g}`},{default:M(({active:p})=>[T(a,{href:i,class:$(["block p-2",p?"bg-base-100 text-primary":null])},{default:M(()=>[W(O(u),1)]),_:2},1032,["href","class"])]),_:2},1024))),128)),T(t.MenuItem,{as:"li"},{default:M(()=>[h("div",Kr,[(b(!0),P(B,null,z(t.socialNetworks,(u,i)=>(b(),P("span",{key:i},[T(t.SocialNetworkLink,{network:i,class:"p-1 hover:text-primary"},null,8,["network"])]))),128))])]),_:1}),t.isLogged?(b(),L(t.MenuItem,{key:0,as:"li"},{default:M(()=>[h("button",{onClick:n[1]||(n[1]=(...u)=>t.logout&&t.logout(...u)),class:"p-2 text-right text-base-800"},zr)]),_:1})):D("",!0)])]),_:1})]),_:1})]),_:3})}const Yr=V(jr,[["render",Gr]]),Xr=N({__name:"CartSidebar",setup(e,{expose:n}){n();const r={get freeShippingFromValue(){return Lt},get shoppingCart(){return Ht},get totalItems(){return Pe}};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Jr={class:"flex flex-col h-full"},Qr={class:"px-6 py-4 flex justify-end items-center gap-3"},Zr=h("span",{class:"text-right text-base text-base-600 font-medium"},O("Meu carrinho de compras"),-1),eo={class:"ui-badge-lg"},to={class:"grow bg-base-50 border-t-2 border-b-2 border-base-100"},no={key:0,class:"secondary-subtle p-3 text-sm text-center"},ro=h("strong",{class:"lowercase"},O("Frete grátis"),-1),oo=h("footer",{class:"p-5 shadow"},null,-1);function ao(e,n,r,t,o,l){return b(),P("aside",Jr,[h("header",Qr,[Zr,h("span",eo,O(t.totalItems),1)]),h("article",to,[t.freeShippingFromValue?(b(),P("div",no,[W(O("Adicione $1 para ganhar".replace("$1",e.$money(t.freeShippingFromValue-t.shoppingCart.subtotal)))+" ",1),ro])):D("",!0)]),oo])}const lo=V(Xr,[["render",ao]]),so=N({__name:"ShopHeader",props:{serviceLinks:{},categories:{},menuCategorySlugs:{},menuRandomCategories:{},isAlphabeticalSortSubmenu:{type:Boolean}},setup(e,{expose:n}){n();const r=e,t=x(null),{isSticky:o,positionY:l,categoryTrees:a,inlineMenuTrees:s}=Wt({...r,header:t}),c=x(!1),u=x(!1),i=x(!1),g=x(!1);ae(()=>{g.value=!0,X(Pe,(d,m)=>{m<d&&(i.value=!0)})});const p={props:r,header:t,isSticky:o,positionY:l,categoryTrees:a,inlineMenuTrees:s,isSidenavOpen:c,isSearchOpen:u,isCartOpen:i,isMounted:g,get totalItems(){return Pe},Drawer:Zt,ShopSidenav:Nn,ShopHeaderMenu:$r,SearchModal:Rr,AccountMenu:Yr,CartSidebar:lo};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),io={class:"container 2xl:max-w-7xl mx-auto px-1 lg:pr-3 lg:pl-5 xl:pr-7 xl:pl-9 2xl:pr-0 2xl:pl-2 flex md:grid grid-flow-col grid-cols-3 lg:grid-cols-none lg:auto-cols-max justify-between items-center"},uo={class:"basis-1/4 lg:hidden"},co={class:"basis-1/4 px-2 flex justify-end items-center gap-3 lg:gap-4 text-base-800"},fo=h("i",{class:"i-search w-7 h-7 hover:text-primary hover:scale-110 active:scale-125"},null,-1),po=[fo],vo=h("i",{class:"i-shopping-cart w-7 h-7 group-hover:text-primary group-hover:scale-110 group-active:scale-125"},null,-1),mo={key:0,class:"ui-badge-sm absolute -top-1 -right-1.5"};function ho(e,n,r,t,o,l){return b(),P("header",{ref:"header",class:$(["relative top-0 z-50 transition-colors",[t.isSticky&&!t.isSidenavOpen?"bg-white/80":"bg-white",t.isSticky?"backdrop-blur-md shadow py-2 md:py-3":"py-3 sm:py-4 md:py-5"]])},[h("div",io,[h("div",uo,[h("button",{class:"px-2 my-1","aria-label":"Abrir/fechar menu",onClick:n[0]||(n[0]=a=>t.isSidenavOpen=!t.isSidenavOpen)},[h("i",{class:$(["text-base-500 text-3xl",t.isSidenavOpen?"i-close":"i-menu"])},null,2)])]),te(e.$slots,"logo"),T(t.ShopHeaderMenu,$e({class:"hidden lg:block"},{inlineMenuTrees:t.inlineMenuTrees}),null,16),h("div",co,[h("button",{"aria-label":"Buscar produtos",onClick:n[1]||(n[1]=a=>t.isSearchOpen=!t.isSearchOpen)},po),T(t.AccountMenu,{class:"hidden sm:block","aria-label":"Minha conta","service-links":r.serviceLinks},{button:M(({open:a})=>[h("i",{class:$(["i-account w-7 h-7 hover:text-primary hover:scale-110 active:scale-125",a?"text-black scale-110":null])},null,2)]),_:1},8,["service-links"]),h("button",{"aria-label":"Abrir carrinho",onClick:n[2]||(n[2]=a=>t.isCartOpen=!t.isCartOpen),class:"relative group"},[vo,t.totalItems?(b(),P("span",mo,O(t.totalItems),1)):D("",!0)])])]),T(t.Drawer,{modelValue:t.isSidenavOpen,"onUpdate:modelValue":n[3]||(n[3]=a=>t.isSidenavOpen=a),"has-close-button":!1,position:"absolute",class:$(t.isSticky?"mt-2 md:mt-3":"mt-3 sm:mt-4 md:mt-5"),style:qe({height:`calc(100vh - ${t.positionY}px + .5rem)`})},{default:M(()=>[T(t.ShopSidenav,$e({class:"bg-white pt-6"},{categoryTrees:t.categoryTrees}),null,16)]),_:1},8,["modelValue","class","style"]),T(t.Drawer,{modelValue:t.isSearchOpen,"onUpdate:modelValue":n[4]||(n[4]=a=>t.isSearchOpen=a),"has-close-button":!1,placement:"top"},{default:M(()=>[T(t.SearchModal)]),_:1},8,["modelValue"]),t.isMounted?(b(),L(ze,{key:0,to:"#teleported-overlap"},[T(t.Drawer,{modelValue:t.isCartOpen,"onUpdate:modelValue":n[5]||(n[5]=a=>t.isCartOpen=a),placement:"end","backdrop-target":"#teleported-overlap"},{default:M(()=>[T(t.CartSidebar)]),_:1},8,["modelValue"])])):D("",!0)],2)}const Po=V(so,[["render",ho]]);export{Po as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let e,s={};const r=(r,n)=>(r=new URL(r+".js",n).href,s[r]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=r,e.onload=s,document.head.appendChild(e)}else e=r,importScripts(r),s()})).then((()=>{let e=s[r];if(!e)throw new Error(`Module ${r} didn’t register its module`);return e})));self.define=(n,i)=>{const o=e||("document"in self?document.currentScript.src:"")||location.href;if(s[o])return;let l={};const a=e=>r(e,o),t={module:{uri:o},exports:l,require:a};s[o]=Promise.all(n.map((e=>t[e]||a(e)))).then((e=>(i(...e),l)))}}define(["./workbox-5e0bf4e4"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"_astro/_...slug_.b19aabfc.css",revision:null},{url:"_astro/_plugin-vue_export-helper.4e6dc3af.js",revision:null},{url:"_astro/api.7f62c1ff.js",revision:null},{url:"_astro/Carousel.533b4b19.js",revision:null},{url:"_astro/client.24201f93.js",revision:null},{url:"_astro/firebase-app.84207480.js",revision:null},{url:"_astro/HeroSlider.359c76cc.js",revision:null},{url:"_astro/hoisted.9d9d7ac4.js",revision:null},{url:"_astro/img.22ad29ec.js",revision:null},{url:"_astro/index.ddc27a3a.js",revision:null},{url:"_astro/modules-info.d6bd555b.js",revision:null},{url:"_astro/PitchBar.75d2999f.js",revision:null},{url:"_astro/preload-helper.cf010ec4.js",revision:null},{url:"_astro/Prices.bd0d3474.js",revision:null},{url:"_astro/ProductShelf.83c66e3e.js",revision:null},{url:"_astro/runtime-dom.esm-bundler.578d6e91.js",revision:null},{url:"_astro/session-utm.744b0db3.js",revision:null},{url:"_astro/ShopHeader.
|
|
1
|
+
if(!self.define){let e,s={};const r=(r,n)=>(r=new URL(r+".js",n).href,s[r]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=r,e.onload=s,document.head.appendChild(e)}else e=r,importScripts(r),s()})).then((()=>{let e=s[r];if(!e)throw new Error(`Module ${r} didn’t register its module`);return e})));self.define=(n,i)=>{const o=e||("document"in self?document.currentScript.src:"")||location.href;if(s[o])return;let l={};const a=e=>r(e,o),t={module:{uri:o},exports:l,require:a};s[o]=Promise.all(n.map((e=>t[e]||a(e)))).then((e=>(i(...e),l)))}}define(["./workbox-5e0bf4e4"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"_astro/_...slug_.b19aabfc.css",revision:null},{url:"_astro/_plugin-vue_export-helper.4e6dc3af.js",revision:null},{url:"_astro/api.7f62c1ff.js",revision:null},{url:"_astro/Carousel.533b4b19.js",revision:null},{url:"_astro/client.24201f93.js",revision:null},{url:"_astro/firebase-app.84207480.js",revision:null},{url:"_astro/HeroSlider.359c76cc.js",revision:null},{url:"_astro/hoisted.9d9d7ac4.js",revision:null},{url:"_astro/img.22ad29ec.js",revision:null},{url:"_astro/index.ddc27a3a.js",revision:null},{url:"_astro/modules-info.d6bd555b.js",revision:null},{url:"_astro/PitchBar.75d2999f.js",revision:null},{url:"_astro/preload-helper.cf010ec4.js",revision:null},{url:"_astro/Prices.bd0d3474.js",revision:null},{url:"_astro/ProductShelf.83c66e3e.js",revision:null},{url:"_astro/runtime-dom.esm-bundler.578d6e91.js",revision:null},{url:"_astro/session-utm.744b0db3.js",revision:null},{url:"_astro/ShopHeader.a06de422.js",revision:null},{url:"_astro/workbox-window.prod.es5.a7b12eab.js",revision:null},{url:"manifest.webmanifest",revision:"138b9c9f495fe815bcec626365e9372e"}],{ignoreURLParametersMatching:[/.*/]}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("/404"))),e.registerRoute(/^\/$/,new e.NetworkFirst,"GET"),e.registerRoute(/\/((?!(?:admin|assets|img)(\/|$))[^.]+)(\.(?!js|css|xml|txt|png|jpg|jpeg|webp|avif|svg|gif)[^.]+)*$/,new e.NetworkFirst({cacheName:"pages",plugins:[new e.ExpirationPlugin({maxEntries:50,purgeOnQuotaError:!0})]}),"GET"),e.registerRoute(/^\/assets\//,new e.StaleWhileRevalidate({cacheName:"assets",plugins:[]}),"GET"),e.registerRoute(/^\/_image$/,new e.StaleWhileRevalidate({cacheName:"optim-images",plugins:[new e.ExpirationPlugin({maxEntries:50,maxAgeSeconds:2592e3,purgeOnQuotaError:!0})]}),"GET"),e.registerRoute(/^\/img\/uploads\/.*\.(?:png|jpg|jpeg|webp|avif|svg|gif)$/,new e.StaleWhileRevalidate({cacheName:"cms-images",plugins:[new e.ExpirationPlugin({maxEntries:20,maxAgeSeconds:2592e3,purgeOnQuotaError:!0})]}),"GET"),e.registerRoute(/^https:\/\/ecomplus\.io/,new e.NetworkFirst({cacheName:"store-api",plugins:[new e.ExpirationPlugin({maxEntries:50,purgeOnQuotaError:!0})]}),"GET"),e.registerRoute(/^https:\/\/(((\w+\.)?ecoms\d)|(ecom[\w-]+(\.\w+)*\.digitaloceanspaces))\.com.*\/imgs\/normal\//,new e.CacheFirst({cacheName:"product-thumbnails",plugins:[new e.ExpirationPlugin({maxEntries:100,maxAgeSeconds:2592e3,purgeOnQuotaError:!0})]}),"GET"),e.registerRoute(/^https:\/\/(((\w+\.)?ecoms\d)|(ecom[\w-]+(\.\w+)*\.digitaloceanspaces))\.com.*\/imgs\/big\//,new e.CacheFirst({cacheName:"product-pictures",plugins:[new e.ExpirationPlugin({maxEntries:10,maxAgeSeconds:604800,purgeOnQuotaError:!0})]}),"GET")}));
|
|
@@ -14,7 +14,7 @@ import 'string-width';
|
|
|
14
14
|
import 'vue';
|
|
15
15
|
import 'vue/server-renderer';
|
|
16
16
|
import '@ecomplus/utils';
|
|
17
|
-
import './pages/_...slug_.astro.
|
|
17
|
+
import './pages/_...slug_.astro.906634b2.mjs';
|
|
18
18
|
import 'node:fs/promises';
|
|
19
19
|
import 'node:path';
|
|
20
20
|
import 'node:url';
|
|
@@ -30,6 +30,6 @@ import '@cloudcommerce/config';
|
|
|
30
30
|
/* empty css */import '@vueuse/core';
|
|
31
31
|
import '@headlessui/vue';
|
|
32
32
|
|
|
33
|
-
const page = () => import('./pages/_...slug_.astro.
|
|
33
|
+
const page = () => import('./pages/_...slug_.astro.906634b2.mjs').then(n => n.h);
|
|
34
34
|
|
|
35
35
|
export { page };
|
|
@@ -14,7 +14,7 @@ import 'string-width';
|
|
|
14
14
|
import 'vue';
|
|
15
15
|
import 'vue/server-renderer';
|
|
16
16
|
import '@ecomplus/utils';
|
|
17
|
-
import './pages/_...slug_.astro.
|
|
17
|
+
import './pages/_...slug_.astro.906634b2.mjs';
|
|
18
18
|
import 'node:fs/promises';
|
|
19
19
|
import 'node:path';
|
|
20
20
|
import 'node:url';
|
|
@@ -14,7 +14,7 @@ import 'string-width';
|
|
|
14
14
|
import 'vue';
|
|
15
15
|
import 'vue/server-renderer';
|
|
16
16
|
import '@ecomplus/utils';
|
|
17
|
-
import './pages/_...slug_.astro.
|
|
17
|
+
import './pages/_...slug_.astro.906634b2.mjs';
|
|
18
18
|
import 'node:fs/promises';
|
|
19
19
|
import 'node:path';
|
|
20
20
|
import 'node:url';
|
|
@@ -30,6 +30,6 @@ import '@cloudcommerce/config';
|
|
|
30
30
|
/* empty css */import '@vueuse/core';
|
|
31
31
|
import '@headlessui/vue';
|
|
32
32
|
|
|
33
|
-
const page = () => import('./pages/endpoint.js.
|
|
33
|
+
const page = () => import('./pages/endpoint.js.ffec1d05.mjs').then(n => n.e);
|
|
34
34
|
|
|
35
35
|
export { page };
|
|
@@ -14,7 +14,7 @@ import 'string-width';
|
|
|
14
14
|
import 'vue';
|
|
15
15
|
import 'vue/server-renderer';
|
|
16
16
|
import '@ecomplus/utils';
|
|
17
|
-
import './pages/_...slug_.astro.
|
|
17
|
+
import './pages/_...slug_.astro.906634b2.mjs';
|
|
18
18
|
import 'node:fs/promises';
|
|
19
19
|
import 'node:path';
|
|
20
20
|
import 'node:url';
|
|
@@ -30,6 +30,6 @@ import '@cloudcommerce/config';
|
|
|
30
30
|
/* empty css */import '@vueuse/core';
|
|
31
31
|
import '@headlessui/vue';
|
|
32
32
|
|
|
33
|
-
const page = () => import('./pages/fallback.astro.
|
|
33
|
+
const page = () => import('./pages/fallback.astro.0a073a86.mjs');
|
|
34
34
|
|
|
35
35
|
export { page };
|
|
@@ -14,7 +14,7 @@ import 'string-width';
|
|
|
14
14
|
import 'vue';
|
|
15
15
|
import 'vue/server-renderer';
|
|
16
16
|
import '@ecomplus/utils';
|
|
17
|
-
import './pages/_...slug_.astro.
|
|
17
|
+
import './pages/_...slug_.astro.906634b2.mjs';
|
|
18
18
|
import 'node:fs/promises';
|
|
19
19
|
import 'node:path';
|
|
20
20
|
import 'node:url';
|
|
@@ -30,6 +30,6 @@ import '@cloudcommerce/config';
|
|
|
30
30
|
/* empty css */import '@vueuse/core';
|
|
31
31
|
import '@headlessui/vue';
|
|
32
32
|
|
|
33
|
-
const page = () => import('./pages/index.astro.
|
|
33
|
+
const page = () => import('./pages/index.astro.fb8fe537.mjs').then(n => n.i);
|
|
34
34
|
|
|
35
35
|
export { page };
|
|
@@ -14,7 +14,7 @@ import 'string-width';
|
|
|
14
14
|
import 'vue';
|
|
15
15
|
import 'vue/server-renderer';
|
|
16
16
|
import '@ecomplus/utils';
|
|
17
|
-
import './pages/_...slug_.astro.
|
|
17
|
+
import './pages/_...slug_.astro.906634b2.mjs';
|
|
18
18
|
import 'node:fs/promises';
|
|
19
19
|
import 'node:path';
|
|
20
20
|
import 'node:url';
|
|
@@ -30,6 +30,6 @@ import '@cloudcommerce/config';
|
|
|
30
30
|
/* empty css */import '@vueuse/core';
|
|
31
31
|
import '@headlessui/vue';
|
|
32
32
|
|
|
33
|
-
const page = () => import('./pages/index.astro.
|
|
33
|
+
const page = () => import('./pages/index.astro.fb8fe537.mjs').then(n => n.a);
|
|
34
34
|
|
|
35
35
|
export { page };
|
|
@@ -615,7 +615,7 @@ async function getImage(transform) {
|
|
|
615
615
|
}
|
|
616
616
|
let loader = (_a = globalThis.astroImage) == null ? void 0 : _a.loader;
|
|
617
617
|
if (!loader) {
|
|
618
|
-
const { default: mod } = await import('./endpoint.js.
|
|
618
|
+
const { default: mod } = await import('./endpoint.js.ffec1d05.mjs').then(n => n.s).catch(() => {
|
|
619
619
|
throw new Error(
|
|
620
620
|
"[@astrojs/image] Builtin image loader not found. (Did you remember to add the integration to your Astro config?)"
|
|
621
621
|
);
|
|
@@ -1499,7 +1499,7 @@ const useStorage = (key, initialValue, storage = globalThis.localStorage) => {
|
|
|
1499
1499
|
return state;
|
|
1500
1500
|
};
|
|
1501
1501
|
|
|
1502
|
-
const storageKey$1 = "
|
|
1502
|
+
const storageKey$1 = "ecomShoppingCart";
|
|
1503
1503
|
const emptyCart = {
|
|
1504
1504
|
items: []
|
|
1505
1505
|
};
|
|
@@ -1867,7 +1867,7 @@ _sfc_main$b.setup = (props, ctx) => {
|
|
|
1867
1867
|
};
|
|
1868
1868
|
const Drawer = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["ssrRender", _sfc_ssrRender$b]]);
|
|
1869
1869
|
|
|
1870
|
-
const storageKey = "
|
|
1870
|
+
const storageKey = "ecomSession";
|
|
1871
1871
|
const emptySession = {
|
|
1872
1872
|
customer: {
|
|
1873
1873
|
display_name: "",
|
|
@@ -3344,6 +3344,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3344
3344
|
const isMounted = ref(false);
|
|
3345
3345
|
onMounted(() => {
|
|
3346
3346
|
isMounted.value = true;
|
|
3347
|
+
watch(totalItems, (newTotalItems, prevTotalItems) => {
|
|
3348
|
+
if (prevTotalItems < newTotalItems) {
|
|
3349
|
+
isCartOpen.value = true;
|
|
3350
|
+
}
|
|
3351
|
+
});
|
|
3347
3352
|
});
|
|
3348
3353
|
const __returned__ = { props, header, isSticky, positionY, categoryTrees, inlineMenuTrees, isSidenavOpen, isSearchOpen, isCartOpen, isMounted, get totalItems() {
|
|
3349
3354
|
return totalItems;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import mime from 'mime';
|
|
2
2
|
import sharp$1 from 'sharp';
|
|
3
|
-
import { B as BaseSSRService, i as isOutputFormatSupportsAlpha } from './_...slug_.astro.
|
|
3
|
+
import { B as BaseSSRService, i as isOutputFormatSupportsAlpha } from './_...slug_.astro.906634b2.mjs';
|
|
4
4
|
|
|
5
5
|
class SharpService extends BaseSSRService {
|
|
6
6
|
async transform(inputBuffer, transform) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { c as createAstro, a as createComponent, r as renderTemplate, m as maybeRenderHead, b as addAttribute, d as renderComponent } from '../astro.2df8d1c5.mjs';
|
|
2
|
-
import { l as loadRouteContext, $ as $$PageHeader, a as $$Base } from './_...slug_.astro.
|
|
2
|
+
import { l as loadRouteContext, $ as $$PageHeader, a as $$Base } from './_...slug_.astro.906634b2.mjs';
|
|
3
3
|
import 'path-to-regexp';
|
|
4
4
|
import 'cookie';
|
|
5
5
|
import '@astrojs/internal-helpers/path';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { c as createAstro, a as createComponent, r as renderTemplate, d as renderComponent, m as maybeRenderHead, b as addAttribute, u as unescapeHTML, F as Fragment$1 } from '../astro.2df8d1c5.mjs';
|
|
2
|
-
import { b as $$Picture, p as parseShippingPhrase, _ as _export_sfc, C as Carousel, c as CarouselControl, d as availableExtraDiscount, e as installmentsOption, f as discountOption, g as loyaltyPointsPrograms, l as loadRouteContext, $ as $$PageHeader, a as $$Base } from './_...slug_.astro.
|
|
2
|
+
import { b as $$Picture, p as parseShippingPhrase, _ as _export_sfc, C as Carousel, c as CarouselControl, d as availableExtraDiscount, e as installmentsOption, f as discountOption, g as loyaltyPointsPrograms, l as loadRouteContext, $ as $$PageHeader, a as $$Base } from './_...slug_.astro.906634b2.mjs';
|
|
3
3
|
import api from '@cloudcommerce/api';
|
|
4
4
|
import { computed, useSSRContext, defineComponent, mergeProps, withCtx, createVNode, withDirectives, vShow, resolveDynamicComponent, createTextVNode, toDisplayString, openBlock, createBlock, Fragment, renderList, renderSlot, createCommentVNode, ref, shallowReactive, resolveComponent, withAsyncContext } from 'vue';
|
|
5
5
|
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderStyle, ssrRenderList, ssrRenderClass, ssrRenderAttr, ssrRenderSlot, ssrRenderVNode, ssrInterpolate } from 'vue/server-renderer';
|