cloudcommerce 2.2.3 → 2.3.1
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/.github/workflows/test-apps.yml +3 -3
- package/CHANGELOG.md +29 -0
- package/action.yml +6 -6
- package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
- package/ecomplus-stores/barra-doce/functions/ssr/package.json +6 -6
- package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
- package/ecomplus-stores/barra-doce/package.json +2 -2
- package/package.json +2 -2
- package/packages/api/package.json +1 -1
- package/packages/apps/affiliate-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/mandae/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/pagarme-v5/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/ci/bunny-config-base.sh +4 -2
- package/packages/cli/config/firestore.rules +3 -0
- package/packages/cli/package.json +1 -1
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +1 -1
- package/packages/eslint/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/lib/firebase/handle-module.js +28 -7
- package/packages/modules/lib/firebase/handle-module.js.map +1 -1
- package/packages/modules/package.json +1 -1
- package/packages/modules/src/firebase/handle-module.ts +37 -9
- package/packages/passport/package.json +1 -1
- package/packages/ssr/lib/lib/cron-ssr-save-views.js +17 -5
- package/packages/ssr/lib/lib/cron-ssr-save-views.js.map +1 -1
- package/packages/ssr/package.json +3 -3
- package/packages/ssr/src/lib/cron-ssr-save-views.ts +17 -8
- package/packages/storefront/dist/client/_astro/AccountPage.3-eqV6OR.js +1 -0
- package/packages/storefront/dist/client/_astro/CartSidebar.-Gy6eqIy.js +1 -0
- package/packages/storefront/dist/client/_astro/HeroSlider.ju9TsLrJ.js +1 -0
- package/packages/storefront/dist/client/_astro/PitchBar.yqD9ycx5.js +1 -0
- package/packages/storefront/dist/client/_astro/Prices.xI1rdM1e.js +1 -0
- package/packages/storefront/dist/client/_astro/ProductDetails.ATGXfGhG.js +7 -0
- package/packages/storefront/dist/client/_astro/ProductShelf.b77WjhZZ.js +1 -0
- package/packages/storefront/dist/client/_astro/ProductShelf.qbTNzuvn.js +1 -0
- package/packages/storefront/dist/client/_astro/QuantitySelector.v7L8EYOR.js +1 -0
- package/packages/storefront/dist/client/_astro/SearchModal.WzDMBjqi.js +1 -0
- package/packages/storefront/dist/client/_astro/SearchShowcase.9gIA4Cq0.js +1 -0
- package/packages/storefront/dist/client/_astro/ShopHeader.Ee4OJr3q.js +7 -0
- package/packages/storefront/dist/client/_astro/{_plugin-vue_export-helper.SO-0jCqa.js → _plugin-vue_export-helper.xATGHWd9.js} +2 -2
- package/packages/storefront/dist/client/_astro/{_slug_.4W7qhV-L.css → _slug_.WkuZ8tvp.css} +1 -1
- package/packages/storefront/dist/client/_astro/afetch.OifQZgwR.js +1 -0
- package/packages/storefront/dist/client/_astro/client.YJ00ta5M.js +1 -0
- package/packages/storefront/dist/client/_astro/customer-session.dSYHWdP4.js +7 -0
- package/packages/storefront/dist/client/_astro/format-money.1_HtF5S2.js +1 -0
- package/packages/storefront/dist/client/_astro/grid-title.pK2Nn3i-.js +1 -0
- package/packages/storefront/dist/client/_astro/hoisted.d2SGwVMl.js +1 -0
- package/packages/storefront/dist/client/_astro/hoisted.x1b7VHef.js +1 -0
- package/packages/storefront/dist/client/_astro/hoisted.xTPkED8g.js +1 -0
- package/packages/storefront/dist/client/_astro/i18n.zhlBzJt8.js +1 -0
- package/packages/storefront/dist/client/_astro/img.AnjeGdy_.js +1 -0
- package/packages/storefront/dist/client/_astro/index.KfrHdfOH.js +1 -0
- package/packages/storefront/dist/client/_astro/index.ShNlAyu1.js +1 -0
- package/packages/storefront/dist/client/_astro/modules-info.HP6478mG.js +1 -0
- package/packages/storefront/dist/client/_astro/name.VA3MEpe0.js +1 -0
- package/packages/storefront/dist/client/_astro/server-data.4C60Esyt.js +1 -0
- package/packages/storefront/dist/client/_astro/sf-utils.c42cbZ9W.js +13 -0
- package/packages/storefront/dist/client/_astro/shopping-cart.v-dB3kHB.js +1 -0
- package/packages/storefront/dist/client/_astro/use-analytics._ef6TM4P.js +1 -0
- package/packages/storefront/dist/client/_astro/use-product-card.nNtSJVtB.js +1 -0
- package/packages/storefront/dist/client/_astro/use-text-value.0OP9HCfP.js +4 -0
- package/packages/storefront/dist/client/{~fallback/index.html → ~fallback.html} +5 -5
- package/packages/storefront/dist/client/{index.html → ~index.html} +7 -7
- package/packages/storefront/dist/server/_noop-middleware.mjs +3 -0
- package/packages/storefront/dist/server/chunks/{CartSidebar_yYIzwp_R.mjs → CartSidebar_blvgfFa-.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/{SearchModal_GvRUZ6ce.mjs → SearchModal_Sktaq643.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/_.._yTK2xBRC.mjs +5 -0
- package/packages/storefront/dist/server/chunks/_page__9PfWVh79.mjs +5 -0
- package/packages/storefront/dist/server/chunks/account_R4bpY7O1.mjs +5 -0
- package/packages/storefront/dist/server/chunks/astro/{assets-service_yXRChsFH.mjs → assets-service_oQ4-9MNg.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/{astro_F4pl3toV.mjs → astro_ECsNQeA2.mjs} +18 -14
- package/packages/storefront/dist/server/chunks/index__PeYBuja.mjs +5 -0
- package/packages/storefront/dist/server/chunks/node_njrZIjT6.mjs +5 -0
- package/packages/storefront/dist/server/chunks/pages/{__z8Igc_-f.mjs → __XOsz50la.mjs} +994 -922
- package/packages/storefront/dist/server/chunks/pages/{_page__-V1Q-Ymk.mjs → _page__cIw_KTpN.mjs} +14 -12
- package/packages/storefront/dist/server/chunks/pages/{account_frSUn7gD.mjs → account_l-FHyDJd.mjs} +3 -2
- package/packages/storefront/dist/server/chunks/pages/{index_QqJiJpFy.mjs → index_KP7Gn0ld.mjs} +3 -2
- package/packages/storefront/dist/server/chunks/pages/{node_FoDIj_f7.mjs → node_FoLtkdH1.mjs} +4 -4
- package/packages/storefront/dist/server/chunks/pages/{~fallback_t0lNhRm9.mjs → ~fallback_KPp6Nh_p.mjs} +3 -2
- package/packages/storefront/dist/server/chunks/~fallback_p7P7NIL5.mjs +5 -0
- package/packages/storefront/dist/server/entry.mjs +289 -166
- package/packages/storefront/dist/server/manifest_E6KbHQrT.mjs +202 -0
- package/packages/storefront/dist/server/renderers.mjs +1 -1
- package/packages/storefront/dist/server/static-builds.csv +34 -34
- package/packages/storefront/package.json +3 -3
- package/packages/storefront/src/helpers/afetch.ts +22 -5
- package/packages/storefront/src/lib/composables/use-pagination.ts +1 -1
- package/packages/storefront/src/lib/composables/use-shipping-calculator.ts +273 -0
- package/packages/storefront/src/lib/scripts/git-cms-auth.ts +3 -0
- package/packages/storefront/src/lib/scripts/push-analytics-events.ts +7 -2
- package/packages/storefront/src/lib/scripts/sso-ecom.ts +0 -0
- package/packages/storefront/src/lib/ssr-context.ts +3 -1
- package/packages/storefront/src/lib/state/modules-info.ts +34 -10
- package/packages/test-base/package.json +1 -1
- package/packages/types/index.ts +82 -53
- package/packages/types/package.json +1 -1
- package/packages/storefront/dist/client/_astro/AccountPage.HcKW6HTE.js +0 -1
- package/packages/storefront/dist/client/_astro/CartSidebar.osvr0MUo.js +0 -1
- package/packages/storefront/dist/client/_astro/HeroSlider.I5mC8JdX.js +0 -1
- package/packages/storefront/dist/client/_astro/PitchBar.xC4J7MDy.js +0 -1
- package/packages/storefront/dist/client/_astro/Prices.Jt09rVKv.js +0 -1
- package/packages/storefront/dist/client/_astro/ProductDetails.oouZY3cL.js +0 -7
- package/packages/storefront/dist/client/_astro/ProductShelf.dYlXuNId.js +0 -1
- package/packages/storefront/dist/client/_astro/ProductShelf.vGE0E3Qf.js +0 -1
- package/packages/storefront/dist/client/_astro/QuantitySelector.OL4MN-C_.js +0 -1
- package/packages/storefront/dist/client/_astro/SearchModal.d8lbvLay.js +0 -1
- package/packages/storefront/dist/client/_astro/SearchShowcase.ynowXX4j.js +0 -1
- package/packages/storefront/dist/client/_astro/ShopHeader.l4KJGvUd.js +0 -7
- package/packages/storefront/dist/client/_astro/afetch.5c8VmT0-.js +0 -1
- package/packages/storefront/dist/client/_astro/client.ZhEmw4hZ.js +0 -1
- package/packages/storefront/dist/client/_astro/customer-session.TRPGDX3c.js +0 -7
- package/packages/storefront/dist/client/_astro/format-money.iK5LGydz.js +0 -1
- package/packages/storefront/dist/client/_astro/grid-title.vGKBy72g.js +0 -1
- package/packages/storefront/dist/client/_astro/hoisted.8pwSenCN.js +0 -1
- package/packages/storefront/dist/client/_astro/hoisted.SLwcAI01.js +0 -1
- package/packages/storefront/dist/client/_astro/hoisted.gqV7f6f3.js +0 -1
- package/packages/storefront/dist/client/_astro/i18n.Lxnz1oF-.js +0 -1
- package/packages/storefront/dist/client/_astro/img.WnsidxCx.js +0 -1
- package/packages/storefront/dist/client/_astro/index.R7A-Pg5V.js +0 -1
- package/packages/storefront/dist/client/_astro/index.q6KIyKlJ.js +0 -1
- package/packages/storefront/dist/client/_astro/modules-info.WWsUqEPZ.js +0 -1
- package/packages/storefront/dist/client/_astro/name.urFqJ5yn.js +0 -1
- package/packages/storefront/dist/client/_astro/runtime-core.esm-bundler.XTSAdOlw.js +0 -13
- package/packages/storefront/dist/client/_astro/sf-utils.luvTU5uS.js +0 -1
- package/packages/storefront/dist/client/_astro/shopping-cart.ATTXCPd0.js +0 -1
- package/packages/storefront/dist/client/_astro/use-analytics.WpkjGsWi.js +0 -1
- package/packages/storefront/dist/client/_astro/use-product-card.BhUXhJIp.js +0 -1
- package/packages/storefront/dist/client/_astro/use-text-value.XE_A2nDM.js +0 -4
- package/packages/storefront/dist/client/app/account/index.html +0 -58
- package/packages/storefront/dist/client/app/index.html +0 -98
- package/packages/storefront/dist/client/blog/1/index.html +0 -86
- package/packages/storefront/dist/client/macbook-apple-pro-15.4-intel-core-i7-2.6ghz-ram-16gb-ssd-512gb-mr972ll/a-prata/index.html +0 -93
- package/packages/storefront/dist/client/monitores-gamer/index.html +0 -95
- package/packages/storefront/dist/client/mouse-gamer-corsair-optico-harpoon-rgb-ch-9301011-na/index.html +0 -93
- package/packages/storefront/dist/client/p/contato/index.html +0 -90
- package/packages/storefront/dist/client/p/terms/index.html +0 -101
- package/packages/storefront/dist/client/posts/3/index.html +0 -101
- package/packages/storefront/dist/client/posts/4/index.html +0 -101
- package/packages/storefront/dist/server/_empty-middleware.mjs +0 -3
- package/packages/storefront/dist/server/chunks/_.._Lq3r7hpv.mjs +0 -6
- package/packages/storefront/dist/server/chunks/_page__LqbeNfr1.mjs +0 -6
- package/packages/storefront/dist/server/chunks/account_4n4rpirV.mjs +0 -6
- package/packages/storefront/dist/server/chunks/index_SwXtE1IM.mjs +0 -6
- package/packages/storefront/dist/server/chunks/node_Nzz44v5l.mjs +0 -6
- package/packages/storefront/dist/server/chunks/~fallback_EWqi0UyU.mjs +0 -6
- package/packages/storefront/dist/server/manifest_ZHJUD8_m.mjs +0 -196
|
@@ -11,6 +11,8 @@ import afetch from '../../helpers/afetch';
|
|
|
11
11
|
import parseGtagToFbq from '../../analytics/event-to-fbq';
|
|
12
12
|
import parseGtagToTtq from '../../analytics/event-to-ttq';
|
|
13
13
|
|
|
14
|
+
const deployRand = import.meta.env.DEPLOY_RAND || '_';
|
|
15
|
+
|
|
14
16
|
type AnalyticsEvent = {
|
|
15
17
|
type: 'gtag' | 'fbq' | 'ttq',
|
|
16
18
|
name: string,
|
|
@@ -19,7 +21,7 @@ type AnalyticsEvent = {
|
|
|
19
21
|
let eventsToSend: Array<AnalyticsEvent> = [];
|
|
20
22
|
const _sendServerEvents = useDebounceFn(() => {
|
|
21
23
|
afetch(`/_analytics`, {
|
|
22
|
-
method: '
|
|
24
|
+
method: 'POST',
|
|
23
25
|
body: {
|
|
24
26
|
...getAnalyticsContext(),
|
|
25
27
|
events: eventsToSend,
|
|
@@ -32,7 +34,10 @@ const sendServerEvent = (analyticsEvent: AnalyticsEvent) => {
|
|
|
32
34
|
_sendServerEvents();
|
|
33
35
|
};
|
|
34
36
|
|
|
35
|
-
if (
|
|
37
|
+
if (
|
|
38
|
+
!import.meta.env.SSR
|
|
39
|
+
&& !window.location.search.includes(`__isrV=${deployRand}`)
|
|
40
|
+
) {
|
|
36
41
|
useAnalytics();
|
|
37
42
|
watchGtagEvents(async (evMessage) => {
|
|
38
43
|
const { name, params } = evMessage.event;
|
|
File without changes
|
|
@@ -221,7 +221,9 @@ const loadRouteContext = async (
|
|
|
221
221
|
} else {
|
|
222
222
|
Astro.locals.assetsPrefix = '';
|
|
223
223
|
}
|
|
224
|
-
if (
|
|
224
|
+
if (isPreview) {
|
|
225
|
+
setResponseCache(Astro, 0);
|
|
226
|
+
} else if (urlPath === '/~fallback') {
|
|
225
227
|
setResponseCache(Astro, 3600, 86400);
|
|
226
228
|
} else if (isHomepage) {
|
|
227
229
|
setResponseCache(Astro, 180);
|
|
@@ -2,6 +2,9 @@ import type {
|
|
|
2
2
|
ListPaymentsResponse,
|
|
3
3
|
CalculateShippingResponse,
|
|
4
4
|
ApplyDiscountResponse,
|
|
5
|
+
ModuleApiEndpoint,
|
|
6
|
+
ModuleApiParams,
|
|
7
|
+
ModuleApiResult,
|
|
5
8
|
} from '@cloudcommerce/types';
|
|
6
9
|
import { reactive, computed } from 'vue';
|
|
7
10
|
import { formatMoney } from '@ecomplus/utils';
|
|
@@ -32,6 +35,32 @@ loadingGlobalInfoPreset.then((modulesInfoPreset) => {
|
|
|
32
35
|
Object.assign(modulesInfo, modulesInfoPreset);
|
|
33
36
|
});
|
|
34
37
|
|
|
38
|
+
type FetchModule = <M extends ModuleApiEndpoint>(
|
|
39
|
+
modName: M,
|
|
40
|
+
reqOptions?: {
|
|
41
|
+
method: 'GET',
|
|
42
|
+
params?: Record<string, string | number | (string | number)[]>,
|
|
43
|
+
} | {
|
|
44
|
+
method: 'POST',
|
|
45
|
+
params?: {
|
|
46
|
+
app_id?: number,
|
|
47
|
+
skip_ids?: number | number[],
|
|
48
|
+
},
|
|
49
|
+
body: ModuleApiParams<M>,
|
|
50
|
+
},
|
|
51
|
+
) => Promise<Omit<Response, 'json'> & {
|
|
52
|
+
json(): Promise<ModuleApiResult<M>>,
|
|
53
|
+
}>;
|
|
54
|
+
|
|
55
|
+
export const fetchModule: FetchModule = (modName, reqOptions) => {
|
|
56
|
+
const { hostname } = window.location;
|
|
57
|
+
const { domain } = globalThis.$storefront.settings;
|
|
58
|
+
const modulesBaseUri = hostname !== 'localhost' && hostname !== '127.0.0.1'
|
|
59
|
+
? `https://${domain}/_api/modules/`
|
|
60
|
+
: '/_api/modules/';
|
|
61
|
+
return afetch(`${modulesBaseUri}${modName}`, reqOptions);
|
|
62
|
+
};
|
|
63
|
+
|
|
35
64
|
if (!import.meta.env.SSR) {
|
|
36
65
|
const storageKey = 'MODULES_INFO';
|
|
37
66
|
const sessionJson = sessionStorage.getItem(storageKey);
|
|
@@ -50,8 +79,8 @@ if (!import.meta.env.SSR) {
|
|
|
50
79
|
}
|
|
51
80
|
|
|
52
81
|
const fetchInfo = () => {
|
|
53
|
-
const modulesToFetch: { modName:
|
|
54
|
-
['list_payments', 'calculate_shipping'].forEach((modName) => {
|
|
82
|
+
const modulesToFetch: { modName: ModuleApiEndpoint, reqOptions?: any }[] = [];
|
|
83
|
+
(['list_payments', 'calculate_shipping'] as const).forEach((modName) => {
|
|
55
84
|
if (!Object.keys(modulesInfo[modName]).length) {
|
|
56
85
|
modulesToFetch.push({ modName });
|
|
57
86
|
}
|
|
@@ -60,19 +89,14 @@ if (!import.meta.env.SSR) {
|
|
|
60
89
|
modulesToFetch.push({
|
|
61
90
|
modName: 'apply_discount',
|
|
62
91
|
reqOptions: {
|
|
63
|
-
method: '
|
|
92
|
+
method: 'POST',
|
|
64
93
|
body: { utm },
|
|
65
94
|
},
|
|
66
95
|
});
|
|
67
96
|
}
|
|
68
97
|
|
|
69
98
|
modulesToFetch.forEach(({ modName, reqOptions }) => {
|
|
70
|
-
|
|
71
|
-
const { domain } = globalThis.$storefront.settings;
|
|
72
|
-
const modulesBaseUri = hostname !== 'localhost' && hostname !== '127.0.0.1'
|
|
73
|
-
? `https://${domain}/_api/modules/`
|
|
74
|
-
: '/_api/modules/';
|
|
75
|
-
afetch(`${modulesBaseUri}${modName}`, reqOptions)
|
|
99
|
+
fetchModule(modName, reqOptions)
|
|
76
100
|
.then(async (response) => {
|
|
77
101
|
if (response.ok) {
|
|
78
102
|
const modInfo = {};
|
|
@@ -108,7 +132,7 @@ if (!import.meta.env.SSR) {
|
|
|
108
132
|
field = 'discount_option';
|
|
109
133
|
val = data[field];
|
|
110
134
|
if (val && (!modInfo[field] || val.value > modInfo[field].value)) {
|
|
111
|
-
data.payment_gateways.forEach(({ discount }) => {
|
|
135
|
+
(data as ListPaymentsResponse).payment_gateways.forEach(({ discount }) => {
|
|
112
136
|
if (
|
|
113
137
|
discount && discount.apply_at !== 'freight'
|
|
114
138
|
&& discount.value === val.value
|
package/packages/types/index.ts
CHANGED
|
@@ -38,7 +38,47 @@ import type { CreateTransactionParams } from './modules/create_transaction:param
|
|
|
38
38
|
import type { CreateTransactionResponse } from './modules/create_transaction:response';
|
|
39
39
|
import type { CheckoutBody } from './modules/@checkout:params';
|
|
40
40
|
|
|
41
|
-
type
|
|
41
|
+
export type {
|
|
42
|
+
Products,
|
|
43
|
+
Categories,
|
|
44
|
+
Brands,
|
|
45
|
+
Collections,
|
|
46
|
+
Grids,
|
|
47
|
+
Carts,
|
|
48
|
+
Orders,
|
|
49
|
+
Customers,
|
|
50
|
+
Stores,
|
|
51
|
+
Applications,
|
|
52
|
+
Authentications,
|
|
53
|
+
ProductSet,
|
|
54
|
+
CategorySet,
|
|
55
|
+
BrandSet,
|
|
56
|
+
CollectionSet,
|
|
57
|
+
GridSet,
|
|
58
|
+
CartSet,
|
|
59
|
+
OrderSet,
|
|
60
|
+
CustomerSet,
|
|
61
|
+
StoreSet,
|
|
62
|
+
ApplicationSet,
|
|
63
|
+
AuthenticationSet,
|
|
64
|
+
Resource,
|
|
65
|
+
ResourceId,
|
|
66
|
+
ResourceListResult,
|
|
67
|
+
SearchItem,
|
|
68
|
+
SearchResult,
|
|
69
|
+
EventsResult,
|
|
70
|
+
ApplyDiscountParams,
|
|
71
|
+
ApplyDiscountResponse,
|
|
72
|
+
CalculateShippingParams,
|
|
73
|
+
CalculateShippingResponse,
|
|
74
|
+
ListPaymentsParams,
|
|
75
|
+
ListPaymentsResponse,
|
|
76
|
+
CreateTransactionParams,
|
|
77
|
+
CreateTransactionResponse,
|
|
78
|
+
CheckoutBody,
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export type ApiEventName = 'orders-new'
|
|
42
82
|
| 'orders-anyStatusSet'
|
|
43
83
|
| 'orders-paid'
|
|
44
84
|
| 'orders-readyForShipping'
|
|
@@ -54,7 +94,7 @@ type ApiEventName = 'orders-new'
|
|
|
54
94
|
| 'customers-new'
|
|
55
95
|
| 'applications-dataSet';
|
|
56
96
|
|
|
57
|
-
type AppEventsPayload = {
|
|
97
|
+
export type AppEventsPayload = {
|
|
58
98
|
evName: ApiEventName,
|
|
59
99
|
apiEvent: EventsResult<'events/orders'>['result'][0],
|
|
60
100
|
apiDoc: Record<string, any>,
|
|
@@ -67,20 +107,54 @@ type AppEventsPayload = {
|
|
|
67
107
|
isInternal?: boolean,
|
|
68
108
|
};
|
|
69
109
|
|
|
70
|
-
type AppModuleName = 'apply_discount'
|
|
110
|
+
export type AppModuleName = 'apply_discount'
|
|
71
111
|
| 'calculate_shipping'
|
|
72
112
|
| 'list_payments'
|
|
73
113
|
| 'create_transaction';
|
|
74
114
|
|
|
75
|
-
type AppModuleBody = {
|
|
115
|
+
export type AppModuleBody<M extends AppModuleName | undefined = undefined> = {
|
|
76
116
|
storeId: number,
|
|
77
117
|
module: AppModuleName,
|
|
78
|
-
params:
|
|
79
|
-
|
|
80
|
-
|
|
118
|
+
params:
|
|
119
|
+
M extends 'list_payments' ? ListPaymentsParams :
|
|
120
|
+
M extends 'calculate_shipping' ? CalculateShippingParams :
|
|
121
|
+
M extends 'apply_discount' ? ApplyDiscountParams :
|
|
122
|
+
M extends 'create_transaction' ? CreateTransactionParams :
|
|
123
|
+
Record<string, any>,
|
|
81
124
|
application: Applications,
|
|
82
125
|
};
|
|
83
126
|
|
|
127
|
+
export type AppModuleResponse<M extends AppModuleName | undefined = undefined> =
|
|
128
|
+
M extends 'list_payments' ? ListPaymentsResponse :
|
|
129
|
+
M extends 'calculate_shipping' ? CalculateShippingResponse :
|
|
130
|
+
M extends 'apply_discount' ? ApplyDiscountResponse :
|
|
131
|
+
M extends 'create_transaction' ? CreateTransactionResponse :
|
|
132
|
+
Record<string, any>;
|
|
133
|
+
|
|
134
|
+
export type ModuleApiEndpoint = Exclude<AppModuleName, 'create_transaction'> | '@checkout';
|
|
135
|
+
|
|
136
|
+
export type ModuleApiParams<M extends ModuleApiEndpoint> =
|
|
137
|
+
M extends 'list_payments' ? ListPaymentsParams :
|
|
138
|
+
M extends 'calculate_shipping' ? CalculateShippingParams :
|
|
139
|
+
M extends 'apply_discount' ? ApplyDiscountParams :
|
|
140
|
+
M extends '@checkout' ? CheckoutBody :
|
|
141
|
+
never;
|
|
142
|
+
|
|
143
|
+
export type ModuleApiResult<M extends ModuleApiEndpoint> = {
|
|
144
|
+
result: {
|
|
145
|
+
_id: Applications['_id'],
|
|
146
|
+
app_id: Applications['app_id'],
|
|
147
|
+
took: number,
|
|
148
|
+
version: Applications['version'],
|
|
149
|
+
validated: boolean,
|
|
150
|
+
response_errors: null | string,
|
|
151
|
+
error: boolean,
|
|
152
|
+
error_message: null | string,
|
|
153
|
+
response: M extends AppModuleName ? AppModuleResponse<M> : Record<string, any>,
|
|
154
|
+
}[],
|
|
155
|
+
meta: ModuleApiParams<M>,
|
|
156
|
+
};
|
|
157
|
+
|
|
84
158
|
type PaymentMethodFlag = 'pix'
|
|
85
159
|
| 'visa'
|
|
86
160
|
| 'mastercard'
|
|
@@ -91,7 +165,7 @@ type PaymentMethodFlag = 'pix'
|
|
|
91
165
|
| 'diners'
|
|
92
166
|
| 'discover';
|
|
93
167
|
|
|
94
|
-
type SettingsContent = {
|
|
168
|
+
export type SettingsContent = {
|
|
95
169
|
domain: string,
|
|
96
170
|
name: string,
|
|
97
171
|
description: string,
|
|
@@ -147,48 +221,3 @@ type SettingsContent = {
|
|
|
147
221
|
favoritesUrl?: string,
|
|
148
222
|
metafields?: Record<string, any>,
|
|
149
223
|
};
|
|
150
|
-
|
|
151
|
-
export type {
|
|
152
|
-
Products,
|
|
153
|
-
Categories,
|
|
154
|
-
Brands,
|
|
155
|
-
Collections,
|
|
156
|
-
Grids,
|
|
157
|
-
Carts,
|
|
158
|
-
Orders,
|
|
159
|
-
Customers,
|
|
160
|
-
Stores,
|
|
161
|
-
Applications,
|
|
162
|
-
Authentications,
|
|
163
|
-
ProductSet,
|
|
164
|
-
CategorySet,
|
|
165
|
-
BrandSet,
|
|
166
|
-
CollectionSet,
|
|
167
|
-
GridSet,
|
|
168
|
-
CartSet,
|
|
169
|
-
OrderSet,
|
|
170
|
-
CustomerSet,
|
|
171
|
-
StoreSet,
|
|
172
|
-
ApplicationSet,
|
|
173
|
-
AuthenticationSet,
|
|
174
|
-
Resource,
|
|
175
|
-
ResourceId,
|
|
176
|
-
ResourceListResult,
|
|
177
|
-
SearchItem,
|
|
178
|
-
SearchResult,
|
|
179
|
-
EventsResult,
|
|
180
|
-
ApiEventName,
|
|
181
|
-
AppEventsPayload,
|
|
182
|
-
AppModuleName,
|
|
183
|
-
AppModuleBody,
|
|
184
|
-
ApplyDiscountParams,
|
|
185
|
-
ApplyDiscountResponse,
|
|
186
|
-
CalculateShippingParams,
|
|
187
|
-
CalculateShippingResponse,
|
|
188
|
-
ListPaymentsParams,
|
|
189
|
-
ListPaymentsResponse,
|
|
190
|
-
CreateTransactionParams,
|
|
191
|
-
CreateTransactionResponse,
|
|
192
|
-
CheckoutBody,
|
|
193
|
-
SettingsContent,
|
|
194
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
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.TRPGDX3c.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.luvTU5uS.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 +0,0 @@
|
|
|
1
|
-
import{_ as b,w as x}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{f as C}from"./modules-info.WWsUqEPZ.js";import{p as I,r as S,s as w,t as V}from"./shopping-cart.ATTXCPd0.js";import{Q as P,C as F}from"./QuantitySelector.OL4MN-C_.js";import{P as v}from"./Prices.Jt09rVKv.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.luvTU5uS.js";import"./format-money.iK5LGydz.js";import"./price.Easct8WC.js";import"./customer-session.TRPGDX3c.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 +0,0 @@
|
|
|
1
|
-
import{_ as w,v as B}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{p as f}from"./modules-info.WWsUqEPZ.js";import{c as d,d as T,M as x,N as r,O as l,U as c,V as o,Z as S,T as b,$ as v,P as g,S as y,a0 as C,Q as m,a as H,H as L,W as N,R as _,X as P,Y as V,a1 as j}from"./runtime-core.esm-bundler.XTSAdOlw.js";import"./afetch.5c8VmT0-.js";import"./sf-utils.luvTU5uS.js";import"./format-money.iK5LGydz.js";import"./price.Easct8WC.js";const z=s=>{const a=d(()=>s.title?f(s.title).value:""),t=d(()=>s.subtitle?f(s.subtitle).value:""),e=d(()=>s.buttonText?f(s.buttonText).value:""),i=d(()=>!!(a.value||t.value||e.value));return{parsedTitle:a,parsedSubtitle:t,parsedButtonText:e,hasHeader:i}},M=T({__name:"Banner",props:{img:{},alt:{},mobileImg:{},href:{},title:{},subtitle:{},buttonLink:{},buttonText:{},headingTag:{default:"h3"}},setup(s,{expose:a}){a();const t=s,{hasHeader:e,parsedTitle:i,parsedSubtitle:p,parsedButtonText:n}=z(t),u={props:t,hasHeader:e,parsedTitle:i,parsedSubtitle:p,parsedButtonText:n};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),D={key:0,class:"mb-3 p-12 sm:mb-0 xl:ps-32"},O={key:1,class:"mt-4 text-lg md:mt-6"};function A(s,a,t,e,i,p){const n=x("ALink");return r(),l("div",{class:b(["mx-auto overflow-x-hidden",e.hasHeader?"grid grid-cols-1 sm:grid-cols-2 items-center":null])},[c(n,{href:t.href,class:b(e.hasHeader?"sm:order-last [&_img]:max-w-full sm:[&_img]:max-w-none [&_img]:aspect-video sm:[&_img]:aspect-[2.5] [&_img]:object-cover":"[&_img]:max-w-full")},{default:o(()=>[S(s.$slots,"picture")]),_:3},8,["href","class"]),e.hasHeader?(r(),l("div",D,[e.parsedTitle?(r(),v(C(t.headingTag),{key:0,class:"ui-title mt-1"},{default:o(()=>[y(g(e.parsedTitle),1)]),_:1})):m("",!0),e.parsedSubtitle?(r(),l("p",O,g(e.parsedSubtitle),1)):m("",!0),e.parsedButtonText?(r(),v(n,{key:2,href:t.buttonLink,class:"ui-btn-lg ui-btn-contrast mt-7 min-w-[150px] md:mt-10"},{default:o(()=>[y(g(e.parsedButtonText),1)]),_:1},8,["href"])):m("",!0)])):m("",!0)],2)}const E=w(M,[["render",A]]),F=T({__name:"HeroSlider",props:{autoplay:{},slides:{}},setup(s,{expose:a}){a();const t=H(!1);L(()=>{t.value=!0});const e={isMounted:t,Banner:E};return Object.defineProperty(e,"__isScriptSetup",{enumerable:!1,value:!0}),e}}),I={class:"relative mx-auto mb-9 md:mb-12"},Q={class:"absolute bottom-5 right-5 z-10 flex w-screen items-center justify-end xl:left-1/2 xl:right-auto xl:-ms-[640px] xl:max-w-screen-xl"},R=_("i",{class:"i-arrow-right rotate-180"},null,-1),U=_("i",{class:"i-arrow-right"},null,-1);function W(s,a,t,e,i,p){const n=x("CarouselControl"),u=x("Carousel");return r(),l("section",I,[c(u,{autoplay:t.autoplay,class:"secondary [&>*]:items-center"},{controls:o(()=>[N(_("div",Q,[_("div",{class:b(["text-primary relative h-10 w-20 rounded-full bg-white/50 shadow-sm ring-1 ring-black/5 transition-opacity",e.isMounted?"opacity-100":"opacity-20 [&>*]:cursor-wait"])},[c(n,{class:"hover:bg-primary/10 size-10 rounded-full","is-prev":""},{default:o(()=>[R]),_:1}),c(n,{class:"hover:bg-primary/10 size-10 rounded-full"},{default:o(()=>[U]),_:1})],2)],512),[[B,t.slides.length>1]])]),default:o(()=>[(r(!0),l(P,null,V(t.slides,(k,h)=>(r(),l("li",{key:h,class:"shrink-0 basis-full"},[c(e.Banner,j({...k,headingTag:h===0?"h2":"h3"},{class:"w-screen max-w-screen-2xl"}),{picture:o(()=>[S(s.$slots,`picture-${h}`)]),_:2},1040)]))),128))]),_:3},8,["autoplay"])])}const $=w(F,[["render",W]]);export{$ as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as C,v as g}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{p as x}from"./modules-info.WWsUqEPZ.js";import{s as b,c as m,d as w,O as r,R as h,U as i,V as p,M as u,N as l,W as S,X as y,Y as B,T as k,Q as V}from"./runtime-core.esm-bundler.XTSAdOlw.js";import"./afetch.5c8VmT0-.js";import"./sf-utils.luvTU5uS.js";import"./format-money.iK5LGydz.js";import"./price.Easct8WC.js";function L(t,e){{const s=btoa(JSON.stringify({filename:t}));window.parent.postMessage(JSON.parse(JSON.stringify({type:"open",filename:t,id:s})),window.location.origin),window.addEventListener("message",n=>{n.data.id===s&&e(n.data.data)})}}const N=t=>{const e=b(null);return window.$isCmsPreview&&L(t,s=>{e.value=s}),{liveContent:e}},P=t=>{const e={slides:[]};return t.header?.pitchBar&&(e.slides=t.header.pitchBar),e},O=t=>{const{liveContent:e}=N("layout"),s=m(()=>(e.value?P(e.value).slides:t.slides).map(({html:o})=>x(o).value.replace(/<\/?p>/g,"").replace(/<(\/?d-md)>/g,"<$1>"))),n=m(()=>s.value.filter(a=>a).length);return{parsedContents:s,countValidSlides:n}},M=w({__name:"PitchBar",props:{slides:{}},setup(t,{expose:e}){e();const s=t,{parsedContents:n,countValidSlides:a}=O(s),o={props:s,parsedContents:n,countValidSlides:a};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),J={class:"bg-base-100 relative z-20"},T={class:"container mx-auto px-3 py-1 md:w-2/3"},z=["innerHTML"],A={class:"text-base-400 text-xl leading-none"};function E(t,e,s,n,a,o){const f=u("ALink"),_=u("CarouselControl"),v=u("Carousel");return l(),r("div",J,[h("div",T,[i(v,{autoplay:n.countValidSlides>1?7e3:void 0},{controls:p(()=>[S(h("div",A,[i(_,{class:"bg-base-100 hover:text-base-700 pr-2","is-prev":""}),i(_,{class:"bg-base-100 hover:text-base-700 pl-2"})],512),[[g,n.countValidSlides>1]])]),default:p(()=>[(l(!0),r(y,null,B(s.slides,(c,d)=>(l(),r("li",{key:d,class:"h-full shrink-0 basis-full text-center"},[i(f,{href:c.href,target:c.target,class:k(["inline-block px-8",c.href?"hover:underline":null])},{default:p(()=>[n.parsedContents[d]?(l(),r("span",{key:0,innerHTML:n.parsedContents[d],class:"text-base-800 prose text-sm"},null,8,z)):V("",!0)]),_:2},1032,["href","target","class"])]))),128))]),_:1},8,["autoplay"])])])}const W=C(M,[["render",E]]);export{W as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as W}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{a as A,i as S,d as z,l as M}from"./modules-info.WWsUqEPZ.js";import{c as s,d as T,M as E,N as o,O as i,P as r,Q as c,R as h,S as N,T as C,U as B,V as L}from"./runtime-core.esm-bundler.XTSAdOlw.js";import{g,c as F}from"./price.Easct8WC.js";const j=(a,l)=>{const{type:n,value:e}=l;let d;return e?(n==="percentage"?d=a*((100-e)/100):d=a-e,d>0?d:0):a},R=a=>{const l=s(()=>a.product||{price:a.price||0,base_price:a.basePrice}),n=s(()=>{const{variations:t}=l.value;if(t){const u=g(l.value);for(let P=0;P<t.length;P++)if(g({...l.value,...t[P]})>u)return!0}return!1}),e=s(()=>{const t=g(l.value),u=A.value;return u&&(!u.min_amount||t>u.min_amount)?j(t,u):t}),d=s(()=>{if(F(l.value))return l.value.base_price;const t=g(l.value);return t>e.value?t:0}),_=s(()=>a.installmentsOption||S.value||{max_number:1}),m=s(()=>{if(_.value.max_number<=1)return 1;const t=_.value.min_installment||5,u=Math.floor(e.value/t);return Math.min(u,_.value.max_number)}),b=s(()=>_.value.monthly_interest||0),k=s(()=>{if(m.value>=2){if(!b.value)return e.value/m.value;const t=b.value/100;return e.value*t/(1-(1+t)**-m.value)}return 0}),f=s(()=>{const t=a.discountOption||z.value;return t&&(!t.min_amount||t.min_amount<=e.value)&&(!a.isAmountTotal||t.apply_at==="total")?t:{}}),O=s(()=>{const{label:t}=f.value;return t?t.includes(" ")?t:`via ${t}`:""}),V=s(()=>j(e.value,f.value)),v=s(()=>{if(a.loyaltyPointsProgram)return a.loyaltyPointsProgram;const t=M.value;if(t){const u=Object.keys(t);for(let P=0;P<u.length;P++){const p=t[u[P]];if(p?.earn_percentage&&p.earn_percentage>0)return p}}return{ratio:0}}),y=s(()=>v.value.min_subtotal_to_earn||0),w=s(()=>v.value.name||""),D=s(()=>v.value.earn_percentage||0),x=s(()=>D.value*v.value.ratio),I=s(()=>x.value>=1?e.value*(x.value/100):0);return{hasVariedPrices:n,salePrice:e,comparePrice:d,installmentsObject:_,installmentsNumber:m,monthlyInterest:b,installmentValue:k,discountObject:f,discountLabel:O,priceWithDiscount:V,pointsProgramObject:v,pointsMinPrice:y,pointsProgramName:w,earnPointsPercentage:D,cashbackPercentage:x,cashbackValue:I}},Q=T({__name:"Prices",props:{isBig:{type:Boolean},isLiteral:{type:Boolean},hasCashback:{type:Boolean,default:!0},hasPriceOptions:{type:Boolean,default:!0},product:{},price:{},basePrice:{},isAmountTotal:{type:Boolean},installmentsOption:{},discountOption:{},loyaltyPointsProgram:{}},setup(a,{expose:l}){l();const n=a,{hasVariedPrices:e,salePrice:d,comparePrice:_,cashbackPercentage:m,cashbackValue:b,installmentsNumber:k,monthlyInterest:f,installmentValue:O,priceWithDiscount:V,discountLabel:v}=R(n),y={props:n,hasVariedPrices:e,salePrice:d,comparePrice:_,cashbackPercentage:m,cashbackValue:b,installmentsNumber:k,monthlyInterest:f,installmentValue:O,priceWithDiscount:V,discountLabel:v};return Object.defineProperty(y,"__isScriptSetup",{enumerable:!1,value:!0}),y}}),U={key:0,class:"text-base-500 mr-1 text-[87%]"},q={key:0},G={key:1},H={key:0},J={key:0,class:"relative z-10"},K=["data-tooltip"],X=h("i",{class:"i-arrow-uturn-left mr-1"},null,-1),Y={class:"font-medium"},Z=h("small",null," cashback",-1),$={key:0},ee={key:0},te={key:1},ae={key:2},ne={key:0},se={key:0},re={key:1};function oe(a,l,n,e,d,_){const m=E("Fade");return o(),i("div",{class:C(["text-base-600 [&>div]:[font-size:90%] [&_small]:lowercase [&_small]:[font-size:92%]",n.isBig?"text-lg":null])},[e.comparePrice?(o(),i("span",U,[n.isLiteral?(o(),i("small",q,r("De "))):c("",!0),h("s",null,r(a.$money(e.comparePrice)),1),n.isLiteral?(o(),i("small",G,r(" Por"))):c("",!0)])):c("",!0),h("strong",{class:C(["text-base-800",n.isBig?"text-4xl block":"inline-block"])},[e.hasVariedPrices?(o(),i("small",H,r("A partir de "))):c("",!0),N(" "+r(a.$money(e.salePrice)),1)],2),B(m,{slide:"down"},{default:L(()=>[e.cashbackValue&&n.hasCashback?(o(),i("div",J,[h("span",{"data-tooltip":"Receba $1 de volta".replace("$1",a.$percentage(e.cashbackPercentage))},[X,h("span",Y,r(a.$money(e.cashbackValue)),1),Z],8,K)])):c("",!0)]),_:1}),B(m,{slide:"down"},{default:L(()=>[e.installmentValue&&n.hasPriceOptions?(o(),i("div",$,[n.isLiteral?(o(),i("small",ee,r("Até "))):c("",!0),N(" "+r(e.installmentsNumber)+"x ",1),n.isLiteral?(o(),i("small",te,r(" De "))):c("",!0),h("span",null,r(a.$money(e.installmentValue)),1),!e.monthlyInterest&&n.isLiteral?(o(),i("small",ae,r(" Sem juros"))):c("",!0)])):c("",!0)]),_:1}),B(m,{slide:"down"},{default:L(()=>[e.priceWithDiscount<e.salePrice&&n.hasPriceOptions?(o(),i("div",ne,[e.discountLabel?c("",!0):(o(),i("small",se,r("A partir de "))),h("span",null,r(a.$money(e.priceWithDiscount)),1),e.discountLabel?(o(),i("small",re,r(` ${e.discountLabel}`),1)):c("",!0)])):c("",!0)]),_:1})],2)}const me=W(Q,[["render",oe]]);export{me as P};
|
|
@@ -1,7 +0,0 @@
|
|
|
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.ATTXCPd0.js";import{u as K}from"./use-product-card.BhUXhJIp.js";import{C as W,Q as $}from"./QuantitySelector.OL4MN-C_.js";import{P as tt}from"./Prices.Jt09rVKv.js";import{_ as G}from"./customer-session.TRPGDX3c.js";import{u as et}from"./sf-utils.luvTU5uS.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.WpkjGsWi.js";import"./afetch.5c8VmT0-.js";import"./name.urFqJ5yn.js";import"./i18n.Lxnz1oF-.js";import"./img.WnsidxCx.js";import"./modules-info.WWsUqEPZ.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
|
-
function __vite__mapDeps(indexes) {
|
|
3
|
-
if (!__vite__mapDeps.viteFileDeps) {
|
|
4
|
-
__vite__mapDeps.viteFileDeps = []
|
|
5
|
-
}
|
|
6
|
-
return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{P as j}from"./ProductShelf.vGE0E3Qf.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.TRPGDX3c.js";import"./sf-utils.luvTU5uS.js";import"./use-product-card.BhUXhJIp.js";import"./use-analytics.WpkjGsWi.js";import"./shopping-cart.ATTXCPd0.js";import"./price.Easct8WC.js";import"./afetch.5c8VmT0-.js";import"./name.urFqJ5yn.js";import"./i18n.Lxnz1oF-.js";import"./img.WnsidxCx.js";import"./Prices.Jt09rVKv.js";import"./modules-info.WWsUqEPZ.js";import"./format-money.iK5LGydz.js";export{j as default};
|
|
@@ -1 +0,0 @@
|
|
|
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.TRPGDX3c.js";import{c as j,u as B}from"./use-product-card.BhUXhJIp.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.luvTU5uS.js";import{a as F}from"./shopping-cart.ATTXCPd0.js";import{P as U}from"./Prices.Jt09rVKv.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 +0,0 @@
|
|
|
1
|
-
import{_ as v,w as V,a as Q}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{d as S,c as y,N as p,O as f,Z as u,a4 as q,X as k,S as B,a as P,a5 as $,R as x,P as N,a2 as I,a3 as g,W as j,U as w,V as C}from"./runtime-core.esm-bundler.XTSAdOlw.js";import{u as z}from"./sf-utils.luvTU5uS.js";const O=S({__name:"CheckoutLink",props:{to:{default:"cart"},cartUrl:{default:globalThis.$storefront?.settings.cartUrl||"/app/#/cart"},checkoutUrl:{default:globalThis.$storefront?.settings.checkoutUrl||"/app/#/checkout"},cartId:{},cartItem:{}},setup(a,{expose:i}){i();const t=a,e=y(()=>{let n=t.to==="cart"?t.cartUrl:t.checkoutUrl;if(t.cartId)n+=`/${t.cartId}`;else if(t.cartItem){const o={product_id:t.cartItem.product_id},{variation_id:l,quantity:d,sku:c,customizations:m}=t.cartItem;l&&(o.variation_id=l),d&&(o.quantity=String(d)),c&&(o.sku=c),m&&m.forEach(({label:r,option:_,attachment:M},U)=>{const b=`customizations.${U}.`;r&&(o[b+"label"]=r),_&&(_._id&&(o[b+"option._id"]=_._id),o[b+"option.text"]=_.text),M&&(o[b+"attachment"]=M)}),n+="?"+new URLSearchParams(o).toString()}return n}),s={props:t,href:e};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),T=["href"];function L(a,i,t,e,s,n){return p(),f("a",{href:e.href},[u(a.$slots,"default")],8,T)}const Y=v(O,[["render",L]]),R=S({__name:"QuantitySelectorControl",props:{isMinus:{type:Boolean}},setup(a,{expose:i}){i();const{value:t,isBoundMin:e,isBoundMax:s}=q(h),n={value:t,isBoundMin:e,isBoundMax:s};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),D=["data-quantity-selector-control","aria-label","disabled"];function E(a,i,t,e,s,n){return p(),f("button",{type:"button",class:"leading-12 h-12 w-10 text-xl enabled:text-primary enabled:hover:bg-primary-100/70 disabled:opacity-40","data-quantity-selector-control":t.isMinus?"minus":"plus","aria-label":t.isMinus?"Menos":"Mais",disabled:t.isMinus?e.isBoundMin:e.isBoundMax,onClick:i[0]||(i[0]=V(o=>e.value+=t.isMinus?-1:1,["prevent"]))},[u(a.$slots,"default",{},()=>[t.isMinus?(p(),f(k,{key:0},[B("−")],64)):(p(),f(k,{key:1},[B("+")],64))])],8,D)}const F=v(R,[["render",E]]),h=Symbol("quantitySelector"),K=S({__name:"QuantitySelector",props:{modelValue:{default:1},min:{default:1},max:{},step:{},disabled:{type:Boolean},readonly:{type:Boolean}},emits:["update:modelValue"],setup(a,{expose:i,emit:t}){i();const e=a,s=t,n=P(null),o=`NInput${z()}`,l=y({get(){return e.modelValue},set(r){r<e.min&&(r=e.min,n.value.value=`${r}`),e.max&&r>e.max&&(r=e.max,n.value.value=`${r}`),s("update:modelValue",r)}}),d=y(()=>e.min>=l.value),c=y(()=>e.max<=l.value);$(h,{value:l,isBoundMin:d,isBoundMax:c});const m={quantitySelectorKey:h,props:e,emit:s,input:n,inputId:o,value:l,isBoundMin:d,isBoundMax:c,QuantitySelectorControl:F};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}}),W={"data-quantity-selector":""},X={class:"flex items-center"},Z=["min","max","step","disabled","readonly"];function A(a,i,t,e,s,n){return p(),f("div",W,[u(a.$slots,"label",I(g({inputId:e.inputId,value:e.value})),()=>[x("label",{for:e.inputId,class:"sr-only"},N("Quantidade"))]),x("div",X,[j(x("input",{ref:"input",type:"number",id:e.inputId,"onUpdate:modelValue":i[0]||(i[0]=o=>e.value=o),min:t.min,max:t.max,step:t.step,disabled:t.disabled,readonly:t.readonly,class:"h-12 w-14 border-transparent px-2 text-center text-lg [-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none"},null,8,Z),[[Q,e.value]]),u(a.$slots,"controls",I(g({value:e.value,isBoundMin:e.isBoundMin,isBoundMax:e.isBoundMax})),()=>[w(e.QuantitySelectorControl,{"is-minus":"",class:"order-first"},{default:C(()=>[u(a.$slots,"minus")]),_:3}),w(e.QuantitySelectorControl,{class:"order-last"},{default:C(()=>[u(a.$slots,"plus")]),_:3})])])])}const ee=v(K,[["render",A]]);export{Y as C,ee as Q};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as Y}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{c as Q,g as q}from"./sf-utils.luvTU5uS.js";import{S as J,s as N}from"./use-analytics.WpkjGsWi.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.vGE0E3Qf.js";import"./customer-session.TRPGDX3c.js";import"./index.q6KIyKlJ.js";import"./shopping-cart.ATTXCPd0.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.BhUXhJIp.js";import"./img.WnsidxCx.js";import"./Prices.Jt09rVKv.js";import"./modules-info.WWsUqEPZ.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 +0,0 @@
|
|
|
1
|
-
import{_ as Y,w as te,b as le,v as he}from"./_plugin-vue_export-helper.SO-0jCqa.js";import{u as ge}from"./index.R7A-Pg5V.js";import{a as xe,i as _e}from"./sf-utils.luvTU5uS.js";import{i as ye,a as Oe,b as oe,c as Pe,d as ke,e as Se,f as we,g as Le,h as Fe,j as Re,k as Ce,P as Ee}from"./ProductShelf.vGE0E3Qf.js";import{S as Te}from"./use-analytics.WpkjGsWi.js";import{a as F,c as _,d as z,a5 as Me,H as ae,w as D,k as ie,X as I,a9 as Ae,aa as Be,a4 as De,ab as j,E as N,L as je,a6 as Ue,M as se,N as k,O as w,R as h,U as T,V as E,T as q,Y as Q,P as L,S as V,Z as Ve,$ as G,W as ne,Q as U,a0 as Ie}from"./runtime-core.esm-bundler.XTSAdOlw.js";import{u as ue,g as $e}from"./index.q6KIyKlJ.js";import{g as ze}from"./grid-title.vGKBy72g.js";import{f as W}from"./format-money.iK5LGydz.js";import{u as $,f as Ne,c as M,w as Ke,a as We,h as qe,o as A,t as Qe,i as X,b as He,E as Ge,s as Xe,A as Z,T as Ye,d as re,e as Ze,l as Je,N as ce,p as et,g as tt,O as at,j as C,D as st}from"./use-text-value.XE_A2nDM.js";import"./customer-session.TRPGDX3c.js";import"./use-product-card.BhUXhJIp.js";import"./price.Easct8WC.js";import"./name.urFqJ5yn.js";import"./i18n.Lxnz1oF-.js";import"./img.WnsidxCx.js";import"./shopping-cart.ATTXCPd0.js";import"./Prices.Jt09rVKv.js";import"./modules-info.WWsUqEPZ.js";import"./afetch.5c8VmT0-.js";function nt(t,s,i){let a=F(i?.value),e=_(()=>t.value!==void 0);return[_(()=>e.value?t.value:a.value),function(r){return e.value||(a.value=r),s?.(r)}]}function de(t={},s=null,i=[]){for(let[a,e]of Object.entries(t))fe(i,pe(s,a),e);return i}function pe(t,s){return t?t+"["+s+"]":s}function fe(t,s,i){if(Array.isArray(i))for(let[a,e]of i.entries())fe(t,pe(s,a.toString()),e);else i instanceof Date?t.push([s,i.toISOString()]):typeof i=="boolean"?t.push([s,i?"1":"0"]):typeof i=="string"?t.push([s,i]):typeof i=="number"?t.push([s,`${i}`]):i==null?t.push([s,""]):de(i,s,t)}function rt(t,s){return t===s}var lt=(t=>(t[t.Open=0]="Open",t[t.Closed=1]="Closed",t))(lt||{}),ot=(t=>(t[t.Single=0]="Single",t[t.Multi=1]="Multi",t))(ot||{}),it=(t=>(t[t.Pointer=0]="Pointer",t[t.Other=1]="Other",t))(it||{});function ut(t){requestAnimationFrame(()=>requestAnimationFrame(t))}let ve=Symbol("ListboxContext");function J(t){let s=De(ve,null);if(s===null){let i=new Error(`<${t} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(i,J),i}return s}let ct=z({name:"Listbox",emits:{"update:modelValue":t=>!0},props:{as:{type:[Object,String],default:"template"},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],default:()=>rt},horizontal:{type:[Boolean],default:!1},modelValue:{type:[Object,String,Number,Boolean],default:void 0},defaultValue:{type:[Object,String,Number,Boolean],default:void 0},form:{type:String,optional:!0},name:{type:String,optional:!0},multiple:{type:[Boolean],default:!1}},inheritAttrs:!1,setup(t,{slots:s,attrs:i,emit:a}){let e=F(1),r=F(null),p=F(null),c=F(null),d=F([]),l=F(""),o=F(null),P=F(1);function f(m=n=>n){let n=o.value!==null?d.value[o.value]:null,u=at(m(d.value.slice()),O=>A(O.dataRef.domRef)),v=n?u.indexOf(n):null;return v===-1&&(v=null),{options:u,activeOptionIndex:v}}let y=_(()=>t.multiple?1:0),[b,g]=nt(_(()=>t.modelValue),m=>a("update:modelValue",m),_(()=>t.defaultValue)),S=_(()=>b.value===void 0?$(y.value,{1:[],0:void 0}):b.value),x={listboxState:e,value:S,mode:y,compare(m,n){if(typeof t.by=="string"){let u=t.by;return m?.[u]===n?.[u]}return t.by(m,n)},orientation:_(()=>t.horizontal?"horizontal":"vertical"),labelRef:r,buttonRef:p,optionsRef:c,disabled:_(()=>t.disabled),options:d,searchQuery:l,activeOptionIndex:o,activationTrigger:P,closeListbox(){t.disabled||e.value!==1&&(e.value=1,o.value=null)},openListbox(){t.disabled||e.value!==0&&(e.value=0)},goToOption(m,n,u){if(t.disabled||e.value===1)return;let v=f(),O=Ne(m===M.Specific?{focus:M.Specific,id:n}:{focus:m},{resolveItems:()=>v.options,resolveActiveIndex:()=>v.activeOptionIndex,resolveId:B=>B.id,resolveDisabled:B=>B.dataRef.disabled});l.value="",o.value=O,P.value=u??1,d.value=v.options},search(m){if(t.disabled||e.value===1)return;let n=l.value!==""?0:1;l.value+=m.toLowerCase();let u=(o.value!==null?d.value.slice(o.value+n).concat(d.value.slice(0,o.value+n)):d.value).find(O=>O.dataRef.textValue.startsWith(l.value)&&!O.dataRef.disabled),v=u?d.value.indexOf(u):-1;v===-1||v===o.value||(o.value=v,P.value=1)},clearSearch(){t.disabled||e.value!==1&&l.value!==""&&(l.value="")},registerOption(m,n){let u=f(v=>[...v,{id:m,dataRef:n}]);d.value=u.options,o.value=u.activeOptionIndex},unregisterOption(m){let n=f(u=>{let v=u.findIndex(O=>O.id===m);return v!==-1&&u.splice(v,1),u});d.value=n.options,o.value=n.activeOptionIndex,P.value=1},theirOnChange(m){t.disabled||g(m)},select(m){t.disabled||g($(y.value,{0:()=>m,1:()=>{let n=j(x.value.value).slice(),u=j(m),v=n.findIndex(O=>x.compare(u,j(O)));return v===-1?n.push(u):n.splice(v,1),n}}))}};Ke([p,c],(m,n)=>{var u;x.closeListbox(),We(n,qe.Loose)||(m.preventDefault(),(u=A(p))==null||u.focus())},_(()=>e.value===0)),Me(ve,x),Qe(_(()=>$(e.value,{0:X.Open,1:X.Closed})));let R=_(()=>{var m;return(m=A(p))==null?void 0:m.closest("form")});return ae(()=>{D([R],()=>{if(!R.value||t.defaultValue===void 0)return;function m(){x.theirOnChange(t.defaultValue)}return R.value.addEventListener("reset",m),()=>{var n;(n=R.value)==null||n.removeEventListener("reset",m)}},{immediate:!0})}),()=>{let{name:m,modelValue:n,disabled:u,form:v,...O}=t,B={open:e.value===0,disabled:u,value:S.value};return ie(I,[...m!=null&&S.value!=null?de({[m]:S.value}).map(([K,ee])=>ie(He,Ge({features:Xe.Hidden,key:K,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:v,name:K,value:ee}))):[],Z({ourProps:{},theirProps:{...i,...Ye(O,["defaultValue","onUpdate:modelValue","horizontal","multiple","by"])},slot:B,slots:s,attrs:i,name:"Listbox"})])}}}),dt=z({name:"ListboxButton",props:{as:{type:[Object,String],default:"button"},id:{type:String,default:()=>`headlessui-listbox-button-${re()}`}},setup(t,{attrs:s,slots:i,expose:a}){let e=J("ListboxButton");a({el:e.buttonRef,$el:e.buttonRef});function r(l){switch(l.key){case C.Space:case C.Enter:case C.ArrowDown:l.preventDefault(),e.openListbox(),N(()=>{var o;(o=A(e.optionsRef))==null||o.focus({preventScroll:!0}),e.value.value||e.goToOption(M.First)});break;case C.ArrowUp:l.preventDefault(),e.openListbox(),N(()=>{var o;(o=A(e.optionsRef))==null||o.focus({preventScroll:!0}),e.value.value||e.goToOption(M.Last)});break}}function p(l){switch(l.key){case C.Space:l.preventDefault();break}}function c(l){e.disabled.value||(e.listboxState.value===0?(e.closeListbox(),N(()=>{var o;return(o=A(e.buttonRef))==null?void 0:o.focus({preventScroll:!0})})):(l.preventDefault(),e.openListbox(),ut(()=>{var o;return(o=A(e.optionsRef))==null?void 0:o.focus({preventScroll:!0})})))}let d=Ze(_(()=>({as:t.as,type:s.type})),e.buttonRef);return()=>{var l,o;let P={open:e.listboxState.value===0,disabled:e.disabled.value,value:e.value.value},{id:f,...y}=t,b={ref:e.buttonRef,id:f,type:d.value,"aria-haspopup":"listbox","aria-controls":(l=A(e.optionsRef))==null?void 0:l.id,"aria-expanded":e.listboxState.value===0,"aria-labelledby":e.labelRef.value?[(o=A(e.labelRef))==null?void 0:o.id,f].join(" "):void 0,disabled:e.disabled.value===!0?!0:void 0,onKeydown:r,onKeyup:p,onClick:c};return Z({ourProps:b,theirProps:y,slot:P,attrs:s,slots:i,name:"ListboxButton"})}}}),pt=z({name:"ListboxOptions",props:{as:{type:[Object,String],default:"ul"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:()=>`headlessui-listbox-options-${re()}`}},setup(t,{attrs:s,slots:i,expose:a}){let e=J("ListboxOptions"),r=F(null);a({el:e.optionsRef,$el:e.optionsRef});function p(l){switch(r.value&&clearTimeout(r.value),l.key){case C.Space:if(e.searchQuery.value!=="")return l.preventDefault(),l.stopPropagation(),e.search(l.key);case C.Enter:if(l.preventDefault(),l.stopPropagation(),e.activeOptionIndex.value!==null){let o=e.options.value[e.activeOptionIndex.value];e.select(o.dataRef.value)}e.mode.value===0&&(e.closeListbox(),N(()=>{var o;return(o=A(e.buttonRef))==null?void 0:o.focus({preventScroll:!0})}));break;case $(e.orientation.value,{vertical:C.ArrowDown,horizontal:C.ArrowRight}):return l.preventDefault(),l.stopPropagation(),e.goToOption(M.Next);case $(e.orientation.value,{vertical:C.ArrowUp,horizontal:C.ArrowLeft}):return l.preventDefault(),l.stopPropagation(),e.goToOption(M.Previous);case C.Home:case C.PageUp:return l.preventDefault(),l.stopPropagation(),e.goToOption(M.First);case C.End:case C.PageDown:return l.preventDefault(),l.stopPropagation(),e.goToOption(M.Last);case C.Escape:l.preventDefault(),l.stopPropagation(),e.closeListbox(),N(()=>{var o;return(o=A(e.buttonRef))==null?void 0:o.focus({preventScroll:!0})});break;case C.Tab:l.preventDefault(),l.stopPropagation();break;default:l.key.length===1&&(e.search(l.key),r.value=setTimeout(()=>e.clearSearch(),350));break}}let c=Je(),d=_(()=>c!==null?(c.value&X.Open)===X.Open:e.listboxState.value===0);return()=>{var l,o;let P={open:e.listboxState.value===0},{id:f,...y}=t,b={"aria-activedescendant":e.activeOptionIndex.value===null||(l=e.options.value[e.activeOptionIndex.value])==null?void 0:l.id,"aria-multiselectable":e.mode.value===1?!0:void 0,"aria-labelledby":(o=A(e.buttonRef))==null?void 0:o.id,"aria-orientation":e.orientation.value,id:f,onKeydown:p,role:"listbox",tabIndex:0,ref:e.optionsRef};return Z({ourProps:b,theirProps:y,slot:P,attrs:s,slots:i,features:ce.RenderStrategy|ce.Static,visible:d.value,name:"ListboxOptions"})}}}),ft=z({name:"ListboxOption",props:{as:{type:[Object,String],default:"li"},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1},id:{type:String,default:()=>`headlessui-listbox.option-${re()}`}},setup(t,{slots:s,attrs:i,expose:a}){let e=J("ListboxOption"),r=F(null);a({el:r,$el:r});let p=_(()=>e.activeOptionIndex.value!==null?e.options.value[e.activeOptionIndex.value].id===t.id:!1),c=_(()=>$(e.mode.value,{0:()=>e.compare(j(e.value.value),j(t.value)),1:()=>j(e.value.value).some(x=>e.compare(j(x),j(t.value)))})),d=_(()=>$(e.mode.value,{1:()=>{var x;let R=j(e.value.value);return((x=e.options.value.find(m=>R.some(n=>e.compare(j(n),j(m.dataRef.value)))))==null?void 0:x.id)===t.id},0:()=>c.value})),l=et(r),o=_(()=>({disabled:t.disabled,value:t.value,get textValue(){return l()},domRef:r}));ae(()=>e.registerOption(t.id,o)),Ae(()=>e.unregisterOption(t.id)),ae(()=>{D([e.listboxState,c],()=>{e.listboxState.value===0&&c.value&&$(e.mode.value,{1:()=>{d.value&&e.goToOption(M.Specific,t.id)},0:()=>{e.goToOption(M.Specific,t.id)}})},{immediate:!0})}),Be(()=>{e.listboxState.value===0&&p.value&&e.activationTrigger.value!==0&&N(()=>{var x,R;return(R=(x=A(r))==null?void 0:x.scrollIntoView)==null?void 0:R.call(x,{block:"nearest"})})});function P(x){if(t.disabled)return x.preventDefault();e.select(t.value),e.mode.value===0&&(e.closeListbox(),N(()=>{var R;return(R=A(e.buttonRef))==null?void 0:R.focus({preventScroll:!0})}))}function f(){if(t.disabled)return e.goToOption(M.Nothing);e.goToOption(M.Specific,t.id)}let y=tt();function b(x){y.update(x)}function g(x){y.wasMoved(x)&&(t.disabled||p.value||e.goToOption(M.Specific,t.id,0))}function S(x){y.wasMoved(x)&&(t.disabled||p.value&&e.goToOption(M.Nothing))}return()=>{let{disabled:x}=t,R={active:p.value,selected:c.value,disabled:x},{id:m,value:n,disabled:u,...v}=t,O={id:m,ref:r,role:"option",tabIndex:x===!0?void 0:-1,"aria-disabled":x===!0?!0:void 0,"aria-selected":c.value,disabled:void 0,onClick:P,onFocus:f,onPointerenter:b,onMouseenter:b,onPointermove:g,onMousemove:g,onPointerleave:S,onMouseleave:S};return Z({ourProps:O,theirProps:v,slot:R,attrs:i,slots:s,name:"ListboxOption"})}}});const me=({searchEngine:t,fixedParams:s})=>{const i=_(()=>{const e={};return Object.keys(t.params).forEach(r=>{if(s?.[r])return;const p=t.params[r];if(p!==void 0){switch(r){case"sort":case"term":case"limit":case"offset":case"count":case"buckets":case"fields":return}e[r]=p}}),e}),a=_(()=>{const e=Object.keys(i.value),r=[];return e.forEach(p=>{const c=p.replace(/[^\w.]/g,"");if(c==="specs"&&Array.isArray(i.value[p])){i.value[p].forEach(d=>{const[l]=d.split(":"),o=`specs.${l}`;r.includes(o)||r.push(o)});return}r.includes(c)||r.push(c)}),r.length});return{activeFilters:i,filtersCount:a}},vt=t=>{const{searchEngine:s,fixedParams:i}=t,a=_(()=>s.meta),e=_(()=>s.meta.buckets),{activeFilters:r,filtersCount:p}=me(t);D(s.params,()=>{s.fetch()});let c=null;const d=()=>{Object.keys(s.params).forEach(n=>{i?.[n]||delete s.params[n]}),c=null},l=({min:n,max:u})=>`${n||null}/${u||null}`,o=_(()=>{const{params:n}=s;return{min:Number(n["price>"]),max:Number(n["price<"])}}),P=F([]),f=ue(()=>{P.value.splice(0),e.value?.prices?.forEach(n=>{n.min&&(n.min=Math.round(n.min*100)/100),n.max&&(n.max=Math.round(n.max*100)/100),P.value.push({range:n,key:l(n)})}),Number.isNaN(o.value.min)||P.value.find(({range:u})=>u.min===o.value.min&&u.max===o.value.max)||P.value.unshift({range:{...o.value,count:a.value.count||0,avg:null},key:l(o.value)})},50);f();const y=F(l(o.value));D(y,()=>{c="price";const n=P.value.find(({range:u})=>l(u)===y.value);if(n){const{min:u,max:v}=n.range;u?s.params["price>"]=u:delete s.params["price>"],v?s.params["price<"]=v:delete s.params["price<"];return}delete s.params["price>"],delete s.params["price<"]});const b=({min:n,max:u})=>n&&u?u===n?W(u):`${W(n)} ${oe.toLowerCase()} ${W(u)}`:!n&&u?`${oe} ${W(u)}`:`${Pe} ${W(n||0)}`,g=F([]),S=ue(()=>{for(let u=0;u<g.value.length;u++){const{field:v}=g.value[u];v!==c&&(g.value.splice(u,1),u-=1)}const n=e.value;if(n&&([["brands",ye],["categories",Oe]].forEach(([u,v])=>{const O=`${u}.name`;n[O]&&c!==O&&g.value.push({title:v,options:n[O],field:O})}),n.specs)){const{grids:u}=globalThis.$storefront.data;Object.keys(n.specs).forEach(v=>{const[O,B]=v.split(":");if(B){const K=`specs.${O}`;if(c===K)return;const ee=ze(O,u||[]);let H=g.value.find(be=>be.field===K);H||(H={title:ee,options:{},field:K},g.value.push(H)),H.options[B]=n.specs[v]}})}},50);S();const x=(n,u)=>{const[,v]=n.split(".");return["specs,",`${v}:${u}`]},R=(n,u)=>{n.startsWith("specs.")&&([n,u]=x(n,u));const v=r.value[n];return!!(v===u||Array.isArray(v)&&v.includes(u))},m=(n,u)=>{c=n,console.log({_lastParamChanged:c}),n.startsWith("specs.")&&([n,u]=x(n,u));const v=!R(n,u);let O=s.params[n];if(Array.isArray(O)||(O=[],s.params[n]=O),v)O.push(u);else for(let B=0;B<O.length;B++)if(O[B]===u){O.splice(B,1);break}};return D(e,()=>{c!=="price"&&f(),S()}),{resultMeta:a,resultBuckets:e,activeFilters:r,filtersCount:p,clearFilters:d,getPriceRangeKey:l,priceRanges:P,priceRangeKey:y,getPriceRangeLabel:b,filterOptions:g,checkFilterOption:R,toggleFilterOption:m}},mt=t=>{let{term:s}=t;const a=t.canUseUrlParams!==!1?ge("history"):null;t.ssrError&&(console.error(new Error(`SSR search error: ${t.ssrError}`)),window.location.pathname.startsWith("/s/")&&(window.location.href=`/s?q=${encodeURIComponent(s||"")}`));const e=je(t.products||[]),r=new Te({debounce:50});s===void 0&&(s=new URLSearchParams(window.location.search).get("q")||null),s!==void 0&&(r.term.value=s),t.pageSize&&(r.pageSize.value=t.pageSize),Object.assign(r.params,t.fixedParams);let p=!1;a&&Object.keys(a).forEach(b=>{if(a[b]){if(b.startsWith("f\\")){const g=b.substring(2);r.params[g]=a[b],t.fixedParams?.[g]!==a[b]&&(p=!0);return}if(b==="sort"){if(r.params.sort=a.sort,typeof a.sort=="string"&&t.resultMeta?.sort?.length===1){const{field:g,order:S}=t.resultMeta.sort[0];if((S?g:`-${g}`)===a.sort)return}p=!0;return}if(b==="p"){const g=parseInt(String(a.p),10);if(g>=1){if(r.pageNumber.value=g,t.resultMeta?.limit){const{offset:S,limit:x}=t.resultMeta;if((S?Math.ceil(S/x):1)===g)return}p=!0}}}}),r.wasFetched.value||((t.products||t.resultMeta)&&!p&&r.setResult({result:t.products,meta:t.resultMeta}),(!t.products||p)&&r.fetch().catch(console.error)),r.isWithCount.value=!0,r.isWithBuckets.value=!0;const c=F({count:0,...t.resultMeta||r.meta});D(r.products,()=>{e.splice(0),r.products.forEach(b=>e.push(b)),c.value={count:0,...r.meta}});const d=_(()=>{const{count:b}=r.meta;return!b||e.length<2?1:Math.ceil(b/r.pageSize.value)});D(r.pageNumber,b=>{a&&(a.p=`${b}`),r.fetch()});const l=()=>{D(r.isFetching,b=>{const g=t.showcase?.value;!b&&g&&setTimeout(()=>{xe(g,_e?-25:0)},50)})};r.wasFetched.value?l():$e(r.wasFetched,l);const{activeFilters:o,filtersCount:P}=me({searchEngine:r,fixedParams:t.fixedParams});a&&D(o,b=>{a&&Object.keys(a).forEach(g=>{g.startsWith("f\\")&&delete a[g]}),Object.keys(b).forEach(g=>{const S=b[g];if(typeof S=="string"||typeof S=="number"){a[`f\\${g}`]=`${S}`;return}Array.isArray(S)&&typeof S[0]=="string"&&(a[`f\\${g}`]=S)})});const f=[{value:null,label:ke},{value:"-sales",label:Se},{value:"price",label:we},{value:"-price",label:Le},{value:"-price_discount",label:Fe},{value:"-created_at",label:Re},{value:"name",label:Ce}],y=F(null);return D(y,()=>{r.params.sort=y.value||void 0,r.fetch()}),a&&(typeof a.sort=="string"&&a.sort&&(y.value=a.sort),D(r.params,b=>{delete a.sort,b.sort&&(a.sort=String(b.sort))})),{searchEngine:r,fetching:r.fetching.value,isFetching:r.isFetching,products:e,resultMeta:c,totalPages:d,activeFilters:o,filtersCount:P,sortOptions:f,sortOption:y}},bt=t=>{const s=_(()=>t.totalPages?t.totalPages:t.totalItems&&t.pageSize?Math.ceil(t.totalItems/t.pageSize):1),i=_(()=>{const f=t.page||1;return f<1?1:f>s.value?s.value:f}),a=_(()=>t.maxPages||10),e=_(()=>{if(s.value<=a.value)return 1;const f=Math.floor(a.value/2),y=Math.ceil(a.value/2)-1;return i.value<=f?1:i.value+y>=s.value?s.value-a.value+1:i.value-f}),r=_(()=>{if(s.value<=a.value)return s.value;const f=Math.floor(a.value/2),y=Math.ceil(a.value/2)-1;return i.value<=f?a.value:i.value+y>=s.value?s.value:i.value+y}),p=_(()=>Array.from(Array(r.value+1-e.value).keys()).map(f=>e.value+f)),c=F("");D(Ue(t.isUrlPath),()=>{const f=new URL(window.location.toString());t.isUrlPath&&!f.pathname.endsWith("/")?f.pathname+="/":f.searchParams.delete("p"),c.value=`${f.pathname}${f.search}`},{immediate:!0});const d=f=>t.isUrlPath?`../${f}`:`?p=${f}`,l=_(()=>p.value.map(f=>c.value+d(f))),o=_(()=>i.value<=1?null:c.value+d(i.value-1)),P=_(()=>i.value>=s.value?null:c.value+d(i.value+1));return{totalPages:s,startPage:e,endPage:r,pages:p,pageLinks:l,prevPageLink:o,nextPageLink:P}},ht=z({__name:"Pagination",props:{totalItems:{},totalPages:{},page:{default:1},pageSize:{},maxPages:{default:7},isUrlPath:{type:Boolean,default:!1}},emits:["update:page"],setup(t,{expose:s,emit:i}){s();const a=t,e=i,{pages:r,pageLinks:p,prevPageLink:c,nextPageLink:d}=bt(a),l={props:a,emit:e,pages:r,pageLinks:p,prevPageLink:c,nextPageLink:d};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),gt={class:"text-base-900 flex justify-center gap-1.5 text-center text-sm font-medium leading-9"},xt=h("i",{class:"i-arrow-right rotate-180"},null,-1),_t=h("span",{class:"ml-1.5 hidden md:inline"},L("Anterior"),-1),yt=h("span",{class:"mr-1.5 hidden md:inline"},L("Próximo"),-1),Ot=h("i",{class:"i-arrow-right"},null,-1);function Pt(t,s,i,a,e,r){const p=se("ALink");return k(),w("ol",gt,[h("li",null,[T(p,{href:a.prevPageLink,onClick:s[0]||(s[0]=te(c=>a.prevPageLink&&a.emit("update:page",i.page-1),["prevent"])),class:q(["mr-1 block min-w-9 rounded border px-3",a.prevPageLink?"border-base-100 hover:bg-base-100":"border-transparent text-base-500"])},{default:E(()=>[xt,_t]),_:1},8,["href","class"])]),(k(!0),w(I,null,Q(a.pages,(c,d)=>(k(),w("li",{key:c},[T(p,{href:c!==i.page?a.pageLinks[d]:null,onClick:te(l=>a.emit("update:page",c),["prevent"]),class:q(["block w-9 rounded border ring-black/10",c===i.page?"bg-base-50 border-base-100 ring text-base-700":"border-transparent hover:bg-base-100"])},{default:E(()=>[V(L(c),1)]),_:2},1032,["href","onClick","class"])]))),128)),h("li",null,[T(p,{href:a.nextPageLink,onClick:s[1]||(s[1]=te(c=>a.nextPageLink&&a.emit("update:page",i.page+1),["prevent"])),class:q(["ml-1 block min-w-9 rounded border px-3",a.nextPageLink?"border-base-100 hover:bg-base-100":"border-transparent text-base-500"])},{default:E(()=>[yt,Ot]),_:1},8,["href","class"])])])}const kt=Y(ht,[["render",Pt]]),St=z({__name:"Collapse",props:{title:{}},setup(t,{expose:s}){s();const i={};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),wt={class:"group my-4 md:my-5 [&_i]:open:-rotate-90"},Lt={role:"button",class:"text-base-700 hover:text-base-800 [&>i]:hover:text-primary list-none text-2xl font-medium lowercase group-open:mb-3"},Ft=h("i",{class:"i-chevron-right mr-1 rotate-90"},null,-1);function Rt(t,s,i,a,e,r){return k(),w("details",wt,[h("summary",Lt,[Ft,h("span",null,L(i.title),1)]),Ve(t.$slots,"default")])}const Ct=Y(St,[["render",Rt]]),Et=z({__name:"SearchFilters",props:{searchEngine:{},fixedParams:{}},setup(t,{expose:s}){s();const i=t,{resultBuckets:a,activeFilters:e,filtersCount:r,clearFilters:p,priceRanges:c,priceRangeKey:d,getPriceRangeLabel:l,filterOptions:o,checkFilterOption:P,toggleFilterOption:f}=vt(i),y={props:i,resultBuckets:a,activeFilters:e,filtersCount:r,clearFilters:p,priceRanges:c,priceRangeKey:d,getPriceRangeLabel:l,filterOptions:o,checkFilterOption:P,toggleFilterOption:f,Collapse:Ct};return Object.defineProperty(y,"__isScriptSetup",{enumerable:!1,value:!0}),y}}),Tt={class:"bg-base-50/40 h-screen overflow-y-auto"},Mt={class:"px-6 pb-3 pt-5 text-center"},At=h("i",{class:"i-trash ml-0.5"},null,-1),Bt={key:1,class:"text-base-500 border border-transparent pb-1 text-base font-semibold"},Dt={key:0,class:"px-6 pb-3"},jt={class:"space-y-1.5"},Ut=["id","value"],Vt=["for"],It={class:"text-base-500 font-medium"},$t={key:0,class:"flex items-center"},zt=h("label",{for:"priceRange-null",class:"cursor-pointer px-3 text-sm"},L("Qualquer preço"),-1),Nt={class:"space-y-1.5"},Kt=["id","value","checked","onChange"],Wt=["for"],qt={class:"text-base-500 font-medium"};function Qt(t,s,i,a,e,r){return k(),w("aside",Tt,[h("header",Mt,[a.filtersCount?(k(),w("button",{key:0,class:"ui-btn-sm ui-btn-danger py-1",onClick:s[0]||(s[0]=(...p)=>a.clearFilters&&a.clearFilters(...p))},[V(L("Limpar filtros")+" "),At])):(k(),w("p",Bt,L("Filtrar resultados")))]),a.resultBuckets?(k(),w("article",Dt,[a.priceRanges?(k(),G(a.Collapse,{key:0,title:"Preço",class:"[&>summary]:text-xl",open:""},{default:E(()=>[h("div",jt,[(k(!0),w(I,null,Q(a.priceRanges,({range:p,key:c})=>(k(),w("div",{key:`prices-${c}`,class:"flex items-center"},[ne(h("input",{type:"radio",id:`priceRange-${c}`,name:"priceRange",value:c,"onUpdate:modelValue":s[1]||(s[1]=d=>a.priceRangeKey=d)},null,8,Ut),[[le,a.priceRangeKey]]),h("label",{for:`priceRange-${c}`,class:"cursor-pointer px-3 text-sm"},[V(L(a.getPriceRangeLabel(p))+" ",1),h("small",It," ("+L(p.count)+") ",1)],8,Vt)]))),128)),a.activeFilters["price<"]||a.activeFilters["price>"]?(k(),w("div",$t,[ne(h("input",{type:"radio",id:"priceRange-null",name:"priceRange",value:null,"onUpdate:modelValue":s[2]||(s[2]=p=>a.priceRangeKey=p)},null,512),[[le,a.priceRangeKey]]),zt])):U("",!0)])]),_:1})):U("",!0),(k(!0),w(I,null,Q(a.filterOptions,({title:p,options:c,field:d})=>(k(),G(a.Collapse,{key:d,title:p,class:"[&>summary]:text-xl",open:!!a.activeFilters[d]},{default:E(()=>[h("div",Nt,[(k(!0),w(I,null,Q(c,(l,o,P)=>(k(),w("div",{key:`${d}-${P}`,class:"flex items-center"},[h("input",{type:"checkbox",id:`${d}-${o}`,value:o,checked:a.checkFilterOption(d,o),onChange:f=>a.toggleFilterOption(d,o)},null,40,Kt),h("label",{for:`${d}-${o}`,class:"cursor-pointer px-3 text-sm"},[V(L(o)+" ",1),h("small",qt," ("+L(l)+") ",1)],8,Wt)]))),128))])]),_:2},1032,["title","open"]))),128))])):U("",!0)])}const Ht=Y(Et,[["render",Qt]]),Gt=z({__name:"SearchShowcase",props:{term:{},pageSize:{},fixedParams:{},products:{},resultMeta:{},ssrError:{},canUseUrlParams:{type:Boolean,default:!0},showcase:{}},async setup(t,{expose:s}){s();const i=t,a=F(null),{searchEngine:e,fetching:r,isFetching:p,products:c,resultMeta:d,totalPages:l,filtersCount:o,sortOptions:P,sortOption:f}=mt({...i,showcase:a}),y=_(()=>e.wasFetched.value),b=_(()=>e.term.value),g=_(()=>y&&!!(d.value.count>4||o.value)),S=F(!1),x={props:i,showcase:a,searchEngine:e,fetching:r,isFetching:p,products:c,resultMeta:d,totalPages:l,filtersCount:o,sortOptions:P,sortOption:f,wasFetched:y,searchTerm:b,hasFiltersBar:g,isFiltersOpen:S,get Listbox(){return ct},get ListboxButton(){return dt},get ListboxOptions(){return pt},get ListboxOption(){return ft},Drawer:st,Pagination:kt,ProductShelf:Ee,SearchFilters:Ht};return Object.defineProperty(x,"__isScriptSetup",{enumerable:!1,value:!0}),x}}),Xt={class:"text-base-800 inline font-bold italic"},Yt={key:1,class:"ui-section relative min-h-[300px]"},Zt={ref:"showcase",class:"relative"},Jt={key:0,class:"to-base-100 ui-section-slim sticky-header:translate-y-16 lg:sticky-header:translate-y-14 sticky top-0 z-[12] flex items-center justify-between rounded-b bg-white/80 px-6 py-4 shadow-sm backdrop-blur-sm transition-transform"},ea={class:"text-base-700 font-medium lowercase"},ta=h("span",{class:"hidden lg:inline"},L("Itens encontrados"),-1),aa=h("span",{class:"lg:hidden"},L("Produtos"),-1),sa={class:"flex items-center gap-4"},na=h("span",{class:"hidden text-xl leading-none md:block"},[h("i",{class:"text-base-600 i-adjustments-horizontal m-0"})],-1),ra=h("span",{class:"hidden md:inline"},L("Filtrar produtos"),-1),la=h("span",{class:"md:hidden"},[h("i",{class:"i-adjustments-horizontal mr-1"}),V(" "+L("Filtrar"))],-1),oa={key:0,class:"outline-3 outline-secondary/80 ui-badge-pill-sm absolute -right-1.5 -top-1 outline"},ia={class:"w-5"},ua={class:"i-check"},ca={key:0,class:"mt-3 lg:mt-4"},da={key:0,class:"absolute left-0 top-0 z-[14] size-full bg-white/40"};function pa(t,s,i,a,e,r){const p=se("Skeleton"),c=se("Fade");return k(),w(I,null,[a.searchTerm?(k(),w("section",{key:0,class:q(["text-base-700 ui-section-slim px-6 text-center text-xl lowercase",a.hasFiltersBar?"relative z-[14] -mb-4":"mb-0"])},[V(L("Buscando por")+" "),h("h1",Xt,L(a.searchTerm),1)],2)):U("",!0),a.isFetching&&!a.products.length?(k(),w("div",Yt,[T(p,{class:"absolute top-0 w-full px-5","is-bold":"","is-large":""})])):U("",!0),h("article",Zt,[T(c,null,{default:E(()=>[a.hasFiltersBar?(k(),w("section",Jt,[h("strong",ea,[a.resultMeta.count>1?(k(),w(I,{key:0},[V(L(a.resultMeta.count)+" ",1),ta,aa],64)):U("",!0)]),h("div",sa,[na,h("button",{onClick:s[0]||(s[0]=d=>a.isFiltersOpen=!a.isFiltersOpen),class:"ui-btn-sm ui-btn-secondary relative"},[ra,la,a.filtersCount?(k(),w("span",oa,L(a.filtersCount),1)):U("",!0)]),T(a.Listbox,{modelValue:a.sortOption,"onUpdate:modelValue":s[1]||(s[1]=d=>a.sortOption=d),as:"div",class:"text-base-800 relative text-sm"},{default:E(()=>[T(a.ListboxButton,{class:"ui-btn-sm ui-btn-secondary"},{default:E(()=>[V(L("Ordenar"))]),_:1}),T(c,null,{default:E(()=>[T(a.ListboxOptions,{class:"divide-base-100 absolute right-0 mt-2 divide-y rounded bg-white shadow ring-1 ring-black/5 focus:outline-none"},{default:E(()=>[(k(!0),w(I,null,Q(a.sortOptions,({label:d,value:l})=>(k(),G(a.ListboxOption,{key:l||"sort",value:l,as:"template"},{default:E(({selected:o,active:P})=>[h("li",null,[(k(),G(Ie(o?"div":"button"),{class:q(["flex w-full py-2 pl-3 pr-6",!o&&P&&"bg-secondary-100 text-secondary"])},{default:E(()=>[h("div",ia,[ne(h("i",ua,null,512),[[he,o]])]),V(" "+L(d),1)]),_:2},1032,["class"]))])]),_:2},1032,["value"]))),128))]),_:1})]),_:1})]),_:1},8,["modelValue"])])])):U("",!0)]),_:1}),T(a.ProductShelf,{products:a.products,"is-grid":""},{append:E(()=>[T(c,{slide:"down"},{default:E(()=>[!a.isFetching&&a.totalPages>1?(k(),w("nav",ca,[T(a.Pagination,{page:a.searchEngine.pageNumber.value,"onUpdate:page":s[2]||(s[2]=d=>a.searchEngine.pageNumber.value=d),"total-pages":a.totalPages},null,8,["page","total-pages"])])):U("",!0)]),_:1})]),_:1},8,["products"]),T(c,null,{default:E(()=>[a.isFetching?(k(),w("div",da)):U("",!0)]),_:1})],512),T(a.Drawer,{modelValue:a.isFiltersOpen,"onUpdate:modelValue":s[3]||(s[3]=d=>a.isFiltersOpen=d),placement:"end","backdrop-target":null,"can-lock-scroll":!1,class:"!z-[80] bg-white shadow [&_[data-drawer-close]]:bg-white/80"},{default:E(()=>[T(a.SearchFilters,{"search-engine":a.searchEngine},null,8,["search-engine"])]),_:1},8,["modelValue"])],64)}const Ma=Y(Gt,[["render",pa]]);export{Ma as default};
|