@ozdao/prometheus-framework 0.2.317 → 0.2.318
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/products.server.js +4 -0
- package/dist/products.server.mjs +4 -0
- package/dist/prometheus-framework/src/components/Button/Button.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/Button/Button.vue2.js +1 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.cjs +0 -93
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.js +1 -94
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.js.map +1 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.cjs +93 -0
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.js +94 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.js.map +1 -1
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.js +1 -1
- package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue2.js +1 -1
- package/dist/prometheus-framework/src/components/Slider/Slider.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Slider/Slider.vue.js +1 -1
- package/dist/prometheus-framework/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/events/components/sections/Feed.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/Feed.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockFilter.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.cjs +48 -48
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.js +48 -48
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionOverview.vue.cjs +57 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionOverview.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionOverview.vue.js +57 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionOverview.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/landing/landing.client.cjs +2 -0
- package/dist/prometheus-framework/src/modules/landing/landing.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/landing.client.js +6 -4
- package/dist/prometheus-framework/src/modules/landing/landing.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/marketplace/marketplace.client.cjs +13 -0
- package/dist/prometheus-framework/src/modules/marketplace/marketplace.client.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/marketplace.client.js +13 -0
- package/dist/prometheus-framework/src/modules/marketplace/marketplace.client.js.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +179 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +179 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/pages/Catalog.vue.cjs +67 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/pages/Catalog.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/pages/Catalog.vue.js +67 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/pages/Catalog.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +121 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +121 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/store/marketplace.cjs +57 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/store/marketplace.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/store/marketplace.js +57 -0
- package/dist/prometheus-framework/src/modules/marketplace/views/store/marketplace.js.map +1 -0
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +859 -859
- package/dist/prometheus-framework/src/modules/pages/pages.client.js +859 -859
- package/dist/prometheus-framework/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/Images360.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/Images360.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +30 -20
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +33 -23
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/products.client.cjs +3 -19
- package/dist/prometheus-framework/src/modules/products/products.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/products.client.js +26 -42
- package/dist/prometheus-framework/src/modules/products/products.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/store/categories.cjs +3 -0
- package/dist/prometheus-framework/src/modules/products/store/categories.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/store/categories.js +3 -0
- package/dist/prometheus-framework/src/modules/products/store/categories.js.map +1 -1
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
- package/package.json +5 -1
- package/src/modules/auth/models/role.model.js +1 -1
- package/src/modules/globals/views/core/event.js +48 -0
- package/src/modules/globals/views/core/module-manager.js +91 -0
- package/src/modules/globals/views/core/module.js +106 -0
- package/src/modules/landing/components/sections/SectionGuide.vue +48 -48
- package/src/modules/landing/components/sections/SectionOverview.vue +40 -0
- package/src/modules/landing/landing.client.js +2 -0
- package/src/modules/marketplace/marketplace.client.js +59 -0
- package/src/modules/{products → marketplace/views}/components/layouts/Marketplace.vue +3 -1
- package/src/modules/{products → marketplace/views}/components/pages/Catalog.vue +4 -3
- package/src/modules/{products/components/sections/MenuSection.vue → marketplace/views/components/sections/SectionMenu.vue} +25 -35
- package/src/modules/{products → marketplace/views}/router/marketplace.router.js +1 -2
- package/src/modules/products/components/pages/CategoryEdit.vue +23 -7
- package/src/modules/products/components/pages/Products.vue +1 -1
- package/src/modules/products/components/sections/FilterProducts.vue +1 -1
- package/src/modules/products/models/category.model.js +5 -0
- package/src/modules/products/products.client.js +0 -16
- package/src/modules/products/store/categories.js +6 -0
- package/src/modules/spots/components/layouts/Spots.vue +1 -4
- package/src/modules/spots/components/pages/Map.vue +1 -1
- package/src/modules/landing/components/sections/SectionsSection.vue +0 -66
- package/src/modules/products/components/sections/Filters.vue +0 -152
- /package/src/modules/{products → marketplace/views}/store/marketplace.js +0 -0
@@ -0,0 +1,179 @@
|
|
1
|
+
import { ref, onMounted, watch, resolveComponent, openBlock, createElementBlock, createElementVNode, Fragment, createTextVNode, toDisplayString, createCommentVNode, createVNode, withCtx, createBlock, resolveDynamicComponent } from "vue";
|
2
|
+
import { useRoute, useRouter } from "vue-router";
|
3
|
+
import { useI18n } from "vue-i18n";
|
4
|
+
import _sfc_main$1 from "../../../../globals/views/components/blocks/BlockFilter.vue.js";
|
5
|
+
import { state as state$1 } from "../../../../globals/views/store/globals.js";
|
6
|
+
import { actions } from "../../../../products/store/categories.js";
|
7
|
+
import { state } from "../../store/marketplace.js";
|
8
|
+
const _hoisted_1 = {
|
9
|
+
style: { "min-height": "100%" },
|
10
|
+
class: "h-min-100 pd-thin"
|
11
|
+
};
|
12
|
+
const _hoisted_2 = { class: "pd-semi radius-big bg-light mn-b-small" };
|
13
|
+
const _hoisted_3 = { class: "" };
|
14
|
+
const _hoisted_4 = { class: "gap-thin cols-2-1_3" };
|
15
|
+
const _hoisted_5 = { class: "desktop-only radius-big o-hidden" };
|
16
|
+
const _hoisted_6 = { class: "rows-1 gap-thin" };
|
17
|
+
const _sfc_main = {
|
18
|
+
__name: "Marketplace",
|
19
|
+
setup(__props) {
|
20
|
+
const route = useRoute();
|
21
|
+
const router = useRouter();
|
22
|
+
const localPosition = ref({
|
23
|
+
city: null,
|
24
|
+
state: null,
|
25
|
+
country: null
|
26
|
+
});
|
27
|
+
ref(null);
|
28
|
+
function denormalizeUrlParam(param) {
|
29
|
+
return param.replace(/-/g, " ").replace(/\b\w/g, (l) => l.toUpperCase());
|
30
|
+
}
|
31
|
+
function normalizeUrlParam(param) {
|
32
|
+
return param.toLowerCase().replace(/ /g, "-").replace(/[^a-z0-9-]/g, "");
|
33
|
+
}
|
34
|
+
if (route.params) {
|
35
|
+
let newState = {
|
36
|
+
country: denormalizeUrlParam(route.params.country),
|
37
|
+
state: denormalizeUrlParam(route.params.state),
|
38
|
+
city: denormalizeUrlParam(route.params.city)
|
39
|
+
};
|
40
|
+
localPosition.value = newState;
|
41
|
+
}
|
42
|
+
if (route.query) {
|
43
|
+
const query = route.query;
|
44
|
+
state.filter.selected.categories = query.categories ? query.categories.split(",") : [];
|
45
|
+
state.filter.selected.prices = query.prices ? query.prices.split(",") : [];
|
46
|
+
state.filter.selected.delivery = query.delivery ? query.delivery.split(",") : [];
|
47
|
+
}
|
48
|
+
if (route.query.sortParam) state.sort.param = route.query.sortParam;
|
49
|
+
if (route.query.sortOrder) state.sort.order = route.query.sortOrder;
|
50
|
+
onMounted(async () => {
|
51
|
+
let options = {
|
52
|
+
status: "published"
|
53
|
+
};
|
54
|
+
let categoriesFilter = await actions.read(options);
|
55
|
+
categoriesFilter = categoriesFilter.map((category) => ({
|
56
|
+
value: category.url,
|
57
|
+
label: category.name
|
58
|
+
}));
|
59
|
+
const index = state.filter.options.findIndex((option) => option.value === "categories");
|
60
|
+
const categoryOption = {
|
61
|
+
title: "Categories",
|
62
|
+
value: "categories",
|
63
|
+
options: categoriesFilter
|
64
|
+
};
|
65
|
+
if (index !== -1) {
|
66
|
+
state.filter.options[index] = categoryOption;
|
67
|
+
} else {
|
68
|
+
state.filter.options.unshift(categoryOption);
|
69
|
+
}
|
70
|
+
});
|
71
|
+
watch(() => state.sort, (newSortValue, oldSortValue) => {
|
72
|
+
let query = { ...route.query };
|
73
|
+
query.sortParam = newSortValue.param;
|
74
|
+
query.sortOrder = newSortValue.order;
|
75
|
+
router.replace({ query });
|
76
|
+
}, { deep: true });
|
77
|
+
watch(() => state.filter.selected, (newFilterValue, oldFilterValue) => {
|
78
|
+
const query = { ...route.query };
|
79
|
+
Object.keys(oldFilterValue).forEach((key) => {
|
80
|
+
if (query[key]) {
|
81
|
+
delete query[key];
|
82
|
+
}
|
83
|
+
});
|
84
|
+
const newQueryValues = Object.fromEntries(
|
85
|
+
Object.entries(newFilterValue).filter(([key, value]) => Array.isArray(value) && value.length > 0).map(([key, value]) => [key, value.join(",")])
|
86
|
+
);
|
87
|
+
delete query.options;
|
88
|
+
Object.assign(query, newQueryValues);
|
89
|
+
router.replace({ query });
|
90
|
+
}, { deep: true });
|
91
|
+
watch(() => state$1.position, (newPosition) => {
|
92
|
+
const currentRoute = { ...router.currentRoute.value };
|
93
|
+
let newParams = {
|
94
|
+
country: normalizeUrlParam(newPosition.country),
|
95
|
+
state: normalizeUrlParam(newPosition.state),
|
96
|
+
city: normalizeUrlParam(newPosition.city)
|
97
|
+
};
|
98
|
+
currentRoute.params = newParams;
|
99
|
+
router.replace(currentRoute);
|
100
|
+
}, { deep: true });
|
101
|
+
const text = {
|
102
|
+
locale: "en",
|
103
|
+
messages: {
|
104
|
+
en: {
|
105
|
+
meta: {
|
106
|
+
title: "Marketplace – Shop Our Wide Selection of Quality Weed for Delivery",
|
107
|
+
description: "Browse our marketplace of top-grade weed strains and choose from a variety of delivery options. Order now and have your favorite strains delivered straight to your door. Safe, fast, and reliable."
|
108
|
+
}
|
109
|
+
},
|
110
|
+
ru: {
|
111
|
+
meta: {
|
112
|
+
title: "Маркетплейс – Выбирайте из нашего ассортимента качественной травки для доставки",
|
113
|
+
description: "Маркетплейс – Изучите наши продукты высокого качества и выбирайте из различных вариантов доставки. Закажите сейчас и получите свои любимые сорта на дом. Безопасно, быстро и надежно."
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
};
|
118
|
+
useI18n(text);
|
119
|
+
return (_ctx, _cache) => {
|
120
|
+
const _component_router_view = resolveComponent("router-view");
|
121
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
122
|
+
createElementVNode("header", _hoisted_2, [
|
123
|
+
createElementVNode("h2", _hoisted_3, [
|
124
|
+
_cache[3] || (_cache[3] = createElementVNode("span", { class: "" }, "Weed in ", -1)),
|
125
|
+
localPosition.value.city || localPosition.value.state || localPosition.value.country ? (openBlock(), createElementBlock("span", {
|
126
|
+
key: 0,
|
127
|
+
onClick: _cache[0] || (_cache[0] = (a) => {
|
128
|
+
state$1.isOpenLocationPopup = true;
|
129
|
+
}),
|
130
|
+
class: "t-main t-semi cursor-pointer"
|
131
|
+
}, [
|
132
|
+
localPosition.value.city ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
133
|
+
createTextVNode(toDisplayString(localPosition.value.city) + ", ", 1)
|
134
|
+
], 64)) : createCommentVNode("", true),
|
135
|
+
localPosition.value.state ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
136
|
+
createTextVNode(toDisplayString(localPosition.value.state) + ", ", 1)
|
137
|
+
], 64)) : createCommentVNode("", true),
|
138
|
+
localPosition.value.country ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
|
139
|
+
createTextVNode(toDisplayString(localPosition.value.country), 1)
|
140
|
+
], 64)) : createCommentVNode("", true)
|
141
|
+
])) : (openBlock(), createElementBlock("span", {
|
142
|
+
key: 1,
|
143
|
+
onClick: _cache[1] || (_cache[1] = (a) => {
|
144
|
+
state$1.isOpenLocationPopup = true;
|
145
|
+
}),
|
146
|
+
class: "h2 pd-l-small pd-r-small pd-t-micro pd-b-micro d-inline-block t-semi radius-extra bg-main t-black cursor-pointer"
|
147
|
+
}, " The World "))
|
148
|
+
])
|
149
|
+
]),
|
150
|
+
createElementVNode("div", _hoisted_4, [
|
151
|
+
createElementVNode("div", _hoisted_5, [
|
152
|
+
createVNode(_sfc_main$1, {
|
153
|
+
filter: state.filter,
|
154
|
+
"onUpdate:filter": _cache[2] || (_cache[2] = ($event) => state.filter = $event),
|
155
|
+
options: state.filter.options,
|
156
|
+
class: "h-100 w-100 pd-small bg-light"
|
157
|
+
}, null, 8, ["filter", "options"])
|
158
|
+
]),
|
159
|
+
createElementVNode("div", _hoisted_6, [
|
160
|
+
createVNode(_component_router_view, null, {
|
161
|
+
default: withCtx(({ Component, route: route2 }) => [
|
162
|
+
(openBlock(), createBlock(resolveDynamicComponent(Component), {
|
163
|
+
ref: "page",
|
164
|
+
key: route2,
|
165
|
+
localPosition: localPosition.value
|
166
|
+
}, null, 8, ["localPosition"]))
|
167
|
+
]),
|
168
|
+
_: 1
|
169
|
+
})
|
170
|
+
])
|
171
|
+
])
|
172
|
+
]);
|
173
|
+
};
|
174
|
+
}
|
175
|
+
};
|
176
|
+
export {
|
177
|
+
_sfc_main as default
|
178
|
+
};
|
179
|
+
//# sourceMappingURL=Marketplace.vue.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Marketplace.vue.js","sources":["../../../../../../../../src/modules/marketplace/views/components/layouts/Marketplace.vue"],"sourcesContent":["<template>\n\t<div style=\"min-height: 100%;\" class=\"h-min-100 pd-thin\">\n\t\t<header class=\"pd-semi radius-big bg-light mn-b-small\">\n \t<h2 class=\"\">\n \t\t<span class=\"\">Weed in </span>\n\n \t\t<span \n \t\t\tv-if=\"localPosition.city || localPosition.state || localPosition.country\"\n \t\t\t@click=\"a => { globals.state.isOpenLocationPopup = true }\" \n \t\t\tclass=\"t-main t-semi cursor-pointer \"\n \t\t>\n \t\t\t\t<template v-if=\"localPosition.city\">{{localPosition.city}}, </template>\n \t\t\t\t<template v-if=\"localPosition.state\">{{localPosition.state}}, </template>\n \t\t\t\t<template v-if=\"localPosition.country\">{{localPosition.country}}</template>\n \t\t</span>\n\n \t\t<span v-else @click=\"a => { globals.state.isOpenLocationPopup = true }\" class=\"h2 pd-l-small pd-r-small pd-t-micro pd-b-micro d-inline-block t-semi radius-extra bg-main t-black cursor-pointer\">\n\t\t\t\t\t\tThe World\n \t\t</span>\n \t</h2>\n\t\t</header>\n\n\t\t<div class=\"gap-thin \tcols-2-1_3\">\n\t\t\t<div class=\"desktop-only radius-big o-hidden\">\n\t <BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100 pd-small bg-light\"\n />\n </div>\n\t\t\t<!-- Catalog wrapper -->\n\t\t\t<div class=\"rows-1 gap-thin\">\n\t\t\t\t<router-view v-slot=\"{ Component, route }\">\n\t\t\t\t\t<component ref=\"page\" :key=\"route\" :localPosition=\"localPosition\" :is=\"Component\" />\n\t\t\t\t</router-view>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\t// Import libs\n\timport { computed, onMounted, watch, ref } from 'vue'\n\timport { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\n\timport BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n\timport * as globals from '@pf/src/modules/globals/views/store/globals'\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\n\timport * as marketplace from '../../store/marketplace';\n\n\t// Accessing router and store\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n\tconst localPosition = ref({\n\t\tcity: null,\n\t\tstate: null,\n\t\tcountry: null\n\t});\n\n\tconst desktopFilters = ref(null)\n\n\tfunction denormalizeUrlParam(param) {\n\t return param\n\t .replace(/-/g, ' ') // Замена дефисов на пробелы\n\t .replace(/\\b\\w/g, l => l.toUpperCase()); // Преобразование первой буквы каждого слова в заглавную\n\t}\n\n\tfunction normalizeUrlParam(param) {\n\t return param\n\t .toLowerCase()\n\t .replace(/ /g, '-')\n\t .replace(/[^a-z0-9-]/g, '');\n\t}\n\n\tif (route.params) {\n // Загружаем новые значения из параметров маршрута в состояние\n let newState = {\n country: denormalizeUrlParam(route.params.country),\n state: denormalizeUrlParam(route.params.state),\n city: denormalizeUrlParam(route.params.city),\n };\n\n\t // Обновляем глобальное состояние\n\t localPosition.value = newState;\n\t}\n\n\tif (route.query) {\n\t \tconst query = route.query;\n\n\t\tmarketplace.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n\t\tmarketplace.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n\t\tmarketplace.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n\t}\n\n\tif (route.query.sortParam) marketplace.state.sort.param = route.query.sortParam\n\tif (route.query.sortOrder) marketplace.state.sort.order = route.query.sortOrder\n\n\tonMounted(async () => {\n\t let options = {\n status: 'published'\n }\n\n let categoriesFilter = await categories.actions.read(options);\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category.url,\n label: category.name\n }));\n\n const index = marketplace.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n marketplace.state.filter.options[index] = categoryOption;\n } else {\n marketplace.state.filter.options.unshift(categoryOption);\n }\n\t})\n\n\twatch(() => marketplace.state.sort, (newSortValue, oldSortValue) => {\n\t\tlet query = { ...route.query}\n\t\t\n\t\tquery.sortParam = newSortValue.param\n\t\tquery.sortOrder = newSortValue.order\n\t \n\t // replace the current route\n\t router.replace({ query });\n\t}, { deep: true });\n\n\n\twatch(() => marketplace.state.filter.selected, (newFilterValue, oldFilterValue) => {\n\t // Переводим фильтр в формат query\n\t const query = { ...route.query };\n\n\t // Удаляем старые значения фильтра из query\n\t Object.keys(oldFilterValue).forEach(key => {\n\t if (query[key]) {\n\t delete query[key];\n\t }\n\t });\n\n\t // Добавляем новые значения фильтра в query\n\t const newQueryValues = Object.fromEntries(\n\t Object.entries(newFilterValue)\n\t .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n\t .map(([key, value]) => [key, value.join(',')])\n\t );\n\n\t delete query.options;\n\t Object.assign(query, newQueryValues);\n\n\t // Обновляем маршрут с новым query\n\t router.replace({ query });\n\t}, { deep: true })\n\n\twatch(() => globals.state.position, (newPosition) => {\n\t // get the current route\n\t const currentRoute = { ...router.currentRoute.value };\n\t \n\t // create new parameters based on globals state position\n\t let newParams = {\n\t country: normalizeUrlParam(newPosition.country),\n\t state: normalizeUrlParam(newPosition.state),\n\t city: normalizeUrlParam(newPosition.city),\n\t };\n\t \n\t // update route params\n\t currentRoute.params = newParams;\n\t \n\t // replace the current route\n\t router.replace(currentRoute);\n\t}, { deep: true });\n\n const text = {\n locale: 'en',\n messages: {\n en: {\n\t \tmeta: {\n title: \"Marketplace – Shop Our Wide Selection of Quality Weed for Delivery\",\n description: \"Browse our marketplace of top-grade weed strains and choose from a variety of delivery options. Order now and have your favorite strains delivered straight to your door. Safe, fast, and reliable.\",\n }\n },\n ru: {\n\t meta: {\n title: \"Маркетплейс – Выбирайте из нашего ассортимента качественной травки для доставки\",\n description: \"Маркетплейс – Изучите наши продукты высокого качества и выбирайте из различных вариантов доставки. Закажите сейчас и получите свои любимые сорта на дом. Безопасно, быстро и надежно.\",\n }\n }\n }\n }\n\n \tconst { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["marketplace.state","categories.actions","globals.state"],"mappings":"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"}
|
package/dist/prometheus-framework/src/modules/marketplace/views/components/pages/Catalog.vue.cjs
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
3
|
+
const vue = require("vue");
|
4
|
+
const vueRouter = require("vue-router");
|
5
|
+
const Feed = require("../../../../../components/Feed/Feed.vue.cjs");
|
6
|
+
const organizations = require("../../../../organizations/store/organizations.cjs");
|
7
|
+
const globals = require("../../../../globals/views/store/globals.cjs");
|
8
|
+
const CardOrganization = require("../../../../organizations/components/blocks/CardOrganization.vue.cjs");
|
9
|
+
const marketplace = require("../../store/marketplace.cjs");
|
10
|
+
const _sfc_main = {
|
11
|
+
__name: "Catalog",
|
12
|
+
setup(__props) {
|
13
|
+
const route = vueRouter.useRoute();
|
14
|
+
return (_ctx, _cache) => {
|
15
|
+
var _a;
|
16
|
+
return vue.openBlock(), vue.createBlock(Feed.default, {
|
17
|
+
sort: marketplace.state.sort,
|
18
|
+
"onUpdate:sort": _cache[0] || (_cache[0] = ($event) => marketplace.state.sort = $event),
|
19
|
+
filter: marketplace.state.filter,
|
20
|
+
"onUpdate:filter": _cache[1] || (_cache[1] = ($event) => marketplace.state.filter = $event),
|
21
|
+
search: {
|
22
|
+
autofocus: true
|
23
|
+
},
|
24
|
+
showLoadMore: false,
|
25
|
+
states: {
|
26
|
+
empty: {
|
27
|
+
title: "No Shops Found",
|
28
|
+
description: "Currently, there are no shops."
|
29
|
+
}
|
30
|
+
},
|
31
|
+
store: {
|
32
|
+
read: (options) => organizations.actions.read(options)
|
33
|
+
},
|
34
|
+
options: {
|
35
|
+
country: vue.unref(route).params.country,
|
36
|
+
state: vue.unref(route).params.state,
|
37
|
+
city: vue.unref(route).params.city,
|
38
|
+
categories: vue.unref(route).query.categories,
|
39
|
+
prices: vue.unref(route).query.prices,
|
40
|
+
delivery: vue.unref(route).query.delivery,
|
41
|
+
location: (_a = globals.state.position) == null ? void 0 : _a.location,
|
42
|
+
lookup: ["products"],
|
43
|
+
contain: ["products"]
|
44
|
+
},
|
45
|
+
class: "rows-1 gap-thin"
|
46
|
+
}, {
|
47
|
+
default: vue.withCtx(({
|
48
|
+
items
|
49
|
+
}) => [
|
50
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (organization) => {
|
51
|
+
return vue.openBlock(), vue.createBlock(CardOrganization.default, {
|
52
|
+
key: organization._id,
|
53
|
+
organization,
|
54
|
+
showRating: true,
|
55
|
+
showFollowers: false,
|
56
|
+
showProducts: true,
|
57
|
+
class: "bg-light w-100 o-hidden radius-big pd-small"
|
58
|
+
}, null, 8, ["organization"]);
|
59
|
+
}), 128))
|
60
|
+
]),
|
61
|
+
_: 1
|
62
|
+
}, 8, ["sort", "filter", "store", "options"]);
|
63
|
+
};
|
64
|
+
}
|
65
|
+
};
|
66
|
+
exports.default = _sfc_main;
|
67
|
+
//# sourceMappingURL=Catalog.vue.cjs.map
|
package/dist/prometheus-framework/src/modules/marketplace/views/components/pages/Catalog.vue.cjs.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Catalog.vue.cjs","sources":["../../../../../../../../src/modules/marketplace/views/components/pages/Catalog.vue"],"sourcesContent":["<template>\n\t<Feed\n\t\tv-model:sort=\"marketplace.state.sort\"\n\t\tv-model:filter=\"marketplace.state.filter\"\n :search=\"{\n \tautofocus:true\n }\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Shops Found',\n description: 'Currently, there are no shops.'\n },\n }\"\n :store=\"{\n read: (options) => organization.actions.read(options)\n }\"\n :options=\"{\n country: route.params.country,\n\t state: route.params.state,\n\t city: route.params.city,\n\t categories: route.query.categories,\n\t prices: route.query.prices,\n\t delivery: route.query.delivery,\n\t location: globals.state.position?.location,\n\t lookup: ['products'],\n\t contain: ['products'],\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"rows-1 gap-thin\"\n >\n <CardOrganization \n\t v-for=\"organization in items\" \n\t :key=\"organization._id\"\n\t :organization=\"organization\"\n\t :showRating=\"true\"\n\t :showFollowers=\"false\"\n\t :showProducts=\"true\"\n\t class=\"bg-light w-100 o-hidden radius-big pd-small \"\n\t />\n </Feed>\n</template>\n\n<script setup>\n\timport { computed,reactive,ref, onMounted,watch } from 'vue'\n\timport { useRoute } from 'vue-router'\n\n\timport Feed from '@pf/src/components/Feed/Feed.vue'\n\t\n\timport * as organization from '@pf/src/modules/organizations/store/organizations'\n\timport * as globals from '@pf/src/modules/globals/views/store/globals'\n\n\timport CardOrganization from '@pf/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n\timport * as marketplace from '../../store/marketplace';\n\t\n\tconst route = useRoute()\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["useRoute"],"mappings":";;;;;;;;;;;;AA0DC,UAAM,QAAQA,UAAAA,SAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/prometheus-framework/src/modules/marketplace/views/components/pages/Catalog.vue.js
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
import { openBlock, createBlock, unref, withCtx, createElementBlock, Fragment, renderList } from "vue";
|
2
|
+
import { useRoute } from "vue-router";
|
3
|
+
import _sfc_main$1 from "../../../../../components/Feed/Feed.vue.js";
|
4
|
+
import { actions } from "../../../../organizations/store/organizations.js";
|
5
|
+
import { state as state$1 } from "../../../../globals/views/store/globals.js";
|
6
|
+
import _sfc_main$2 from "../../../../organizations/components/blocks/CardOrganization.vue.js";
|
7
|
+
import { state } from "../../store/marketplace.js";
|
8
|
+
const _sfc_main = {
|
9
|
+
__name: "Catalog",
|
10
|
+
setup(__props) {
|
11
|
+
const route = useRoute();
|
12
|
+
return (_ctx, _cache) => {
|
13
|
+
var _a;
|
14
|
+
return openBlock(), createBlock(_sfc_main$1, {
|
15
|
+
sort: state.sort,
|
16
|
+
"onUpdate:sort": _cache[0] || (_cache[0] = ($event) => state.sort = $event),
|
17
|
+
filter: state.filter,
|
18
|
+
"onUpdate:filter": _cache[1] || (_cache[1] = ($event) => state.filter = $event),
|
19
|
+
search: {
|
20
|
+
autofocus: true
|
21
|
+
},
|
22
|
+
showLoadMore: false,
|
23
|
+
states: {
|
24
|
+
empty: {
|
25
|
+
title: "No Shops Found",
|
26
|
+
description: "Currently, there are no shops."
|
27
|
+
}
|
28
|
+
},
|
29
|
+
store: {
|
30
|
+
read: (options) => actions.read(options)
|
31
|
+
},
|
32
|
+
options: {
|
33
|
+
country: unref(route).params.country,
|
34
|
+
state: unref(route).params.state,
|
35
|
+
city: unref(route).params.city,
|
36
|
+
categories: unref(route).query.categories,
|
37
|
+
prices: unref(route).query.prices,
|
38
|
+
delivery: unref(route).query.delivery,
|
39
|
+
location: (_a = state$1.position) == null ? void 0 : _a.location,
|
40
|
+
lookup: ["products"],
|
41
|
+
contain: ["products"]
|
42
|
+
},
|
43
|
+
class: "rows-1 gap-thin"
|
44
|
+
}, {
|
45
|
+
default: withCtx(({
|
46
|
+
items
|
47
|
+
}) => [
|
48
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(items, (organization) => {
|
49
|
+
return openBlock(), createBlock(_sfc_main$2, {
|
50
|
+
key: organization._id,
|
51
|
+
organization,
|
52
|
+
showRating: true,
|
53
|
+
showFollowers: false,
|
54
|
+
showProducts: true,
|
55
|
+
class: "bg-light w-100 o-hidden radius-big pd-small"
|
56
|
+
}, null, 8, ["organization"]);
|
57
|
+
}), 128))
|
58
|
+
]),
|
59
|
+
_: 1
|
60
|
+
}, 8, ["sort", "filter", "store", "options"]);
|
61
|
+
};
|
62
|
+
}
|
63
|
+
};
|
64
|
+
export {
|
65
|
+
_sfc_main as default
|
66
|
+
};
|
67
|
+
//# sourceMappingURL=Catalog.vue.js.map
|
package/dist/prometheus-framework/src/modules/marketplace/views/components/pages/Catalog.vue.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Catalog.vue.js","sources":["../../../../../../../../src/modules/marketplace/views/components/pages/Catalog.vue"],"sourcesContent":["<template>\n\t<Feed\n\t\tv-model:sort=\"marketplace.state.sort\"\n\t\tv-model:filter=\"marketplace.state.filter\"\n :search=\"{\n \tautofocus:true\n }\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Shops Found',\n description: 'Currently, there are no shops.'\n },\n }\"\n :store=\"{\n read: (options) => organization.actions.read(options)\n }\"\n :options=\"{\n country: route.params.country,\n\t state: route.params.state,\n\t city: route.params.city,\n\t categories: route.query.categories,\n\t prices: route.query.prices,\n\t delivery: route.query.delivery,\n\t location: globals.state.position?.location,\n\t lookup: ['products'],\n\t contain: ['products'],\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"rows-1 gap-thin\"\n >\n <CardOrganization \n\t v-for=\"organization in items\" \n\t :key=\"organization._id\"\n\t :organization=\"organization\"\n\t :showRating=\"true\"\n\t :showFollowers=\"false\"\n\t :showProducts=\"true\"\n\t class=\"bg-light w-100 o-hidden radius-big pd-small \"\n\t />\n </Feed>\n</template>\n\n<script setup>\n\timport { computed,reactive,ref, onMounted,watch } from 'vue'\n\timport { useRoute } from 'vue-router'\n\n\timport Feed from '@pf/src/components/Feed/Feed.vue'\n\t\n\timport * as organization from '@pf/src/modules/organizations/store/organizations'\n\timport * as globals from '@pf/src/modules/globals/views/store/globals'\n\n\timport CardOrganization from '@pf/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n\timport * as marketplace from '../../store/marketplace';\n\t\n\tconst route = useRoute()\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":[],"mappings":";;;;;;;;;;AA0DC,UAAM,QAAQ,SAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -0,0 +1,121 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
3
|
+
const vue = require("vue");
|
4
|
+
const Loader = require("../../../../../components/Loader/Loader.vue.cjs");
|
5
|
+
const vueRouter = require("vue-router");
|
6
|
+
const vueI18n = require("vue-i18n");
|
7
|
+
const categories = require("../../../../products/store/categories.cjs");
|
8
|
+
const products = require("../../../../products/store/products.cjs");
|
9
|
+
;/* empty css */
|
10
|
+
const _hoisted_1 = {
|
11
|
+
id: "main-menu",
|
12
|
+
class: "pd-thin pos-relative"
|
13
|
+
};
|
14
|
+
const _hoisted_2 = {
|
15
|
+
key: 0,
|
16
|
+
class: "w-100 h-15r radius-big flex-center bg-light"
|
17
|
+
};
|
18
|
+
const _hoisted_3 = {
|
19
|
+
key: 1,
|
20
|
+
class: "gap-thin grid-container"
|
21
|
+
};
|
22
|
+
const _hoisted_4 = {
|
23
|
+
key: 0,
|
24
|
+
class: "w-33 radius-100 o-hidden mn-r-medium",
|
25
|
+
autoplay: "",
|
26
|
+
loop: "",
|
27
|
+
muted: ""
|
28
|
+
};
|
29
|
+
const _hoisted_5 = ["src"];
|
30
|
+
const _hoisted_6 = ["src"];
|
31
|
+
const _hoisted_7 = { class: "t-black capitalize h3" };
|
32
|
+
const _hoisted_8 = {
|
33
|
+
key: 0,
|
34
|
+
class: "mn-t-thin mn-b-thin t-transp t-black p-medium"
|
35
|
+
};
|
36
|
+
const _hoisted_9 = {
|
37
|
+
key: 1,
|
38
|
+
class: "mn-t-small radius-extra hover-bg-black t-medium t-black bg-main hover-t-white button-small button"
|
39
|
+
};
|
40
|
+
const _sfc_main = {
|
41
|
+
__name: "SectionMenu",
|
42
|
+
setup(__props) {
|
43
|
+
vueRouter.useRouter();
|
44
|
+
const categoriesRoot = vue.ref(null);
|
45
|
+
const text = {
|
46
|
+
en: {
|
47
|
+
categories: []
|
48
|
+
},
|
49
|
+
ru: {
|
50
|
+
categories: []
|
51
|
+
}
|
52
|
+
};
|
53
|
+
vueI18n.useI18n({
|
54
|
+
messages: text
|
55
|
+
});
|
56
|
+
const countProduct = vue.ref(0);
|
57
|
+
const menu = vue.ref(false);
|
58
|
+
vue.onMounted(async () => {
|
59
|
+
countProduct.value = await products.actions.read({ count: true });
|
60
|
+
categoriesRoot.value = await categories.actions.read({ rootOnly: true });
|
61
|
+
menu.value = true;
|
62
|
+
});
|
63
|
+
return (_ctx, _cache) => {
|
64
|
+
const _component_router_link = vue.resolveComponent("router-link");
|
65
|
+
return vue.openBlock(), vue.createElementBlock("section", _hoisted_1, [
|
66
|
+
_cache[0] || (_cache[0] = vue.createElementVNode("h2", { class: "w-m-60r mn-auto pd-t-big pd-b-big t-center" }, [
|
67
|
+
vue.createTextVNode(" Weed and Accessories to "),
|
68
|
+
vue.createElementVNode("br"),
|
69
|
+
vue.createElementVNode("b", null, "Enhance Your Smoking Experience")
|
70
|
+
], -1)),
|
71
|
+
vue.createVNode(vue.Transition, {
|
72
|
+
name: "fade",
|
73
|
+
mode: "out-in",
|
74
|
+
appear: ""
|
75
|
+
}, {
|
76
|
+
default: vue.withCtx(() => [
|
77
|
+
!menu.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
|
78
|
+
vue.createVNode(Loader.default, { class: "pos-relative" })
|
79
|
+
])) : (vue.openBlock(), vue.createElementBlock("ul", _hoisted_3, [
|
80
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(categoriesRoot.value.slice(0, 5), (category, index) => {
|
81
|
+
return vue.openBlock(), vue.createBlock(_component_router_link, {
|
82
|
+
to: _ctx.getMarketplaceLink([category.url]),
|
83
|
+
key: category,
|
84
|
+
class: "cursor-pointer hover-scale-0 flex-v-center flex-h-center flex-nowrap flex-row flex bg-light radius-big pd-medium grid-item"
|
85
|
+
}, {
|
86
|
+
default: vue.withCtx(() => [
|
87
|
+
category.url === "buds" && category.photo ? (vue.openBlock(), vue.createElementBlock("video", _hoisted_4, [
|
88
|
+
vue.createElementVNode("source", {
|
89
|
+
src: category.photo,
|
90
|
+
type: "video/webm"
|
91
|
+
}, null, 8, _hoisted_5)
|
92
|
+
])) : vue.createCommentVNode("", true),
|
93
|
+
category.url !== "buds" && category.photo ? (vue.openBlock(), vue.createElementBlock("img", {
|
94
|
+
key: 1,
|
95
|
+
loading: "lazy",
|
96
|
+
src: category.photo,
|
97
|
+
class: "i-extra t-transp mn-r-thin"
|
98
|
+
}, null, 8, _hoisted_6)) : vue.createCommentVNode("", true),
|
99
|
+
vue.createElementVNode("div", {
|
100
|
+
class: vue.normalizeClass(["w-100", { "mn-r-auto": category.url === "buds" }])
|
101
|
+
}, [
|
102
|
+
vue.createElementVNode("h3", _hoisted_7, vue.toDisplayString(category.name), 1),
|
103
|
+
category.url === "buds" ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_8, " Unveiling the Exceptional User Curated Best Buds ")) : vue.createCommentVNode("", true),
|
104
|
+
category.url === "buds" ? (vue.openBlock(), vue.createElementBlock("button", _hoisted_9, [
|
105
|
+
vue.createElementVNode("span", null, "Check " + vue.toDisplayString(countProduct.value.count) + " products →", 1)
|
106
|
+
])) : vue.createCommentVNode("", true)
|
107
|
+
], 2)
|
108
|
+
]),
|
109
|
+
_: 2
|
110
|
+
}, 1032, ["to"]);
|
111
|
+
}), 128))
|
112
|
+
]))
|
113
|
+
]),
|
114
|
+
_: 1
|
115
|
+
})
|
116
|
+
]);
|
117
|
+
};
|
118
|
+
}
|
119
|
+
};
|
120
|
+
exports.default = _sfc_main;
|
121
|
+
//# sourceMappingURL=SectionMenu.vue.cjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SectionMenu.vue.cjs","sources":["../../../../../../../../src/modules/marketplace/views/components/sections/SectionMenu.vue"],"sourcesContent":["<template>\n\t<section id=\"main-menu\" class=\"pd-thin pos-relative\">\n\t\t<h2 class=\"w-m-60r mn-auto pd-t-big pd-b-big t-center\">\n\t\t\tWeed and Accessories to <br><b>Enhance Your Smoking Experience</b> \n\t\t</h2>\n\n\t\t<transition name=\"fade\" mode=\"out-in\" appear>\n\t\t\t<div v-if=\"!menu\" class=\"w-100 h-15r radius-big flex-center bg-light\">\n\t\t\t\t<Loader class=\"pos-relative\"/>\n\t\t\t</div>\n\n\t\t\t<ul v-else class=\"gap-thin grid-container\">\n\t\t\t\t<router-link :to=\"getMarketplaceLink([category.url])\"\n\t\t\t\t\tv-for=\"(category,index) in categoriesRoot.slice(0,5)\" \n\t\t\t\t\t:key=\"category\" \n\t\t\t\t\tclass=\"cursor-pointer hover-scale-0 flex-v-center flex-h-center flex-nowrap flex-row flex bg-light radius-big pd-medium grid-item\"\n\t\t\t\t>\n\n\t\t\t\t\t<video \n\t\t\t\t\t\tv-if=\"category.url === 'buds' && category.photo\" \n\t\t\t\t\t\tclass=\"w-33 radius-100 o-hidden mn-r-medium\" \n\t\t\t\t\t\tautoplay loop muted\n\t\t\t\t\t>\n\t\t\t\t\t <source \n\t\t\t\t\t \t:src=\"category.photo\"\n\t\t\t\t\t \ttype=\"video/webm\"\n\t\t\t\t\t >\n\t\t\t\t\t</video>\n\n\t\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\t\tv-if=\"category.url !== 'buds' && category.photo\"\n\t\t\t\t\t\t:src=\"category.photo\"\n\t\t\t\t\t\tclass=\"i-extra t-transp mn-r-thin\"\n\t\t\t\t\t>\n\n\t\t\t\t\t<div class=\"w-100\" :class=\"{'mn-r-auto':category.url === 'buds'}\">\n\t\t\t\t\t\t<h3 class=\"t-black capitalize h3\">\n\t\t\t\t\t\t\t{{category.name}}\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\n\t\t\t\t\t\t<p v-if=\"category.url === 'buds'\" class=\"mn-t-thin mn-b-thin t-transp t-black p-medium\">\n\t\t\t\t\t\t\tUnveiling the Exceptional User Curated Best Buds\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<button \n\t\t\t\t\t\t\tv-if=\"category.url === 'buds'\"\n\t\t\t class=\"mn-t-small radius-extra hover-bg-black t-medium t-black bg-main hover-t-white button-small button\"\n\t\t\t >\n\t\t\t <span>Check {{countProduct.count}} products →</span>\n\t\t\t </button>\n\t\t\t\t\t</div>\n\t\t\t\t</router-link>\n\n\t\t\t</ul>\n\t\t</transition>\n\t</section>\n</template>\n\n\n<script setup>\n\timport { ref, onMounted,computed } from 'vue'\n\n\timport Loader from '@pf/src/components/Loader/Loader.vue'\n\n\timport { useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t\t\n\timport * as categories from '@pf/src/modules/products/store/categories';\n\timport * as products from '@pf/src/modules/products/store/products';\n\n\tconst router = useRouter()\n\n\tconst categoriesRoot = ref(null)\n\t\n \tconst text = {\n en: {\n \tcategories: []\n },\n ru: {\n \tcategories: []\n }\n }\n\n\n\tconst { t } = useI18n({\n messages: text\n })\n\n\tconst countProduct = ref(0)\n\tconst menu = ref(false)\n\n\tonMounted( async () => {\n\t\tcountProduct.value = await products.actions.read({count: true})\n\t\tcategoriesRoot.value = await categories.actions.read({rootOnly: true})\n\t\tmenu.value = true\n\t})\n</script>\n\n<style lang=\"scss\">\n\t.grid-container {\n\t display: grid;\n\t grid-template-columns: repeat(4, 1fr);\n\t grid-template-rows: repeat(2, 1fr);\n\t}\n\n\t.grid-item {\n\t &:first-of-type {\n\t \tgrid-column: span 2;\n\t \tgrid-row: span 2;\n\t }\n\t}\n\n\t@media screen and (max-width: 1025px) {\n .grid-container { grid-template-columns: repeat(2, 1fr); }\n }\n</style>\n"],"names":["useRouter","ref","useI18n","onMounted","products.actions","categories.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEgBA,wBAAW;AAE1B,UAAM,iBAAiBC,IAAG,IAAC,IAAI;AAE9B,UAAM,OAAO;AAAA,MACX,IAAI;AAAA,QACH,YAAY,CAAE;AAAA,MACd;AAAA,MACD,IAAI;AAAA,QACH,YAAY,CAAE;AAAA,MACd;AAAA,IACF;AAGaC,oBAAQ;AAAA,MACpB,UAAU;AAAA,IACd,CAAG;AAEF,UAAM,eAAeD,IAAG,IAAC,CAAC;AAC1B,UAAM,OAAOA,IAAG,IAAC,KAAK;AAEtBE,QAAAA,UAAW,YAAY;AACtB,mBAAa,QAAQ,MAAMC,SAAgB,QAAC,KAAK,EAAC,OAAO,KAAI,CAAC;AAC9D,qBAAe,QAAQ,MAAMC,WAAkB,QAAC,KAAK,EAAC,UAAU,KAAI,CAAC;AACrE,WAAK,QAAQ;AAAA,IACf,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -0,0 +1,121 @@
|
|
1
|
+
import { ref, onMounted, resolveComponent, openBlock, createElementBlock, createElementVNode, createTextVNode, createVNode, Transition, withCtx, Fragment, renderList, createBlock, createCommentVNode, normalizeClass, toDisplayString } from "vue";
|
2
|
+
import Loader from "../../../../../components/Loader/Loader.vue.js";
|
3
|
+
import { useRouter } from "vue-router";
|
4
|
+
import { useI18n } from "vue-i18n";
|
5
|
+
import { actions as actions$1 } from "../../../../products/store/categories.js";
|
6
|
+
import { actions } from "../../../../products/store/products.js";
|
7
|
+
/* empty css */
|
8
|
+
const _hoisted_1 = {
|
9
|
+
id: "main-menu",
|
10
|
+
class: "pd-thin pos-relative"
|
11
|
+
};
|
12
|
+
const _hoisted_2 = {
|
13
|
+
key: 0,
|
14
|
+
class: "w-100 h-15r radius-big flex-center bg-light"
|
15
|
+
};
|
16
|
+
const _hoisted_3 = {
|
17
|
+
key: 1,
|
18
|
+
class: "gap-thin grid-container"
|
19
|
+
};
|
20
|
+
const _hoisted_4 = {
|
21
|
+
key: 0,
|
22
|
+
class: "w-33 radius-100 o-hidden mn-r-medium",
|
23
|
+
autoplay: "",
|
24
|
+
loop: "",
|
25
|
+
muted: ""
|
26
|
+
};
|
27
|
+
const _hoisted_5 = ["src"];
|
28
|
+
const _hoisted_6 = ["src"];
|
29
|
+
const _hoisted_7 = { class: "t-black capitalize h3" };
|
30
|
+
const _hoisted_8 = {
|
31
|
+
key: 0,
|
32
|
+
class: "mn-t-thin mn-b-thin t-transp t-black p-medium"
|
33
|
+
};
|
34
|
+
const _hoisted_9 = {
|
35
|
+
key: 1,
|
36
|
+
class: "mn-t-small radius-extra hover-bg-black t-medium t-black bg-main hover-t-white button-small button"
|
37
|
+
};
|
38
|
+
const _sfc_main = {
|
39
|
+
__name: "SectionMenu",
|
40
|
+
setup(__props) {
|
41
|
+
useRouter();
|
42
|
+
const categoriesRoot = ref(null);
|
43
|
+
const text = {
|
44
|
+
en: {
|
45
|
+
categories: []
|
46
|
+
},
|
47
|
+
ru: {
|
48
|
+
categories: []
|
49
|
+
}
|
50
|
+
};
|
51
|
+
useI18n({
|
52
|
+
messages: text
|
53
|
+
});
|
54
|
+
const countProduct = ref(0);
|
55
|
+
const menu = ref(false);
|
56
|
+
onMounted(async () => {
|
57
|
+
countProduct.value = await actions.read({ count: true });
|
58
|
+
categoriesRoot.value = await actions$1.read({ rootOnly: true });
|
59
|
+
menu.value = true;
|
60
|
+
});
|
61
|
+
return (_ctx, _cache) => {
|
62
|
+
const _component_router_link = resolveComponent("router-link");
|
63
|
+
return openBlock(), createElementBlock("section", _hoisted_1, [
|
64
|
+
_cache[0] || (_cache[0] = createElementVNode("h2", { class: "w-m-60r mn-auto pd-t-big pd-b-big t-center" }, [
|
65
|
+
createTextVNode(" Weed and Accessories to "),
|
66
|
+
createElementVNode("br"),
|
67
|
+
createElementVNode("b", null, "Enhance Your Smoking Experience")
|
68
|
+
], -1)),
|
69
|
+
createVNode(Transition, {
|
70
|
+
name: "fade",
|
71
|
+
mode: "out-in",
|
72
|
+
appear: ""
|
73
|
+
}, {
|
74
|
+
default: withCtx(() => [
|
75
|
+
!menu.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
76
|
+
createVNode(Loader, { class: "pos-relative" })
|
77
|
+
])) : (openBlock(), createElementBlock("ul", _hoisted_3, [
|
78
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(categoriesRoot.value.slice(0, 5), (category, index) => {
|
79
|
+
return openBlock(), createBlock(_component_router_link, {
|
80
|
+
to: _ctx.getMarketplaceLink([category.url]),
|
81
|
+
key: category,
|
82
|
+
class: "cursor-pointer hover-scale-0 flex-v-center flex-h-center flex-nowrap flex-row flex bg-light radius-big pd-medium grid-item"
|
83
|
+
}, {
|
84
|
+
default: withCtx(() => [
|
85
|
+
category.url === "buds" && category.photo ? (openBlock(), createElementBlock("video", _hoisted_4, [
|
86
|
+
createElementVNode("source", {
|
87
|
+
src: category.photo,
|
88
|
+
type: "video/webm"
|
89
|
+
}, null, 8, _hoisted_5)
|
90
|
+
])) : createCommentVNode("", true),
|
91
|
+
category.url !== "buds" && category.photo ? (openBlock(), createElementBlock("img", {
|
92
|
+
key: 1,
|
93
|
+
loading: "lazy",
|
94
|
+
src: category.photo,
|
95
|
+
class: "i-extra t-transp mn-r-thin"
|
96
|
+
}, null, 8, _hoisted_6)) : createCommentVNode("", true),
|
97
|
+
createElementVNode("div", {
|
98
|
+
class: normalizeClass(["w-100", { "mn-r-auto": category.url === "buds" }])
|
99
|
+
}, [
|
100
|
+
createElementVNode("h3", _hoisted_7, toDisplayString(category.name), 1),
|
101
|
+
category.url === "buds" ? (openBlock(), createElementBlock("p", _hoisted_8, " Unveiling the Exceptional User Curated Best Buds ")) : createCommentVNode("", true),
|
102
|
+
category.url === "buds" ? (openBlock(), createElementBlock("button", _hoisted_9, [
|
103
|
+
createElementVNode("span", null, "Check " + toDisplayString(countProduct.value.count) + " products →", 1)
|
104
|
+
])) : createCommentVNode("", true)
|
105
|
+
], 2)
|
106
|
+
]),
|
107
|
+
_: 2
|
108
|
+
}, 1032, ["to"]);
|
109
|
+
}), 128))
|
110
|
+
]))
|
111
|
+
]),
|
112
|
+
_: 1
|
113
|
+
})
|
114
|
+
]);
|
115
|
+
};
|
116
|
+
}
|
117
|
+
};
|
118
|
+
export {
|
119
|
+
_sfc_main as default
|
120
|
+
};
|
121
|
+
//# sourceMappingURL=SectionMenu.vue.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SectionMenu.vue.js","sources":["../../../../../../../../src/modules/marketplace/views/components/sections/SectionMenu.vue"],"sourcesContent":["<template>\n\t<section id=\"main-menu\" class=\"pd-thin pos-relative\">\n\t\t<h2 class=\"w-m-60r mn-auto pd-t-big pd-b-big t-center\">\n\t\t\tWeed and Accessories to <br><b>Enhance Your Smoking Experience</b> \n\t\t</h2>\n\n\t\t<transition name=\"fade\" mode=\"out-in\" appear>\n\t\t\t<div v-if=\"!menu\" class=\"w-100 h-15r radius-big flex-center bg-light\">\n\t\t\t\t<Loader class=\"pos-relative\"/>\n\t\t\t</div>\n\n\t\t\t<ul v-else class=\"gap-thin grid-container\">\n\t\t\t\t<router-link :to=\"getMarketplaceLink([category.url])\"\n\t\t\t\t\tv-for=\"(category,index) in categoriesRoot.slice(0,5)\" \n\t\t\t\t\t:key=\"category\" \n\t\t\t\t\tclass=\"cursor-pointer hover-scale-0 flex-v-center flex-h-center flex-nowrap flex-row flex bg-light radius-big pd-medium grid-item\"\n\t\t\t\t>\n\n\t\t\t\t\t<video \n\t\t\t\t\t\tv-if=\"category.url === 'buds' && category.photo\" \n\t\t\t\t\t\tclass=\"w-33 radius-100 o-hidden mn-r-medium\" \n\t\t\t\t\t\tautoplay loop muted\n\t\t\t\t\t>\n\t\t\t\t\t <source \n\t\t\t\t\t \t:src=\"category.photo\"\n\t\t\t\t\t \ttype=\"video/webm\"\n\t\t\t\t\t >\n\t\t\t\t\t</video>\n\n\t\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\t\tv-if=\"category.url !== 'buds' && category.photo\"\n\t\t\t\t\t\t:src=\"category.photo\"\n\t\t\t\t\t\tclass=\"i-extra t-transp mn-r-thin\"\n\t\t\t\t\t>\n\n\t\t\t\t\t<div class=\"w-100\" :class=\"{'mn-r-auto':category.url === 'buds'}\">\n\t\t\t\t\t\t<h3 class=\"t-black capitalize h3\">\n\t\t\t\t\t\t\t{{category.name}}\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\n\t\t\t\t\t\t<p v-if=\"category.url === 'buds'\" class=\"mn-t-thin mn-b-thin t-transp t-black p-medium\">\n\t\t\t\t\t\t\tUnveiling the Exceptional User Curated Best Buds\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<button \n\t\t\t\t\t\t\tv-if=\"category.url === 'buds'\"\n\t\t\t class=\"mn-t-small radius-extra hover-bg-black t-medium t-black bg-main hover-t-white button-small button\"\n\t\t\t >\n\t\t\t <span>Check {{countProduct.count}} products →</span>\n\t\t\t </button>\n\t\t\t\t\t</div>\n\t\t\t\t</router-link>\n\n\t\t\t</ul>\n\t\t</transition>\n\t</section>\n</template>\n\n\n<script setup>\n\timport { ref, onMounted,computed } from 'vue'\n\n\timport Loader from '@pf/src/components/Loader/Loader.vue'\n\n\timport { useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t\t\n\timport * as categories from '@pf/src/modules/products/store/categories';\n\timport * as products from '@pf/src/modules/products/store/products';\n\n\tconst router = useRouter()\n\n\tconst categoriesRoot = ref(null)\n\t\n \tconst text = {\n en: {\n \tcategories: []\n },\n ru: {\n \tcategories: []\n }\n }\n\n\n\tconst { t } = useI18n({\n messages: text\n })\n\n\tconst countProduct = ref(0)\n\tconst menu = ref(false)\n\n\tonMounted( async () => {\n\t\tcountProduct.value = await products.actions.read({count: true})\n\t\tcategoriesRoot.value = await categories.actions.read({rootOnly: true})\n\t\tmenu.value = true\n\t})\n</script>\n\n<style lang=\"scss\">\n\t.grid-container {\n\t display: grid;\n\t grid-template-columns: repeat(4, 1fr);\n\t grid-template-rows: repeat(2, 1fr);\n\t}\n\n\t.grid-item {\n\t &:first-of-type {\n\t \tgrid-column: span 2;\n\t \tgrid-row: span 2;\n\t }\n\t}\n\n\t@media screen and (max-width: 1025px) {\n .grid-container { grid-template-columns: repeat(2, 1fr); }\n }\n</style>\n"],"names":["products.actions","categories.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEgB,cAAW;AAE1B,UAAM,iBAAiB,IAAI,IAAI;AAE9B,UAAM,OAAO;AAAA,MACX,IAAI;AAAA,QACH,YAAY,CAAE;AAAA,MACd;AAAA,MACD,IAAI;AAAA,QACH,YAAY,CAAE;AAAA,MACd;AAAA,IACF;AAGa,YAAQ;AAAA,MACpB,UAAU;AAAA,IACd,CAAG;AAEF,UAAM,eAAe,IAAI,CAAC;AAC1B,UAAM,OAAO,IAAI,KAAK;AAEtB,cAAW,YAAY;AACtB,mBAAa,QAAQ,MAAMA,QAAiB,KAAK,EAAC,OAAO,KAAI,CAAC;AAC9D,qBAAe,QAAQ,MAAMC,UAAmB,KAAK,EAAC,UAAU,KAAI,CAAC;AACrE,WAAK,QAAQ;AAAA,IACf,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|