cloudcommerce 0.33.5 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/action.yml +11 -3
- 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 +7 -7
- package/packages/api/lib/api.js +1 -1
- package/packages/api/lib/api.js.map +1 -1
- package/packages/api/package.json +1 -1
- package/packages/api/src/api.ts +1 -1
- package/packages/apps/affilate-program/lib/events-to-affilate-program.js.map +1 -1
- package/packages/apps/affilate-program/package.json +2 -2
- package/packages/apps/correios/package.json +2 -2
- package/packages/apps/custom-payment/lib/custom-payment-create-transaction.js.map +1 -1
- package/packages/apps/custom-payment/lib/custom-payment-list-payments.js.map +1 -1
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/datafrete/lib/datafrete-webhook.js.map +1 -1
- package/packages/apps/datafrete/package.json +2 -2
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/lib/events-to-app-emails.js.map +1 -1
- package/packages/apps/emails/lib/functios-lib/abandoned-carts.js.map +1 -1
- package/packages/apps/emails/lib/functios-lib/handle-orders.js.map +1 -1
- package/packages/apps/emails/package.json +2 -2
- package/packages/apps/fb-conversions/lib/fb-conversions-events.js.map +1 -1
- package/packages/apps/fb-conversions/lib/functions-lib/create-fb-objects.js.map +1 -1
- package/packages/apps/fb-conversions/package.json +2 -2
- package/packages/apps/flash-courier/package.json +1 -1
- package/packages/apps/frenet/lib/functions-lib/database.js.map +1 -1
- package/packages/apps/frenet/lib/functions-lib/events-to-frenet.js.map +1 -1
- package/packages/apps/frenet/lib/functions-lib/remove-delivered.js.map +1 -1
- package/packages/apps/frenet/lib/functions-lib/tracking-codes.js.map +1 -1
- package/packages/apps/frenet/lib/functions-lib/update-fulfillments.js.map +1 -1
- package/packages/apps/frenet/package.json +2 -2
- package/packages/apps/galaxpay/lib/functions-lib/all-parses.js.map +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/ecom/events-to-galaxpay.js.map +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/create-access.js.map +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/create-axios.js.map +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/gerate-token.js.map +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/handle-plans.js.map +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/update-subscription.js.map +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.d.ts +1 -0
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js.map +1 -1
- package/packages/apps/galaxpay/lib/galaxpay-create-transaction.js +2 -2
- package/packages/apps/galaxpay/lib/galaxpay-create-transaction.js.map +1 -1
- package/packages/apps/galaxpay/lib/galaxpay-events.js.map +1 -1
- package/packages/apps/galaxpay/lib/galaxpay-list-payments.js +1 -1
- package/packages/apps/galaxpay/lib/galaxpay-list-payments.js.map +1 -1
- package/packages/apps/galaxpay/package.json +2 -2
- package/packages/apps/google-analytics/lib/google-analytics-events.js +4 -4
- package/packages/apps/google-analytics/lib/google-analytics-events.js.map +1 -1
- package/packages/apps/google-analytics/package.json +2 -2
- package/packages/apps/google-analytics/src/google-analytics-events.ts +4 -4
- package/packages/apps/jadlog/package.json +1 -1
- package/packages/apps/loyalty-points/lib/functions-lib/cron-add-points.js.map +1 -1
- package/packages/apps/loyalty-points/lib/functions-lib/get-program-id.js.map +1 -1
- package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.js.map +1 -1
- package/packages/apps/loyalty-points/lib/loyalty-create-transaction.js.map +1 -1
- package/packages/apps/loyalty-points/lib/loyalty-list-payments.js.map +1 -1
- package/packages/apps/loyalty-points/lib/loyalty-points-events.js.map +1 -1
- package/packages/apps/loyalty-points/package.json +1 -1
- package/packages/apps/mandae/package.json +1 -1
- package/packages/apps/melhor-envio/lib/functions-lib/database.js.map +1 -1
- package/packages/apps/melhor-envio/lib/functions-lib/events-to-melhor-envio.js.map +1 -1
- package/packages/apps/melhor-envio/lib/functions-lib/new-label.js.map +1 -1
- package/packages/apps/melhor-envio/lib/functions-lib/order-is-valid.js.map +1 -1
- package/packages/apps/melhor-envio/lib/functions-lib/tracking-codes.js.map +1 -1
- package/packages/apps/melhor-envio/package.json +2 -2
- package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -1
- package/packages/apps/mercadopago/lib/mp-list-payments.js.map +1 -1
- package/packages/apps/mercadopago/lib/mp-webhook.js.map +1 -1
- package/packages/apps/mercadopago/package.json +2 -2
- package/packages/apps/pagarme/lib/functions-lib/add-installments.js.map +1 -1
- package/packages/apps/pagarme/lib/functions-lib/parse-status-to-ecom.js.map +1 -1
- package/packages/apps/pagarme/lib/pagarme-create-transaction.js.map +1 -1
- package/packages/apps/pagarme/lib/pagarme-list-payments.js.map +1 -1
- package/packages/apps/pagarme/lib/pagarme-webhook.js.map +1 -1
- package/packages/apps/pagarme/package.json +2 -2
- package/packages/apps/pagarme-v5/lib/pagarme-v5-events.js.map +1 -1
- package/packages/apps/pagarme-v5/package.json +2 -2
- package/packages/apps/paghiper/lib/functions-lib/handle-webhook.d.ts +1 -0
- package/packages/apps/paghiper/lib/functions-lib/handle-webhook.js.map +1 -1
- package/packages/apps/paghiper/lib/paghiper-create-transaction.js.map +1 -1
- package/packages/apps/paghiper/lib/paghiper-list-payments.js.map +1 -1
- package/packages/apps/paghiper/lib/paghiper-webhook.js.map +1 -1
- package/packages/apps/paghiper/package.json +2 -2
- package/packages/apps/pix/lib/functions-lib/get-certificate.js.map +1 -1
- package/packages/apps/pix/lib/functions-lib/pix-auth/construtor.js.map +1 -1
- package/packages/apps/pix/lib/functions-lib/pix-auth/create-axios.js.map +1 -1
- package/packages/apps/pix/lib/functions-lib/pix-auth/oauth.js.map +1 -1
- package/packages/apps/pix/lib/pix-create-transaction.js.map +1 -1
- package/packages/apps/pix/lib/pix-list-payments.js.map +1 -1
- package/packages/apps/pix/lib/pix-webhook.js.map +1 -1
- package/packages/apps/pix/package.json +2 -2
- package/packages/apps/tiny-erp/lib/event-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/export-product-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/status-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/status-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/post-tiny-erp.js.map +1 -1
- package/packages/apps/tiny-erp/lib/tiny-webhook.js.map +1 -1
- package/packages/apps/tiny-erp/package.json +2 -2
- package/packages/apps/webhooks/lib/events-to-webhooks-app.js.map +1 -1
- package/packages/apps/webhooks/package.json +2 -2
- package/packages/cli/package.json +1 -1
- package/packages/config/lib/config.js.map +1 -1
- package/packages/config/lib/env.js.map +1 -1
- package/packages/config/package.json +1 -1
- package/packages/emails/lib/index.js.map +1 -1
- package/packages/emails/lib/parse-template-to-html.js.map +1 -1
- package/packages/emails/lib/providers/sendgrid/index.js.map +1 -1
- package/packages/emails/lib/providers/sendgrid/parse-to-data.js.map +1 -1
- package/packages/emails/lib/providers/smtp/index.js.map +1 -1
- package/packages/emails/package.json +1 -1
- package/packages/eslint/package.json +1 -1
- package/packages/events/package.json +2 -2
- package/packages/feeds/lib/firebase/serve-feeds.js.map +1 -1
- package/packages/feeds/package.json +1 -1
- package/packages/firebase/lib/config.js.map +1 -1
- package/packages/firebase/lib/handlers/check-store-events.js.map +1 -1
- package/packages/firebase/lib/helpers/pubsub.js.map +1 -1
- package/packages/firebase/lib/helpers/update-app-data.js.map +1 -1
- package/packages/firebase/package.json +2 -2
- package/packages/i18n/package.json +1 -1
- package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
- package/packages/modules/lib/firebase/checkout.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/fix-items.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/get-custumerId.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/handle-order-transaction.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/new-order.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/request-to-module.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/utils.js.map +1 -1
- package/packages/modules/lib/firebase/handle-module.js.map +1 -1
- package/packages/modules/lib/firebase/serve-modules-api.js.map +1 -1
- package/packages/modules/lib/firebase.js.map +1 -1
- package/packages/modules/package.json +2 -2
- package/packages/passport/lib/firebase/authenticate-customer.js.map +1 -1
- package/packages/passport/lib/firebase/serve-passport-api.js.map +1 -1
- package/packages/passport/lib/firebase.js.map +1 -1
- package/packages/passport/package.json +2 -2
- package/packages/ssr/lib/analytics/send-to-ga4.js +44 -0
- package/packages/ssr/lib/analytics/send-to-ga4.js.map +1 -0
- package/packages/ssr/lib/analytics/send-to-meta.js +44 -0
- package/packages/ssr/lib/analytics/send-to-meta.js.map +1 -0
- package/packages/ssr/lib/analytics/send-to-tiktok.js +44 -0
- package/packages/ssr/lib/analytics/send-to-tiktok.js.map +1 -0
- package/packages/ssr/lib/analytics-events.js +52 -24
- package/packages/ssr/lib/analytics-events.js.map +1 -1
- package/packages/ssr/lib/firebase/serve-storefront.js +16 -3
- package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
- package/packages/ssr/package.json +6 -6
- package/packages/ssr/src/analytics/send-to-ga4.ts +56 -0
- package/packages/ssr/src/analytics/send-to-meta.ts +50 -0
- package/packages/ssr/src/analytics/send-to-tiktok.ts +49 -0
- package/packages/ssr/src/analytics-events.ts +57 -27
- package/packages/ssr/src/firebase/serve-storefront.ts +17 -3
- package/packages/storefront/.auto-imports.d.ts +1 -1
- package/packages/storefront/astro.config.mjs +5 -10
- package/packages/storefront/config/astro/mock-pwa-info.mjs +2 -0
- package/packages/storefront/dist/client/_astro/AccountPage.77d861e9.js +1 -0
- package/packages/storefront/dist/client/_astro/CartSidebar.005ec337.js +1 -0
- package/packages/storefront/dist/client/_astro/HeroSlider.b35ac2f9.js +1 -0
- package/packages/storefront/dist/client/_astro/PitchBar.7965ce11.js +1 -0
- package/packages/storefront/dist/client/_astro/Prices.862d15eb.js +1 -0
- package/packages/storefront/dist/client/_astro/ProductDetails.120b6513.js +1 -0
- package/packages/storefront/dist/client/_astro/ProductShelf.4a2f57cf.js +1 -0
- package/packages/storefront/dist/client/_astro/QuantitySelector.d7dd044c.js +1 -0
- package/packages/storefront/dist/client/_astro/SearchModal.0bf88bcc.js +1 -0
- package/packages/storefront/dist/client/_astro/ShopHeader.57302617.js +4 -0
- package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.d927d271.js +1 -0
- package/packages/storefront/dist/client/_astro/_slug_.f458f318.css +1 -0
- package/packages/storefront/dist/client/_astro/afetch.f4507208.js +1 -0
- package/packages/storefront/dist/client/_astro/client.409c434f.js +1 -0
- package/packages/storefront/dist/client/_astro/customer-session.68901b4c.js +1 -0
- package/packages/storefront/dist/client/_astro/ecom-utils.f65876ca.js +1 -0
- package/packages/storefront/dist/client/_astro/firebase-app.992a296f.js +16 -0
- package/packages/storefront/dist/client/_astro/format-money.db179bca.js +1 -0
- package/packages/storefront/dist/client/_astro/hoisted.719d11e3.js +1 -0
- package/packages/storefront/dist/client/_astro/hoisted.f4c55052.js +1 -0
- package/packages/storefront/dist/client/_astro/i18n.614beec4.js +1 -0
- package/packages/storefront/dist/client/_astro/img-sizes.41e0efe4.js +1 -0
- package/packages/storefront/dist/client/_astro/img.27573b8b.js +1 -0
- package/packages/storefront/dist/client/_astro/{firebase-app.3f59f3c7.js → index-61e5ac61.bdc8d0cd.js} +129 -99
- package/packages/storefront/dist/client/_astro/index.aac4c53d.js +1 -0
- package/packages/storefront/dist/client/_astro/index.d93220be.js +1 -0
- package/packages/storefront/dist/client/_astro/modules-info.4373e917.js +1 -0
- package/packages/storefront/dist/client/_astro/name.2999355b.js +1 -0
- package/packages/storefront/dist/client/_astro/photoswipe-lightbox.esm.c157838f.js +4 -0
- package/packages/storefront/dist/client/_astro/photoswipe.01431ec7.js +2 -0
- package/packages/storefront/dist/client/_astro/photoswipe.esm.92c2d901.js +4 -0
- package/packages/storefront/dist/client/_astro/price.04ceb6c4.js +1 -0
- package/packages/storefront/dist/client/_astro/sf-utils.b04e1813.js +1 -0
- package/packages/storefront/dist/client/_astro/shopping-cart.608866aa.js +1 -0
- package/packages/storefront/dist/client/_astro/use-analytics.205d2b8f.js +1 -0
- package/packages/storefront/dist/client/_astro/use-product-card.cc44716b.js +1 -0
- package/packages/storefront/dist/client/robots.txt +1 -1
- package/packages/storefront/dist/server/chunks/CartSidebar_6cb69be3.mjs +203 -0
- package/packages/storefront/dist/server/chunks/SearchModal_930845a4.mjs +18 -0
- package/packages/storefront/dist/server/chunks/_.._07cccbbe.mjs +6 -0
- package/packages/storefront/dist/server/chunks/account_e71f4214.mjs +6 -0
- package/packages/storefront/dist/server/chunks/astro/assets-service_a9d9ab5f.mjs +544 -0
- package/packages/storefront/dist/server/chunks/{astro.708269c6.mjs → astro_d98f7186.mjs} +214 -1878
- package/packages/storefront/dist/server/chunks/index_414d53c7.mjs +6 -0
- package/packages/storefront/dist/server/chunks/index_a7b0afbf.mjs +6 -0
- package/packages/storefront/dist/server/chunks/node_7efff4d0.mjs +6 -0
- package/packages/storefront/dist/server/chunks/pages/{_...slug_.astro.0808946e.mjs → __e7ddf925.mjs} +2019 -1017
- package/packages/storefront/dist/server/chunks/pages/account_f14e6f5a.mjs +28 -0
- package/packages/storefront/dist/server/chunks/pages/index_b300d887.mjs +316 -0
- package/packages/storefront/dist/server/chunks/pages/node_2b0cb889.mjs +93 -0
- package/packages/storefront/dist/server/chunks/pages/~fallback_2bbdf875.mjs +40 -0
- package/packages/storefront/dist/server/chunks/photoswipe_9528923e.mjs +3 -0
- package/packages/storefront/dist/server/chunks/~fallback_43c17ff0.mjs +6 -0
- package/packages/storefront/dist/server/entry.mjs +1012 -2526
- package/packages/storefront/dist/server/manifest_4dba1382.mjs +1069 -0
- package/packages/storefront/dist/server/renderers.mjs +335 -51
- package/packages/storefront/package.json +11 -13
- package/packages/storefront/src/env.d.ts +1 -1
- package/packages/storefront/src/images/get-built-image.ts +36 -8
- package/packages/storefront/src/images/get-built-picture.ts +3 -130
- package/packages/storefront/src/images/picture-base.ts +135 -0
- package/packages/storefront/src/images/use-ssr-picture.ts +18 -10
- package/packages/storefront/src/lib/assets/forms.css +35 -30
- package/packages/storefront/src/lib/components/Carousel.vue +3 -1
- package/packages/storefront/src/lib/components/CarouselControl.vue +1 -1
- package/packages/storefront/src/lib/components/Drawer.vue +45 -7
- package/packages/storefront/src/lib/components/Picture.astro +47 -4
- package/packages/storefront/src/lib/components/globals/Fade.vue +1 -1
- package/packages/storefront/src/lib/composables/use-product-shelf.ts +1 -1
- package/packages/storefront/src/lib/scripts/vbeta-app.ts +25 -15
- package/packages/storefront/src/lib/state/search-engine.ts +101 -0
- package/packages/storefront/src/lib/state/shopping-cart.ts +52 -65
- package/packages/storefront/src/lib/state/use-analytics.ts +2 -1
- package/packages/storefront/src/lib/state/use-storage.ts +5 -2
- package/packages/test-base/lib/endpoints.js.map +1 -1
- package/packages/test-base/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/ssr/lib/analytics-providers/google-analytics.js +0 -48
- package/packages/ssr/lib/analytics-providers/google-analytics.js.map +0 -1
- package/packages/ssr/lib/analytics-providers/meta-conversions-api.js +0 -44
- package/packages/ssr/lib/analytics-providers/meta-conversions-api.js.map +0 -1
- package/packages/ssr/src/analytics-providers/google-analytics.ts +0 -67
- package/packages/ssr/src/analytics-providers/meta-conversions-api.ts +0 -57
- package/packages/storefront/dist/client/_astro/Carousel.4bf71bce.js +0 -1
- package/packages/storefront/dist/client/_astro/CartSidebar.05b12b39.js +0 -1
- package/packages/storefront/dist/client/_astro/HeroSlider.fe108a14.js +0 -1
- package/packages/storefront/dist/client/_astro/PitchBar.2c821b77.js +0 -1
- package/packages/storefront/dist/client/_astro/Prices.78eb0a61.js +0 -1
- package/packages/storefront/dist/client/_astro/ProductShelf.46d8a51c.js +0 -1
- package/packages/storefront/dist/client/_astro/SearchModal.cffd4c2d.js +0 -1
- package/packages/storefront/dist/client/_astro/ShopHeader.3694a82b.js +0 -4
- package/packages/storefront/dist/client/_astro/_...slug_.a4a7a874.css +0 -1
- package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.ee681fa8.js +0 -1
- package/packages/storefront/dist/client/_astro/api.a2eda23e.js +0 -1
- package/packages/storefront/dist/client/_astro/client.e6d9439a.js +0 -1
- package/packages/storefront/dist/client/_astro/ecom-icon_CDmhA.png +0 -0
- package/packages/storefront/dist/client/_astro/ecom-icon_Z27EX9f.png +0 -0
- package/packages/storefront/dist/client/_astro/ecom-icon_Zo1CLq.png +0 -0
- package/packages/storefront/dist/client/_astro/format-money.923559cc.js +0 -1
- package/packages/storefront/dist/client/_astro/headphone_1Ekzdh.avif +0 -0
- package/packages/storefront/dist/client/_astro/headphone_Z1GbHcH.webp +0 -0
- package/packages/storefront/dist/client/_astro/hoisted.648beb9d.js +0 -1
- package/packages/storefront/dist/client/_astro/img.ec6ba316.js +0 -1
- package/packages/storefront/dist/client/_astro/index.fadf28bd.js +0 -1
- package/packages/storefront/dist/client/_astro/logo_144owC.webp +0 -0
- package/packages/storefront/dist/client/_astro/logo_1ug3XF.png +0 -0
- package/packages/storefront/dist/client/_astro/logo_Z1EIN1I.avif +0 -0
- package/packages/storefront/dist/client/_astro/modules-info.df822732.js +0 -1
- package/packages/storefront/dist/client/_astro/passion_1LvKlp.webp +0 -0
- package/packages/storefront/dist/client/_astro/passion_2PSWs.avif +0 -0
- package/packages/storefront/dist/client/_astro/preload-helper.cf010ec4.js +0 -1
- package/packages/storefront/dist/client/_astro/rect8589_1A8K2Q.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_1ND0he.png +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_1mIaKd.png +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_LhopI.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_Z1NFjiR.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_Z2a06Gx.png +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_Z2nulUU.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_ZH7hsH.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_ZorpIx.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect859_1CcLjM.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect859_1IVKep.png +0 -0
- package/packages/storefront/dist/client/_astro/rect859_1zkdb4.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect859_299fN7.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect859_CnIof.png +0 -0
- package/packages/storefront/dist/client/_astro/rect859_Z1OtQaE.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect859_flB3g.png +0 -0
- package/packages/storefront/dist/client/_astro/rect859_rsWaw.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect859_sLbkT.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect89_1yf5jS.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect89_GQBli.webp +0 -0
- package/packages/storefront/dist/client/_astro/session-utm.744b0db3.js +0 -1
- package/packages/storefront/dist/client/_astro/workbox-window.prod.es5.a7b12eab.js +0 -2
- package/packages/storefront/dist/client/manifest.webmanifest +0 -1
- package/packages/storefront/dist/client/sw.js +0 -1
- package/packages/storefront/dist/client/workbox-1b331600.js +0 -1
- package/packages/storefront/dist/client/~fallback.html +0 -67
- package/packages/storefront/dist/client/~index.html +0 -113
- package/packages/storefront/dist/server/chunks/CartSidebar.4179ad81.mjs +0 -386
- package/packages/storefront/dist/server/chunks/SearchModal.146ce2f7.mjs +0 -37
- package/packages/storefront/dist/server/chunks/_...05c626ea.mjs +0 -28
- package/packages/storefront/dist/server/chunks/account@_@astro.5eaddaf8.mjs +0 -28
- package/packages/storefront/dist/server/chunks/index@_@astro.25a343cc.mjs +0 -28
- package/packages/storefront/dist/server/chunks/index@_@astro.2d2f2e33.mjs +0 -28
- package/packages/storefront/dist/server/chunks/pages/account.astro.32e7e6ef.mjs +0 -23
- package/packages/storefront/dist/server/chunks/pages/index.astro.d4145872.mjs +0 -186
- package/packages/storefront/dist/server/chunks/pages/~fallback.astro.84d4765b.mjs +0 -49
- package/packages/storefront/dist/server/chunks/~fallback@_@astro.86d710c3.mjs +0 -28
- package/packages/storefront/dist/server/images.dist.csv +0 -30
- package/packages/storefront/dist/server/images.src.csv +0 -11
- package/packages/storefront/dist/server/manifest.webmanifest +0 -1
- package/packages/storefront/dist/server/registerSW.js +0 -1
- package/packages/storefront/dist/server/static-builds.csv +0 -51
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { AnalyticsEvent } from '../analytics-events';
|
|
2
|
+
import axios from 'axios';
|
|
3
|
+
|
|
4
|
+
// https://developers.facebook.com/docs/meta-pixel/reference#standard-events
|
|
5
|
+
const version = 'v18.0';
|
|
6
|
+
const metaAxios = axios.create({
|
|
7
|
+
baseURL: `https://graph.facebook.com/${version}`,
|
|
8
|
+
headers: {
|
|
9
|
+
'Content-Type': 'application/json',
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
const endpoint = `/${process.env.FB_PIXEL_ID}/events`
|
|
13
|
+
+ `?access_token=${process.env.FB_GRAPH_TOKEN}`;
|
|
14
|
+
|
|
15
|
+
const sendToMeta = async (
|
|
16
|
+
events: AnalyticsEvent[],
|
|
17
|
+
pageLocation: string,
|
|
18
|
+
userData: { [x: string]: string | undefined },
|
|
19
|
+
pageTitle?: string,
|
|
20
|
+
) => {
|
|
21
|
+
if (process.env.FB_PIXEL_ID && process.env.FB_GRAPH_TOKEN) {
|
|
22
|
+
let data: Array<Record<string, any>> = [];
|
|
23
|
+
for (let i = 0; i < events.length; i++) {
|
|
24
|
+
const event = events[i];
|
|
25
|
+
if (event.name === 'PageView') {
|
|
26
|
+
event.name = 'Lead';
|
|
27
|
+
if (pageTitle) {
|
|
28
|
+
event.params = {
|
|
29
|
+
content_name: pageTitle,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
data.push({
|
|
34
|
+
event_name: event.name,
|
|
35
|
+
event_time: Date.now(),
|
|
36
|
+
event_source_url: pageLocation,
|
|
37
|
+
action_source: 'website',
|
|
38
|
+
user_data: userData,
|
|
39
|
+
custom_data: event.params,
|
|
40
|
+
});
|
|
41
|
+
if (data.length === 999 || i === events.length - 1) {
|
|
42
|
+
// eslint-disable-next-line no-await-in-loop
|
|
43
|
+
await metaAxios.post(endpoint, { data });
|
|
44
|
+
data = [];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export default sendToMeta;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { AnalyticsEvent } from '../analytics-events';
|
|
2
|
+
import axios from 'axios';
|
|
3
|
+
|
|
4
|
+
// https://business-api.tiktok.com/portal/docs?id=1741601162187777
|
|
5
|
+
// https://business-api.tiktok.com/portal/docs?rid=oyn7lhbo6ar&id=1771100799076354
|
|
6
|
+
const version = 'v1.3';
|
|
7
|
+
const ttkAxios = axios.create({
|
|
8
|
+
baseURL: `https://business-api.tiktok.com/open_api/${version}/event/track`,
|
|
9
|
+
headers: {
|
|
10
|
+
'Content-Type': 'application/json',
|
|
11
|
+
'Access-Token': process.env.TIKTOK_ACCESS_TOKEN,
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
const sendToTiktok = async (
|
|
16
|
+
events: AnalyticsEvent[],
|
|
17
|
+
pageLocation: string,
|
|
18
|
+
user: { [x: string]: string | undefined },
|
|
19
|
+
) => {
|
|
20
|
+
if (process.env.TIKTOK_ACCESS_TOKEN && process.env.TIKTOK_PIXEL_ID) {
|
|
21
|
+
let data: Array<Record<string, any>> = [];
|
|
22
|
+
for (let i = 0; i < events.length; i++) {
|
|
23
|
+
const event = events[i];
|
|
24
|
+
if (event.name === 'PageView') {
|
|
25
|
+
event.name = 'Contact';
|
|
26
|
+
}
|
|
27
|
+
data.push({
|
|
28
|
+
event: event.name,
|
|
29
|
+
event_time: Date.now(),
|
|
30
|
+
user,
|
|
31
|
+
page: {
|
|
32
|
+
url: pageLocation,
|
|
33
|
+
},
|
|
34
|
+
properties: event.params,
|
|
35
|
+
});
|
|
36
|
+
if (data.length === 999 || i === events.length - 1) {
|
|
37
|
+
// eslint-disable-next-line no-await-in-loop
|
|
38
|
+
await ttkAxios.post('/', {
|
|
39
|
+
event_source: 'web',
|
|
40
|
+
event_source_id: process.env.TIKTOK_PIXEL_ID,
|
|
41
|
+
data,
|
|
42
|
+
});
|
|
43
|
+
data = [];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default sendToTiktok;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { AxiosResponse } from 'axios';
|
|
2
1
|
import { EventEmitter } from 'node:events';
|
|
3
|
-
import
|
|
4
|
-
import
|
|
2
|
+
import { warn, error } from 'firebase-functions/logger';
|
|
3
|
+
import { getFirestore, Timestamp, FieldValue } from 'firebase-admin/firestore';
|
|
4
|
+
import sendToGa4 from './analytics/send-to-ga4';
|
|
5
|
+
import sendToMeta from './analytics/send-to-meta';
|
|
6
|
+
import sendToTiktok from './analytics/send-to-tiktok';
|
|
5
7
|
|
|
6
8
|
const analyticsEmitter = new EventEmitter();
|
|
7
9
|
|
|
@@ -12,7 +14,7 @@ export type AnalyticsEvent = {
|
|
|
12
14
|
|
|
13
15
|
export type GroupedAnalyticsEvents = Array<AnalyticsEvent & { type: string }>;
|
|
14
16
|
|
|
15
|
-
const sendAnalyticsEvents = (
|
|
17
|
+
const sendAnalyticsEvents = async (
|
|
16
18
|
{ url, events }: { url: string, events: GroupedAnalyticsEvents },
|
|
17
19
|
payload: Record<string, any> = {},
|
|
18
20
|
) => {
|
|
@@ -24,38 +26,66 @@ const sendAnalyticsEvents = (
|
|
|
24
26
|
}
|
|
25
27
|
(eventsByType[type] as AnalyticsEvent[]).push({ name, params });
|
|
26
28
|
});
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
29
|
+
const sendingEvents: Promise<any>[] = [];
|
|
30
|
+
const storingEvents: Promise<any>[] = [];
|
|
31
|
+
const {
|
|
32
|
+
gtag: gaEvents,
|
|
33
|
+
fbq: metaEvents,
|
|
34
|
+
ttq: tiktokEvents,
|
|
35
|
+
} = eventsByType;
|
|
36
|
+
if (gaEvents) {
|
|
37
|
+
const pageView = gaEvents.find(({ name }) => {
|
|
38
|
+
return name === 'page_view';
|
|
39
|
+
});
|
|
40
|
+
const productView = gaEvents.find(({ name, params }) => {
|
|
41
|
+
return name === 'view_item' && params?.item_list_id === 'product-page';
|
|
42
|
+
});
|
|
43
|
+
if (pageView || productView) {
|
|
44
|
+
const db = getFirestore();
|
|
45
|
+
if (pageView && url) {
|
|
46
|
+
const storing = db.collection('ssrPageViews')
|
|
47
|
+
.add({ url, at: Timestamp.now() });
|
|
48
|
+
storingEvents.push(storing);
|
|
49
|
+
}
|
|
50
|
+
const productId = productView?.params?.object_id;
|
|
51
|
+
if (productId) {
|
|
52
|
+
const storing = db.doc(`ssrProductViews/${productId}`)
|
|
53
|
+
.set({ countUnsaved: FieldValue.increment(1) }, { merge: true });
|
|
54
|
+
storingEvents.push(storing);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
30
57
|
const sessionId = payload.g_session_id || payload.session_id;
|
|
31
58
|
const clientId = payload.g_client_id || payload.client_id;
|
|
32
|
-
|
|
33
|
-
if (listGA4Events) {
|
|
34
|
-
sendingEvents.push(...listGA4Events);
|
|
35
|
-
}
|
|
59
|
+
sendingEvents.push(sendToGa4(gaEvents, clientId, sessionId, payload.utm));
|
|
36
60
|
}
|
|
37
|
-
if (
|
|
61
|
+
if (metaEvents) {
|
|
38
62
|
const userData = {
|
|
39
|
-
client_ip_address: payload.
|
|
63
|
+
client_ip_address: payload.ip,
|
|
40
64
|
client_user_agent: payload.user_agent,
|
|
41
65
|
fbc: payload.fbclid,
|
|
42
66
|
fbp: payload.fbp,
|
|
43
67
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
68
|
+
sendingEvents.push(sendToMeta(metaEvents, url, userData, payload.page_title));
|
|
69
|
+
}
|
|
70
|
+
if (tiktokEvents) {
|
|
71
|
+
const userData = {
|
|
72
|
+
ip: payload.ip,
|
|
73
|
+
user_agent: payload.user_agent,
|
|
74
|
+
ttclid: payload.ttclid,
|
|
75
|
+
};
|
|
76
|
+
sendingEvents.push(sendToTiktok(tiktokEvents, url, userData));
|
|
48
77
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
78
|
+
await Promise.all([
|
|
79
|
+
Promise.allSettled(sendingEvents).then((results) => {
|
|
80
|
+
for (let i = 0; i < results.length; i++) {
|
|
81
|
+
const { status } = results[i];
|
|
82
|
+
if (status === 'rejected') {
|
|
83
|
+
warn((results[i] as PromiseRejectedResult).reason);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}),
|
|
87
|
+
Promise.all(storingEvents).catch(error),
|
|
88
|
+
]);
|
|
59
89
|
};
|
|
60
90
|
|
|
61
91
|
export default sendAnalyticsEvents;
|
|
@@ -18,7 +18,8 @@ declare global {
|
|
|
18
18
|
|
|
19
19
|
const { STOREFRONT_BASE_DIR } = process.env;
|
|
20
20
|
const baseDir = STOREFRONT_BASE_DIR || process.cwd();
|
|
21
|
-
const {
|
|
21
|
+
const { settingsContent } = config.get();
|
|
22
|
+
const { assetsPrefix } = settingsContent;
|
|
22
23
|
let imagesManifest: string;
|
|
23
24
|
type BuiltImage = { filename: string, width: number, height: number };
|
|
24
25
|
const builtImages: BuiltImage[] = [];
|
|
@@ -153,6 +154,17 @@ export default async (req: Request, res: Response) => {
|
|
|
153
154
|
}
|
|
154
155
|
}
|
|
155
156
|
|
|
157
|
+
if (req.path === '/_logo' || req.path === '/_icon') {
|
|
158
|
+
const field = req.path.slice(2) as 'logo' | 'icon';
|
|
159
|
+
res.set('Cache-Control', 'max-age=300');
|
|
160
|
+
if (settingsContent[field]) {
|
|
161
|
+
res.redirect(302, settingsContent[field]);
|
|
162
|
+
} else {
|
|
163
|
+
res.sendStatus(404);
|
|
164
|
+
}
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
|
|
156
168
|
if (req.path === '/_image') {
|
|
157
169
|
const { href } = req.query;
|
|
158
170
|
if (typeof href === 'string' && href.length > 3) {
|
|
@@ -183,7 +195,9 @@ export default async (req: Request, res: Response) => {
|
|
|
183
195
|
&& filename === _builtImage.filename.replace(filenameRegExp, '');
|
|
184
196
|
});
|
|
185
197
|
if (builtImage) {
|
|
186
|
-
return res
|
|
198
|
+
return res
|
|
199
|
+
.set('Cache-Control', 'max-age=60')
|
|
200
|
+
.redirect(301, `/_astro/${builtImage.filename}`);
|
|
187
201
|
}
|
|
188
202
|
return res.redirect(302, href);
|
|
189
203
|
})();
|
|
@@ -220,7 +234,7 @@ export default async (req: Request, res: Response) => {
|
|
|
220
234
|
res.send('Event(s) must be sent via the `{ events }` array in the request body');
|
|
221
235
|
return;
|
|
222
236
|
}
|
|
223
|
-
sendAnalyticsEvents({ url, events }, { ...req.body, ip: req.ip });
|
|
237
|
+
await sendAnalyticsEvents({ url, events }, { ...req.body, ip: req.ip });
|
|
224
238
|
res.sendStatus(204);
|
|
225
239
|
return;
|
|
226
240
|
}
|
|
@@ -61,5 +61,5 @@ declare global {
|
|
|
61
61
|
// for type re-export
|
|
62
62
|
declare global {
|
|
63
63
|
// @ts-ignore
|
|
64
|
-
export type { Component, ComponentPublicInstance, ComputedRef, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
|
|
64
|
+
export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
|
|
65
65
|
}
|
|
@@ -2,10 +2,9 @@ import { fileURLToPath } from 'node:url';
|
|
|
2
2
|
import { lstatSync, readFileSync } from 'node:fs';
|
|
3
3
|
import { join as joinPath, relative as relativePath } from 'node:path';
|
|
4
4
|
import * as dotenv from 'dotenv';
|
|
5
|
-
import { defineConfig } from 'astro/config';
|
|
5
|
+
import { defineConfig, passthroughImageService } from 'astro/config';
|
|
6
6
|
import node from '@astrojs/node';
|
|
7
7
|
import vue from '@astrojs/vue';
|
|
8
|
-
import image from '@astrojs/image';
|
|
9
8
|
import UnoCSS from 'unocss/astro';
|
|
10
9
|
import AstroPWA from '@vite-pwa/astro';
|
|
11
10
|
import AutoImport from 'unplugin-auto-import/astro';
|
|
@@ -209,23 +208,19 @@ const genAstroConfig = ({
|
|
|
209
208
|
viteAlias.push({
|
|
210
209
|
find: 'virtual:pwa-info',
|
|
211
210
|
replacement: joinPath(__dirname, 'config/astro/mock-pwa-info.mjs'),
|
|
211
|
+
}, {
|
|
212
|
+
find: 'virtual:pwa-register',
|
|
213
|
+
replacement: joinPath(__dirname, 'config/astro/mock-pwa-info.mjs'),
|
|
212
214
|
});
|
|
213
215
|
}
|
|
214
|
-
if (!isToServerless) {
|
|
215
|
-
integrations.push(image({
|
|
216
|
-
serviceEntryPoint: '@astrojs/image/sharp',
|
|
217
|
-
}));
|
|
218
|
-
}
|
|
219
216
|
return {
|
|
220
|
-
experimental: {
|
|
221
|
-
viewTransitions: true,
|
|
222
|
-
},
|
|
223
217
|
output: isSSG ? 'static' : 'server',
|
|
224
218
|
adapter: isSSG ? undefined : node({
|
|
225
219
|
mode: 'middleware',
|
|
226
220
|
}),
|
|
227
221
|
outDir,
|
|
228
222
|
integrations,
|
|
223
|
+
image: isToServerless ? { service: passthroughImageService() } : undefined,
|
|
229
224
|
site,
|
|
230
225
|
compressHTML: isToServerless,
|
|
231
226
|
build: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as M,f as _,E as T,b as V,i as A}from"./customer-session.68901b4c.js";import{_ as P,a as I,v as R,w as k}from"./_plugin-vue_export-helper.d927d271.js";import{a as j}from"./index.aac4c53d.js";import{g as B,b as O,c as q}from"./index-61e5ac61.bdc8d0cd.js";import{b as D}from"./index.d93220be.js";import{a as f,w as h,J as C,c as z,K as F,f as l,h as c,W as N,N as i,O as S,L as r,M as b,T as L,P as E,Q as x,R as U,a0 as K,a1 as W,U as G,V as J}from"./ecom-utils.f65876ca.js";import"./sf-utils.b04e1813.js";const Q=m=>{M();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(T,_.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}},Y=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 V}};return Object.defineProperty(v,"__isScriptSetup",{enumerable:!1,value:!0}),v}}),$={class:"text-base-600 mb-4 text-2xl font-light"},H={key:0},X={key:1,class:"lowercase"},Z={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",$,[S(r("Olá")+" "),e.customerName?(l(),c("span",H,r(e.customerName),1)):(l(),c("span",X,r("Visitante")))]),e.isLinkSignIn?(l(),c("label",Z,r("Enviar link de acesso por e-mail"))):b("",!0),L(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 rounded",required:""},null,512),[[I,e.email]]),e.isLinkSignIn?b("",!0):L((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 rounded lowercase",required:""},null,512)),[[I,e.password]]),i("div",ee,[i("div",{class:E(["transition-opacity",e.isEmailSentMsg&&"opacity-0 invisible"])},[L(i("a",{href:"?password",class:"ui-link text-base-500 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),[[R,!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),x(n,{speed:"slow"},{default:U(()=>[e.isEmailSentMsg?(l(),c("p",te,[ne,S(" "+r("Te enviamos o e-mail, verifique sua caixa de entrada e spam se necessário."),1)])):b("",!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(Y,[["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(A,()=>{A.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"}),S(" "+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,[x(e.LoginForm,K(W({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,J(m.$settings.serviceLinks,({title:o,href:d},g)=>(l(),c("li",{key:`s-${g}`},[x(n,{href:d,class:"ui-link text-base-200 hover:text-white"},{default:U(()=>[S(r(o),1)]),_:2},1032,["href"])]))),128))])])):b("",!0)])])}const Le=P(oe,[["render",_e]]);export{Le as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as b,w as x}from"./_plugin-vue_export-helper.d927d271.js";import{f as C}from"./modules-info.4373e917.js";import{p as I,b as S,s as w,t as V}from"./shopping-cart.608866aa.js";import{Q as F,C as P}from"./QuantitySelector.d7dd044c.js";import{P as v}from"./Prices.862d15eb.js";import{c as p,J as y,K as f,f as i,h as m,Q as d,R as k,X as j,M as h,N as t,L as o,O as g,U as L,V as N}from"./ecom-utils.f65876ca.js";import{g as z}from"./name.2999355b.js";import{g as A}from"./img.27573b8b.js";import"./afetch.f4507208.js";import"./sf-utils.b04e1813.js";import"./format-money.db179bca.js";import"./price.04ceb6c4.js";import"./customer-session.68901b4c.js";import"./index.d93220be.js";import"./i18n.614beec4.js";const q=a=>{const s=p(()=>!a.item&&a.product?I(a.product):null),r=p(()=>a.item||s.value),e=p(()=>z(r.value)),n=p(()=>{const{slug:l}=r.value;return typeof l=="string"?`/${l}`:null}),u=p(()=>{if(r.value.picture)return A(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:F,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 text-danger-800 border-danger-700/30 flex h-5 w-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(),j(c,{key:0,picture:e.image,alt:e.title,class:"h-20 w-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 J=b(B,[["render",D]]),K=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:P,Prices:v,CartItem:J};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),T={class:"flex h-screen flex-col bg-white"},X={class:"z-10 flex items-center justify-end gap-3 px-6 py-4 shadow ring-1 ring-black/5"},G=t("span",{class:"text-base-600 text-right text-base font-medium"},o("Meu carrinho de compras"),-1),H={class:"min-w-[3rem] text-right"},W={class:"ui-badge-pill-lg"},Y={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",T,[t("header",X,[G,t("span",H,[t("span",W,o(e.totalItems),1)])]),t("article",Y,[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(L,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:"ui-link text-base-500 hover:text-base-700 text-sm"},[ce,g(" "+o("Continuar comprando"))])])])}const Se=b(K,[["render",le]]);export{Se as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as w,v as B}from"./_plugin-vue_export-helper.d927d271.js";import{p as f}from"./modules-info.4373e917.js";import{c as d,J as T,K as x,f as r,h as l,Q as c,R as o,W as k,P as b,X as v,O as y,L as g,Y as C,M as m,a as H,o as L,T as N,N as _,U as P,V,Z as j}from"./ecom-utils.f65876ca.js";import"./afetch.f4507208.js";import"./sf-utils.b04e1813.js";import"./format-money.db179bca.js";import"./price.04ceb6c4.js";const M=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}},D=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}=M(t),u={props:t,hasHeader:e,parsedTitle:i,parsedSubtitle:p,parsedButtonText:n};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),O={key:0,class:"mb-3 p-12 sm:mb-0 xl:ps-32"},z={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(()=>[k(s.$slots,"picture")]),_:3},8,["href","class"]),e.hasHeader?(r(),l("div",O,[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",z,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(D,[["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"},J={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"},K=_("i",{class:"i-arrow-right rotate-180"},null,-1),Q=_("i",{class:"i-arrow-right"},null,-1);function R(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",J,[_("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 h-10 w-10 rounded-full","is-prev":""},{default:o(()=>[K]),_:1}),c(n,{class:"hover:bg-primary/10 h-10 w-10 rounded-full"},{default:o(()=>[Q]),_:1})],2)],512),[[B,t.slides.length>1]])]),default:o(()=>[(r(!0),l(P,null,V(t.slides,(S,h)=>(r(),l("li",{key:h,class:"shrink-0 basis-full"},[c(e.Banner,j({...S,headingTag:h===0?"h2":"h3"},{class:"w-screen max-w-screen-2xl"}),{picture:o(()=>[k(s.$slots,`picture-${h}`)]),_:2},1040)]))),128))]),_:3},8,["autoplay"])])}const $=w(F,[["render",R]]);export{$ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as C,v as g}from"./_plugin-vue_export-helper.d927d271.js";import{p as x}from"./modules-info.4373e917.js";import{S as b,c as m,J as w,K as p,h as r,N as h,Q as i,R as u,f as l,T as S,U as y,V as B,P as k,M as P}from"./ecom-utils.f65876ca.js";import"./afetch.f4507208.js";import"./sf-utils.b04e1813.js";import"./format-money.db179bca.js";import"./price.04ceb6c4.js";function V(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 L=t=>{const e=b(null);return window.$isCmsPreview&&V(t,s=>{e.value=s}),{liveContent:e}},N=t=>{const e={slides:[]};return t.header?.pitchBar&&(e.slides=t.header.pitchBar),e},J=t=>{const{liveContent:e}=L("layout"),s=m(()=>(e.value?N(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}=J(s),o={props:s,parsedContents:n,countValidSlides:a};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),O={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=p("ALink"),_=p("CarouselControl"),v=p("Carousel");return l(),r("div",O,[h("div",T,[i(v,{autoplay:n.countValidSlides>1?7e3:void 0},{controls:u(()=>[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:u(()=>[(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:u(()=>[n.parsedContents[d]?(l(),r("span",{key:0,innerHTML:n.parsedContents[d],class:"prose text-base-800 text-sm"},null,8,z)):P("",!0)]),_:2},1032,["href","target","class"])]))),128))]),_:1},8,["autoplay"])])])}const Q=C(M,[["render",E]]);export{Q as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as W,i as A,d as z,l as M}from"./modules-info.4373e917.js";import{c as s,J as S,K as E,f as o,h as i,L as r,M as c,N as h,O as N,P as C,Q as L,R as B}from"./ecom-utils.f65876ca.js";import{g,c as T}from"./price.04ceb6c4.js";import{_ as F}from"./_plugin-vue_export-helper.d927d271.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=W.value;return u&&(!u.min_amount||t>u.min_amount)?j(t,u):t}),d=s(()=>{if(T(l.value))return l.value.base_price;const t=g(l.value);return t>e.value?t:0}),_=s(()=>a.installmentsOption||A.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}},J=S({__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}}),K={key:0,class:"text-base-500 mr-1 text-[87%]"},Q={key:0},q={key:1},G={key:0},H={key:0,class:"relative z-10"},U=["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",K,[n.isLiteral?(o(),i("small",Q,r("De "))):c("",!0),h("s",null,r(a.$money(e.comparePrice)),1),n.isLiteral?(o(),i("small",q,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",G,r("A partir de "))):c("",!0),N(" "+r(a.$money(e.salePrice)),1)],2),L(m,{slide:"down"},{default:B(()=>[e.cashbackValue&&n.hasCashback?(o(),i("div",H,[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,U)])):c("",!0)]),_:1}),L(m,{slide:"down"},{default:B(()=>[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}),L(m,{slide:"down"},{default:B(()=>[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=F(J,[["render",oe]]);export{me as P};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as D,w as J}from"./_plugin-vue_export-helper.d927d271.js";import{a as H}from"./index.aac4c53d.js";import{a as Y}from"./shopping-cart.608866aa.js";import{u as Z}from"./use-product-card.cc44716b.js";import{C as $,Q as tt}from"./QuantitySelector.d7dd044c.js";import{P as et}from"./Prices.862d15eb.js";import{_ as G,d as ot}from"./customer-session.68901b4c.js";import{u as it}from"./sf-utils.b04e1813.js";import{g as rt}from"./img-sizes.41e0efe4.js";import{_ as at,J as N,a as S,K as P,f as u,h as f,X as I,R as A,N as v,M as y,U as k,V as z,P as V,Q as w,a4 as F,$ as M,r as L,w as T,a5 as Q,c as K,O as B,L as C,a6 as st,o as nt,W as lt}from"./ecom-utils.f65876ca.js";import{g as ct}from"./name.2999355b.js";import"./index.d93220be.js";import"./price.04ceb6c4.js";import"./use-analytics.205d2b8f.js";import"./afetch.f4507208.js";import"./img.27573b8b.js";import"./modules-info.4373e917.js";import"./format-money.db179bca.js";import"./i18n.614beec4.js";const q=(r,o,l)=>{if(typeof r!="object"||r===null)return[];let t=[];if(typeof r=="object"&&r!==null)if(Array.isArray(r))r.length&&(r[0].specifications?r.forEach(e=>{t=t.concat(q(e,o,l))}):r[0].text&&(t=r));else{const{specifications:e}=r;if(e)for(const n in e)e[n]&&n===o&&(t=e[o]);if(t&&!t.length&&Array.isArray(l)&&l.length){let n,d;return l&&(d=l.find(a=>a.grid_id===o))&&d.options&&(n=d.options.map(a=>{let s;return a.colors&&a.colors.length?s=a.colors[0]:s=a.option_id,{text:a.text,value:s}})),q(n,o)}}return t},W=q,dt=(r,o,l,t=", ")=>{let e=W(r,o,l);if(e.length){let n=e[0].text;for(let d=1;d<e.length;d++)n+=t+e[d].text;return n}return null},X=dt,ut=(r,o,l,t)=>{const e=W(r,l,t);for(let n=0;n<e.length;n++)if(e[n].text===o)return e[n].value},mt=ut,ft=(r,o,l,t)=>{let e={};return r&&Array.isArray(r.variations)&&r.variations.forEach(n=>{if(l&&n.quantity<=0)return;let d=n.specifications,a=s=>X(n,s,t);if(d){if(o){for(let s in o)if(o.hasOwnProperty(s)&&(!d[s]||a(s)!==o[s]))return}for(let s in d)if(d.hasOwnProperty(s)){let m=a(s);if(!e.hasOwnProperty(s))e[s]=[];else if(e[s].indexOf(m)!==-1)continue;e[s].push(m)}}}),e},j=ft,gt=(r,o,l=at.get("lang"))=>{let t;return Array.isArray(o)?t=o.find(e=>e.grid_id===r):console.error("`grids` must be array to get grid title"),t?ct(t,l):r},pt=gt,_t=N({__name:"ImagesGallery",props:{pictures:{}},setup(r,{expose:o}){o();const l=S(0),t=S("");let e;const n=S(!1),a={activeIndex:l,psId:t,get lightbox(){return e},set lightbox(s){e=s},isLoadingLightbox:n,zoom:s=>{if(t.value=`ps-${it()}`,!e&&!n.value){n.value=!0;const m="photoswipe-style";Promise.all([G(()=>import("./photoswipe-lightbox.esm.c157838f.js"),[]),G(()=>import("./photoswipe.esm.92c2d901.js"),[]),!document.getElementById(m)&&G(()=>import("./photoswipe.01431ec7.js"),[])]).then(([{default:i},{default:c},_])=>{if(_){const{default:b}=_,p=document.createElement("style");p.id=m,p.textContent=b,document.head.appendChild(p)}e=new i({gallery:`#${t.value} > div`,children:"a",pswpModule:c,showAnimationDuration:300,hideAnimationDuration:300}),e.init(),e.loadAndOpen(s),n.value=!1})}},get getImgSizes(){return rt}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),ht={class:"-mx-4 flex w-screen gap-3 sm:mx-0 sm:w-full md:h-[525px] 2xl:gap-5"},vt=["onClick"],bt=v("span",{class:"absolute bottom-0 block h-2 w-full bg-gradient-to-b from-transparent to-white"},null,-1),yt={class:"relative aspect-square h-full grow md:aspect-auto"},xt={key:0,class:"i-arrow-path bg-base-200 absolute left-1/2 top-1/2 -ml-7 -mt-7 h-14 w-14 animate-spin","aria-label":"Carregando"},kt={key:1,class:"mt-2 flex justify-center gap-1.5 md:hidden"},wt=["aria-label","onClick"];function Ct(r,o,l,t,e,n){const d=P("AImg"),a=P("CarouselControl"),s=P("Carousel"),m=P("ALink");return u(),f("div",ht,[l.pictures.length>1?(u(),I(s,{key:0,axis:"y",class:"group hidden w-[300px] shrink-0 md:block"},{controls:A(()=>[v("span",null,[l.pictures.length>6?(u(),I(a,{key:0,class:"hover:bg-primary-300/60 text-primary !bottom-3 !left-1/2 -ml-5 h-10 w-10 rounded-full bg-white/60 text-xl opacity-0 shadow-sm ring-1 ring-black/5 group-hover:opacity-90"})):y("",!0),bt])]),default:A(()=>[(u(!0),f(k,null,z(Math.ceil(l.pictures.length/2),i=>(u(),f("li",{key:i,class:V(["grid h-1/3 w-full grid-cols-2 gap-3 px-1 pb-3",i===1&&"pt-1"])},[(u(!0),f(k,null,z([1,2].map(c=>(i-1)*2+(c-1)),c=>(u(),f(k,{key:`${i}-${c}`},[c<l.pictures.length?(u(),f("button",{key:0,class:"bg-secondary-100 h-full rounded",onClick:_=>t.activeIndex=c},[w(d,{picture:l.pictures[c],class:V(["ring-secondary/10 h-full w-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,vt)):y("",!0)],64))),128))],2))),128))]),_:1})):y("",!0),v("div",yt,[w(s,{as:"div",index:t.activeIndex,"onUpdate:index":o[1]||(o[1]=i=>t.activeIndex=i),class:V(["text-base-600 [&_i]:i-arrow-right mx-auto h-full w-full max-w-[525px] [&>*]:h-full [&_i]:mx-2 [&_i]:text-2xl",t.isLoadingLightbox&&"opacity-80"]),id:t.psId},{default:A(()=>[o[0]||(F(-1),o[0]=(u(!0),f(k,null,z(l.pictures,(i,c)=>(u(),I(m,{key:`big-${c}`,href:i.zoom?.size&&i.zoom.url,"data-pswp-width":t.getImgSizes(i.zoom||"").width,"data-pswp-height":t.getImgSizes(i.zoom||"").height,target:"_blank",rel:"noreferrer",class:V(["shrink-0 basis-full",i.zoom?.size&&"cursor-zoom-in"]),onClick:J(()=>i.zoom?.size&&t.zoom(c),["prevent"])},{default:A(()=>[w(d,{picture:i,"preferred-size":"big",class:"h-full w-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),o[0])]),_:1},8,["index","class","id"]),t.isLoadingLightbox?(u(),f("i",xt)):y("",!0),l.pictures.length>1?(u(),f("ul",kt,[(u(!0),f(k,null,z(l.pictures.length,i=>(u(),f("li",{key:`d-${i}`},[v("button",{class:V(["bg-base-700 block h-1.5 w-3 rounded-full",t.activeIndex!==i-1&&"opacity-40"]),"aria-label":`Imagem ${i}`,onClick:c=>t.activeIndex=i-1},null,10,wt)]))),128))])):y("",!0)])])}const St=D(_t,[["render",Ct]]),Ot=r=>{let o=M(globalThis.$storefront.data.grids);o||(o=M([]),ot.get("grids").then(({data:{result:i}})=>{i.forEach(c=>o.push(c))}));const l=L({}),t=L({});T(Q(r,"variations"),()=>{Object.assign(t,j(r,void 0,!0));const i=j(r);Object.keys(i).forEach(c=>{t[c]?l[c]=t[c]:delete l[c]})},{immediate:!0});const e=K(()=>Object.keys(l)),n=L({}),d=S(),a=({optionText:i,gridId:c,gridIndex:_})=>{n[c]=i;const b={};for(let g=0;g<=_;g++){const h=e[g];n[h]&&(b[h]=n[h])}const p=j(r,b,!0);for(let g=_+1;g<e.value.length;g++){const h=e[g],O=p[h];t[h]=O,n[h]&&!O.includes(n[h])&&delete n[h]}const x=r.variations.slice(0);for(let g=0;g<x.length;g++){const h=x[g],{specifications:O}=h,R=Object.keys(O);for(let E=0;E<R.length;E++){const U=R[E];if(n[U]!==X(h,U)){x.splice(g,1),g-=1;break}}}d.value=x[0]?._id||null};return T(Q(r,"variationId"),i=>{if(!i||i===d.value)return;const c=r.variations.find(x=>x._id===i);if(!c){d.value=null;return}const{specifications:_}=c,b=Object.keys(_),p=(x=0)=>{const g=b[x];if(b[x]&&_[g]&&_[g].length===1){const h=_[g][0].text;l[g].find(O=>O===h)&&(a({optionText:h,gridId:g,gridIndex:e.value.indexOf(g)}),p(x+1))}};p()},{immediate:!0}),{grids:o,variationsGrids:l,activeVariationsGrids:t,selectOption:a,selectedOptions:n,variationId:d,getGridTitle:i=>pt(i,o),getColorOptionBg:i=>{const c=i.split(",").map(_=>mt(r.variations,_.trim(),"colors"));return c.length>1?`background:linear-gradient(to right bottom, ${c[0]} 50%, ${c[1]} 50%)`:`background:${c[0]}`}}},Vt=N({__name:"SkuSelector",props:{variations:{},variationId:{}},emits:["update:variationId"],setup(r,{expose:o,emit:l}){o();const t=r,e=l,{variationsGrids:n,activeVariationsGrids:d,selectOption:a,selectedOptions:s,variationId:m,getGridTitle:i,getColorOptionBg:c}=Ot(t);T(m,b=>{e("update:variationId",b)});const _={props:t,emit:e,variationsGrids:n,activeVariationsGrids:d,selectOption:a,selectedOptions:s,variationId:m,getGridTitle:i,getColorOptionBg:c};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}}),At={class:"text-base-700 text-sm font-medium"},zt={key:0,class:"text-base-800"},Pt={key:0,class:"mt-2 flex gap-2"},It=["onClick"];function Tt(r,o,l,t,e,n){return u(),f("div",null,[(u(!0),f(k,null,z(t.variationsGrids,(d,a)=>(u(),f("div",{key:a},[v("span",At,[B(C(t.getGridTitle(a))+": ",1),t.selectedOptions[a]?(u(),f("strong",zt,C(t.selectedOptions[a]),1)):y("",!0)]),d.length<7?(u(),f("ul",Pt,[(u(!0),f(k,null,z(d,(s,m)=>(u(),f("li",{key:`${a}-${m}`},[v("button",{class:V(["ring-secondary/60 rounded border",[t.selectedOptions[a]===s?"border-secondary ring-2":null,a==="colors"?"h-9 w-9 text-[0]":"px-2 py-1",t.activeVariationsGrids[a].includes(s)?"text-base-800 bg-base-100 border-base-400":"text-base-500 bg-base-200 border-base-300"]]),style:st(a==="colors"?t.getColorOptionBg(s):void 0),onClick:i=>t.selectOption({optionText:s,gridId:a,gridIndex:m})},C(s),15,It)]))),128))])):y("",!0)]))),128))])}const Et=D(Vt,[["render",Tt]]),Gt=N({__name:"ProductDetails",props:{product:{default:()=>globalThis.$storefront.apiContext?.doc}},setup(r,{expose:o}){o();const l=r,{product:t,title:e,isActive:n}=Z(l),d=S(t.min_quantity||1),a=H("history"),s=S(!1),m=S(null);T(m,p=>{p&&(a.var=p,s.value=!1)}),nt(()=>{T(a,({var:p})=>{typeof p=="string"&&p&&(m.value=p)},{immediate:!0})});const i=K(()=>!!(!t.variations?.length||m.value)),c=p=>(i.value?s.value=!1:(p&&p.preventDefault(),s.value=!0),!s.value),b={props:l,product:t,title:e,isActive:n,quantity:d,params:a,hasSkuSelectionAlert:s,variationId:m,isSkuSelected:i,checkVariation:c,addToCart:()=>{c()&&Y(t,m.value?m.value:void 0)},CheckoutLink:$,QuantitySelector:tt,Prices:et,ImagesGallery:St,SkuSelector:Et};return Object.defineProperty(b,"__isScriptSetup",{enumerable:!1,value:!0}),b}}),Lt={class:"ui-section relative grid grid-cols-1 items-start gap-5 md:gap-4 lg:grid-cols-4 2xl:gap-6"},jt={class:"w-full lg:col-span-3"},Bt={class:"top-0 py-4 lg:sticky"},qt={class:"ui-text-brand text-base-700 text-xl"},Dt={key:0,class:"mt-5"},Nt={key:0,class:"ui-alert inline-block"},Rt=v("i",{class:"i-arrow-right ml-1 -rotate-90"},null,-1),Ut={class:"mt-5 flex flex-wrap items-center gap-x-4 gap-y-2 overflow-hidden md:flex-nowrap lg:mt-4 lg:flex-wrap"},Ft=v("i",{class:"i-chevron-double-right mr-1"},null,-1),Mt=["onClick","data-tooltip"],Qt={class:"w-full lg:col-span-3"};function Jt(r,o,l,t,e,n){const d=P("Fade");return u(),f("section",Lt,[v("div",jt,[t.product.pictures?.length?(u(),I(t.ImagesGallery,{key:0,pictures:t.product.pictures},null,8,["pictures"])):y("",!0)]),v("div",Bt,[v("h1",qt,C(t.title),1),t.isActive?(u(),f("div",Dt,[w(t.Prices,{product:t.product,"is-big":"","is-literal":""},null,8,["product"]),t.product.variations?(u(),I(t.SkuSelector,{key:0,variations:t.product.variations,"variation-id":t.variationId,"onUpdate:variationId":o[0]||(o[0]=a=>t.variationId=a),class:"my-4"},null,8,["variations","variation-id"])):y("",!0),w(d,{slide:"down"},{default:A(()=>[t.hasSkuSelectionAlert?(u(),f("div",Nt,[B(C("Por favor selecione uma opção em cada campo acima")+" "),Rt])):y("",!0)]),_:1}),v("div",Ut,[w(t.QuantitySelector,{modelValue:t.quantity,"onUpdate:modelValue":o[1]||(o[1]=a=>t.quantity=a),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:A(()=>[Ft,B(" "+C("Comprar"))]),_:1},8,["cart-item","data-tooltip"]),v("button",{class:"ui-btn-lg ui-btn-contrast grow",onClick:J(t.addToCart,["prevent"]),"data-tooltip":t.isSkuSelected?null:"Escolha os detalhes do produto para comprar"},C("Adicionar ao carrinho"),8,Mt)])])):y("",!0)]),v("div",Qt,[lt(r.$slots,"description")])])}const me=D(Gt,[["render",Jt]]);export{me as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as L,w as V,v as j}from"./_plugin-vue_export-helper.d927d271.js";import{d as A}from"./customer-session.68901b4c.js";import{c as O,u as B}from"./use-product-card.cc44716b.js";import{a as _,$ as Q,J as N,K as y,f as s,h as c,Q as h,R as x,N as m,X as I,M as w,O as b,L as k,Y as E,P as T,T as H,U as M,V as z}from"./ecom-utils.f65876ca.js";import{u as D}from"./sf-utils.b04e1813.js";import{u as q}from"./index.aac4c53d.js";import{a as F}from"./shopping-cart.608866aa.js";import{P as R}from"./Prices.862d15eb.js";import{f as J}from"./index.d93220be.js";import"./use-analytics.205d2b8f.js";import"./afetch.f4507208.js";import"./name.2999355b.js";import"./i18n.614beec4.js";import"./price.04ceb6c4.js";import"./img.27573b8b.js";import"./modules-info.4373e917.js";import"./format-money.db179bca.js";const K=e=>{const a=_(e.title||""),d=_(e.titleLink||""),t=_(!1);let f=null;const u=_(null),n=Q(e.products||[]);return e.products||(t.value=!0,f=(async()=>{let i=e.searchQuery||"",l;if(e.collectionId){try{const{data:r}=await A.get(`collections/${e.collectionId}`);l=r}catch(r){console.error(r),u.value=r}const o=l?.products;Array.isArray(o)&&o.length&&(i+=`&_id=${o.slice(0,60).join(",")}`),!a.value&&a.value!==null&&l?.name&&(a.value=l?.name)}const g=e.limit||24;let p=`offset=${e.page?(e.page-1)*g:0}&limit=${g}`;e.sort&&(p+=`&sort=${e.sort}`),p+=i;try{const{data:o}=await A.get(`search/v1?${p}`);if(e.isShuffle){let r=o.result.filter(S=>S.available&&O(S)).length,v,C;for(;r;)C=Math.floor(Math.random()*r--),v=o.result[r],o.result[r]=o.result[C],o.result[C]=v}o.result.forEach(r=>n.push(r))}catch(o){console.error(o),u.value=o}t.value=!1})()),{title:a,titleLink:d,isFetching:t,fetching:f,fetchError:u,products:n}},U=N({__name:"ProductCard",props:{product:{},productId:{},listName:{},listId:{},headingTag:{default:"h3"}},setup(e,{expose:a}){a();const d=e,{product:t,title:f,link:u,images:n,isInStock:i,isActive:l,discountPercentage:g,hasVariations:P}=B(d),p=_(null),o=q(p),r=_(!1);J(o,()=>{r.value=!0});const v={props:d,product:t,title:f,link:u,images:n,isInStock:i,isActive:l,discountPercentage:g,hasVariations:P,card:p,isHovered:o,wasHoveredOnce:r,get addProductToCart(){return F},Prices:R};return Object.defineProperty(v,"__isScriptSetup",{enumerable:!1,value:!0}),v}}),X=["data-sku"],Y={class:"aspect-square p-2 transition-transform motion-safe:group-hover:scale-110"},G={class:"relative h-full w-full overflow-hidden rounded bg-white group-hover:rounded-none"},W={key:0,class:"text-xs text-opacity-70"},Z={key:1,class:"from-base-50/20 to-base-100 h-full w-full bg-gradient-to-br"},$={key:0,class:"uno-bm03rg"},tt={class:"relative z-10 flex grow flex-col justify-between bg-white/40 p-4 group-hover:backdrop-blur-md"},et={class:"pt-2"},ot={key:0},rt={key:1,class:"ui-badge bg-warning-100 text-warning-700"},st=m("span",{class:"bg-on-primary text-primary mr-1 inline-block h-4 w-4 rounded-full text-center text-base leading-none opacity-80"}," + ",-1);function at(e,a,d,t,f,u){const n=y("AImg"),i=y("ALink");return s(),c("article",{ref:"card","data-sku":t.product.sku,class:"group relative mx-auto h-full max-w-[350px] py-3"},[h(i,{href:t.link,class:"flex h-full flex-col overflow-hidden rounded ring-black/5 group-hover:shadow group-hover:ring-1"},{default:x(()=>[m("div",Y,[m("div",G,[t.images?.length?(s(),c("span",W,[h(n,{picture:t.images[0],alt:t.title,class:"absolute left-0 top-0 block h-full w-full object-cover"},null,8,["picture","alt"]),t.images[1]&&t.wasHoveredOnce?(s(),I(n,{key:0,picture:t.images[1],alt:t.title,class:"absolute left-0 top-0 z-10 block h-full w-full object-cover text-transparent opacity-0 transition-opacity group-hover:opacity-100 motion-safe:duration-300"},null,8,["picture","alt"])):w("",!0)])):(s(),c("div",Z))])]),t.discountPercentage?(s(),c("span",$,[b(" -"),m("strong",null,k(t.discountPercentage),1),b("% ")])):w("",!0),m("div",tt,[(s(),I(E(d.headingTag),{class:T(["ui-link line-clamp-2 no-underline",[t.isActive?"text-base-700":"text-base-500",t.link?"group-hover:text-primary group-hover:underline":null]])},{default:x(()=>[b(k(t.title),1)]),_:1},8,["class"])),m("div",et,[t.isActive?(s(),c("div",ot,[h(t.Prices,{product:t.product},null,8,["product"])])):(s(),c("span",rt,k(t.isInStock?"Inativo":"Sem estoque"),1))]),t.isActive&&!t.hasVariations?(s(),c("button",{key:0,class:"uno-3suct9 ui-btn-sm ui-btn-primary",onClick:a[0]||(a[0]=V(l=>t.addProductToCart(t.product),["prevent"]))},[st,b(" "+k("Adicionar ao carrinho"))])):w("",!0)])]),_:1},8,["href"])],8,X)}const lt=L(U,[["render",at]]),nt=N({__name:"ProductShelf",props:{collectionId:{},searchQuery:{},sort:{},title:{},titleLink:{},isShuffle:{type:Boolean},limit:{},page:{},products:{}},async setup(e,{expose:a}){a();const d=e,{title:t,titleLink:f,fetching:u,products:n}=K(d),i=t.value||`Shelf ${D()}`,l={props:d,title:t,titleLink:f,fetching:u,products:n,listName:i,ProductCard:lt};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),it={class:"ui-section"},ct={key:0,class:"mx-auto mb-2 max-w-prose text-center"},dt={class:"ui-text-brand text-3xl"},ut={class:"text-primary text-3xl leading-none transition-opacity group-hover/shelf:opacity-90 lg:text-2xl lg:opacity-0"};function ft(e,a,d,t,f,u){const n=y("ALink"),i=y("CarouselControl"),l=y("Carousel");return s(),c("section",it,[t.title?(s(),c("div",ct,[m("h2",dt,[h(n,{href:t.titleLink,class:T(t.titleLink?"ui-link":"text-base-700")},{default:x(()=>[b(k(t.title),1)]),_:1},8,["href","class"])])])):w("",!0),h(l,{class:"group/shelf"},{controls:x(()=>[H(m("div",ut,[h(i,{class:"lg:hover:bg-primary-300/60 !-left-4 !top-1/2 h-12 w-12 rounded-full bg-transparent ring-black/5 lg:bg-white/80 lg:shadow-sm lg:ring-1","is-prev":""}),h(i,{class:"lg:hover:bg-primary-300/60 !-right-4 !top-1/2 h-12 w-12 rounded-full bg-transparent ring-black/5 lg:bg-white/80 lg:shadow-sm lg:ring-1"})],512),[[j,t.products.length>2]])]),default:x(()=>[(s(!0),c(M,null,z(t.products,g=>(s(),c("li",{key:g._id,class:"shrink-0 basis-1/2 md:basis-1/3 lg:basis-1/4"},[h(t.ProductCard,{product:g,"list-name":t.listName},null,8,["product","list-name"])]))),128))]),_:1})])}const Nt=L(nt,[["render",ft]]);export{Nt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as v,w as U,a as V}from"./_plugin-vue_export-helper.d927d271.js";import{J as M,c as y,f as p,h as f,W as u,a2 as q,U as k,O as B,a as $,a3 as P,N as x,L as N,a0 as I,a1 as g,T,Q as w,R as C}from"./ecom-utils.f65876ca.js";import{u as j}from"./sf-utils.b04e1813.js";const z=M({__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:S},Q)=>{const b=`customizations.${Q}.`;r&&(o[b+"label"]=r),_&&(_._id&&(o[b+"option._id"]=_._id),o[b+"option.text"]=_.text),S&&(o[b+"attachment"]=S)}),n+="?"+new URLSearchParams(o).toString()}return n}),s={props:t,href:e};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),L=["href"];function O(a,i,t,e,s,n){return p(),f("a",{href:e.href},[u(a.$slots,"default")],8,L)}const Z=v(z,[["render",O]]),R=M({__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 enabled:text-primary enabled:hover:bg-primary-100/70 h-12 w-10 text-xl 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]=U(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"),J=M({__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=$(null),o=`NInput${j()}`,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);P(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}}),K={"data-quantity-selector":""},W={class:"flex items-center"},A=["min","max","step","disabled","readonly"];function G(a,i,t,e,s,n){return p(),f("div",K,[u(a.$slots,"label",I(g({inputId:e.inputId,value:e.value})),()=>[x("label",{for:e.inputId,class:"sr-only"},N("Quantidade"))]),x("div",W,[T(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,A),[[V,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(J,[["render",G]]);export{Z as C,ee as Q};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as e}from"./_plugin-vue_export-helper.d927d271.js";import{f as o,h as c}from"./ecom-utils.f65876ca.js";const r={},s={class:"bg-base-300 h-40 w-full lg:rounded"};function t(a,n){return o(),c("div",s)}const l=e(r,[["render",t]]);export{l as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{e as je,b as Be,i as He,l as Ve,_ as Me}from"./customer-session.68901b4c.js";import{_ as W,w as oe}from"./_plugin-vue_export-helper.d927d271.js";import{t as vt}from"./shopping-cart.608866aa.js";import{b as mt,o as gt}from"./index.aac4c53d.js";import{i as ve,a as ht,b as Se}from"./sf-utils.b04e1813.js";import{h as bt,g as yt,p as _t,u as xt,f as Te}from"./index.d93220be.js";import{a as _,c as P,w as Q,o as ae,J as D,a5 as Oe,n as J,K as Y,f as y,X as A,R as O,h as I,P as N,a6 as Ue,N as b,W as te,M as $,a9 as We,Q as C,Y as wt,L as F,U as B,V as z,O as q,aa as St,m as V,a2 as le,a3 as ue,ab as G,ac as ke,a0 as Ke,a1 as ze,a4 as Ie,Z as Ee,a8 as Ce,ad as Le}from"./ecom-utils.f65876ca.js";import"./price.04ceb6c4.js";const kt=e=>{const{header:n,canSetStyles:r,canCreateHeightDiv:t,isShownOnScrollDown:a,isShownOnMobile:l}={canSetStyles:!0,canCreateHeightDiv:!0,...e},{ready:o,start:s}=bt(100,{controls:!0,immediate:!1}),u=_(0),c=_(0);let i;const h=l||!ve&&!ht,{y:m}=h?mt(document):{y:_(0)},f=_(0);yt(m,x=>{f.value=x},{debounce:ve?100:50,maxWait:ve?800:400});const g=P(()=>o.value&&f.value>c.value*1.2),d=_("none");Q(g,async x=>{r&&n.value&&(n.value.style.position=x?"fixed":"",n.value.style.width=x?"100vw":""),i&&(i.style.height=x?`${u.value}px`:""),x?(await _t(300),d.value="opacity var(--transition-slow), transform var(--transition)"):(s(),d.value="none")});const p=_(!1);return Q(f,(x,k)=>{p.value=x>0&&x<k}),ae(()=>{if(!n.value)throw new Error("<header> (props.header) not set");const x=()=>{const M=n.value;u.value=M.offsetHeight,c.value=u.value+window.scrollY+M.getBoundingClientRect().top,s()},k=n.value.getElementsByTagName("IMG");let S=!0;for(let M=0;M<k.length;M++){const w=k[M];(!w.complete||w.naturalHeight===0)&&(S=!1,w.onload=x)}S&&x(),window.addEventListener("resize",xt(x,300)),r&&(n.value.style.willChange="transform",Q([g,p],([M,w])=>{let T="",E="";M&&(!w||a)&&(T="0",E="translateY(-100%)");const R=n.value;R.style.opacity=T,R.style.transform=E}),Q(d,M=>{n.value.style.transition=M})),t&&(i=document.createElement("div"),n.value.parentElement?.insertBefore(i,n.value))}),{staticHeight:u,staticY:c,isSticky:g,isScrollUp:p,transition:d}},Pt=(e,n)=>{const r=e.filter(({name:t,slug:a,parent:l})=>t&&a&&!l);return n?.length&&r.sort((t,a)=>{const l=n.indexOf(t.slug),o=n.indexOf(a.slug);return l>-1?o===-1||l<o?-1:1:o>-1?1:0}),r},Mt=(e,n,r=!1)=>{const t=e.filter(({name:a,slug:l,parent:o})=>a&&l&&o?o._id&&o._id===n._id||o.slug&&o.slug===n.slug:!1);return r&&t.sort((a,l)=>a.name<l.name?-1:1),t},Tt=e=>{const{header:n,categories:r=globalThis.$storefront.data.categories||[],menuCategorySlugs:t,menuRandomCategories:a=7,isAlphabeticalSortSubmenu:l}=e,{isSticky:o,staticHeight:s,staticY:u}=kt({header:n}),c=P(()=>o.value?n.value?.offsetHeight:u.value),i=Pt(r,t),h=p=>Mt(r,p,!!l),m=p=>({...p,subcategories:h(p).map(x=>m(x))}),f=i.map(m);let g=0;const d=f.filter(({slug:p})=>t?.includes(p)?!0:g<a?(g+=1,!0):!1);return{isSticky:o,staticHeight:s,staticY:u,positionY:c,mainCategories:i,getSubcategories:h,getCategoryTree:m,categoryTrees:f,inlineMenuTrees:d}},Ot=D({__name:"Drawer",props:{modelValue:{type:Boolean,default:!1},placement:{default:"start"},position:{default:"fixed"},animation:{default:"slide"},hasCloseButton:{type:Boolean,default:!0},backdropTarget:{default:"#teleported-top"},maxWidth:{},class:{}},emits:["update:modelValue"],setup(e,{expose:n,emit:r}){n();const t=e,a=r,l=()=>a("update:modelValue",!1),o=_(null),s=p=>{o.value?.contains(p.target)||l()},u=p=>{p.key==="Escape"&&l()},c=_(0);Q(Oe(t,"modelValue"),async p=>{p?(c.value=window.innerWidth-document.documentElement.clientWidth,document.body.style.overflow="hidden",document.body.style.paddingRight=`${c.value}px`,setTimeout(()=>{document.addEventListener("click",s,{passive:!0}),document.addEventListener("keydown",u,{passive:!0})},500)):(document.body.style.overflow="",document.body.style.paddingRight="",document.removeEventListener("click",s),document.removeEventListener("keydown",u))});const i=P(()=>{if(t.animation!=="slide")return null;switch(t.placement){case"start":return"left";case"end":return"right";case"top":return"down";default:return"up"}}),h=_(null);t.animation==="scale"&&Q(Oe(t,"modelValue"),p=>{p?J(()=>{setTimeout(()=>{h.value="transition",setTimeout(()=>{t.modelValue&&(h.value="")},300)},50)}):h.value="transition scale-90"},{immediate:!0});const m=P(()=>Array.isArray(t.class)?t.class:[t.class]),f=P(()=>t.position==="fixed"),g=P(()=>t.placement==="start"||t.placement==="end"),d={props:t,emit:a,close:l,drawer:o,outsideClickListener:s,escClickListener:u,scrollbarWidth:c,slideTo:i,animationClassName:h,customClassList:m,isFixed:f,isPlacementX:g};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),It=["open","data-drawer"],Et={class:"relative h-full"},Ct=["onClick"],Lt=b("i",{class:"i-close text-base-400 hover:text-base-600 text-3xl"},null,-1),Ft={key:0,class:"fixed left-0 top-0 z-30 h-screen w-screen bg-black/50","data-drawer-backdrop":""};function Nt(e,n,r,t,a,l){const o=Y("Fade");return y(),A(o,{slide:t.slideTo,speed:"slow","is-floating":""},{default:O(()=>[r.modelValue?(y(),I("dialog",{key:0,ref:"drawer",class:N(["z-40 w-screen p-0",[r.position,t.isPlacementX?"m-0":"mx-auto",t.isPlacementX&&!r.maxWidth?"max-w-sm":null,t.isFixed?`top-0 ${t.isPlacementX?"h-screen":"max-h-screen"}`:null,t.isFixed&&r.placement!=="end"?"left-0":null,t.isFixed&&r.placement==="end"?"left-auto right-0":null,t.animationClassName,...t.customClassList]]),style:Ue({maxWidth:r.maxWidth?`min(${r.maxWidth}, calc(100vw - ${t.scrollbarWidth}px))`:t.isPlacementX?void 0:`calc(100vw - ${t.scrollbarWidth}px)`}),open:r.modelValue,"data-drawer":r.placement},[b("div",Et,[r.hasCloseButton?(y(),I("button",{key:0,type:"button","aria-label":"Fechar",onClick:oe(t.close,["prevent"]),class:N(["absolute top-2 z-30",r.placement==="end"?"left-2":"right-2"]),"data-drawer-close":""},[te(e.$slots,"close",{},()=>[Lt])],10,Ct)):$("",!0),te(e.$slots,"default")]),(y(),A(We,{to:r.backdropTarget},[C(o,null,{default:O(()=>[r.modelValue?(y(),I("div",Ft)):$("",!0)]),_:1})],8,["to"]))],14,It)):$("",!0)]),_:3},8,["slide"])}const At=W(Ot,[["render",Nt]]),Dt=D({__name:"AccountLink",props:{to:{},accountUrl:{default:globalThis.$storefront?.settings.accountUrl||"/app/account"},returnUrl:{default:globalThis.location?.href},isSignUp:{type:Boolean}},setup(e,{expose:n}){n();const r=e,t=P(()=>{let l=r.accountUrl;if(!r.to)return r.isSignUp?l+="?sign_up&":l+="?",r.returnUrl?`${l}return_url=${r.returnUrl}`:l;const{settings:o}=globalThis.$storefront;return r.to==="orders"&&o.ordersUrl?o.ordersUrl:r.to==="favorites"&&o.favoritesUrl?o.favoritesUrl:`${l}/${r.to}`}),a={props:r,href:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),$t=["href"];function Rt(e,n,r,t,a,l){return y(),I("a",{href:t.href},[te(e.$slots,"default")],8,$t)}const Ye=W(Dt,[["render",Rt]]),jt=D({__name:"SocialNetworkIcon",props:{as:{default:"i"},network:{}},setup(e,{expose:n}){n();const r=e,t=P(()=>{switch(r.network){case"facebook":return"i-facebook";case"instagram":return"i-instagram";case"whatsapp":return"i-whatsapp";case"youtube":return"i-youtube";case"pinterest":return"i-pinterest";case"tiktok":return"i-tiktok";case"twitter":return"i-twitter";case"threads":return"i-threads";default:return""}}),a={props:r,iconClassName:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}});function Bt(e,n,r,t,a,l){return y(),A(wt(r.as),{class:N(t.iconClassName)},null,8,["class"])}const Ht=W(jt,[["render",Bt]]),Vt=D({__name:"SocialNetworkLink",props:{network:{},href:{},message:{}},setup(e,{expose:n}){n();const r=e,t=P(()=>{let l=r.href||Se[r.network]||"";if(r.network==="whatsapp"){const o=l.replace(/[^+\d]/g,"");l=`https://${ve?"api":"web"}.whatsapp.com/send?phone=`+encodeURIComponent(o.charAt(0)==="+"?o:`+55${o}`),r.message&&(l+=`&text=${encodeURIComponent(r.message)}`)}return l}),a={props:r,fixedHref:t,SocialNetworkIcon:Ht};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}});function Ut(e,n,r,t,a,l){const o=Y("ALink");return y(),A(o,{href:t.fixedHref},{default:O(()=>[te(e.$slots,"default",{},()=>[C(t.SocialNetworkIcon,{network:r.network},null,8,["network"]),te(e.$slots,"append")])]),_:3},8,["href"])}const Xe=W(Vt,[["render",Ut]]),Wt=D({__name:"ShopSidenavCategory",props:{categoryTree:{}},setup(e,{expose:n}){n();const r=_(!1),t=_(!0);Q(r,l=>{l?setTimeout(()=>{t.value=!1},25):t.value=!0});const a={isOpen:r,isFaded:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),Kt={class:"text-base-800 text-lg"},zt=["href"],Yt=["href"],Xt={class:"inline"};function Gt(e,n,r,t,a,l){const o=Y("AImg"),s=Y("ShopSidenavCategory",!0);return y(),I("li",Kt,[r.categoryTree.subcategories.length?(y(),I("details",{key:0,class:"z-10 overflow-y-auto overflow-x-hidden bg-white open:absolute open:left-0 open:top-0 open:h-full open:w-full",onToggle:n[0]||(n[0]=u=>t.isOpen=!t.isOpen)},[b("summary",{class:N(["active:bg-base-100 cursor-pointer list-none px-6 py-3 transition-colors",t.isOpen?"bg-base-100":null])},[b("i",{class:N(t.isOpen?"i-arrow-right rotate-180 text-lg":"i-arrow-right float-right mb-0 mt-1 text-xl text-base-500")},null,2),!t.isOpen&&r.categoryTree.icon?(y(),A(o,{key:0,picture:r.categoryTree.icon,alt:r.categoryTree.name,class:"mr-3 inline h-5 w-auto"},null,8,["picture","alt"])):$("",!0),b("h3",{class:N(["inline",t.isOpen?"ml-4 text-base":null])},F(r.categoryTree.name),3)],2),b("ul",{class:N(["mt-2 transition-opacity",t.isFaded?"opacity-20":"opacity-100"]),tabindex:"-1"},[(y(!0),I(B,null,z(r.categoryTree.subcategories,(u,c)=>(y(),A(s,{key:c,"category-tree":u},null,8,["category-tree"]))),128)),b("li",null,[b("a",{href:`/${r.categoryTree.slug}`,class:"active:bg-base-200 block px-6 py-3 text-base underline"},F("Ver toda a categoria $1".replace("$1",r.categoryTree.name)),9,zt)])],2)],32)):(y(),I("a",{key:1,href:`/${r.categoryTree.slug}`,class:"active:bg-base-200 block px-6 py-3"},[!t.isOpen&&r.categoryTree.icon?(y(),A(o,{key:0,picture:r.categoryTree.icon,alt:r.categoryTree.name,class:"mr-3 inline h-5 w-auto"},null,8,["picture","alt"])):$("",!0),b("h3",Xt,F(r.categoryTree.name),1)],8,Yt))])}const qt=W(Wt,[["render",Gt]]),Qt=D({__name:"ShopSidenav",props:{categoryTrees:{}},setup(e,{expose:n}){n(),ae(()=>je());const r={get customerName(){return Be},get isLogged(){return He},get logout(){return Ve},get socialNetworks(){return Se},AccountLink:Ye,SocialNetworkLink:Xe,ShopSidenavCategory:qt};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Zt={class:"flex h-full flex-col bg-white"},Jt={class:"grow py-4"},en={class:"relative h-full"},tn={class:"text-base"},nn={class:"bg-base-100 flex items-center px-2 py-4"},an=b("i",{class:"i-user-circle text-base-500 m-0 text-4xl"},null,-1),rn={class:"leading-tight"},ln=b("small",{class:"text-primary block font-semibold lowercase"},F("Meus pedidos")+", "+F("Minha conta"),-1),on=b("span",{class:"text-base-600"},F("Sair"),-1),sn=b("i",{class:"i-arrow-right-on-rectangle ml-1 text-lg"},null,-1),un=[on,sn],cn={class:"bg-base-200 text-base-700 flex gap-3 p-4 text-xl"};function dn(e,n,r,t,a,l){return y(),I("aside",Zt,[b("nav",Jt,[b("ul",en,[(y(!0),I(B,null,z(r.categoryTrees,(o,s)=>(y(),A(t.ShopSidenavCategory,{key:s,"category-tree":o},null,8,["category-tree"]))),128))])]),b("footer",tn,[b("div",nn,[C(t.AccountLink,{class:"flex grow items-center gap-3 p-2"},{default:O(()=>[an,b("span",rn,[q(F(`Olá ${t.customerName||"Visitante"}`)+" ",1),ln])]),_:1}),t.isLogged?(y(),I("button",{key:0,onClick:n[0]||(n[0]=(...o)=>t.logout&&t.logout(...o)),class:"text-base-800 p-2 text-right"},un)):$("",!0)]),b("ul",cn,[(y(!0),I(B,null,z(t.socialNetworks,(o,s)=>(y(),I("li",{key:s},[C(t.SocialNetworkLink,{network:s,class:"active:text-primary p-1"},null,8,["network"])]))),128))])])])}const fn=W(Qt,[["render",dn]]);function U(e,n,...r){if(e in n){let a=n[e];return typeof a=="function"?a(...r):a}let t=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(a=>`"${a}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,U),t}var se=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(se||{}),pn=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(pn||{});function ne({visible:e=!0,features:n=0,ourProps:r,theirProps:t,...a}){var l;let o=qe(t,r),s=Object.assign(a,{props:o});if(e||n&2&&o.static)return xe(s);if(n&1){let u=(l=o.unmount)==null||l?0:1;return U(u,{0(){return null},1(){return xe({...a,props:{...o,hidden:!0,style:{display:"none"}}})}})}return xe(s)}function xe({props:e,attrs:n,slots:r,slot:t,name:a}){var l,o;let{as:s,...u}=vn(e,["unmount","static"]),c=(l=r.default)==null?void 0:l.call(r,t),i={};if(t){let h=!1,m=[];for(let[f,g]of Object.entries(t))typeof g=="boolean"&&(h=!0),g===!0&&m.push(f);h&&(i["data-headlessui-state"]=m.join(" "))}if(s==="template"){if(c=Ge(c??[]),Object.keys(u).length>0||Object.keys(n).length>0){let[h,...m]=c??[];if(!mn(h)||m.length>0)throw new Error(['Passing props on "template"!',"",`The current component <${a} /> is rendering a "template".`,"However we need to passthrough the following props:",Object.keys(u).concat(Object.keys(n)).map(d=>d.trim()).filter((d,p,x)=>x.indexOf(d)===p).sort((d,p)=>d.localeCompare(p)).map(d=>` - ${d}`).join(`
|
|
2
|
+
`),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',"Render a single element as the child so that we can forward the props onto that element."].map(d=>` - ${d}`).join(`
|
|
3
|
+
`)].join(`
|
|
4
|
+
`));let f=qe((o=h.props)!=null?o:{},u),g=St(h,f);for(let d in f)d.startsWith("on")&&(g.props||(g.props={}),g.props[d]=f[d]);return g}return Array.isArray(c)&&c.length===1?c[0]:c}return V(s,Object.assign({},u,i),{default:()=>c})}function Ge(e){return e.flatMap(n=>n.type===B?Ge(n.children):[n])}function qe(...e){if(e.length===0)return{};if(e.length===1)return e[0];let n={},r={};for(let t of e)for(let a in t)a.startsWith("on")&&typeof t[a]=="function"?(r[a]!=null||(r[a]=[]),r[a].push(t[a])):n[a]=t[a];if(n.disabled||n["aria-disabled"])return Object.assign(n,Object.fromEntries(Object.keys(r).map(t=>[t,void 0])));for(let t in r)Object.assign(n,{[t](a,...l){let o=r[t];for(let s of o){if(a instanceof Event&&a.defaultPrevented)return;s(a,...l)}}});return n}function vn(e,n=[]){let r=Object.assign({},e);for(let t of n)t in r&&delete r[t];return r}function mn(e){return e==null?!1:typeof e.type=="string"||typeof e.type=="object"||typeof e.type=="function"}let gn=0;function hn(){return++gn}function ee(){return hn()}var L=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))(L||{});function bn(e){throw new Error("Unexpected object: "+e)}var j=(e=>(e[e.First=0]="First",e[e.Previous=1]="Previous",e[e.Next=2]="Next",e[e.Last=3]="Last",e[e.Specific=4]="Specific",e[e.Nothing=5]="Nothing",e))(j||{});function yn(e,n){let r=n.resolveItems();if(r.length<=0)return null;let t=n.resolveActiveIndex(),a=t??-1,l=(()=>{switch(e.focus){case 0:return r.findIndex(o=>!n.resolveDisabled(o));case 1:{let o=r.slice().reverse().findIndex((s,u,c)=>a!==-1&&c.length-u-1>=a?!1:!n.resolveDisabled(s));return o===-1?o:r.length-1-o}case 2:return r.findIndex((o,s)=>s<=a?!1:!n.resolveDisabled(o));case 3:{let o=r.slice().reverse().findIndex(s=>!n.resolveDisabled(s));return o===-1?o:r.length-1-o}case 4:return r.findIndex(o=>n.resolveId(o)===e.id);case 5:return null;default:bn(e)}})();return l===-1?t:l}function v(e){var n;return e==null||e.value==null?null:(n=e.value.$el)!=null?n:e.value}let Qe=Symbol("Context");var X=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(X||{});function Ze(){return le(Qe,null)}function Je(e){ue(Qe,e)}function Fe(e,n){if(e)return e;let r=n??"button";if(typeof r=="string"&&r.toLowerCase()==="button")return"button"}function et(e,n){let r=_(Fe(e.value.type,e.value.as));return ae(()=>{r.value=Fe(e.value.type,e.value.as)}),G(()=>{var t;r.value||v(n)&&v(n)instanceof HTMLButtonElement&&!((t=v(n))!=null&&t.hasAttribute("type"))&&(r.value="button")}),r}var _n=Object.defineProperty,xn=(e,n,r)=>n in e?_n(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,Ne=(e,n,r)=>(xn(e,typeof n!="symbol"?n+"":n,r),r);class wn{constructor(){Ne(this,"current",this.detect()),Ne(this,"currentId",0)}set(n){this.current!==n&&(this.currentId=0,this.current=n)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}}let he=new wn;function re(e){if(he.isServer)return null;if(e instanceof Node)return e.ownerDocument;if(e!=null&&e.hasOwnProperty("value")){let n=v(e);if(n)return n.ownerDocument}return document}function Sn({container:e,accept:n,walk:r,enabled:t}){G(()=>{let a=e.value;if(!a||t!==void 0&&!t.value)return;let l=re(e);if(!l)return;let o=Object.assign(u=>n(u),{acceptNode:n}),s=l.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,o,!1);for(;s.nextNode();)r(s.currentNode)})}let we=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var H=(e=>(e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll",e))(H||{}),me=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(me||{}),kn=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(kn||{});function ce(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(we)).sort((n,r)=>Math.sign((n.tabIndex||Number.MAX_SAFE_INTEGER)-(r.tabIndex||Number.MAX_SAFE_INTEGER)))}var be=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(be||{});function ye(e,n=0){var r;return e===((r=re(e))==null?void 0:r.body)?!1:U(n,{0(){return e.matches(we)},1(){let t=e;for(;t!==null;){if(t.matches(we))return!0;t=t.parentElement}return!1}})}function tt(e){let n=re(e);J(()=>{n&&!ye(n.activeElement,0)&&Mn(e)})}var Pn=(e=>(e[e.Keyboard=0]="Keyboard",e[e.Mouse=1]="Mouse",e))(Pn||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function Mn(e){e?.focus({preventScroll:!0})}let Tn=["textarea","input"].join(",");function On(e){var n,r;return(r=(n=e?.matches)==null?void 0:n.call(e,Tn))!=null?r:!1}function nt(e,n=r=>r){return e.slice().sort((r,t)=>{let a=n(r),l=n(t);if(a===null||l===null)return 0;let o=a.compareDocumentPosition(l);return o&Node.DOCUMENT_POSITION_FOLLOWING?-1:o&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function In(e,n){return Z(ce(),n,{relativeTo:e})}function Z(e,n,{sorted:r=!0,relativeTo:t=null,skipElements:a=[]}={}){var l;let o=(l=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e?.ownerDocument)!=null?l:document,s=Array.isArray(e)?r?nt(e):e:ce(e);a.length>0&&s.length>1&&(s=s.filter(g=>!a.includes(g))),t=t??o.activeElement;let u=(()=>{if(n&5)return 1;if(n&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),c=(()=>{if(n&1)return 0;if(n&2)return Math.max(0,s.indexOf(t))-1;if(n&4)return Math.max(0,s.indexOf(t))+1;if(n&8)return s.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),i=n&32?{preventScroll:!0}:{},h=0,m=s.length,f;do{if(h>=m||h+m<=0)return 0;let g=c+h;if(n&16)g=(g+m)%m;else{if(g<0)return 3;if(g>=m)return 1}f=s[g],f?.focus(i),h+=u}while(f!==o.activeElement);return n&6&&On(f)&&f.select(),2}function pe(e,n,r){he.isServer||G(t=>{document.addEventListener(e,n,r),t(()=>document.removeEventListener(e,n,r))})}function at(e,n,r){he.isServer||G(t=>{window.addEventListener(e,n,r),t(()=>window.removeEventListener(e,n,r))})}function rt(e,n,r=P(()=>!0)){function t(l,o){if(!r.value||l.defaultPrevented)return;let s=o(l);if(s===null||!s.getRootNode().contains(s))return;let u=function c(i){return typeof i=="function"?c(i()):Array.isArray(i)||i instanceof Set?i:[i]}(e);for(let c of u){if(c===null)continue;let i=c instanceof HTMLElement?c:v(c);if(i!=null&&i.contains(s)||l.composed&&l.composedPath().includes(i))return}return!ye(s,be.Loose)&&s.tabIndex!==-1&&l.preventDefault(),n(l,s)}let a=_(null);pe("pointerdown",l=>{var o,s;r.value&&(a.value=((s=(o=l.composedPath)==null?void 0:o.call(l))==null?void 0:s[0])||l.target)},!0),pe("mousedown",l=>{var o,s;r.value&&(a.value=((s=(o=l.composedPath)==null?void 0:o.call(l))==null?void 0:s[0])||l.target)},!0),pe("click",l=>{a.value&&(t(l,()=>a.value),a.value=null)},!0),pe("touchend",l=>t(l,()=>l.target instanceof HTMLElement?l.target:null),!0),at("blur",l=>t(l,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}var ie=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(ie||{});let ge=D({name:"Hidden",props:{as:{type:[Object,String],default:"div"},features:{type:Number,default:1}},setup(e,{slots:n,attrs:r}){return()=>{let{features:t,...a}=e,l={"aria-hidden":(t&2)===2?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(t&4)===4&&(t&2)!==2&&{display:"none"}}};return ne({ourProps:l,theirProps:a,slot:{},attrs:r,slots:n,name:"Hidden"})}}});function Ae(e){return[e.screenX,e.screenY]}function En(){let e=_([-1,-1]);return{wasMoved(n){let r=Ae(n);return e.value[0]===r[0]&&e.value[1]===r[1]?!1:(e.value=r,!0)},update(n){e.value=Ae(n)}}}var K=(e=>(e[e.Forwards=0]="Forwards",e[e.Backwards=1]="Backwards",e))(K||{});function lt(){let e=_(0);return at("keydown",n=>{n.key==="Tab"&&(e.value=n.shiftKey?1:0)}),e}function Cn(e,n,r,t){he.isServer||G(a=>{e=e??window,e.addEventListener(n,r,t),a(()=>e.removeEventListener(n,r,t))})}let De=Symbol("PortalParentContext");function Ln(){let e=le(De,null),n=_([]);function r(l){return n.value.push(l),e&&e.register(l),()=>t(l)}function t(l){let o=n.value.indexOf(l);o!==-1&&n.value.splice(o,1),e&&e.unregister(l)}let a={register:r,unregister:t,portals:n};return[n,D({name:"PortalWrapper",setup(l,{slots:o}){return ue(De,a),()=>{var s;return(s=o.default)==null?void 0:s.call(o)}}})]}function Fn({defaultContainers:e=[],portals:n,mainTreeNodeRef:r}={}){let t=_(null),a=re(t);function l(){var o;let s=[];for(let u of e)u!==null&&(u instanceof HTMLElement?s.push(u):"value"in u&&u.value instanceof HTMLElement&&s.push(u.value));if(n!=null&&n.value)for(let u of n.value)s.push(u);for(let u of(o=a?.querySelectorAll("html > *, body > *"))!=null?o:[])u!==document.body&&u!==document.head&&u instanceof HTMLElement&&u.id!=="headlessui-portal-root"&&(u.contains(v(t))||s.some(c=>u.contains(c))||s.push(u));return s}return{resolveContainers:l,contains(o){return l().some(s=>s.contains(o))},mainTreeNodeRef:t,MainTreeNode(){return r!=null?null:V(ge,{features:ie.Hidden,ref:t})}}}let $e=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function Re(e){var n,r;let t=(n=e.innerText)!=null?n:"",a=e.cloneNode(!0);if(!(a instanceof HTMLElement))return t;let l=!1;for(let s of a.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))s.remove(),l=!0;let o=l?(r=a.innerText)!=null?r:"":t;return $e.test(o)&&(o=o.replace($e,"")),o}function Nn(e){let n=e.getAttribute("aria-label");if(typeof n=="string")return n.trim();let r=e.getAttribute("aria-labelledby");if(r){let t=r.split(" ").map(a=>{let l=document.getElementById(a);if(l){let o=l.getAttribute("aria-label");return typeof o=="string"?o.trim():Re(l).trim()}return null}).filter(Boolean);if(t.length>0)return t.join(", ")}return Re(e).trim()}function An(e){let n=_(""),r=_("");return()=>{let t=v(e);if(!t)return"";let a=t.innerText;if(n.value===a)return r.value;let l=Nn(t).trim().toLowerCase();return n.value=a,r.value=l,l}}var Dn=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Dn||{}),$n=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))($n||{});function Rn(e){requestAnimationFrame(()=>requestAnimationFrame(e))}let ot=Symbol("MenuContext");function _e(e){let n=le(ot,null);if(n===null){let r=new Error(`<${e} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,_e),r}return n}let jn=D({name:"Menu",props:{as:{type:[Object,String],default:"template"}},setup(e,{slots:n,attrs:r}){let t=_(1),a=_(null),l=_(null),o=_([]),s=_(""),u=_(null),c=_(1);function i(m=f=>f){let f=u.value!==null?o.value[u.value]:null,g=nt(m(o.value.slice()),p=>v(p.dataRef.domRef)),d=f?g.indexOf(f):null;return d===-1&&(d=null),{items:g,activeItemIndex:d}}let h={menuState:t,buttonRef:a,itemsRef:l,items:o,searchQuery:s,activeItemIndex:u,activationTrigger:c,closeMenu:()=>{t.value=1,u.value=null},openMenu:()=>t.value=0,goToItem(m,f,g){let d=i(),p=yn(m===j.Specific?{focus:j.Specific,id:f}:{focus:m},{resolveItems:()=>d.items,resolveActiveIndex:()=>d.activeItemIndex,resolveId:x=>x.id,resolveDisabled:x=>x.dataRef.disabled});s.value="",u.value=p,c.value=g??1,o.value=d.items},search(m){let f=s.value!==""?0:1;s.value+=m.toLowerCase();let g=(u.value!==null?o.value.slice(u.value+f).concat(o.value.slice(0,u.value+f)):o.value).find(p=>p.dataRef.textValue.startsWith(s.value)&&!p.dataRef.disabled),d=g?o.value.indexOf(g):-1;d===-1||d===u.value||(u.value=d,c.value=1)},clearSearch(){s.value=""},registerItem(m,f){let g=i(d=>[...d,{id:m,dataRef:f}]);o.value=g.items,u.value=g.activeItemIndex,c.value=1},unregisterItem(m){let f=i(g=>{let d=g.findIndex(p=>p.id===m);return d!==-1&&g.splice(d,1),g});o.value=f.items,u.value=f.activeItemIndex,c.value=1}};return rt([a,l],(m,f)=>{var g;h.closeMenu(),ye(f,be.Loose)||(m.preventDefault(),(g=v(a))==null||g.focus())},P(()=>t.value===0)),ue(ot,h),Je(P(()=>U(t.value,{0:X.Open,1:X.Closed}))),()=>{let m={open:t.value===0,close:h.closeMenu};return ne({ourProps:{},theirProps:e,slot:m,slots:n,attrs:r,name:"Menu"})}}}),Bn=D({name:"MenuButton",props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:"button"},id:{type:String,default:()=>`headlessui-menu-button-${ee()}`}},setup(e,{attrs:n,slots:r,expose:t}){let a=_e("MenuButton");t({el:a.buttonRef,$el:a.buttonRef});function l(c){switch(c.key){case L.Space:case L.Enter:case L.ArrowDown:c.preventDefault(),c.stopPropagation(),a.openMenu(),J(()=>{var i;(i=v(a.itemsRef))==null||i.focus({preventScroll:!0}),a.goToItem(j.First)});break;case L.ArrowUp:c.preventDefault(),c.stopPropagation(),a.openMenu(),J(()=>{var i;(i=v(a.itemsRef))==null||i.focus({preventScroll:!0}),a.goToItem(j.Last)});break}}function o(c){switch(c.key){case L.Space:c.preventDefault();break}}function s(c){e.disabled||(a.menuState.value===0?(a.closeMenu(),J(()=>{var i;return(i=v(a.buttonRef))==null?void 0:i.focus({preventScroll:!0})})):(c.preventDefault(),a.openMenu(),Rn(()=>{var i;return(i=v(a.itemsRef))==null?void 0:i.focus({preventScroll:!0})})))}let u=et(P(()=>({as:e.as,type:n.type})),a.buttonRef);return()=>{var c;let i={open:a.menuState.value===0},{id:h,...m}=e,f={ref:a.buttonRef,id:h,type:u.value,"aria-haspopup":"menu","aria-controls":(c=v(a.itemsRef))==null?void 0:c.id,"aria-expanded":a.menuState.value===0,onKeydown:l,onKeyup:o,onClick:s};return ne({ourProps:f,theirProps:m,slot:i,attrs:n,slots:r,name:"MenuButton"})}}}),Hn=D({name:"MenuItems",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:()=>`headlessui-menu-items-${ee()}`}},setup(e,{attrs:n,slots:r,expose:t}){let a=_e("MenuItems"),l=_(null);t({el:a.itemsRef,$el:a.itemsRef}),Sn({container:P(()=>v(a.itemsRef)),enabled:P(()=>a.menuState.value===0),accept(i){return i.getAttribute("role")==="menuitem"?NodeFilter.FILTER_REJECT:i.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(i){i.setAttribute("role","none")}});function o(i){var h;switch(l.value&&clearTimeout(l.value),i.key){case L.Space:if(a.searchQuery.value!=="")return i.preventDefault(),i.stopPropagation(),a.search(i.key);case L.Enter:if(i.preventDefault(),i.stopPropagation(),a.activeItemIndex.value!==null){let m=a.items.value[a.activeItemIndex.value];(h=v(m.dataRef.domRef))==null||h.click()}a.closeMenu(),tt(v(a.buttonRef));break;case L.ArrowDown:return i.preventDefault(),i.stopPropagation(),a.goToItem(j.Next);case L.ArrowUp:return i.preventDefault(),i.stopPropagation(),a.goToItem(j.Previous);case L.Home:case L.PageUp:return i.preventDefault(),i.stopPropagation(),a.goToItem(j.First);case L.End:case L.PageDown:return i.preventDefault(),i.stopPropagation(),a.goToItem(j.Last);case L.Escape:i.preventDefault(),i.stopPropagation(),a.closeMenu(),J(()=>{var m;return(m=v(a.buttonRef))==null?void 0:m.focus({preventScroll:!0})});break;case L.Tab:i.preventDefault(),i.stopPropagation(),a.closeMenu(),J(()=>In(v(a.buttonRef),i.shiftKey?H.Previous:H.Next));break;default:i.key.length===1&&(a.search(i.key),l.value=setTimeout(()=>a.clearSearch(),350));break}}function s(i){switch(i.key){case L.Space:i.preventDefault();break}}let u=Ze(),c=P(()=>u!==null?(u.value&X.Open)===X.Open:a.menuState.value===0);return()=>{var i,h;let m={open:a.menuState.value===0},{id:f,...g}=e,d={"aria-activedescendant":a.activeItemIndex.value===null||(i=a.items.value[a.activeItemIndex.value])==null?void 0:i.id,"aria-labelledby":(h=v(a.buttonRef))==null?void 0:h.id,id:f,onKeydown:o,onKeyup:s,role:"menu",tabIndex:0,ref:a.itemsRef};return ne({ourProps:d,theirProps:g,slot:m,attrs:n,slots:r,features:se.RenderStrategy|se.Static,visible:c.value,name:"MenuItems"})}}}),Vn=D({name:"MenuItem",inheritAttrs:!1,props:{as:{type:[Object,String],default:"template"},disabled:{type:Boolean,default:!1},id:{type:String,default:()=>`headlessui-menu-item-${ee()}`}},setup(e,{slots:n,attrs:r,expose:t}){let a=_e("MenuItem"),l=_(null);t({el:l,$el:l});let o=P(()=>a.activeItemIndex.value!==null?a.items.value[a.activeItemIndex.value].id===e.id:!1),s=An(l),u=P(()=>({disabled:e.disabled,get textValue(){return s()},domRef:l}));ae(()=>a.registerItem(e.id,u)),ke(()=>a.unregisterItem(e.id)),G(()=>{a.menuState.value===0&&o.value&&a.activationTrigger.value!==0&&J(()=>{var d,p;return(p=(d=v(l))==null?void 0:d.scrollIntoView)==null?void 0:p.call(d,{block:"nearest"})})});function c(d){if(e.disabled)return d.preventDefault();a.closeMenu(),tt(v(a.buttonRef))}function i(){if(e.disabled)return a.goToItem(j.Nothing);a.goToItem(j.Specific,e.id)}let h=En();function m(d){h.update(d)}function f(d){h.wasMoved(d)&&(e.disabled||o.value||a.goToItem(j.Specific,e.id,0))}function g(d){h.wasMoved(d)&&(e.disabled||o.value&&a.goToItem(j.Nothing))}return()=>{let{disabled:d}=e,p={active:o.value,disabled:d,close:a.closeMenu},{id:x,...k}=e;return ne({ourProps:{id:x,ref:l,role:"menuitem",tabIndex:d===!0?void 0:-1,"aria-disabled":d===!0?!0:void 0,disabled:void 0,onClick:c,onFocus:i,onPointerenter:m,onMouseenter:m,onPointermove:f,onMousemove:f,onPointerleave:g,onMouseleave:g},theirProps:{...r,...k},slot:p,attrs:r,slots:n,name:"MenuItem"})}}});var Un=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Un||{});let st=Symbol("PopoverContext");function Pe(e){let n=le(st,null);if(n===null){let r=new Error(`<${e} /> is missing a parent <${ct.name} /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,Pe),r}return n}let Wn=Symbol("PopoverGroupContext");function it(){return le(Wn,null)}let ut=Symbol("PopoverPanelContext");function Kn(){return le(ut,null)}let ct=D({name:"Popover",inheritAttrs:!1,props:{as:{type:[Object,String],default:"div"}},setup(e,{slots:n,attrs:r,expose:t}){var a;let l=_(null);t({el:l,$el:l});let o=_(1),s=_(null),u=_(null),c=_(null),i=_(null),h=P(()=>re(l)),m=P(()=>{var w,T;if(!v(s)||!v(i))return!1;for(let fe of document.querySelectorAll("body > *"))if(Number(fe?.contains(v(s)))^Number(fe?.contains(v(i))))return!0;let E=ce(),R=E.indexOf(v(s)),de=(R+E.length-1)%E.length,dt=(R+1)%E.length,ft=E[de],pt=E[dt];return!((w=v(i))!=null&&w.contains(ft))&&!((T=v(i))!=null&&T.contains(pt))}),f={popoverState:o,buttonId:_(null),panelId:_(null),panel:i,button:s,isPortalled:m,beforePanelSentinel:u,afterPanelSentinel:c,togglePopover(){o.value=U(o.value,{0:1,1:0})},closePopover(){o.value!==1&&(o.value=1)},close(w){f.closePopover();let T=(()=>w?w instanceof HTMLElement?w:w.value instanceof HTMLElement?v(w):v(f.button):v(f.button))();T?.focus()}};ue(st,f),Je(P(()=>U(o.value,{0:X.Open,1:X.Closed})));let g={buttonId:f.buttonId,panelId:f.panelId,close(){f.closePopover()}},d=it(),p=d?.registerPopover,[x,k]=Ln(),S=Fn({mainTreeNodeRef:d?.mainTreeNodeRef,portals:x,defaultContainers:[s,i]});function M(){var w,T,E,R;return(R=d?.isFocusWithinPopoverGroup())!=null?R:((w=h.value)==null?void 0:w.activeElement)&&(((T=v(s))==null?void 0:T.contains(h.value.activeElement))||((E=v(i))==null?void 0:E.contains(h.value.activeElement)))}return G(()=>p?.(g)),Cn((a=h.value)==null?void 0:a.defaultView,"focus",w=>{var T,E;w.target!==window&&w.target instanceof HTMLElement&&o.value===0&&(M()||s&&i&&(S.contains(w.target)||(T=v(f.beforePanelSentinel))!=null&&T.contains(w.target)||(E=v(f.afterPanelSentinel))!=null&&E.contains(w.target)||f.closePopover()))},!0),rt(S.resolveContainers,(w,T)=>{var E;f.closePopover(),ye(T,be.Loose)||(w.preventDefault(),(E=v(s))==null||E.focus())},P(()=>o.value===0)),()=>{let w={open:o.value===0,close:f.close};return V(B,[V(k,{},()=>ne({theirProps:{...e,...r},ourProps:{ref:l},slot:w,slots:n,attrs:r,name:"Popover"})),V(S.MainTreeNode)])}}}),zn=D({name:"PopoverButton",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1},id:{type:String,default:()=>`headlessui-popover-button-${ee()}`}},inheritAttrs:!1,setup(e,{attrs:n,slots:r,expose:t}){let a=Pe("PopoverButton"),l=P(()=>re(a.button));t({el:a.button,$el:a.button}),ae(()=>{a.buttonId.value=e.id}),ke(()=>{a.buttonId.value=null});let o=it(),s=o?.closeOthers,u=Kn(),c=P(()=>u===null?!1:u.value===a.panelId.value),i=_(null),h=`headlessui-focus-sentinel-${ee()}`;c.value||G(()=>{a.button.value=i.value});let m=et(P(()=>({as:e.as,type:n.type})),i);function f(S){var M,w,T,E,R;if(c.value){if(a.popoverState.value===1)return;switch(S.key){case L.Space:case L.Enter:S.preventDefault(),(w=(M=S.target).click)==null||w.call(M),a.closePopover(),(T=v(a.button))==null||T.focus();break}}else switch(S.key){case L.Space:case L.Enter:S.preventDefault(),S.stopPropagation(),a.popoverState.value===1&&s?.(a.buttonId.value),a.togglePopover();break;case L.Escape:if(a.popoverState.value!==0)return s?.(a.buttonId.value);if(!v(a.button)||(E=l.value)!=null&&E.activeElement&&!((R=v(a.button))!=null&&R.contains(l.value.activeElement)))return;S.preventDefault(),S.stopPropagation(),a.closePopover();break}}function g(S){c.value||S.key===L.Space&&S.preventDefault()}function d(S){var M,w;e.disabled||(c.value?(a.closePopover(),(M=v(a.button))==null||M.focus()):(S.preventDefault(),S.stopPropagation(),a.popoverState.value===1&&s?.(a.buttonId.value),a.togglePopover(),(w=v(a.button))==null||w.focus()))}function p(S){S.preventDefault(),S.stopPropagation()}let x=lt();function k(){let S=v(a.panel);if(!S)return;function M(){U(x.value,{[K.Forwards]:()=>Z(S,H.First),[K.Backwards]:()=>Z(S,H.Last)})===me.Error&&Z(ce().filter(w=>w.dataset.headlessuiFocusGuard!=="true"),U(x.value,{[K.Forwards]:H.Next,[K.Backwards]:H.Previous}),{relativeTo:v(a.button)})}M()}return()=>{let S=a.popoverState.value===0,M={open:S},{id:w,...T}=e,E=c.value?{ref:i,type:m.value,onKeydown:f,onClick:d}:{ref:i,id:w,type:m.value,"aria-expanded":a.popoverState.value===0,"aria-controls":v(a.panel)?a.panelId.value:void 0,disabled:e.disabled?!0:void 0,onKeydown:f,onKeyup:g,onClick:d,onMousedown:p};return V(B,[ne({ourProps:E,theirProps:{...n,...T},slot:M,attrs:n,slots:r,name:"PopoverButton"}),S&&!c.value&&a.isPortalled.value&&V(ge,{id:h,features:ie.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:k})])}}}),Yn=D({name:"PopoverPanel",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},focus:{type:Boolean,default:!1},id:{type:String,default:()=>`headlessui-popover-panel-${ee()}`}},inheritAttrs:!1,setup(e,{attrs:n,slots:r,expose:t}){let{focus:a}=e,l=Pe("PopoverPanel"),o=P(()=>re(l.panel)),s=`headlessui-focus-sentinel-before-${ee()}`,u=`headlessui-focus-sentinel-after-${ee()}`;t({el:l.panel,$el:l.panel}),ae(()=>{l.panelId.value=e.id}),ke(()=>{l.panelId.value=null}),ue(ut,l.panelId),G(()=>{var p,x;if(!a||l.popoverState.value!==0||!l.panel)return;let k=(p=o.value)==null?void 0:p.activeElement;(x=v(l.panel))!=null&&x.contains(k)||Z(v(l.panel),H.First)});let c=Ze(),i=P(()=>c!==null?(c.value&X.Open)===X.Open:l.popoverState.value===0);function h(p){var x,k;switch(p.key){case L.Escape:if(l.popoverState.value!==0||!v(l.panel)||o.value&&!((x=v(l.panel))!=null&&x.contains(o.value.activeElement)))return;p.preventDefault(),p.stopPropagation(),l.closePopover(),(k=v(l.button))==null||k.focus();break}}function m(p){var x,k,S,M,w;let T=p.relatedTarget;T&&v(l.panel)&&((x=v(l.panel))!=null&&x.contains(T)||(l.closePopover(),((S=(k=v(l.beforePanelSentinel))==null?void 0:k.contains)!=null&&S.call(k,T)||(w=(M=v(l.afterPanelSentinel))==null?void 0:M.contains)!=null&&w.call(M,T))&&T.focus({preventScroll:!0})))}let f=lt();function g(){let p=v(l.panel);if(!p)return;function x(){U(f.value,{[K.Forwards]:()=>{var k;Z(p,H.First)===me.Error&&((k=v(l.afterPanelSentinel))==null||k.focus())},[K.Backwards]:()=>{var k;(k=v(l.button))==null||k.focus({preventScroll:!0})}})}x()}function d(){let p=v(l.panel);if(!p)return;function x(){U(f.value,{[K.Forwards]:()=>{let k=v(l.button),S=v(l.panel);if(!k)return;let M=ce(),w=M.indexOf(k),T=M.slice(0,w+1),E=[...M.slice(w+1),...T];for(let R of E.slice())if(R.dataset.headlessuiFocusGuard==="true"||S!=null&&S.contains(R)){let de=E.indexOf(R);de!==-1&&E.splice(de,1)}Z(E,H.First,{sorted:!1})},[K.Backwards]:()=>{var k;Z(p,H.Previous)===me.Error&&((k=v(l.button))==null||k.focus())}})}x()}return()=>{let p={open:l.popoverState.value===0,close:l.close},{id:x,focus:k,...S}=e,M={ref:l.panel,id:x,onKeydown:h,onFocusout:a&&l.popoverState.value===0?m:void 0,tabIndex:-1};return ne({ourProps:M,theirProps:{...n,...S},attrs:n,slot:p,slots:{...r,default:(...w)=>{var T;return[V(B,[i.value&&l.isPortalled.value&&V(ge,{id:s,ref:l.beforePanelSentinel,features:ie.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:g}),(T=r.default)==null?void 0:T.call(r,...w),i.value&&l.isPortalled.value&&V(ge,{id:u,ref:l.afterPanelSentinel,features:ie.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:d})])]}},features:se.RenderStrategy|se.Static,visible:i.value,name:"PopoverPanel"})}}});const Xn=e=>{const n=P(()=>{const u=e.categoryTree.pictures?.[0];if(u&&!u.alt)return{alt:e.categoryTree.name,...u}}),r=P(()=>e.categoryTree.subcategories.filter(({subcategories:u})=>u.length)),t=P(()=>{let u=r.value.length;return n.value&&(u+=1),r.value.length<e.categoryTree.subcategories.length&&(u+=1),u}),a=P(()=>(e.megaMenuMaxCols||7)>=t.value),l=P(()=>a.value?e.categoryTree.subcategories.filter(({subcategories:u})=>!u.length):e.categoryTree.subcategories),o=P(()=>a.value?e.categoryTree.subcategories.filter(({subcategories:u})=>u.length):e.categoryTree.subcategories),s=P(()=>a.value?t.value:n.value?2:1);return{categoryPicture:n,isMegaMenu:a,subcategoryLinks:l,subcategoryCols:o,countMenuCols:s}},Gn=D({__name:"ShopHeaderSubmenu",props:{categoryTree:{},megaMenuMaxCols:{}},setup(e,{expose:n}){n();const r=e,{categoryPicture:t,subcategoryLinks:a,subcategoryCols:l,countMenuCols:o}=Xn(r),s=_(null),u=_(null);gt(s,()=>u.value?.click());const c={props:r,categoryPicture:t,subcategoryLinks:a,subcategoryCols:l,countMenuCols:o,panel:s,close:u,get Popover(){return ct},get PopoverButton(){return zn},get PopoverPanel(){return Yn}};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}}),qn=["href"],Qn={class:"relative",ref:"panel"},Zn={class:"flex w-full gap-6"},Jn={key:0,class:"flex-1"},ea=["href"],ta=["href"],na={class:"text-base-600 mb-1.5 mt-1 text-sm"},aa=["href"],ra=["href"],la=["onClick"];function oa(e,n,r,t,a,l){const o=Y("AImg"),s=Y("Fade");return y(),A(t.Popover,null,{default:O(({open:u})=>[b("a",{href:`/${r.categoryTree.slug}`,role:"button"},[C(t.PopoverButton,{class:"outline-none"},{default:O(()=>[te(e.$slots,"button",Ke(ze({open:u})))]),_:2},1024)],8,qn),b("div",Qn,[C(s,null,{default:O(()=>[C(t.PopoverPanel,{class:N(["text-base-700 absolute left-1/2 top-3 z-50 -translate-x-1/2 !transform rounded bg-white px-6 py-4 text-base shadow",t.countMenuCols===1?"w-60":t.countMenuCols===2?`w-screen ${t.categoryPicture?"max-w-lg":"max-w-sm"}`:t.countMenuCols===3?`w-screen ${t.categoryPicture?"max-w-xl":"max-w-md"}`:t.countMenuCols<6?"w-screen max-w-3xl":"w-screen max-w-5xl"])},{default:O(({close:c})=>[b("div",Zn,[t.subcategoryLinks.length?(y(),I("ul",Jn,[(y(!0),I(B,null,z(t.subcategoryLinks,(i,h)=>(y(),I("li",{key:`link-${h}`,class:N(t.subcategoryLinks.length>10?"text-sm mb-1":"mb-2")},[b("a",{href:`/${i.slug}`,class:"hover:text-primary"},[b("h3",null,F(i.name),1)],8,ea)],2))),128))])):$("",!0),(y(!0),I(B,null,z(t.subcategoryCols,(i,h)=>(y(),I("div",{key:h,class:"flex-1"},[b("a",{href:`/${i.slug}`,class:"hover:text-primary"},[b("h3",null,F(i.name),1)],8,ta),b("ul",na,[(y(!0),I(B,null,z(i.subcategories,(m,f)=>(y(),I("li",{key:`${h}-${f}`,class:"mb-0.5"},[b("a",{href:`/${m.slug}`,class:"hover:text-primary hover:underline"},[b("h3",null,F(m.name),1)],8,aa)]))),128))])]))),128)),t.categoryPicture?(y(),I("div",{key:1,class:N(t.countMenuCols===2?"basis-1/2":t.countMenuCols<5?"basis-2/5":"basis-1/3")},[C(o,{picture:t.categoryPicture,class:"ml-auto rounded"},null,8,["picture"])],2)):$("",!0)]),b("a",{href:`/${r.categoryTree.slug}`,class:"text-base-600 mt-1 block text-xs leading-snug underline"},F("Ver toda a categoria $1".replace("$1",r.categoryTree.name)),9,ra),b("button",{ref:"close",onClick:oe(c,["stop"]),class:"hidden"},null,8,la)]),_:1},8,["class"])]),_:1})],512)]),_:3})}const sa=W(Gn,[["render",oa]]),ia=D({__name:"ShopHeaderMenu",props:{inlineMenuTrees:{}},setup(e,{expose:n}){n();const r=e,t=P(()=>!!r.inlineMenuTrees.find(({subcategories:l})=>!l.length)),a={props:r,hasOneLevelSubcategories:t,ShopHeaderSubmenu:sa};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),ua={class:"hover:text-primary group"},ca=["href"],da={class:"inline"};function fa(e,n,r,t,a,l){return y(),I("nav",null,[b("ul",{class:N(["text-base-700 flex gap-4 xl:gap-5",r.inlineMenuTrees.length<7?"text-base":"text-sm"])},[(y(!0),I(B,null,z(r.inlineMenuTrees,(o,s)=>(y(),I("li",{key:s},[o.subcategories.length?(y(),A(t.ShopHeaderSubmenu,{key:0,"category-tree":o},{button:O(({open:u})=>[b("span",ua,[b("h3",{class:N(["inline group-hover:underline",[r.inlineMenuTrees.length<7?"decoration-2":null,u?"underline":null]])},F(o.name),3),t.hasOneLevelSubcategories?(y(),I("i",{key:0,class:N(["i-chevron-down text-base-400 group-hover:text-primary-subtle ml-1 transition-transform",u?"rotate-180":null])},null,2)):$("",!0)])]),_:2},1032,["category-tree"])):(y(),I("a",{key:1,href:`/${o.slug}`,class:N(["hover:text-primary hover:underline",r.inlineMenuTrees.length<7?"decoration-2":null])},[b("h3",da,F(o.name),1)],10,ca))]))),128))],2)])}const pa=W(ia,[["render",fa]]),va=D({__name:"AccountMenu",setup(e,{expose:n}){n();const r={get Menu(){return jn},get MenuButton(){return Bn},get MenuItems(){return Hn},get MenuItem(){return Vn},get socialNetworks(){return Se},get customerName(){return Be},get initializeFirebaseAuth(){return je},get isLogged(){return He},get logout(){return Ve},AccountLink:Ye,SocialNetworkLink:Xe};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),ma={key:0},ga={class:"text-base-600 p-3"},ha={class:"list-none"},ba=b("i",{class:"i-heart mr-1"},null,-1),ya={class:"text-base-500 flex justify-center gap-2 p-2 text-base"},_a=b("span",{class:"text-base-600"},F("Sair"),-1),xa=b("i",{class:"i-arrow-right-on-rectangle ml-1 text-lg"},null,-1),wa=[_a,xa];function Sa(e,n,r,t,a,l){const o=Y("ALink"),s=Y("Fade");return y(),A(t.Menu,{as:"div",class:"text-base-800 relative text-center text-sm"},{default:O(({open:u})=>[u?(y(),I("div",ma,[n[0]||(Ie(-1),n[0]=b("span",null,[q(F(t.initializeFirebaseAuth()),1)]),Ie(1),n[0])])):$("",!0),C(t.AccountLink,{role:"button",onClick:n[1]||(n[1]=oe(()=>{},["prevent"]))},{default:O(()=>[C(t.MenuButton,{class:"outline-none","aria-label":"Minha conta"},{default:O(()=>[te(e.$slots,"button",Ke(ze({open:u})))]),_:2},1024)]),_:2},1024),C(s,null,{default:O(()=>[C(t.MenuItems,{class:"divide-base-100 absolute -right-8 mt-2 w-56 divide-y rounded bg-white shadow ring-1 ring-black/5 focus:outline-none"},{default:O(()=>[b("div",ga,[q(F(`Olá ${t.customerName||"Visitante"}`)+" ",1),C(t.AccountLink,{role:"button",class:"ui-btn-sm ui-btn-primary my-1 block"},{default:O(()=>[q(F("Acessar minha conta"))]),_:1}),t.isLogged?$("",!0):(y(),A(t.AccountLink,{key:0,"is-sign-up":"",class:"ui-link block"},{default:O(()=>[q(F("Criar uma conta"))]),_:1}))]),b("ul",ha,[C(t.MenuItem,{as:"li"},{default:O(({active:c})=>[C(t.AccountLink,{to:"orders",class:N(["block p-2",c?"bg-base-100 text-primary":null])},{default:O(()=>[q(F("Meus pedidos"))]),_:2},1032,["class"])]),_:1}),C(t.MenuItem,{as:"li"},{default:O(({active:c})=>[C(t.AccountLink,{to:"favorites",class:N(["block p-2",c?"bg-base-100 text-primary":null])},{default:O(()=>[ba,q(" "+F("Meus favoritos"))]),_:2},1032,["class"])]),_:1}),(y(!0),I(B,null,z(e.$settings.serviceLinks,({title:c,href:i},h)=>(y(),A(t.MenuItem,{as:"li",key:`s-${h}`},{default:O(({active:m})=>[C(o,{href:i,class:N(["block p-2",m?"bg-base-100 text-primary":null])},{default:O(()=>[q(F(c),1)]),_:2},1032,["href","class"])]),_:2},1024))),128)),C(t.MenuItem,{as:"li"},{default:O(()=>[b("div",ya,[(y(!0),I(B,null,z(t.socialNetworks,(c,i)=>(y(),I("span",{key:i},[C(t.SocialNetworkLink,{network:i,class:"hover:text-primary p-1"},null,8,["network"])]))),128))])]),_:1}),t.isLogged?(y(),A(t.MenuItem,{key:0,as:"li"},{default:O(()=>[b("button",{onClick:n[2]||(n[2]=(...c)=>t.logout&&t.logout(...c)),class:"text-base-800 p-2 text-right"},wa)]),_:1})):$("",!0)])]),_:1})]),_:1})]),_:3})}const ka=W(va,[["render",Sa]]),Pa=D({__name:"ShopHeader",props:{categories:{},menuCategorySlugs:{},menuRandomCategories:{},isAlphabeticalSortSubmenu:{type:Boolean}},setup(e,{expose:n}){n();const r=Le(()=>Me(()=>import("./SearchModal.0bf88bcc.js"),["_astro/SearchModal.0bf88bcc.js","_astro/_plugin-vue_export-helper.d927d271.js","_astro/ecom-utils.f65876ca.js"])),t=Le(()=>Me(()=>import("./CartSidebar.005ec337.js"),["_astro/CartSidebar.005ec337.js","_astro/_plugin-vue_export-helper.d927d271.js","_astro/ecom-utils.f65876ca.js","_astro/modules-info.4373e917.js","_astro/afetch.f4507208.js","_astro/sf-utils.b04e1813.js","_astro/format-money.db179bca.js","_astro/price.04ceb6c4.js","_astro/shopping-cart.608866aa.js","_astro/customer-session.68901b4c.js","_astro/index.d93220be.js","_astro/QuantitySelector.d7dd044c.js","_astro/Prices.862d15eb.js","_astro/name.2999355b.js","_astro/i18n.614beec4.js","_astro/img.27573b8b.js"])),a=e,l=_(null),{isSticky:o,positionY:s,categoryTrees:u,inlineMenuTrees:c}=Tt({...a,header:l}),i=_(!1),h=_(!1),m=_(!1);Te(h,()=>{m.value=!0});const f=_(!1),g=_(!1);Te(f,()=>{g.value=!0});const d=_(!1),p=_(0);ae(()=>{d.value=!0,Q(vt,(k,S)=>{typeof S=="number"&&(S<k?f.value=!0:S&&!k&&(f.value=!1)),p.value=k},{immediate:!0})});const x={SearchModal:r,CartSidebar:t,props:a,header:l,isSticky:o,positionY:s,categoryTrees:u,inlineMenuTrees:c,isSidenavOpen:i,isSearchOpen:h,isSearchOpenOnce:m,isCartOpen:f,isCartOpenOnce:g,isMounted:d,delayedTotalItems:p,Drawer:At,ShopSidenav:fn,ShopHeaderMenu:pa,AccountMenu:ka};return Object.defineProperty(x,"__isScriptSetup",{enumerable:!1,value:!0}),x}}),Ma={class:"mx-auto flex w-screen grid-flow-col grid-cols-3 items-center justify-between px-1 sm:pl-2 sm:pr-2.5 md:grid lg:w-[calc(100vw-1rem)] lg:auto-cols-max lg:grid-cols-none lg:px-1 xl:max-w-[82rem] 2xl:max-w-[85rem]"},Ta={class:"basis-1/4 lg:hidden"},Oa={class:"text-base-800 flex basis-1/4 items-center justify-end gap-3 px-2 lg:gap-4"},Ia=b("i",{class:"i-magnifying-glass hover:text-primary h-7 w-7 hover:scale-110 active:scale-125"},null,-1),Ea=[Ia],Ca=["href"],La=b("i",{class:"i-shopping-bag group-hover:text-primary h-7 w-7 group-hover:scale-110 group-active:scale-125"},null,-1),Fa={key:0,class:"ui-badge-pill-sm absolute -right-1.5 -top-1"},Na={class:"container mx-auto"},Aa={class:"h-full bg-white"};function Da(e,n,r,t,a,l){const o=Y("Skeleton");return y(),I("header",{ref:"header",class:N(["relative top-0 z-50 transition-colors",[t.isSticky&&!t.isSidenavOpen?"bg-white/80":"bg-white",t.isSticky?"py-2 shadow backdrop-blur-md md:py-3":"py-3 sm:py-4 md:py-5"]])},[b("div",Ma,[b("div",Ta,[b("button",{class:"my-1 px-2","aria-label":"Abrir/fechar menu",onClick:n[0]||(n[0]=s=>t.isSidenavOpen=!t.isSidenavOpen)},[b("i",{class:N(["text-3xl transition-colors",[t.isSidenavOpen?"i-close":"i-bars-3-bottom-left",t.isMounted?"text-base-500":"text-base-400 animate-pulse"]])},null,2)])]),te(e.$slots,"logo"),C(t.ShopHeaderMenu,Ee({class:"hidden lg:block"},{inlineMenuTrees:t.inlineMenuTrees}),null,16),b("div",Oa,[b("a",{href:"/s","aria-label":"Buscar produtos",onClick:n[1]||(n[1]=oe(s=>t.isSearchOpen=!t.isSearchOpen,["prevent"])),role:"button"},Ea),C(t.AccountMenu,{class:"hidden sm:block"},{button:O(({open:s})=>[b("i",{class:N(["i-user-circle hover:text-primary h-7 w-7 hover:scale-110 active:scale-125",s?"text-black scale-110":null])},null,2)]),_:1}),b("a",{href:e.$settings.cartUrl||"/app/","aria-label":"Abrir carrinho",onClick:n[2]||(n[2]=oe(s=>t.isCartOpen=!t.isCartOpen,["prevent"])),class:"group relative",role:"button"},[La,t.delayedTotalItems?(y(),I("span",Fa,F(t.delayedTotalItems),1)):$("",!0)],8,Ca)])]),C(t.Drawer,{modelValue:t.isSidenavOpen,"onUpdate:modelValue":n[3]||(n[3]=s=>t.isSidenavOpen=s),"has-close-button":!1,position:"absolute",class:N(t.isSticky?"mt-2 md:mt-3":"mt-3 sm:mt-4 md:mt-5"),style:Ue({height:`calc(100vh - ${t.positionY}px + .5rem)`,maxHeight:`calc(100dvh - ${t.positionY}px + .5rem)`})},{default:O(()=>[C(t.ShopSidenav,Ee({class:"pt-6"},{categoryTrees:t.categoryTrees}),null,16)]),_:1},8,["modelValue","class","style"]),C(t.Drawer,{modelValue:t.isSearchOpen,"onUpdate:modelValue":n[4]||(n[4]=s=>t.isSearchOpen=s),"has-close-button":!1,placement:"top",animation:"scale","max-width":"55rem",class:"bg-white lg:mt-24 lg:bg-transparent"},{default:O(()=>[(y(),A(Ce,null,{fallback:O(()=>[b("div",Na,[C(o,{class:"p-6","is-large":"","is-bold":""})])]),default:O(()=>[t.isSearchOpenOnce?(y(),A(t.SearchModal,{key:0})):$("",!0)]),_:1}))]),_:1},8,["modelValue"]),t.isMounted?(y(),A(We,{key:0,to:"#teleported-overlap"},[C(t.Drawer,{modelValue:t.isCartOpen,"onUpdate:modelValue":n[6]||(n[6]=s=>t.isCartOpen=s),placement:"end","backdrop-target":"#teleported-overlap",class:"shadow"},{default:O(()=>[(y(),A(Ce,null,{fallback:O(()=>[b("div",Aa,[C(o,{class:"px-6 pt-16","is-bold":""})])]),default:O(()=>[t.isCartOpenOnce?(y(),A(t.CartSidebar,{key:0,onClose:n[5]||(n[5]=s=>t.isCartOpen=!1)})):$("",!0)]),_:1}))]),_:1},8,["modelValue"])])):$("",!0)],2)}const Ka=W(Pa,[["render",Da]]);export{Ka as default};
|