cloudcommerce 0.39.0 → 0.40.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 +55 -0
- 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 +6 -6
- package/packages/api/lib/api.d.ts +2 -2
- package/packages/api/package.json +1 -1
- package/packages/api/types/applications.d.ts +15 -0
- package/packages/api/types/authentications.d.ts +14 -0
- package/packages/api/types/brands.d.ts +17 -0
- package/packages/api/types/carts.d.ts +12 -0
- package/packages/api/types/categories.d.ts +17 -0
- package/packages/api/types/collections.d.ts +15 -0
- package/packages/api/types/customers.d.ts +12 -0
- package/packages/api/types/grids.d.ts +15 -0
- package/packages/api/types/orders.d.ts +15 -0
- package/packages/api/types/products.d.ts +17 -0
- package/packages/api/types/stores.d.ts +15 -0
- package/packages/api/types.d.ts +34 -8
- package/packages/apps/affilate-program/package.json +1 -1
- package/packages/apps/correios/package.json +2 -2
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/datafrete/package.json +2 -2
- package/packages/apps/discounts/package.json +2 -2
- package/packages/apps/emails/package.json +1 -1
- package/packages/apps/fb-conversions/package.json +1 -1
- package/packages/apps/flash-courier/package.json +1 -1
- package/packages/apps/frenet/package.json +1 -1
- package/packages/apps/galaxpay/package.json +1 -1
- package/packages/apps/google-analytics/package.json +1 -1
- package/packages/apps/jadlog/package.json +1 -1
- package/packages/apps/loyalty-points/package.json +2 -2
- package/packages/apps/mandae/package.json +2 -2
- package/packages/apps/melhor-envio/package.json +1 -1
- package/packages/apps/mercadopago/package.json +1 -1
- package/packages/apps/pagarme/package.json +1 -1
- package/packages/apps/pagarme-v5/package.json +2 -2
- package/packages/apps/paghiper/package.json +1 -1
- package/packages/apps/pix/package.json +1 -1
- package/packages/apps/tiny-erp/package.json +2 -2
- package/packages/apps/webhooks/package.json +1 -1
- package/packages/cli/config/firebase.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +1 -1
- package/packages/eslint/package.json +5 -5
- package/packages/eslint/storefront.eslintrc.cjs +1 -0
- package/packages/events/package.json +1 -1
- package/packages/feeds/package.json +1 -1
- package/packages/firebase/package.json +2 -2
- package/packages/i18n/lib/en_us/i19anyPrice.txt +1 -0
- package/packages/i18n/lib/en_us/i19filterOut.txt +1 -0
- package/packages/i18n/lib/en_us/i19loadMoreProducts.txt +1 -0
- package/packages/i18n/lib/en_us/i19noProductsFound.txt +1 -0
- package/packages/i18n/lib/en_us/i19noProductsFoundFor$1.txt +1 -0
- package/packages/i18n/lib/en_us/i19noProductsInBrandMsg.txt +1 -0
- package/packages/i18n/lib/en_us/i19noProductsInCategoryMsg.txt +1 -0
- package/packages/i18n/lib/en_us.d.ts +8 -3
- package/packages/i18n/lib/en_us.js +8 -3
- package/packages/i18n/lib/en_us.js.map +1 -1
- package/packages/i18n/lib/pt_br/i19anyPrice.txt +1 -0
- package/packages/i18n/lib/pt_br/i19filterOut.txt +1 -0
- package/packages/i18n/lib/pt_br/i19loadMoreProducts.txt +1 -0
- package/packages/i18n/lib/pt_br/i19noItemSelected.txt +1 -1
- package/packages/i18n/lib/pt_br/i19noProductsFoundFor$1.txt +1 -0
- package/packages/i18n/lib/pt_br/i19noProductsInBrandMsg.txt +1 -0
- package/packages/i18n/lib/pt_br/i19noProductsInCategoryMsg.txt +1 -0
- package/packages/i18n/lib/pt_br.d.ts +9 -4
- package/packages/i18n/lib/pt_br.js +9 -4
- package/packages/i18n/lib/pt_br.js.map +1 -1
- package/packages/i18n/package.json +1 -1
- package/packages/i18n/src/en_us.ts +8 -3
- package/packages/i18n/src/pt_br.ts +9 -4
- package/packages/modules/package.json +2 -2
- package/packages/passport/package.json +1 -1
- package/packages/ssr/events.js +0 -0
- package/packages/ssr/package.json +6 -6
- package/packages/storefront/dist/client/_astro/AccountPage.Osc6ffV0.js +1 -0
- package/packages/storefront/dist/client/_astro/{CartSidebar.1kUFk9Xn.js → CartSidebar.LrfpXG2B.js} +1 -1
- package/packages/storefront/dist/client/_astro/HeroSlider.Zf6kCaqD.js +1 -0
- package/packages/storefront/dist/client/_astro/PitchBar.N4d9fV8H.js +1 -0
- package/packages/storefront/dist/client/_astro/{Prices.PuQc6C7F.js → Prices.eQ9Vd255.js} +1 -1
- package/packages/storefront/dist/client/_astro/ProductDetails.Ln_jf57U.js +7 -0
- package/packages/storefront/dist/client/_astro/ProductShelf.X389bv9S.js +1 -0
- package/packages/storefront/dist/client/_astro/ProductShelf.vj6lVDCr.js +1 -0
- package/packages/storefront/dist/client/_astro/{QuantitySelector.YNmWjN8y.js → QuantitySelector.qSJQlvTe.js} +1 -1
- package/packages/storefront/dist/client/_astro/SearchModal.BrVoDBvg.js +1 -0
- package/packages/storefront/dist/client/_astro/SearchShowcase.KAz3nwco.js +1 -0
- package/packages/storefront/dist/client/_astro/ShopHeader.mFKGzhIu.js +7 -0
- package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper._suIQ7WC.js +1 -0
- package/packages/storefront/dist/client/_astro/_slug_.cfRx-rdA.css +1 -0
- package/packages/storefront/dist/client/_astro/client.PdegUP6S.js +1 -0
- package/packages/storefront/dist/client/_astro/{customer-session._VkzXnXT.js → customer-session.KkTHFOXl.js} +1 -1
- package/packages/storefront/dist/client/_astro/ecom-icon_12falx.png +0 -0
- package/packages/storefront/dist/client/_astro/ecom-icon_15pqnO.png +0 -0
- package/packages/storefront/dist/client/_astro/ecom-icon_t3guw.png +0 -0
- package/packages/storefront/dist/client/_astro/ecom-utils.Ld2zf-Ve.js +1 -0
- package/packages/storefront/dist/client/_astro/{format-money.FMQXgKHB.js → format-money.Axn0YFLJ.js} +1 -1
- package/packages/storefront/dist/client/_astro/grid-title.GntHOijE.js +1 -0
- package/packages/storefront/dist/client/_astro/headphone_T2Jjc.avif +0 -0
- package/packages/storefront/dist/client/_astro/headphone_Z1CG18r.webp +0 -0
- package/packages/storefront/dist/client/_astro/{hoisted._FbzheVm.js → hoisted.3ec9NcvP.js} +1 -1
- package/packages/storefront/dist/client/_astro/{hoisted.B6fKrLPR.js → hoisted.UnTlypMd.js} +1 -1
- package/packages/storefront/dist/client/_astro/{i18n.m7SpISxy.js → i18n.3-NUtxYq.js} +1 -1
- package/packages/storefront/dist/client/_astro/{img.zh-Drf-O.js → img.pozlYdd3.js} +1 -1
- package/packages/storefront/dist/client/_astro/{index.XrHFaN2F.js → index.TkCbiY_p.js} +1 -1
- package/packages/storefront/dist/client/_astro/{index.5PN-EYMS.js → index.m6fK0JXC.js} +1 -1
- package/packages/storefront/dist/client/_astro/logo_1UBsBq.webp +0 -0
- package/packages/storefront/dist/client/_astro/logo_Z1K5PE9.png +0 -0
- package/packages/storefront/dist/client/_astro/logo_Z1KIIl1.avif +0 -0
- package/packages/storefront/dist/client/_astro/{modules-info.sD0tdb2b.js → modules-info.mmwB1qIJ.js} +1 -1
- package/packages/storefront/dist/client/_astro/name.49dZlpDx.js +1 -0
- package/packages/storefront/dist/client/_astro/passion_LHbe9.webp +0 -0
- package/packages/storefront/dist/client/_astro/passion_Z23MeUb.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_1TtOHY.png +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_1f5opX.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_IUskt.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_Uxfdf.png +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_Z15uApA.png +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_Z1Ap1Im.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_Z1JT1HB.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_ZY9mtN.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_tMFW0.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect859_1TgQXS.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect859_2Nm1z.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect859_DIqwR.png +0 -0
- package/packages/storefront/dist/client/_astro/rect859_Z1IKDb2.png +0 -0
- package/packages/storefront/dist/client/_astro/rect859_Z29FI4V.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect859_Z2kFHGk.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect859_ZkpPFI.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect859_jXzBi.png +0 -0
- package/packages/storefront/dist/client/_astro/rect859_x1l16.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect89_1TSfW7.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect89_Z1re32x.webp +0 -0
- package/packages/storefront/dist/client/_astro/sf-utils.yjuG8NjM.js +1 -0
- package/packages/storefront/dist/client/_astro/{shopping-cart.A-1jhlKi.js → shopping-cart.Ean2uW2R.js} +1 -1
- package/packages/storefront/dist/client/_astro/use-analytics.Y7amTmnr.js +1 -0
- package/packages/storefront/dist/client/_astro/{use-product-card.erbOV6Fv.js → use-product-card.zB4z32bC.js} +1 -1
- package/packages/storefront/dist/client/_astro/use-text-value.f9pDzruv.js +4 -0
- package/packages/storefront/dist/client/app/account/index.html +56 -0
- package/packages/storefront/dist/client/app/index.html +96 -0
- package/packages/storefront/dist/client/headset-gamer-corsair-hs40-raptor-ca-9011122-naap-vinho/index.html +107 -0
- package/packages/storefront/dist/client/index.html +120 -0
- package/packages/storefront/dist/client/macbook-apple-pro-15.4-intel-core-i7-2.6ghz-ram-16gb-ssd-512gb-mr972ll/a-prata/index.html +107 -0
- package/packages/storefront/dist/client/mouse-gamer-corsair-optico-harpoon-rgb-ch-9301011-na/index.html +107 -0
- package/packages/storefront/dist/client/teclado-gamer-fortrek-mecanico-k5-rgb-outemu-blue-preto/index.html +107 -0
- package/packages/storefront/dist/client/~fallback/index.html +74 -0
- package/packages/storefront/dist/server/chunks/{CartSidebar_hAgJQJgm.mjs → CartSidebar_gCUGFy65.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/{SearchModal_eWb5SdQM.mjs → SearchModal_2uYZ9tHy.mjs} +4 -5
- package/packages/storefront/dist/server/chunks/{_.._S7DDBn_b.mjs → _.._FnNLvTNv.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/{account_3ySmGzMc.mjs → account_iZ2QmK5E.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/astro/{assets-service_QlOZG8ov.mjs → assets-service_TpUb271h.mjs} +58 -136
- package/packages/storefront/dist/server/chunks/{astro_zcC1GStV.mjs → astro_PpArQAsY.mjs} +4 -4
- package/packages/storefront/dist/server/chunks/{index_nIwq11oA.mjs → index_1q5IpD39.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/{index_uAR5ZV4d.mjs → index_JEU6B2DI.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/{node_2VvC7trl.mjs → node_wOa5hJmt.mjs} +1 -1
- package/packages/storefront/dist/server/chunks/pages/{__MSibDuuV.mjs → __cEcxuEWe.mjs} +1674 -422
- package/packages/storefront/dist/server/chunks/pages/{account_iG-YqJ5q.mjs → account_WliDuQOB.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/pages/{index_BtDyKPh_.mjs → index_2bQLkQf-.mjs} +3 -3
- package/packages/storefront/dist/server/chunks/pages/{node_bKqL47eZ.mjs → node_ZaY4t9qW.mjs} +21 -2
- package/packages/storefront/dist/server/chunks/pages/{~fallback_73R5VA6j.mjs → ~fallback_TL5hPXF_.mjs} +2 -2
- package/packages/storefront/dist/server/chunks/{~fallback_7q1dqY4e.mjs → ~fallback_wxuqpDXG.mjs} +1 -1
- package/packages/storefront/dist/server/entry.mjs +34 -16
- package/packages/storefront/dist/server/{manifest_dSwvaOdW.mjs → manifest_YgAgEwvF.mjs} +17 -16
- package/packages/storefront/dist/server/renderers.mjs +14 -3
- package/packages/storefront/package.json +12 -12
- package/packages/storefront/src/helpers/sf-utils.ts +11 -0
- package/packages/storefront/src/lib/$storefront.d.ts +7 -1
- package/packages/storefront/src/lib/components/Drawer.vue +13 -8
- package/packages/storefront/src/lib/components/globals/ALink.vue +1 -1
- package/packages/storefront/src/lib/composables/use-pagination.ts +61 -0
- package/packages/storefront/src/lib/composables/use-product-shelf.ts +29 -19
- package/packages/storefront/src/lib/composables/use-search-filters.ts +271 -0
- package/packages/storefront/src/lib/composables/use-search-modal.ts +2 -11
- package/packages/storefront/src/lib/composables/use-search-showcase.ts +168 -22
- package/packages/storefront/src/lib/composables/use-sku-selector.ts +3 -8
- package/packages/storefront/src/lib/layouts/use-page-main.ts +20 -8
- package/packages/storefront/src/lib/state/search-engine.ts +19 -6
- package/packages/storefront/tsconfig.json +1 -1
- package/packages/test-base/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/i18n/lib/en_us/i19noProduct.txt +0 -1
- package/packages/i18n/lib/en_us/i19noResultsFor.txt +0 -1
- package/packages/i18n/lib/pt_br/i19noResultsFor.txt +0 -1
- package/packages/storefront/dist/client/_astro/AccountPage.j0C5JBLY.js +0 -1
- package/packages/storefront/dist/client/_astro/HeroSlider.tR1dVXyu.js +0 -1
- package/packages/storefront/dist/client/_astro/PitchBar.FelC04wE.js +0 -1
- package/packages/storefront/dist/client/_astro/ProductCard.ephJafAE.js +0 -1
- package/packages/storefront/dist/client/_astro/ProductDetails.B6Ih5MGf.js +0 -7
- package/packages/storefront/dist/client/_astro/ProductShelf.GESxuPZ_.js +0 -1
- package/packages/storefront/dist/client/_astro/SearchContainer.BzixfU3R.js +0 -1
- package/packages/storefront/dist/client/_astro/SearchModal.F7vbwxIv.js +0 -1
- package/packages/storefront/dist/client/_astro/ShopHeader.5vR1LgSW.js +0 -10
- package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.sk5AFsEV.js +0 -1
- package/packages/storefront/dist/client/_astro/_slug_.r8QHNfdw.css +0 -1
- package/packages/storefront/dist/client/_astro/client.RF8UxjZd.js +0 -1
- package/packages/storefront/dist/client/_astro/ecom-utils.gJYgRPRz.js +0 -1
- package/packages/storefront/dist/client/_astro/name.HU5l7TJo.js +0 -1
- package/packages/storefront/dist/client/_astro/sf-utils.5t7r9A2G.js +0 -1
- package/packages/storefront/dist/client/_astro/use-analytics.1EVxbrS7.js +0 -1
- /package/packages/i18n/lib/en_us/{i19relatedProduct.txt → i19relatedProducts.txt} +0 -0
- /package/packages/i18n/lib/pt_br/{i19noProduct.txt → i19noProductsFound.txt} +0 -0
- /package/packages/i18n/lib/pt_br/{i19relatedProduct.txt → i19relatedProducts.txt} +0 -0
package/packages/storefront/dist/server/chunks/pages/{account_iG-YqJ5q.mjs → account_WliDuQOB.mjs}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { e as createAstro, f as createComponent, r as renderTemplate, h as addAttribute, i as renderComponent, m as maybeRenderHead } from '../
|
|
1
|
+
import { e as createAstro, f as createComponent, r as renderTemplate, h as addAttribute, i as renderComponent, m as maybeRenderHead } from '../astro_PpArQAsY.mjs';
|
|
2
2
|
import 'kleur/colors';
|
|
3
|
-
import { l as loadRouteContext, $ as $$BaseHead, a as $$Picture, b as $$Base } from './
|
|
3
|
+
import { l as loadRouteContext, $ as $$BaseHead, a as $$Picture, b as $$Base } from './__cEcxuEWe.mjs';
|
|
4
4
|
|
|
5
5
|
const $$Astro = createAstro("https://demo.ecomplus.app");
|
|
6
6
|
const $$Account = createComponent(async ($$result, $$props, $$slots) => {
|
package/packages/storefront/dist/server/chunks/pages/{index_BtDyKPh_.mjs → index_2bQLkQf-.mjs}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { e as createAstro, f as createComponent, r as renderTemplate, m as maybeRenderHead, i as renderComponent, h as addAttribute, u as unescapeHTML, F as Fragment$1 } from '../
|
|
1
|
+
import { e as createAstro, f as createComponent, r as renderTemplate, m as maybeRenderHead, i as renderComponent, h as addAttribute, u as unescapeHTML, F as Fragment$1 } from '../astro_PpArQAsY.mjs';
|
|
2
2
|
import 'kleur/colors';
|
|
3
|
-
import { _ as _export_sfc, B as Banner, u as usePageHero, c as $$BannerPictures, d as $$Sections, l as loadRouteContext, $ as $$BaseHead, e as $$PageHeader, f as $$PageFooter, b as $$Base, F as FooterStamps, a as $$Picture } from './
|
|
3
|
+
import { _ as _export_sfc, B as Banner, u as usePageHero, c as $$BannerPictures, d as $$Sections, l as loadRouteContext, $ as $$BaseHead, e as $$PageHeader, f as $$PageFooter, b as $$Base, F as FooterStamps, a as $$Picture } from './__cEcxuEWe.mjs';
|
|
4
4
|
import 'clsx';
|
|
5
5
|
import { useSSRContext, defineComponent, ref, onMounted, resolveComponent, mergeProps, withCtx, createVNode, withDirectives, vShow, renderSlot, openBlock, createBlock, Fragment, renderList, createTextVNode, toDisplayString } from 'vue';
|
|
6
6
|
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderStyle, ssrRenderClass, ssrRenderList, ssrRenderSlot, ssrInterpolate } from 'vue/server-renderer';
|
|
@@ -25,7 +25,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
25
25
|
function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
|
|
26
26
|
const _component_Carousel = resolveComponent("Carousel");
|
|
27
27
|
const _component_CarouselControl = resolveComponent("CarouselControl");
|
|
28
|
-
_push(`<section${ssrRenderAttrs(mergeProps({ class: "relative mx-auto" }, _attrs))}>`);
|
|
28
|
+
_push(`<section${ssrRenderAttrs(mergeProps({ class: "relative mx-auto mb-9 md:mb-12" }, _attrs))}>`);
|
|
29
29
|
_push(ssrRenderComponent(_component_Carousel, {
|
|
30
30
|
autoplay: $props.autoplay,
|
|
31
31
|
class: "secondary [&>*]:items-center"
|
package/packages/storefront/dist/server/chunks/pages/{node_bKqL47eZ.mjs → node_ZaY4t9qW.mjs}
RENAMED
|
@@ -2,8 +2,26 @@ import { isRemotePath } from '@astrojs/internal-helpers/path';
|
|
|
2
2
|
import { readFile } from 'fs/promises';
|
|
3
3
|
import mime from 'mime/lite.js';
|
|
4
4
|
import 'os';
|
|
5
|
-
import {
|
|
6
|
-
import { i as imageConfig, g as assetsDir } from './
|
|
5
|
+
import { A as AstroError, I as InvalidImageService, c as isRemoteAllowed } from '../astro/assets-service_TpUb271h.mjs';
|
|
6
|
+
import { i as imageConfig, g as assetsDir } from './__cEcxuEWe.mjs';
|
|
7
|
+
|
|
8
|
+
async function getConfiguredImageService() {
|
|
9
|
+
if (!globalThis?.astroAsset?.imageService) {
|
|
10
|
+
const { default: service } = await import(
|
|
11
|
+
// @ts-expect-error
|
|
12
|
+
'../astro/assets-service_TpUb271h.mjs'
|
|
13
|
+
).then(n => n.s).catch((e) => {
|
|
14
|
+
const error = new AstroError(InvalidImageService);
|
|
15
|
+
error.cause = e;
|
|
16
|
+
throw error;
|
|
17
|
+
});
|
|
18
|
+
if (!globalThis.astroAsset)
|
|
19
|
+
globalThis.astroAsset = {};
|
|
20
|
+
globalThis.astroAsset.imageService = service;
|
|
21
|
+
return service;
|
|
22
|
+
}
|
|
23
|
+
return globalThis.astroAsset.imageService;
|
|
24
|
+
}
|
|
7
25
|
|
|
8
26
|
const fnv1a52 = (str) => {
|
|
9
27
|
const len = str.length;
|
|
@@ -86,6 +104,7 @@ const GET = async ({ request }) => {
|
|
|
86
104
|
}
|
|
87
105
|
});
|
|
88
106
|
} catch (err) {
|
|
107
|
+
console.error("Could not process image request:", err);
|
|
89
108
|
return new Response(`Server Error: ${err}`, { status: 500 });
|
|
90
109
|
}
|
|
91
110
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { e as createAstro, f as createComponent, r as renderTemplate, m as maybeRenderHead, h as addAttribute, i as renderComponent } from '../
|
|
1
|
+
import { e as createAstro, f as createComponent, r as renderTemplate, m as maybeRenderHead, h as addAttribute, i as renderComponent } from '../astro_PpArQAsY.mjs';
|
|
2
2
|
import 'kleur/colors';
|
|
3
|
-
import { l as loadRouteContext, $ as $$BaseHead, e as $$PageHeader, b as $$Base } from './
|
|
3
|
+
import { l as loadRouteContext, $ as $$BaseHead, e as $$PageHeader, b as $$Base } from './__cEcxuEWe.mjs';
|
|
4
4
|
import 'clsx';
|
|
5
5
|
|
|
6
6
|
const $$Astro$1 = createAstro("https://demo.ecomplus.app");
|
|
@@ -3,9 +3,9 @@ import http from 'node:http';
|
|
|
3
3
|
import { TLSSocket } from 'node:tls';
|
|
4
4
|
import { appendForwardSlash as appendForwardSlash$1, joinPaths, trimSlashes, slash, prependForwardSlash, removeTrailingForwardSlash, collapseDuplicateSlashes } from '@astrojs/internal-helpers/path';
|
|
5
5
|
import { serialize, parse } from 'cookie';
|
|
6
|
-
import { l as levels, g as getEventPrefix, L as Logger, A as AstroIntegrationLogger, manifest } from './
|
|
6
|
+
import { l as levels, g as getEventPrefix, L as Logger, A as AstroIntegrationLogger, manifest } from './manifest_YgAgEwvF.mjs';
|
|
7
7
|
import 'kleur/colors';
|
|
8
|
-
import { A as AstroError, R as ResponseSentError, o as MiddlewareNoDataOrNextCalled, p as MiddlewareNotAResponse, G as GetStaticPathsRequired, q as InvalidGetStaticPathsReturn, t as InvalidGetStaticPathsEntry, v as GetStaticPathsExpectedParams, w as GetStaticPathsInvalidRouteParam, P as PageNumberParamNotFound, N as NoMatchingStaticPathFound, x as PrerenderDynamicEndpointPathCollide, y as LocalsNotAnObject, z as ASTRO_VERSION, C as ClientAddressNotAvailable, S as StaticClientAddressNotAvailable, B as renderEndpoint, D as ReservedSlotName, k as renderSlotToString, H as renderJSX, J as chunkToString, K as CantRenderPage, O as renderPage$1 } from './chunks/
|
|
8
|
+
import { A as AstroError, R as ResponseSentError, o as MiddlewareNoDataOrNextCalled, p as MiddlewareNotAResponse, G as GetStaticPathsRequired, q as InvalidGetStaticPathsReturn, t as InvalidGetStaticPathsEntry, v as GetStaticPathsExpectedParams, w as GetStaticPathsInvalidRouteParam, P as PageNumberParamNotFound, N as NoMatchingStaticPathFound, x as PrerenderDynamicEndpointPathCollide, y as LocalsNotAnObject, z as ASTRO_VERSION, C as ClientAddressNotAvailable, S as StaticClientAddressNotAvailable, B as renderEndpoint, D as ReservedSlotName, k as renderSlotToString, H as renderJSX, J as chunkToString, K as CantRenderPage, O as renderPage$1 } from './chunks/astro_PpArQAsY.mjs';
|
|
9
9
|
import 'clsx';
|
|
10
10
|
import buffer from 'node:buffer';
|
|
11
11
|
import crypto from 'node:crypto';
|
|
@@ -396,7 +396,13 @@ function redirectRouteGenerate(redirectRoute, data) {
|
|
|
396
396
|
if (typeof routeData !== "undefined") {
|
|
397
397
|
return routeData?.generate(data) || routeData?.pathname || "/";
|
|
398
398
|
} else if (typeof route === "string") {
|
|
399
|
-
|
|
399
|
+
let target = route;
|
|
400
|
+
for (const param of Object.keys(data)) {
|
|
401
|
+
const paramValue = data[param];
|
|
402
|
+
target = target.replace(`[${param}]`, paramValue);
|
|
403
|
+
target = target.replace(`[...${param}]`, paramValue);
|
|
404
|
+
}
|
|
405
|
+
return target;
|
|
400
406
|
} else if (typeof route === "undefined") {
|
|
401
407
|
return "/";
|
|
402
408
|
}
|
|
@@ -1733,7 +1739,8 @@ class App {
|
|
|
1733
1739
|
* This also handles pre-rendered /404 or /500 routes
|
|
1734
1740
|
*/
|
|
1735
1741
|
async #renderError(request, { status, response: originalResponse, skipMiddleware = false }) {
|
|
1736
|
-
const
|
|
1742
|
+
const errorRoutePath = `/${status}${this.#manifest.trailingSlash === "always" ? "/" : ""}`;
|
|
1743
|
+
const errorRouteData = matchRoute(errorRoutePath, this.#manifestData);
|
|
1737
1744
|
const url = new URL(request.url);
|
|
1738
1745
|
if (errorRouteData) {
|
|
1739
1746
|
if (errorRouteData.prerender) {
|
|
@@ -1778,8 +1785,8 @@ class App {
|
|
|
1778
1785
|
Reflect.set(response, responseSentSymbol, true);
|
|
1779
1786
|
return response;
|
|
1780
1787
|
}
|
|
1781
|
-
#mergeResponses(newResponse,
|
|
1782
|
-
if (!
|
|
1788
|
+
#mergeResponses(newResponse, originalResponse, override) {
|
|
1789
|
+
if (!originalResponse) {
|
|
1783
1790
|
if (override !== void 0) {
|
|
1784
1791
|
return new Response(newResponse.body, {
|
|
1785
1792
|
status: override.status,
|
|
@@ -1789,12 +1796,23 @@ class App {
|
|
|
1789
1796
|
}
|
|
1790
1797
|
return newResponse;
|
|
1791
1798
|
}
|
|
1792
|
-
const
|
|
1793
|
-
|
|
1799
|
+
const status = override?.status ? override.status : originalResponse.status === 200 ? newResponse.status : originalResponse.status;
|
|
1800
|
+
try {
|
|
1801
|
+
originalResponse.headers.delete("Content-type");
|
|
1802
|
+
} catch {
|
|
1803
|
+
}
|
|
1794
1804
|
return new Response(newResponse.body, {
|
|
1795
1805
|
status,
|
|
1796
|
-
statusText: status === 200 ? newResponse.statusText : statusText,
|
|
1797
|
-
|
|
1806
|
+
statusText: status === 200 ? newResponse.statusText : originalResponse.statusText,
|
|
1807
|
+
// If you're looking at here for possible bugs, it means that it's not a bug.
|
|
1808
|
+
// With the middleware, users can meddle with headers, and we should pass to the 404/500.
|
|
1809
|
+
// If users see something weird, it's because they are setting some headers they should not.
|
|
1810
|
+
//
|
|
1811
|
+
// Although, we don't want it to replace the content-type, because the error page must return `text/html`
|
|
1812
|
+
headers: new Headers([
|
|
1813
|
+
...Array.from(newResponse.headers),
|
|
1814
|
+
...Array.from(originalResponse.headers)
|
|
1815
|
+
])
|
|
1798
1816
|
});
|
|
1799
1817
|
}
|
|
1800
1818
|
#getDefaultStatusCode(routeData, pathname) {
|
|
@@ -2236,12 +2254,12 @@ const adapter = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
|
2236
2254
|
start
|
|
2237
2255
|
}, Symbol.toStringTag, { value: 'Module' }));
|
|
2238
2256
|
|
|
2239
|
-
const _page0 = () => import('./chunks/
|
|
2240
|
-
const _page1 = () => import('./chunks/
|
|
2241
|
-
const _page2 = () => import('./chunks/~
|
|
2242
|
-
const _page3 = () => import('./chunks/
|
|
2243
|
-
const _page4 = () => import('./chunks/
|
|
2244
|
-
const _page5 = () => import('./chunks/_..
|
|
2257
|
+
const _page0 = () => import('./chunks/node_wOa5hJmt.mjs');
|
|
2258
|
+
const _page1 = () => import('./chunks/index_1q5IpD39.mjs');
|
|
2259
|
+
const _page2 = () => import('./chunks/~fallback_wxuqpDXG.mjs');
|
|
2260
|
+
const _page3 = () => import('./chunks/index_JEU6B2DI.mjs');
|
|
2261
|
+
const _page4 = () => import('./chunks/account_iZ2QmK5E.mjs');
|
|
2262
|
+
const _page5 = () => import('./chunks/_.._FnNLvTNv.mjs');const pageMap = new Map([["../../node_modules/.pnpm/astro@4.0.7_@types+node@18.19.3_typescript@5.2.2/node_modules/astro/dist/assets/endpoint/node.js", _page0],["src/pages/index.astro", _page1],["src/pages/~fallback.astro", _page2],["src/pages/app/index.astro", _page3],["src/pages/app/account.astro", _page4],["src/pages/[...slug].astro", _page5]]);
|
|
2245
2263
|
const _manifest = Object.assign(manifest, {
|
|
2246
2264
|
pageMap,
|
|
2247
2265
|
renderers,
|
|
@@ -2,7 +2,7 @@ import '@astrojs/internal-helpers/path';
|
|
|
2
2
|
import 'cookie';
|
|
3
3
|
import { bold, red, yellow, dim, blue } from 'kleur/colors';
|
|
4
4
|
import 'string-width';
|
|
5
|
-
import './chunks/
|
|
5
|
+
import './chunks/astro_PpArQAsY.mjs';
|
|
6
6
|
import 'clsx';
|
|
7
7
|
import { compile } from 'path-to-regexp';
|
|
8
8
|
|
|
@@ -19,13 +19,14 @@ const levels = {
|
|
|
19
19
|
error: 50,
|
|
20
20
|
silent: 90
|
|
21
21
|
};
|
|
22
|
-
function log(opts, level, label, message) {
|
|
22
|
+
function log(opts, level, label, message, newLine = true) {
|
|
23
23
|
const logLevel = opts.level;
|
|
24
24
|
const dest = opts.dest;
|
|
25
25
|
const event = {
|
|
26
26
|
label,
|
|
27
27
|
level,
|
|
28
|
-
message
|
|
28
|
+
message,
|
|
29
|
+
newLine
|
|
29
30
|
};
|
|
30
31
|
if (!isLogLevelEnabled(logLevel, level)) {
|
|
31
32
|
return;
|
|
@@ -35,14 +36,14 @@ function log(opts, level, label, message) {
|
|
|
35
36
|
function isLogLevelEnabled(configuredLogLevel, level) {
|
|
36
37
|
return levels[configuredLogLevel] <= levels[level];
|
|
37
38
|
}
|
|
38
|
-
function info(opts, label, message) {
|
|
39
|
-
return log(opts, "info", label, message);
|
|
39
|
+
function info(opts, label, message, newLine = true) {
|
|
40
|
+
return log(opts, "info", label, message, newLine);
|
|
40
41
|
}
|
|
41
|
-
function warn(opts, label, message) {
|
|
42
|
-
return log(opts, "warn", label, message);
|
|
42
|
+
function warn(opts, label, message, newLine = true) {
|
|
43
|
+
return log(opts, "warn", label, message, newLine);
|
|
43
44
|
}
|
|
44
|
-
function error(opts, label, message) {
|
|
45
|
-
return log(opts, "error", label, message);
|
|
45
|
+
function error(opts, label, message, newLine = true) {
|
|
46
|
+
return log(opts, "error", label, message, newLine);
|
|
46
47
|
}
|
|
47
48
|
function debug(...args) {
|
|
48
49
|
if ("_astroGlobalDebug" in globalThis) {
|
|
@@ -83,14 +84,14 @@ class Logger {
|
|
|
83
84
|
constructor(options) {
|
|
84
85
|
this.options = options;
|
|
85
86
|
}
|
|
86
|
-
info(label, message) {
|
|
87
|
-
info(this.options, label, message);
|
|
87
|
+
info(label, message, newLine = true) {
|
|
88
|
+
info(this.options, label, message, newLine);
|
|
88
89
|
}
|
|
89
|
-
warn(label, message) {
|
|
90
|
-
warn(this.options, label, message);
|
|
90
|
+
warn(label, message, newLine = true) {
|
|
91
|
+
warn(this.options, label, message, newLine);
|
|
91
92
|
}
|
|
92
|
-
error(label, message) {
|
|
93
|
-
error(this.options, label, message);
|
|
93
|
+
error(label, message, newLine = true) {
|
|
94
|
+
error(this.options, label, message, newLine);
|
|
94
95
|
}
|
|
95
96
|
debug(label, ...messages) {
|
|
96
97
|
debug(label, ...messages);
|
|
@@ -190,6 +191,6 @@ function deserializeManifest(serializedManifest) {
|
|
|
190
191
|
};
|
|
191
192
|
}
|
|
192
193
|
|
|
193
|
-
const manifest = deserializeManifest({"adapterName":"@astrojs/node","routes":[{"file":"","links":[],"scripts":[],"styles":[],"routeData":{"type":"endpoint","route":"/_image","pattern":"^\\/_image$","segments":[[{"content":"_image","dynamic":false,"spread":false}]],"params":[],"component":"../../node_modules/.pnpm/astro@4.0.4_@types+node@18.19.3_typescript@5.2.2/node_modules/astro/dist/assets/endpoint/node.js","pathname":"/_image","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted._FbzheVm.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.r8QHNfdw.css"}],"routeData":{"route":"/","type":"page","pattern":"^\\/$","segments":[],"params":[],"component":"src/pages/index.astro","pathname":"/","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted._FbzheVm.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.r8QHNfdw.css"}],"routeData":{"route":"/~fallback","type":"page","pattern":"^\\/~fallback\\/?$","segments":[[{"content":"~fallback","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/~fallback.astro","pathname":"/~fallback","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.B6fKrLPR.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.r8QHNfdw.css"}],"routeData":{"route":"/app","type":"page","pattern":"^\\/app\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/index.astro","pathname":"/app","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted._FbzheVm.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.r8QHNfdw.css"}],"routeData":{"route":"/app/account","type":"page","pattern":"^\\/app\\/account\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}],[{"content":"account","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/account.astro","pathname":"/app/account","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted._FbzheVm.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.r8QHNfdw.css"}],"routeData":{"route":"/[...slug]","type":"page","pattern":"^(?:\\/(.*?))?\\/?$","segments":[[{"content":"...slug","dynamic":true,"spread":true}]],"params":["...slug"],"component":"src/pages/[...slug].astro","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}}],"site":"https://demo.ecomplus.app","base":"/","trailingSlash":"ignore","compressHTML":false,"componentMetadata":[["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/BaseHead.astro",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/[...slug].astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/[...slug]@_@astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astrojs-ssr-virtual-entry",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/app/account.astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/app/account@_@astro",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/app/index.astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/app/index@_@astro",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/index.astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/index@_@astro",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/~fallback.astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/~fallback@_@astro",{"propagation":"in-tree","containsHead":false}]],"renderers":[],"clientDirectives":[["idle","(()=>{var i=t=>{let e=async()=>{await(await t())()};\"requestIdleCallback\"in window?window.requestIdleCallback(e):setTimeout(e,200)};(self.Astro||(self.Astro={})).idle=i;window.dispatchEvent(new Event(\"astro:idle\"));})();"],["load","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event(\"astro:load\"));})();"],["media","(()=>{var s=(i,t)=>{let a=async()=>{await(await i())()};if(t.value){let e=matchMedia(t.value);e.matches?a():e.addEventListener(\"change\",a,{once:!0})}};(self.Astro||(self.Astro={})).media=s;window.dispatchEvent(new Event(\"astro:media\"));})();"],["only","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event(\"astro:only\"));})();"],["visible","(()=>{var r=(i,c,s)=>{let n=async()=>{await(await i())()},t=new IntersectionObserver(e=>{for(let o of e)if(o.isIntersecting){t.disconnect(),n();break}});for(let e of s.children)t.observe(e)};(self.Astro||(self.Astro={})).visible=r;window.dispatchEvent(new Event(\"astro:visible\"));})();"],["context","(()=>{var n=(d,i)=>{let t=async()=>{await(await d())()},e=()=>{if(i.value===\"idle\"){if(typeof window.requestIdleCallback==\"function\"){setTimeout(()=>window.requestIdleCallback(t),9);return}setTimeout(t,200);return}t()},o=window.$storefront?.apiContext?.doc._id||null;if(window._firstLoadContextId===o&&window._emitedContextId===o){console.log(\"[ctx] first load\"),e(),document.addEventListener(\"astro:beforeload\",()=>{delete window._firstLoadContextId},{once:!0});return}window.addEventListener(\"storefront:apiContext\",e,{once:!0})};(self.Astro||(self.Astro={})).context=n;window.dispatchEvent(new Event(\"astro:context\"));})();\n"]],"entryModules":{"\u0000@astrojs-ssr-virtual-entry":"entry.mjs","\u0000@astro-renderers":"renderers.mjs","\u0000empty-middleware":"_empty-middleware.mjs","/src/pages/app/account.astro":"chunks/pages/account_iG-YqJ5q.mjs","/../../node_modules/.pnpm/astro@4.0.4_@types+node@18.19.3_typescript@5.2.2/node_modules/astro/dist/assets/endpoint/node.js":"chunks/pages/node_bKqL47eZ.mjs","/src/pages/~fallback.astro":"chunks/pages/~fallback_73R5VA6j.mjs","\u0000@astrojs-manifest":"manifest_dSwvaOdW.mjs","\u0000@astro-page:../../node_modules/.pnpm/astro@4.0.4_@types+node@18.19.3_typescript@5.2.2/node_modules/astro/dist/assets/endpoint/node@_@js":"chunks/node_2VvC7trl.mjs","\u0000@astro-page:src/pages/index@_@astro":"chunks/index_nIwq11oA.mjs","\u0000@astro-page:src/pages/~fallback@_@astro":"chunks/~fallback_7q1dqY4e.mjs","\u0000@astro-page:src/pages/app/index@_@astro":"chunks/index_uAR5ZV4d.mjs","\u0000@astro-page:src/pages/app/account@_@astro":"chunks/account_3ySmGzMc.mjs","\u0000@astro-page:src/pages/[...slug]@_@astro":"chunks/_.._S7DDBn_b.mjs","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/components/SearchModal.vue":"_astro/SearchModal.F7vbwxIv.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/components/CartSidebar.vue":"_astro/CartSidebar.1kUFk9Xn.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/photoswipe/dist/photoswipe.css?inline":"_astro/photoswipe.0V7m2jWu.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/photoswipe/dist/photoswipe-lightbox.esm.js":"_astro/photoswipe-lightbox.esm.dZBqKD9u.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/scripts/firebase-app.ts":"_astro/firebase-app.cPMfoOsn.js","~/components/PitchBar.vue":"_astro/PitchBar.FelC04wE.js","~/components/SearchContainer.vue":"_astro/SearchContainer.BzixfU3R.js","~/components/AccountPage.vue":"_astro/AccountPage.j0C5JBLY.js","~/components/HeroSlider.vue":"_astro/HeroSlider.tR1dVXyu.js","/astro/hoisted.js?q=0":"_astro/hoisted.B6fKrLPR.js","~/components/ProductDetails.vue":"_astro/ProductDetails.B6Ih5MGf.js","~/components/ProductShelf.vue":"_astro/ProductShelf.GESxuPZ_.js","@astrojs/vue/client.js":"_astro/client.RF8UxjZd.js","/astro/hoisted.js?q=1":"_astro/hoisted._FbzheVm.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/photoswipe/dist/photoswipe.esm.js":"_astro/photoswipe.esm.Ylh9TGkz.js","~/components/ShopHeader.vue":"_astro/ShopHeader.5vR1LgSW.js","astro:scripts/before-hydration.js":""},"assets":["/_astro/_slug_.r8QHNfdw.css","/robots.txt","/_astro/AccountPage.j0C5JBLY.js","/_astro/CartSidebar.1kUFk9Xn.js","/_astro/HeroSlider.tR1dVXyu.js","/_astro/PitchBar.FelC04wE.js","/_astro/Prices.PuQc6C7F.js","/_astro/ProductCard.ephJafAE.js","/_astro/ProductDetails.B6Ih5MGf.js","/_astro/ProductShelf.GESxuPZ_.js","/_astro/QuantitySelector.YNmWjN8y.js","/_astro/SearchContainer.BzixfU3R.js","/_astro/SearchModal.F7vbwxIv.js","/_astro/ShopHeader.5vR1LgSW.js","/_astro/_plugin-vue_export-helper.sk5AFsEV.js","/_astro/afetch.5c8VmT0-.js","/_astro/client.RF8UxjZd.js","/_astro/customer-session._VkzXnXT.js","/_astro/ecom-utils.gJYgRPRz.js","/_astro/firebase-app.cPMfoOsn.js","/_astro/format-money.FMQXgKHB.js","/_astro/hoisted.B6fKrLPR.js","/_astro/hoisted._FbzheVm.js","/_astro/i18n.m7SpISxy.js","/_astro/img-sizes.gxAI9JNh.js","/_astro/img.zh-Drf-O.js","/_astro/index-dd468b12.D5s8VdAL.js","/_astro/index.5PN-EYMS.js","/_astro/index.XrHFaN2F.js","/_astro/modules-info.sD0tdb2b.js","/_astro/name.HU5l7TJo.js","/_astro/photoswipe-lightbox.esm.dZBqKD9u.js","/_astro/photoswipe.0V7m2jWu.js","/_astro/photoswipe.esm.Ylh9TGkz.js","/_astro/price.Easct8WC.js","/_astro/sf-utils.5t7r9A2G.js","/_astro/shopping-cart.A-1jhlKi.js","/_astro/use-analytics.1EVxbrS7.js","/_astro/use-product-card.erbOV6Fv.js","/img/icon.png","/img/large-icon.png","/img/uploads/banner2.webp","/img/uploads/ecom-icon.png","/img/uploads/headphone.webp","/img/uploads/logo.png","/img/uploads/og-image.png","/img/uploads/passion.webp","/img/uploads/rect8589.png","/img/uploads/rect859.png","/img/uploads/rect89.webp"]});
|
|
194
|
+
const manifest = deserializeManifest({"adapterName":"@astrojs/node","routes":[{"file":"","links":[],"scripts":[],"styles":[],"routeData":{"type":"endpoint","route":"/_image","pattern":"^\\/_image$","segments":[[{"content":"_image","dynamic":false,"spread":false}]],"params":[],"component":"../../node_modules/.pnpm/astro@4.0.7_@types+node@18.19.3_typescript@5.2.2/node_modules/astro/dist/assets/endpoint/node.js","pathname":"/_image","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.3ec9NcvP.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.cfRx-rdA.css"}],"routeData":{"route":"/","type":"page","pattern":"^\\/$","segments":[],"params":[],"component":"src/pages/index.astro","pathname":"/","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.3ec9NcvP.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.cfRx-rdA.css"}],"routeData":{"route":"/~fallback","type":"page","pattern":"^\\/~fallback\\/?$","segments":[[{"content":"~fallback","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/~fallback.astro","pathname":"/~fallback","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.UnTlypMd.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.cfRx-rdA.css"}],"routeData":{"route":"/app","type":"page","pattern":"^\\/app\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/index.astro","pathname":"/app","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.3ec9NcvP.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.cfRx-rdA.css"}],"routeData":{"route":"/app/account","type":"page","pattern":"^\\/app\\/account\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}],[{"content":"account","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/account.astro","pathname":"/app/account","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"/_astro/hoisted.3ec9NcvP.js"}],"styles":[{"type":"external","src":"/_astro/_slug_.cfRx-rdA.css"}],"routeData":{"route":"/[...slug]","type":"page","pattern":"^(?:\\/(.*?))?\\/?$","segments":[[{"content":"...slug","dynamic":true,"spread":true}]],"params":["...slug"],"component":"src/pages/[...slug].astro","prerender":false,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}}],"site":"https://demo.ecomplus.app","base":"/","trailingSlash":"ignore","compressHTML":false,"componentMetadata":[["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/BaseHead.astro",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/[...slug].astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/[...slug]@_@astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astrojs-ssr-virtual-entry",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/app/account.astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/app/account@_@astro",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/app/index.astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/app/index@_@astro",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/index.astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/index@_@astro",{"propagation":"in-tree","containsHead":false}],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/~fallback.astro",{"propagation":"in-tree","containsHead":false}],["\u0000@astro-page:src/pages/~fallback@_@astro",{"propagation":"in-tree","containsHead":false}]],"renderers":[],"clientDirectives":[["idle","(()=>{var i=t=>{let e=async()=>{await(await t())()};\"requestIdleCallback\"in window?window.requestIdleCallback(e):setTimeout(e,200)};(self.Astro||(self.Astro={})).idle=i;window.dispatchEvent(new Event(\"astro:idle\"));})();"],["load","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event(\"astro:load\"));})();"],["media","(()=>{var s=(i,t)=>{let a=async()=>{await(await i())()};if(t.value){let e=matchMedia(t.value);e.matches?a():e.addEventListener(\"change\",a,{once:!0})}};(self.Astro||(self.Astro={})).media=s;window.dispatchEvent(new Event(\"astro:media\"));})();"],["only","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event(\"astro:only\"));})();"],["visible","(()=>{var r=(i,c,s)=>{let n=async()=>{await(await i())()},t=new IntersectionObserver(e=>{for(let o of e)if(o.isIntersecting){t.disconnect(),n();break}});for(let e of s.children)t.observe(e)};(self.Astro||(self.Astro={})).visible=r;window.dispatchEvent(new Event(\"astro:visible\"));})();"],["context","(()=>{var n=(d,i)=>{let t=async()=>{await(await d())()},e=()=>{if(i.value===\"idle\"){if(typeof window.requestIdleCallback==\"function\"){setTimeout(()=>window.requestIdleCallback(t),9);return}setTimeout(t,200);return}t()},o=window.$storefront?.apiContext?.doc._id||null;if(window._firstLoadContextId===o&&window._emitedContextId===o){console.log(\"[ctx] first load\"),e(),document.addEventListener(\"astro:beforeload\",()=>{delete window._firstLoadContextId},{once:!0});return}window.addEventListener(\"storefront:apiContext\",e,{once:!0})};(self.Astro||(self.Astro={})).context=n;window.dispatchEvent(new Event(\"astro:context\"));})();\n"]],"entryModules":{"\u0000@astrojs-ssr-virtual-entry":"entry.mjs","\u0000@astro-renderers":"renderers.mjs","\u0000empty-middleware":"_empty-middleware.mjs","/src/pages/app/account.astro":"chunks/pages/account_WliDuQOB.mjs","/../../node_modules/.pnpm/astro@4.0.7_@types+node@18.19.3_typescript@5.2.2/node_modules/astro/dist/assets/endpoint/node.js":"chunks/pages/node_ZaY4t9qW.mjs","/src/pages/~fallback.astro":"chunks/pages/~fallback_TL5hPXF_.mjs","\u0000@astrojs-manifest":"manifest_YgAgEwvF.mjs","\u0000@astro-page:../../node_modules/.pnpm/astro@4.0.7_@types+node@18.19.3_typescript@5.2.2/node_modules/astro/dist/assets/endpoint/node@_@js":"chunks/node_wOa5hJmt.mjs","\u0000@astro-page:src/pages/index@_@astro":"chunks/index_1q5IpD39.mjs","\u0000@astro-page:src/pages/~fallback@_@astro":"chunks/~fallback_wxuqpDXG.mjs","\u0000@astro-page:src/pages/app/index@_@astro":"chunks/index_JEU6B2DI.mjs","\u0000@astro-page:src/pages/app/account@_@astro":"chunks/account_iZ2QmK5E.mjs","\u0000@astro-page:src/pages/[...slug]@_@astro":"chunks/_.._FnNLvTNv.mjs","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/components/SearchModal.vue":"_astro/SearchModal.BrVoDBvg.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/components/CartSidebar.vue":"_astro/CartSidebar.LrfpXG2B.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/photoswipe/dist/photoswipe.css?inline":"_astro/photoswipe.0V7m2jWu.js","~/components/AccountPage.vue":"_astro/AccountPage.Osc6ffV0.js","~/components/ProductDetails.vue":"_astro/ProductDetails.Ln_jf57U.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/photoswipe/dist/photoswipe-lightbox.esm.js":"_astro/photoswipe-lightbox.esm.dZBqKD9u.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/scripts/firebase-app.ts":"_astro/firebase-app.cPMfoOsn.js","~/components/PitchBar.vue":"_astro/PitchBar.N4d9fV8H.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/photoswipe/dist/photoswipe.esm.js":"_astro/photoswipe.esm.Ylh9TGkz.js","/astro/hoisted.js?q=0":"_astro/hoisted.UnTlypMd.js","@astrojs/vue/client.js":"_astro/client.PdegUP6S.js","~/components/ProductShelf.vue":"_astro/ProductShelf.X389bv9S.js","~/components/HeroSlider.vue":"_astro/HeroSlider.Zf6kCaqD.js","/astro/hoisted.js?q=1":"_astro/hoisted.3ec9NcvP.js","~/components/SearchShowcase.vue":"_astro/SearchShowcase.KAz3nwco.js","~/components/ShopHeader.vue":"_astro/ShopHeader.mFKGzhIu.js","astro:scripts/before-hydration.js":""},"assets":["/_astro/_slug_.cfRx-rdA.css","/robots.txt","/_astro/AccountPage.Osc6ffV0.js","/_astro/CartSidebar.LrfpXG2B.js","/_astro/HeroSlider.Zf6kCaqD.js","/_astro/PitchBar.N4d9fV8H.js","/_astro/Prices.eQ9Vd255.js","/_astro/ProductDetails.Ln_jf57U.js","/_astro/ProductShelf.X389bv9S.js","/_astro/ProductShelf.vj6lVDCr.js","/_astro/QuantitySelector.qSJQlvTe.js","/_astro/SearchModal.BrVoDBvg.js","/_astro/SearchShowcase.KAz3nwco.js","/_astro/ShopHeader.mFKGzhIu.js","/_astro/_plugin-vue_export-helper._suIQ7WC.js","/_astro/afetch.5c8VmT0-.js","/_astro/client.PdegUP6S.js","/_astro/customer-session.KkTHFOXl.js","/_astro/ecom-utils.Ld2zf-Ve.js","/_astro/firebase-app.cPMfoOsn.js","/_astro/format-money.Axn0YFLJ.js","/_astro/grid-title.GntHOijE.js","/_astro/hoisted.3ec9NcvP.js","/_astro/hoisted.UnTlypMd.js","/_astro/i18n.3-NUtxYq.js","/_astro/img-sizes.gxAI9JNh.js","/_astro/img.pozlYdd3.js","/_astro/index-dd468b12.D5s8VdAL.js","/_astro/index.TkCbiY_p.js","/_astro/index.m6fK0JXC.js","/_astro/modules-info.mmwB1qIJ.js","/_astro/name.49dZlpDx.js","/_astro/photoswipe-lightbox.esm.dZBqKD9u.js","/_astro/photoswipe.0V7m2jWu.js","/_astro/photoswipe.esm.Ylh9TGkz.js","/_astro/price.Easct8WC.js","/_astro/sf-utils.yjuG8NjM.js","/_astro/shopping-cart.Ean2uW2R.js","/_astro/use-analytics.Y7amTmnr.js","/_astro/use-product-card.zB4z32bC.js","/_astro/use-text-value.f9pDzruv.js","/img/icon.png","/img/large-icon.png","/img/uploads/banner2.webp","/img/uploads/ecom-icon.png","/img/uploads/headphone.webp","/img/uploads/logo.png","/img/uploads/og-image.png","/img/uploads/passion.webp","/img/uploads/rect8589.png","/img/uploads/rect859.png","/img/uploads/rect89.webp"]});
|
|
194
195
|
|
|
195
196
|
export { AstroIntegrationLogger as A, Logger as L, getEventPrefix as g, levels as l, manifest };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useSSRContext, defineComponent, computed, createVNode, resolveDynamicComponent, mergeProps, withCtx, renderSlot, inject, ref, watch, toRef, onMounted, onBeforeUnmount, provide, h, createSSRApp } from 'vue';
|
|
2
2
|
import { ssrRenderSlotInner, ssrRenderVNode, ssrRenderSlot, ssrRenderAttrs, ssrRenderClass, ssrRenderComponent, renderToString } from 'vue/server-renderer';
|
|
3
3
|
import { img, imgSizes, i18n, formatMoney } from '@ecomplus/utils';
|
|
4
|
-
import { _ as _export_sfc } from './chunks/pages/
|
|
4
|
+
import { _ as _export_sfc } from './chunks/pages/__cEcxuEWe.mjs';
|
|
5
5
|
import { useScroll, useElementHover, useDebounceFn } from '@vueuse/core';
|
|
6
6
|
|
|
7
7
|
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
@@ -169,7 +169,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
169
169
|
if (props.href.startsWith(`https://${domain}`))
|
|
170
170
|
return void 0;
|
|
171
171
|
}
|
|
172
|
-
return
|
|
172
|
+
return void 0;
|
|
173
173
|
});
|
|
174
174
|
const __returned__ = { props, linkTarget };
|
|
175
175
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
@@ -604,6 +604,17 @@ const createApp = (app) => {
|
|
|
604
604
|
app.component("CarouselControl", CarouselControl);
|
|
605
605
|
};
|
|
606
606
|
|
|
607
|
+
const mod = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
608
|
+
__proto__: null,
|
|
609
|
+
default: createApp
|
|
610
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
611
|
+
|
|
612
|
+
const setup = (app) => {
|
|
613
|
+
if ('default' in mod) {
|
|
614
|
+
createApp(app);
|
|
615
|
+
}
|
|
616
|
+
};
|
|
617
|
+
|
|
607
618
|
/**
|
|
608
619
|
* Astro passes `children` as a string of HTML, so we need
|
|
609
620
|
* a wrapper `div` to render that content as VNodes.
|
|
@@ -644,7 +655,7 @@ async function renderToStaticMarkup(Component, inputProps, slotted, metadata) {
|
|
|
644
655
|
});
|
|
645
656
|
}
|
|
646
657
|
const app = createSSRApp({ render: () => h(Component, props, slots) });
|
|
647
|
-
await
|
|
658
|
+
await setup(app);
|
|
648
659
|
const html = await renderToString(app);
|
|
649
660
|
return { html };
|
|
650
661
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/storefront",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.40.0",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce storefront with Astro",
|
|
6
6
|
"bin": {
|
|
7
7
|
"storefront": "./scripts/build-prod.sh"
|
|
@@ -29,20 +29,20 @@
|
|
|
29
29
|
"prepare-monorepo": "bash scripts/prepare-monorepo.sh"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@astrojs/node": "7.0.
|
|
33
|
-
"@astrojs/vue": "4.0.
|
|
32
|
+
"@astrojs/node": "7.0.2",
|
|
33
|
+
"@astrojs/vue": "4.0.5",
|
|
34
34
|
"@cloudcommerce/api": "workspace:*",
|
|
35
35
|
"@cloudcommerce/config": "workspace:*",
|
|
36
36
|
"@cloudcommerce/i18n": "workspace:*",
|
|
37
|
-
"@ecomplus/utils": "1.5.0-rc.
|
|
37
|
+
"@ecomplus/utils": "1.5.0-rc.6",
|
|
38
38
|
"@fastify/deepmerge": "^1.3.0",
|
|
39
|
-
"@iconify-json/fa6-brands": "^1.1.
|
|
40
|
-
"@iconify-json/heroicons": "^1.1.
|
|
41
|
-
"@iconify-json/logos": "^1.1.
|
|
39
|
+
"@iconify-json/fa6-brands": "^1.1.18",
|
|
40
|
+
"@iconify-json/heroicons": "^1.1.19",
|
|
41
|
+
"@iconify-json/logos": "^1.1.41",
|
|
42
42
|
"@types/gtag.js": "^0.0.18",
|
|
43
43
|
"@vite-pwa/astro": "^0.2.0",
|
|
44
44
|
"@vueuse/core": "10.7.0",
|
|
45
|
-
"astro": "4.0.
|
|
45
|
+
"astro": "4.0.7",
|
|
46
46
|
"astro-capo": "^0.0.1",
|
|
47
47
|
"chroma-js": "^2.4.2",
|
|
48
48
|
"dotenv": "^16.3.1",
|
|
@@ -52,12 +52,12 @@
|
|
|
52
52
|
"mitt": "^3.0.1",
|
|
53
53
|
"semver": "^7.5.4",
|
|
54
54
|
"sharp": "^0.32.6",
|
|
55
|
-
"tailwindcss": "^3.
|
|
56
|
-
"unocss": "^0.
|
|
55
|
+
"tailwindcss": "^3.4.0",
|
|
56
|
+
"unocss": "^0.58.0",
|
|
57
57
|
"unplugin-auto-import": "^0.17.2",
|
|
58
|
-
"vite": "^5.0.
|
|
58
|
+
"vite": "^5.0.10",
|
|
59
59
|
"vite-plugin-pwa": "^0.17.4",
|
|
60
|
-
"vue": "3.3.
|
|
60
|
+
"vue": "3.3.13",
|
|
61
61
|
"wade": "0.3.3"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
@@ -56,3 +56,14 @@ export const termify = (str: string) => {
|
|
|
56
56
|
export const getSearchUrl = (term: string, baseUrl = '/s/') => {
|
|
57
57
|
return `${baseUrl}${encodeURIComponent(termify(term))}`;
|
|
58
58
|
};
|
|
59
|
+
|
|
60
|
+
export const scrollToEl = (el: HTMLElement, top = 0) => {
|
|
61
|
+
while (el.offsetParent) {
|
|
62
|
+
top += el.offsetTop;
|
|
63
|
+
el = el.offsetParent as HTMLElement;
|
|
64
|
+
}
|
|
65
|
+
return window.scroll({
|
|
66
|
+
top,
|
|
67
|
+
behavior: 'smooth',
|
|
68
|
+
});
|
|
69
|
+
};
|
|
@@ -3,6 +3,7 @@ import type {
|
|
|
3
3
|
Categories,
|
|
4
4
|
Brands,
|
|
5
5
|
Collections,
|
|
6
|
+
Grids,
|
|
6
7
|
} from '@cloudcommerce/api/types';
|
|
7
8
|
import type { SettingsContent } from '@@sf/content';
|
|
8
9
|
|
|
@@ -25,5 +26,10 @@ export type $Storefront = {
|
|
|
25
26
|
doc: Collections,
|
|
26
27
|
timestamp: number,
|
|
27
28
|
},
|
|
28
|
-
data: Record<string, any
|
|
29
|
+
data: Record<string, any> & {
|
|
30
|
+
categories?: Array<Partial<Categories>>,
|
|
31
|
+
brands?: Array<Partial<Brands>>,
|
|
32
|
+
collections?: Array<Partial<Collections>>,
|
|
33
|
+
grids?: Array<Partial<Grids>>,
|
|
34
|
+
},
|
|
29
35
|
};
|
|
@@ -16,6 +16,7 @@ export interface Props {
|
|
|
16
16
|
hasCloseButton?: boolean;
|
|
17
17
|
anchorEl?: HTMLElement | null;
|
|
18
18
|
backdropTarget?: string | null;
|
|
19
|
+
canLockScroll?: boolean;
|
|
19
20
|
maxWidth?: string;
|
|
20
21
|
class?: string | string[] | Record<string, string | null> | null;
|
|
21
22
|
}
|
|
@@ -27,8 +28,8 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
27
28
|
position: 'fixed',
|
|
28
29
|
animation: 'slide',
|
|
29
30
|
hasCloseButton: true,
|
|
30
|
-
hasBackdrop: true,
|
|
31
31
|
backdropTarget: '#teleported-top',
|
|
32
|
+
canLockScroll: true,
|
|
32
33
|
});
|
|
33
34
|
const emit = defineEmits<{
|
|
34
35
|
'update:modelValue': [value: boolean]
|
|
@@ -49,16 +50,20 @@ const escClickListener = (ev: KeyboardEvent) => {
|
|
|
49
50
|
const scrollbarWidth = ref(0);
|
|
50
51
|
watch(toRef(props, 'modelValue'), async (isOpen) => {
|
|
51
52
|
if (isOpen) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
if (props.canLockScroll) {
|
|
54
|
+
scrollbarWidth.value = window.innerWidth - document.documentElement.clientWidth;
|
|
55
|
+
document.body.style.overflow = 'hidden';
|
|
56
|
+
document.body.style.paddingRight = `${scrollbarWidth.value}px`;
|
|
57
|
+
}
|
|
55
58
|
setTimeout(() => {
|
|
56
59
|
document.addEventListener('click', outsideClickListener, { passive: true });
|
|
57
60
|
document.addEventListener('keydown', escClickListener, { passive: true });
|
|
58
61
|
}, 500);
|
|
59
62
|
} else {
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
if (props.canLockScroll) {
|
|
64
|
+
document.body.style.overflow = '';
|
|
65
|
+
document.body.style.paddingRight = '';
|
|
66
|
+
}
|
|
62
67
|
document.removeEventListener('click', outsideClickListener);
|
|
63
68
|
document.removeEventListener('keydown', escClickListener);
|
|
64
69
|
}
|
|
@@ -133,12 +138,12 @@ const isPlacementX = computed(() => {
|
|
|
133
138
|
type="button"
|
|
134
139
|
:aria-label="$t.i19close"
|
|
135
140
|
@click.prevent="close"
|
|
136
|
-
class="absolute top-2 z-30"
|
|
141
|
+
class="absolute top-2 z-30 rounded"
|
|
137
142
|
:class="placement === 'end' ? 'left-2' : 'right-2'"
|
|
138
143
|
data-drawer-close
|
|
139
144
|
>
|
|
140
145
|
<slot name="close">
|
|
141
|
-
<i class="i-close text-base-400 hover:text-base-600 text-3xl"></i>
|
|
146
|
+
<i class="i-close text-base-400 hover:text-base-600 m-0 text-3xl"></i>
|
|
142
147
|
</slot>
|
|
143
148
|
</button>
|
|
144
149
|
<slot />
|
|
@@ -14,7 +14,7 @@ const linkTarget = computed(() => {
|
|
|
14
14
|
const domain = globalThis.$storefront.settings.domain || window.location.host;
|
|
15
15
|
if (props.href.startsWith(`https://${domain}`)) return undefined;
|
|
16
16
|
}
|
|
17
|
-
return
|
|
17
|
+
return undefined;
|
|
18
18
|
});
|
|
19
19
|
</script>
|
|
20
20
|
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/* REFERENCE: https://jasonwatmore.com/post/2018/08/07/javascript-pure-pagination-logic-in-vanilla-js-typescript */
|
|
2
|
+
import { computed } from 'vue';
|
|
3
|
+
|
|
4
|
+
export interface Props {
|
|
5
|
+
totalItems?: number,
|
|
6
|
+
totalPages?: number,
|
|
7
|
+
page?: number,
|
|
8
|
+
pageSize?: number,
|
|
9
|
+
maxPages?: number,
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const usePagination = (props: Props) => {
|
|
13
|
+
const totalPages = computed(() => {
|
|
14
|
+
if (props.totalPages) return props.totalPages;
|
|
15
|
+
if (props.totalItems && props.pageSize) {
|
|
16
|
+
return Math.ceil(props.totalItems / props.pageSize);
|
|
17
|
+
}
|
|
18
|
+
return 1;
|
|
19
|
+
});
|
|
20
|
+
const pageNumber = computed(() => {
|
|
21
|
+
const currentPage = props.page || 1;
|
|
22
|
+
if (currentPage < 1) return 1;
|
|
23
|
+
if (currentPage > totalPages.value) return totalPages.value;
|
|
24
|
+
return currentPage;
|
|
25
|
+
});
|
|
26
|
+
const maxPages = computed(() => props.maxPages || 10);
|
|
27
|
+
const startPage = computed(() => {
|
|
28
|
+
if (totalPages.value <= maxPages.value) return 1;
|
|
29
|
+
const maxPagesBeforeCurrent = Math.floor(maxPages.value / 2);
|
|
30
|
+
const maxPagesAfterCurrent = Math.ceil(maxPages.value / 2) - 1;
|
|
31
|
+
if (pageNumber.value <= maxPagesBeforeCurrent) return 1;
|
|
32
|
+
if (pageNumber.value + maxPagesAfterCurrent >= totalPages.value) {
|
|
33
|
+
return totalPages.value - maxPages.value + 1;
|
|
34
|
+
}
|
|
35
|
+
return pageNumber.value - maxPagesBeforeCurrent;
|
|
36
|
+
});
|
|
37
|
+
const endPage = computed(() => {
|
|
38
|
+
if (totalPages.value <= maxPages.value) return totalPages.value;
|
|
39
|
+
const maxPagesBeforeCurrent = Math.floor(maxPages.value / 2);
|
|
40
|
+
const maxPagesAfterCurrent = Math.ceil(maxPages.value / 2) - 1;
|
|
41
|
+
if (pageNumber.value <= maxPagesBeforeCurrent) return maxPages.value;
|
|
42
|
+
if (pageNumber.value + maxPagesAfterCurrent >= totalPages.value) {
|
|
43
|
+
return totalPages.value;
|
|
44
|
+
}
|
|
45
|
+
return pageNumber.value + maxPagesAfterCurrent;
|
|
46
|
+
});
|
|
47
|
+
const pages = computed(() => {
|
|
48
|
+
return Array.from(Array((endPage.value + 1) - startPage.value).keys())
|
|
49
|
+
.map((i) => startPage.value + i);
|
|
50
|
+
});
|
|
51
|
+
return {
|
|
52
|
+
totalPages,
|
|
53
|
+
startPage,
|
|
54
|
+
endPage,
|
|
55
|
+
pages,
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export default usePagination;
|
|
60
|
+
|
|
61
|
+
export { usePagination };
|