@ozdao/martyrs 0.2.465 → 0.2.467
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/dist/martyrs/src/components/Button/{Button.vue.cjs → Button.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +2 -2
- package/dist/martyrs/src/components/Button/{Button.vue.cjs.map → Button.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
- package/dist/martyrs/src/components/Tab/{Tab.vue.cjs → Tab.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Tab/{Tab.vue.js → Tab.vue2.js} +2 -2
- package/dist/martyrs/src/components/Tab/{Tab.vue.cjs.map → Tab.vue2.js.map} +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.cjs +1 -4
- package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -4
- package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +3 -3
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.cjs +10 -0
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.js +11 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +64 -8
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +65 -9
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +13 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +13 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +39 -35
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +42 -38
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +35 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +35 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/products.server.js +2 -2
- package/dist/products.server.mjs +2 -2
- package/dist/style.css +6 -6
- package/package.json +1 -1
- package/src/modules/auth/views/store/auth.js +1 -7
- package/src/modules/globals/views/components/partials/Navigation.vue +2 -2
- package/src/modules/marketplace/views/components/pages/Catalog.vue +11 -0
- package/src/modules/orders/components/pages/OrderCreate.vue +54 -10
- package/src/modules/organizations/components/pages/Organization.vue +11 -0
- package/src/modules/products/components/pages/Categories.vue +36 -33
- package/src/modules/products/components/pages/Product.vue +32 -7
- package/src/modules/products/controllers/categories.controller.js +2 -2
- package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Tab/Tab.vue.js.map +0 -1
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
import { onUnmounted,
|
|
1
|
+
import { onUnmounted, onMounted, resolveComponent, createElementBlock, openBlock, createBlock, createCommentVNode, createVNode, withCtx, createElementVNode, createTextVNode } from "vue";
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
3
|
import { state as state$1 } from "../../../globals/views/store/globals.js";
|
|
4
4
|
import { state } from "../../../auth/views/store/auth.js";
|
|
5
5
|
import { state as state$2, actions } from "../../store/categories.js";
|
|
6
6
|
/* empty css */
|
|
7
|
-
/* empty css
|
|
7
|
+
/* empty css */
|
|
8
8
|
import _sfc_main$2 from "../../../../components/Block/Block.vue.js";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
import _sfc_main$3 from "../../../../components/Tree/Tree.vue.js";
|
|
13
|
-
import _sfc_main$4 from "../blocks/CardCategory.vue.js";
|
|
9
|
+
import _sfc_main$3 from "../../../../components/Feed/Feed.vue.js";
|
|
10
|
+
import _sfc_main$4 from "../../../../components/Tree/Tree.vue.js";
|
|
11
|
+
import _sfc_main$5 from "../blocks/CardCategory.vue.js";
|
|
14
12
|
import _sfc_main$1 from "../../../icons/navigation/IconPlus.vue.js";
|
|
15
13
|
const _hoisted_1 = { class: "pd-thin bg-white" };
|
|
16
14
|
const _sfc_main = {
|
|
17
15
|
__name: "Categories",
|
|
18
|
-
|
|
19
|
-
let __temp, __restore;
|
|
16
|
+
setup(__props) {
|
|
20
17
|
const route = useRoute();
|
|
21
18
|
const router = useRouter();
|
|
22
19
|
state$1.navigation_bar.actions = [{
|
|
@@ -29,26 +26,8 @@ const _sfc_main = {
|
|
|
29
26
|
}], onUnmounted(() => {
|
|
30
27
|
state$1.navigation_bar.actions = [];
|
|
31
28
|
});
|
|
32
|
-
state$2.all = ([__temp, __restore] = withAsyncContext(() => actions.read({
|
|
33
|
-
user: state.user._id,
|
|
34
|
-
rootOnly: true,
|
|
35
|
-
limit: 10
|
|
36
|
-
})), __temp = await __temp, __restore(), __temp);
|
|
37
29
|
onMounted(async () => {
|
|
38
30
|
});
|
|
39
|
-
computed(() => {
|
|
40
|
-
const recursiveMap = (data) => {
|
|
41
|
-
return data.map((item) => ({
|
|
42
|
-
// id: item._id,
|
|
43
|
-
parent: item.parent,
|
|
44
|
-
_id: item._id,
|
|
45
|
-
order: item.order,
|
|
46
|
-
name: item.name,
|
|
47
|
-
children: item.children ? recursiveMap(item.children) : []
|
|
48
|
-
}));
|
|
49
|
-
};
|
|
50
|
-
return recursiveMap(state$2.all);
|
|
51
|
-
});
|
|
52
31
|
function flattenCategoryTree(categories) {
|
|
53
32
|
let flatCategories = [];
|
|
54
33
|
function flatten(category) {
|
|
@@ -107,20 +86,45 @@ const _sfc_main = {
|
|
|
107
86
|
]),
|
|
108
87
|
_: 1
|
|
109
88
|
})) : createCommentVNode("", true),
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
89
|
+
createVNode(_sfc_main$3, {
|
|
90
|
+
search: true,
|
|
91
|
+
showLoadMore: false,
|
|
92
|
+
states: {
|
|
93
|
+
empty: {
|
|
94
|
+
title: "No Products Found",
|
|
95
|
+
description: "Currently, there are no products available."
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
store: {
|
|
99
|
+
read: (options) => actions.read(options),
|
|
100
|
+
state: state$2
|
|
101
|
+
},
|
|
102
|
+
options: {
|
|
103
|
+
user: state.user._id,
|
|
104
|
+
rootOnly: true
|
|
105
|
+
},
|
|
106
|
+
class: "cols-1 pos-relative w-100 rows-1 gap-thin"
|
|
115
107
|
}, {
|
|
116
|
-
default: withCtx(({
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
108
|
+
default: withCtx(({
|
|
109
|
+
items
|
|
110
|
+
}) => [
|
|
111
|
+
items ? (openBlock(), createBlock(_sfc_main$4, {
|
|
112
|
+
key: 0,
|
|
113
|
+
items,
|
|
114
|
+
state: items,
|
|
115
|
+
onUpdate: updateCategoriesOrder
|
|
116
|
+
}, {
|
|
117
|
+
default: withCtx(({ item }) => [
|
|
118
|
+
createVNode(_sfc_main$5, {
|
|
119
|
+
category: item,
|
|
120
|
+
onDelete: deleteCategory
|
|
121
|
+
}, null, 8, ["category"])
|
|
122
|
+
]),
|
|
123
|
+
_: 2
|
|
124
|
+
}, 1032, ["items", "state"])) : createCommentVNode("", true)
|
|
121
125
|
]),
|
|
122
126
|
_: 1
|
|
123
|
-
}, 8, ["
|
|
127
|
+
}, 8, ["store", "options"])
|
|
124
128
|
]);
|
|
125
129
|
};
|
|
126
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Categories.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Categories.vue"],"sourcesContent":["<template>\n <div class=\"pd-thin bg-white\">\n <Block v-if=\"!MOBILE_APP\" \n class=\"radius-big mn-b-thin mobile:flex-wrap flex-nowrap flex-v-center flex\"\n >\n <h2 class=\"mn-r-auto\">\n Product Categories\n </h2>\n\n <router-link \n :to=\"{\n name: 'Category Add', \n params: { \n _id: $route.params._id\n } \n }\"\n class=\"uppercase t-medium pd-small radius-big bg-white nav-link\"\n >\n Add category\n </router-link>\n </Block>\n\n
|
|
1
|
+
{"version":3,"file":"Categories.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Categories.vue"],"sourcesContent":["<template>\n <div class=\"pd-thin bg-white\">\n <Block v-if=\"!MOBILE_APP\" \n class=\"radius-big mn-b-thin mobile:flex-wrap flex-nowrap flex-v-center flex\"\n >\n <h2 class=\"mn-r-auto\">\n Product Categories\n </h2>\n\n <router-link \n :to=\"{\n name: 'Category Add', \n params: { \n _id: $route.params._id\n } \n }\"\n class=\"uppercase t-medium pd-small radius-big bg-white nav-link\"\n >\n Add category\n </router-link>\n </Block>\n\n <Feed\n :search=\"true\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => categories.actions.read(options),\n state: categories.state\n }\"\n :options=\"{\n user: auth.state.user._id,\n rootOnly: true,\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-1 pos-relative w-100 rows-1 gap-thin\"\n \n >\n <Tree \n v-if=\"items\" \n :items=\"items\" \n :state=\"items\" \n @update=\"updateCategoriesOrder\" \n v-slot=\"{ item }\"\n >\n <CardCategory \n :category=\"item\" \n @delete=\"deleteCategory\" \n />\n </Tree>\n </Feed>\n </div>\n</template>\n\n<script setup>\n import { onMounted, onUnmounted, computed } from 'vue';\n import { VueDraggableNext } from 'vue-draggable-next';\n\n import { useRoute, useRouter } from 'vue-router';\n\n import * as globals from '@martyrs/src/modules/globals/views/store/globals';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth'; \n import * as categories from '@martyrs/src/modules/products/store/categories'; \n\n const route = useRoute();\n const router = useRouter();\n\n import Button from \"@martyrs/src/components/Button/Button.vue\";\n import Block from '@martyrs/src/components/Block/Block.vue';\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n import Tree from \"@martyrs/src/components/Tree/Tree.vue\";\n \n import CardCategory from '@martyrs/src/modules/products/components/blocks/CardCategory.vue';\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n\n globals.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Category Add', params: { _id: route.params._id} }) : router.push({ name: 'Category Add' })\n }],\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n onMounted(async () => {\n \n });\n\n function flattenCategoryTree(categories) {\n let flatCategories = [];\n \n function flatten(category) {\n const { children, ...categoryWithoutChildren } = category;\n flatCategories.push(categoryWithoutChildren);\n \n if (children && Array.isArray(children)) {\n children.forEach(child => flatten(child));\n }\n }\n \n categories.forEach(category => flatten(category));\n return flatCategories;\n }\n\n // Обновленная функция для обновления порядка категорий\n async function updateCategoriesOrder(category) {\n try {\n // Получаем все категории и преобразуем их в плоский массив\n const allCategories = categories.state.all;\n const flattenedCategories = flattenCategoryTree(allCategories);\n \n // Обновляем порядок для всех категорий\n console.log('flated', flattenedCategories)\n await categories.actions.updateOrder(flattenedCategories);\n \n console.log('Categories order updated successfully');\n } catch (error) {\n console.error('Error updating categories order:', error);\n throw error;\n }\n }\n\n async function deleteCategory(category) {\n // Запрашиваем подтверждение у пользователя\n const isConfirmed = confirm(`Are you sure you want to delete the category \"${category.name}\"?`);\n \n // Если пользователь подтвердил удаление, продолжаем процесс\n if (isConfirmed) {\n await categories.actions.delete(category.url);\n } else {\n alert('Category deletion cancelled'); \n }\n }\n\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["globals.state","IconPlus","auth.state","categories.state","categories.actions"],"mappings":";;;;;;;;;;;;;;;;AAuEE,UAAM,QAAQ,SAAU;AACxB,UAAM,SAAS,UAAW;AAW1BA,YAAc,eAAe,UAAU,CAAC;AAAA,MACtC,WAAWC;AAAAA,MACX,OAAO;AAAA,QACL,MAAM;AAAA,MACP;AAAA,MACD,WAAW,MAAMC,MAAW,QAAQA,MAAW,KAAK;AAAA,MACpD,QAAQ,MAAM,MAAM,OAAO,MAAM,OAAO,KAAK,EAAE,MAAM,gBAAgB,QAAQ,EAAE,KAAK,MAAM,OAAO,IAAG,EAAG,CAAA,IAAI,OAAO,KAAK,EAAE,MAAM,eAAgB,CAAA;AAAA,IACnJ,CAAG,GAED,YAAY,MAAM;AAChBF,cAAc,eAAe,UAAU,CAAE;AAAA,IAC7C,CAAG;AAED,cAAU,YAAY;AAAA,IAExB,CAAG;AAED,aAAS,oBAAoB,YAAY;AACvC,UAAI,iBAAiB,CAAE;AAEvB,eAAS,QAAQ,UAAU;AACzB,cAAM,EAAE,UAAU,GAAG,wBAAuB,IAAK;AACjD,uBAAe,KAAK,uBAAuB;AAE3C,YAAI,YAAY,MAAM,QAAQ,QAAQ,GAAG;AACvC,mBAAS,QAAQ,WAAS,QAAQ,KAAK,CAAC;AAAA,QAChD;AAAA,MACA;AAEI,iBAAW,QAAQ,cAAY,QAAQ,QAAQ,CAAC;AAChD,aAAO;AAAA,IACX;AAGE,mBAAe,sBAAsB,UAAU;AAC7C,UAAI;AAEF,cAAM,gBAAgBG,QAAiB;AACvC,cAAM,sBAAsB,oBAAoB,aAAa;AAG7D,gBAAQ,IAAI,UAAU,mBAAmB;AACzC,cAAMC,QAAmB,YAAY,mBAAmB;AAExD,gBAAQ,IAAI,uCAAuC;AAAA,MACpD,SAAQ,OAAO;AACd,gBAAQ,MAAM,oCAAoC,KAAK;AACvD,cAAM;AAAA,MACZ;AAAA,IACA;AAEE,mBAAe,eAAe,UAAU;AAEtC,YAAM,cAAc,QAAQ,iDAAiD,SAAS,IAAI,IAAI;AAG9F,UAAI,aAAa;AACf,cAAMA,QAAmB,OAAO,SAAS,GAAG;AAAA,MAClD,OAAW;AACL,cAAM,6BAA6B;AAAA,MACzC;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const IconDelete = require("../../../icons/navigation/IconDelete.vue.cjs");
|
|
6
|
-
const Button = require("../../../../components/Button/Button.
|
|
6
|
+
const Button = require("../../../../components/Button/Button.vue2.cjs");
|
|
7
7
|
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
8
8
|
const UploadImage = require("../../../../components/UploadImage/UploadImage.vue.cjs");
|
|
9
9
|
const Field = require("../../../../components/Field/Field.vue.cjs");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { computed, onUnmounted, createElementBlock, openBlock, createBlock, createCommentVNode, createVNode, withCtx, createElementVNode, toDisplayString, unref, createTextVNode, Fragment, renderList } from "vue";
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
3
|
import _sfc_main$5 from "../../../icons/navigation/IconDelete.vue.js";
|
|
4
|
-
import _sfc_main$3 from "../../../../components/Button/Button.
|
|
4
|
+
import _sfc_main$3 from "../../../../components/Button/Button.vue2.js";
|
|
5
5
|
import Select from "../../../../components/Select/Select.vue.js";
|
|
6
6
|
import _sfc_main$4 from "../../../../components/UploadImage/UploadImage.vue.js";
|
|
7
7
|
import Field from "../../../../components/Field/Field.vue.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
|
-
const Tab = require("../../../../components/Tab/Tab.
|
|
5
|
+
const Tab = require("../../../../components/Tab/Tab.vue2.cjs");
|
|
6
6
|
const Feed = require("../../../../components/Feed/Feed.vue.cjs");
|
|
7
7
|
const CardLeftover = require("../blocks/CardLeftover.vue.cjs");
|
|
8
8
|
const leftovers = require("../../store/leftovers.cjs");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, computed, createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, unref, withCtx, Fragment, renderList, createBlock } from "vue";
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
|
-
import _sfc_main$1 from "../../../../components/Tab/Tab.
|
|
3
|
+
import _sfc_main$1 from "../../../../components/Tab/Tab.vue2.js";
|
|
4
4
|
import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
|
|
5
5
|
import CardLeftover from "../blocks/CardLeftover.vue.js";
|
|
6
6
|
import { state, actions } from "../../store/leftovers.js";
|
|
@@ -3,14 +3,15 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const vueI18n = require("vue-i18n");
|
|
6
|
+
const mixins = require("../../../globals/views/mixins/mixins.cjs");
|
|
6
7
|
require("../../../auth/views/store/auth.cjs");
|
|
7
8
|
const globals = require("../../../globals/views/store/globals.cjs");
|
|
8
9
|
const products = require("../../store/products.cjs");
|
|
9
10
|
require("../../store/categories.cjs");
|
|
10
11
|
const shopcart = require("../../../orders/store/shopcart.cjs");
|
|
11
|
-
const Button = require("../../../../components/Button/Button.
|
|
12
|
+
const Button = require("../../../../components/Button/Button.vue2.cjs");
|
|
12
13
|
;/* empty css */
|
|
13
|
-
;/* empty css
|
|
14
|
+
;/* empty css */
|
|
14
15
|
const PopupDateSelector = require("../../../globals/views/components/blocks/PopupDateSelector.vue.cjs");
|
|
15
16
|
const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
|
|
16
17
|
const IconShopcartAdd = require("../../../icons/actions/IconShopcartAdd.vue.cjs");
|
|
@@ -57,6 +58,7 @@ const _sfc_main = {
|
|
|
57
58
|
const route = vueRouter.useRoute();
|
|
58
59
|
vueRouter.useRouter();
|
|
59
60
|
const { proxy } = vue.getCurrentInstance();
|
|
61
|
+
const { returnCurrency } = mixins.useGlobalMixins();
|
|
60
62
|
const product = vue.computed(() => products.state.current);
|
|
61
63
|
const images = vue.computed(() => products.state.current.images);
|
|
62
64
|
vue.ref("description");
|
|
@@ -77,11 +79,27 @@ const _sfc_main = {
|
|
|
77
79
|
vue.ref(null);
|
|
78
80
|
products.state.current = null;
|
|
79
81
|
vue.onMounted(async () => {
|
|
82
|
+
var _a, _b;
|
|
80
83
|
emits("page-loading");
|
|
81
84
|
await products.actions.read({ _id: route.params.product });
|
|
85
|
+
if (typeof gtag === "function") {
|
|
86
|
+
gtag("event", "view_item", {
|
|
87
|
+
currency: returnCurrency(),
|
|
88
|
+
// Замените на вашу валюту, если отличается
|
|
89
|
+
value: product.value.price || 0,
|
|
90
|
+
items: [{
|
|
91
|
+
item_id: product.value.id || product.value._id,
|
|
92
|
+
item_name: product.value.name || product.value.title,
|
|
93
|
+
price: product.value.price || 0,
|
|
94
|
+
item_category: product.value.category || "",
|
|
95
|
+
item_brand: ((_b = (_a = product.value.owner) == null ? void 0 : _a.target) == null ? void 0 : _b.profile.name) || ""
|
|
96
|
+
}]
|
|
97
|
+
});
|
|
98
|
+
}
|
|
82
99
|
emits("page-loaded");
|
|
83
100
|
});
|
|
84
101
|
async function addToCart(product2, selectedDates = null) {
|
|
102
|
+
var _a, _b, _c;
|
|
85
103
|
try {
|
|
86
104
|
if (shopcart.state.organization && shopcart.state.organization !== product2.owner.target._id) {
|
|
87
105
|
const result = await proxy.$alert({
|
|
@@ -96,6 +114,21 @@ const _sfc_main = {
|
|
|
96
114
|
shopcart.state.organization = product2.owner.target._id;
|
|
97
115
|
shopcart.state.positions = [];
|
|
98
116
|
}
|
|
117
|
+
if (typeof gtag === "function") {
|
|
118
|
+
gtag("event", "add_to_cart", {
|
|
119
|
+
currency: returnCurrency(),
|
|
120
|
+
// Замените на вашу валюту, если отличается
|
|
121
|
+
value: product2.price || 0,
|
|
122
|
+
items: [{
|
|
123
|
+
item_id: product2._id,
|
|
124
|
+
item_name: product2.name,
|
|
125
|
+
price: product2.price || 0,
|
|
126
|
+
quantity: 1,
|
|
127
|
+
item_category: product2.category || "",
|
|
128
|
+
item_brand: ((_c = (_b = (_a = product2.owner) == null ? void 0 : _a.target) == null ? void 0 : _b.profile) == null ? void 0 : _c.name) || ""
|
|
129
|
+
}]
|
|
130
|
+
});
|
|
131
|
+
}
|
|
99
132
|
console.log("organization is", product2.owner.target._id);
|
|
100
133
|
await shopcart.actions.addProductToCart(product2, product2.owner.target._id, selectedDates);
|
|
101
134
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Product.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n <div v-if=\"products.state.current\" class=\"h-100 w-100 mobile:pd-thin pd-big bg-white\">\n <div class=\"cols-2-1_2 w-100 gap-medium\">\n\n <ImagesThumbnails\n :images=\"images\"\n :product=\"product\"\n />\n\n <div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n <IconEdit\n v-if=\"accesses && hasAccess(route.params._id, 'products', 'edit', accesses)\"\n @click=\"$router.push({ name: 'ProductEdit', params: { _id: product.owner.target, product: product._id } })\"\n class=\"pos-absolute pos-t-regular pos-r-regular i-regular t-transp\"\n />\n\n\n\n <h2 class=\"w-100 h1-product mn-b-small\">{{ product.name }}</h2>\n \n <Price :product=\"product\" size=\"big\" class=\"flex gap-micro flex-center pd-small br-solid br-1px br-black-transp-10 w-max mn-b-medium\" />\n\n <p v-if=\"product.description && !product.localization < 1 && !recommendation\" class=\"w-100 mn-b-small\">\n {{ product.description }}\n </p>\n <p v-if=\"product.localization && product.localization.length > 1 && !recommendation\" class=\"w-100 mn-b-small\">\n {{ t('description') }}\n </p>\n\n <div class=\"w-max-33r mn-b-medium\">\n <div v-if=\"product.listing === 'rent'\">\n <button @click=\"openPopup\" class=\"cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button\">\n <div class=\"gap-thin flex flex-center flex-nowrap\">\n <IconShopcartAdd class=\"i-semi\" />\n <span>{{ t('addtoorder') }}</span>\n </div>\n </button>\n <PopupDateSelector\n :product=\"product\"\n :isOpen=\"isPopupOpen\"\n :showFees=\"globals.state.options?.orders.showFees\"\n :feesRate=\"globals.state.options?.orders.feesRate || 0.15\"\n :showVat=\"globals.state.options?.orders.showVat\"\n :vatRate=\"globals.state.options?.orders.vatRate || 0\"\n :onConfirm=\"selectedDates => addToCart(product, selectedDates)\"\n @close=\"closePopup\"\n />\n </div>\n <div v-else>\n <Button\n v-if=\"product.available > 0\"\n :submit=\"() => addToCart(product, null)\"\n class=\"h-3r w-max mobile:w-100 bg-main button\"\n >\n <div class=\"gap-thin flex flex-center flex-nowrap\">\n <IconShopcartAdd class=\"i-semi\" />\n <span>{{ t('addtoorder') }}</span>\n </div>\n </Button>\n <div\n v-else\n class=\"flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton\"\n >\n Out of Stock\n </div>\n </div>\n </div>\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconInfo class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Product Details</p>\n </div>\n\n <div class=\"cols-2 mn-b-medium w-100 gap-small\">\n <div\n v-if=\"product.information.length > 0\"\n v-for=\"information in product.information\"\n class=\"w-100 pd-small radius-small bg-light product-information\"\n >\n <p class=\"t-demi\">{{ information.name }}</p>\n <p>{{ information.value }}</p>\n </div>\n </div>\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconGroups class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Provided by</p>\n </div>\n\n <CardOrganization \n v-if=\"product.owner\"\n :organization=\"product.owner.target\"\n :showRating=\"true\"\n :showFollowers=\"false\"\n :showProducts=\"false\"\n class=\"bg-light w-100 o-hidden radius-medium pd-small \"\n />\n\n\n\n \n </div>\n </div>\n\n <div class=\"h-max mn-t-big pos-relative\">\n <h3 class=\"pd-b-small\">Most Popular</h3>\n <PopularProducts class=\"mn-r-big-negative mn-l-big-negative\"/>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, ref, onMounted, getCurrentInstance } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\n\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth'\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals'\nimport * as products from '@martyrs/src/modules/products/store/products'\nimport * as categories from '@martyrs/src/modules/products/store/categories'\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\nimport PopupDateSelector from '@martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue'\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\nimport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue'\n\n\nimport ImagesThumbnails from '@martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue'\nimport Price from '@martyrs/src/modules/products/components/elements/Price.vue'\nimport PopularProducts from '@martyrs/src/modules/products/components/sections/PopularProducts.vue'\n\n import CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\nconst route = useRoute()\nconst router = useRouter()\nconst { proxy } = getCurrentInstance()\n\nconst product = computed(() => products.state.current)\nconst images = computed(() => products.state.current.images)\n\nconst tabProduct = ref('description')\n\nconst text = {\n en: { addtoorder: 'Add to Cart', fastorder: 'Fast Order' },\n ru: { addtoorder: 'Добавить в корзину', fastorder: 'Быстрый заказ' }\n}\n\nconst { t } = useI18n({ messages: text })\n\nconst isPopupOpen = ref(false)\n\nfunction openPopup() {\n isPopupOpen.value = true\n}\n\nfunction closePopup() {\n isPopupOpen.value = false\n}\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n \nconst pageProduct = ref(null)\nconst orderOrganization = ref(null)\n\nproducts.state.current = null\nonMounted(async () => {\n\n emits('page-loading');\n await products.actions.read({ _id: route.params.product })\n emits('page-loaded');\n\n // route.meta.title.en = product.value.name\n // route.meta.title.ru = roduct.value.name\n\n})\n\n// onBeforeMounted\n\nfunction validateToCard(product) {\n return !(product.available > 0)\n}\n\nasync function addToCart(product, selectedDates = null) {\n try {\n // Если организация товара отличается от текущей в корзине\n if (shopcart.state.organization && shopcart.state.organization !== product.owner.target._id) {\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) throw error\n\n shopcart.state.organization = product.owner.target._id\n shopcart.state.positions = []\n }\n\n \n\n console.log('organization is', product.owner.target._id)\n await shopcart.actions.addProductToCart(product, product.owner.target._id, selectedDates)\n return true\n } catch (error) {\n console.error('Error while adding product to cart:', error)\n throw error\n }\n}\n</script>\n\n<style lang=\"scss\">\n</style>"],"names":["useRoute","useRouter","getCurrentInstance","computed","products.state","ref","useI18n","onMounted","products.actions","product","shopcart.state","shopcart.actions","error"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8IA,UAAM,QAAQA,UAAQ,SAAA;AACPC,cAAS,UAAA;AACxB,UAAM,EAAE,MAAO,IAAGC,IAAkB,mBAAA;AAEpC,UAAM,UAAUC,IAAAA,SAAS,MAAMC,SAAAA,MAAe,OAAO;AACrD,UAAM,SAASD,IAAQ,SAAC,MAAMC,SAAc,MAAC,QAAQ,MAAM;AAExCC,QAAAA,IAAI,aAAa;AAEpC,UAAM,OAAO;AAAA,MACX,IAAI,EAAE,YAAY,eAAe,WAAW,aAAc;AAAA,MAC1D,IAAI,EAAE,YAAY,sBAAsB,WAAW,gBAAe;AAAA,IACpE;AAEA,UAAM,EAAE,EAAC,IAAKC,QAAAA,QAAQ,EAAE,UAAU,KAAM,CAAA;AAExC,UAAM,cAAcD,IAAG,IAAC,KAAK;AAE7B,aAAS,YAAY;AACnB,kBAAY,QAAQ;AAAA,IACtB;AAEA,aAAS,aAAa;AACpB,kBAAY,QAAQ;AAAA,IACtB;AAEA,UAAM,QAAQ;AAEMA,QAAAA,IAAI,IAAI;AACFA,QAAAA,IAAI,IAAI;AAElCD,aAAc,MAAC,UAAU;AACzBG,QAAAA,UAAU,YAAY;AAEpB,YAAM,cAAc;AACpB,YAAMC,SAAAA,QAAiB,KAAK,EAAE,KAAK,MAAM,OAAO,QAAS,CAAA;AACzD,YAAM,aAAa;AAAA,IAKrB,CAAC;AAQD,mBAAe,UAAUC,UAAS,gBAAgB,MAAM;AACtD,UAAI;AAEF,YAAIC,SAAc,MAAC,gBAAgBA,eAAe,iBAAiBD,SAAQ,MAAM,OAAO,KAAK;AAC3F,gBAAM,SAAS,MAAM,MAAM,OAAO;AAAA,YAChC,OAAO;AAAA,YACP,SAAS;AAAA,YACT,SAAS;AAAA,cACP,EAAE,OAAO,UAAU,OAAO,MAAO;AAAA,cACjC,EAAE,OAAO,WAAW,OAAO,KAAI;AAAA,YACzC;AAAA,UACO,CAAA;AAED,cAAI,CAAC,OAAQ,OAAM;AAEpBC,mBAAAA,MAAe,eAAeD,SAAQ,MAAM,OAAO;AAClDC,mBAAAA,MAAe,YAAY,CAAA;AAAA,QACjC;AAII,gBAAQ,IAAI,mBAAmBD,SAAQ,MAAM,OAAO,GAAG;AACvD,cAAME,SAAAA,QAAiB,iBAAiBF,UAASA,SAAQ,MAAM,OAAO,KAAK,aAAa;AACxF,eAAO;AAAA,MACR,SAAQG,QAAO;AACd,gBAAQ,MAAM,uCAAuCA,MAAK;AAC1D,cAAMA;AAAA,MACV;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Product.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n <div v-if=\"products.state.current\" class=\"h-100 w-100 mobile:pd-thin pd-big bg-white\">\n <div class=\"cols-2-1_2 w-100 gap-medium\">\n\n <ImagesThumbnails\n :images=\"images\"\n :product=\"product\"\n />\n\n <div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n <IconEdit\n v-if=\"accesses && hasAccess(route.params._id, 'products', 'edit', accesses)\"\n @click=\"$router.push({ name: 'ProductEdit', params: { _id: product.owner.target, product: product._id } })\"\n class=\"pos-absolute pos-t-regular pos-r-regular i-regular t-transp\"\n />\n\n <h2 class=\"w-100 h1-product mn-b-small\">{{ product.name }}</h2>\n \n <Price :product=\"product\" size=\"big\" class=\"flex gap-micro flex-center pd-small br-solid br-1px br-black-transp-10 w-max mn-b-medium\" />\n\n <p v-if=\"product.description && !product.localization < 1 && !recommendation\" class=\"w-100 mn-b-small\">\n {{ product.description }}\n </p>\n <p v-if=\"product.localization && product.localization.length > 1 && !recommendation\" class=\"w-100 mn-b-small\">\n {{ t('description') }}\n </p>\n\n <div class=\"w-max-33r mn-b-medium\">\n <div v-if=\"product.listing === 'rent'\">\n <button @click=\"openPopup\" class=\"cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button\">\n <div class=\"gap-thin flex flex-center flex-nowrap\">\n <IconShopcartAdd class=\"i-semi\" />\n <span>{{ t('addtoorder') }}</span>\n </div>\n </button>\n <PopupDateSelector\n :product=\"product\"\n :isOpen=\"isPopupOpen\"\n :showFees=\"globals.state.options?.orders.showFees\"\n :feesRate=\"globals.state.options?.orders.feesRate || 0.15\"\n :showVat=\"globals.state.options?.orders.showVat\"\n :vatRate=\"globals.state.options?.orders.vatRate || 0\"\n :onConfirm=\"selectedDates => addToCart(product, selectedDates)\"\n @close=\"closePopup\"\n />\n </div>\n <div v-else>\n <Button\n v-if=\"product.available > 0\"\n :submit=\"() => addToCart(product, null)\"\n class=\"h-3r w-max mobile:w-100 bg-main button\"\n >\n <div class=\"gap-thin flex flex-center flex-nowrap\">\n <IconShopcartAdd class=\"i-semi\" />\n <span>{{ t('addtoorder') }}</span>\n </div>\n </Button>\n <div\n v-else\n class=\"flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton\"\n >\n Out of Stock\n </div>\n </div>\n </div>\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconInfo class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Product Details</p>\n </div>\n\n <div class=\"cols-2 mn-b-medium w-100 gap-small\">\n <div\n v-if=\"product.information.length > 0\"\n v-for=\"information in product.information\"\n class=\"w-100 pd-small radius-small bg-light product-information\"\n >\n <p class=\"t-demi\">{{ information.name }}</p>\n <p>{{ information.value }}</p>\n </div>\n </div>\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconGroups class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Provided by</p>\n </div>\n\n <CardOrganization \n v-if=\"product.owner\"\n :organization=\"product.owner.target\"\n :showRating=\"true\"\n :showFollowers=\"false\"\n :showProducts=\"false\"\n class=\"bg-light w-100 o-hidden radius-medium pd-small \"\n />\n \n </div>\n </div>\n\n <div class=\"h-max mn-t-big pos-relative\">\n <h3 class=\"pd-b-small\">Most Popular</h3>\n <PopularProducts class=\"mn-r-big-negative mn-l-big-negative\"/>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, ref, onMounted, getCurrentInstance } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth'\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals'\nimport * as products from '@martyrs/src/modules/products/store/products'\nimport * as categories from '@martyrs/src/modules/products/store/categories'\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\nimport PopupDateSelector from '@martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue'\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\nimport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue'\n\n\nimport ImagesThumbnails from '@martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue'\nimport Price from '@martyrs/src/modules/products/components/elements/Price.vue'\nimport PopularProducts from '@martyrs/src/modules/products/components/sections/PopularProducts.vue'\n\nimport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\nconst route = useRoute()\nconst router = useRouter()\nconst { proxy } = getCurrentInstance()\nconst { returnCurrency } = useGlobalMixins()\n\nconst product = computed(() => products.state.current)\nconst images = computed(() => products.state.current.images)\n\nconst tabProduct = ref('description')\n\nconst text = {\n en: { addtoorder: 'Add to Cart', fastorder: 'Fast Order' },\n ru: { addtoorder: 'Добавить в корзину', fastorder: 'Быстрый заказ' }\n}\n\nconst { t } = useI18n({ messages: text })\n\nconst isPopupOpen = ref(false)\n\nfunction openPopup() {\n isPopupOpen.value = true\n}\n\nfunction closePopup() {\n isPopupOpen.value = false\n}\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n \nconst pageProduct = ref(null)\nconst orderOrganization = ref(null)\n\nproducts.state.current = null\nonMounted(async () => {\n\n emits('page-loading');\n await products.actions.read({ _id: route.params.product })\n\n if (typeof gtag === 'function') {\n gtag('event', 'view_item', {\n currency: returnCurrency(), // Замените на вашу валюту, если отличается\n value: product.value.price || 0,\n items: [{\n item_id: product.value.id || product.value._id,\n item_name: product.value.name || product.value.title,\n price: product.value.price || 0,\n item_category: product.value.category || '',\n item_brand: product.value.owner?.target?.profile.name || ''\n }]\n });\n }\n\n emits('page-loaded');\n\n // route.meta.title.en = product.value.name\n // route.meta.title.ru = roduct.value.name\n\n})\n\n// onBeforeMounted\n\nfunction validateToCard(product) {\n return !(product.available > 0)\n}\n\nasync function addToCart(product, selectedDates = null) {\n try {\n // Если организация товара отличается от текущей в корзине\n if (shopcart.state.organization && shopcart.state.organization !== product.owner.target._id) {\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) throw error\n\n shopcart.state.organization = product.owner.target._id\n shopcart.state.positions = []\n }\n\n if (typeof gtag === 'function') {\n gtag('event', 'add_to_cart', {\n currency: returnCurrency(), // Замените на вашу валюту, если отличается\n value: product.price || 0,\n items: [{\n item_id: product._id,\n item_name: product.name,\n price: product.price || 0,\n quantity: 1,\n item_category: product.category || '',\n item_brand: product.owner?.target?.profile?.name || ''\n }]\n });\n }\n\n console.log('organization is', product.owner.target._id)\n await shopcart.actions.addProductToCart(product, product.owner.target._id, selectedDates)\n return true\n } catch (error) {\n console.error('Error while adding product to cart:', error)\n throw error\n }\n}\n</script>\n\n<style lang=\"scss\">\n</style>"],"names":["useRoute","useRouter","getCurrentInstance","useGlobalMixins","computed","products.state","ref","useI18n","onMounted","products.actions","product","shopcart.state","shopcart.actions","error"],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { getCurrentInstance, computed, ref, onMounted, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, createBlock, unref, toDisplayString, withCtx, Fragment, renderList } from "vue";
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
3
|
import { useI18n } from "vue-i18n";
|
|
4
|
+
import { useGlobalMixins } from "../../../globals/views/mixins/mixins.js";
|
|
4
5
|
import "../../../auth/views/store/auth.js";
|
|
5
6
|
import { state as state$1 } from "../../../globals/views/store/globals.js";
|
|
6
7
|
import { state, actions } from "../../store/products.js";
|
|
7
8
|
import "../../store/categories.js";
|
|
8
9
|
import { state as state$2, actions as actions$1 } from "../../../orders/store/shopcart.js";
|
|
9
|
-
import _sfc_main$5 from "../../../../components/Button/Button.
|
|
10
|
+
import _sfc_main$5 from "../../../../components/Button/Button.vue2.js";
|
|
10
11
|
/* empty css */
|
|
11
|
-
/* empty css
|
|
12
|
+
/* empty css */
|
|
12
13
|
import _sfc_main$4 from "../../../globals/views/components/blocks/PopupDateSelector.vue.js";
|
|
13
14
|
import _sfc_main$1 from "../../../icons/navigation/IconEdit.vue.js";
|
|
14
15
|
import _sfc_main$3 from "../../../icons/actions/IconShopcartAdd.vue.js";
|
|
@@ -55,6 +56,7 @@ const _sfc_main = {
|
|
|
55
56
|
const route = useRoute();
|
|
56
57
|
useRouter();
|
|
57
58
|
const { proxy } = getCurrentInstance();
|
|
59
|
+
const { returnCurrency } = useGlobalMixins();
|
|
58
60
|
const product = computed(() => state.current);
|
|
59
61
|
const images = computed(() => state.current.images);
|
|
60
62
|
ref("description");
|
|
@@ -75,11 +77,27 @@ const _sfc_main = {
|
|
|
75
77
|
ref(null);
|
|
76
78
|
state.current = null;
|
|
77
79
|
onMounted(async () => {
|
|
80
|
+
var _a, _b;
|
|
78
81
|
emits("page-loading");
|
|
79
82
|
await actions.read({ _id: route.params.product });
|
|
83
|
+
if (typeof gtag === "function") {
|
|
84
|
+
gtag("event", "view_item", {
|
|
85
|
+
currency: returnCurrency(),
|
|
86
|
+
// Замените на вашу валюту, если отличается
|
|
87
|
+
value: product.value.price || 0,
|
|
88
|
+
items: [{
|
|
89
|
+
item_id: product.value.id || product.value._id,
|
|
90
|
+
item_name: product.value.name || product.value.title,
|
|
91
|
+
price: product.value.price || 0,
|
|
92
|
+
item_category: product.value.category || "",
|
|
93
|
+
item_brand: ((_b = (_a = product.value.owner) == null ? void 0 : _a.target) == null ? void 0 : _b.profile.name) || ""
|
|
94
|
+
}]
|
|
95
|
+
});
|
|
96
|
+
}
|
|
80
97
|
emits("page-loaded");
|
|
81
98
|
});
|
|
82
99
|
async function addToCart(product2, selectedDates = null) {
|
|
100
|
+
var _a, _b, _c;
|
|
83
101
|
try {
|
|
84
102
|
if (state$2.organization && state$2.organization !== product2.owner.target._id) {
|
|
85
103
|
const result = await proxy.$alert({
|
|
@@ -94,6 +112,21 @@ const _sfc_main = {
|
|
|
94
112
|
state$2.organization = product2.owner.target._id;
|
|
95
113
|
state$2.positions = [];
|
|
96
114
|
}
|
|
115
|
+
if (typeof gtag === "function") {
|
|
116
|
+
gtag("event", "add_to_cart", {
|
|
117
|
+
currency: returnCurrency(),
|
|
118
|
+
// Замените на вашу валюту, если отличается
|
|
119
|
+
value: product2.price || 0,
|
|
120
|
+
items: [{
|
|
121
|
+
item_id: product2._id,
|
|
122
|
+
item_name: product2.name,
|
|
123
|
+
price: product2.price || 0,
|
|
124
|
+
quantity: 1,
|
|
125
|
+
item_category: product2.category || "",
|
|
126
|
+
item_brand: ((_c = (_b = (_a = product2.owner) == null ? void 0 : _a.target) == null ? void 0 : _b.profile) == null ? void 0 : _c.name) || ""
|
|
127
|
+
}]
|
|
128
|
+
});
|
|
129
|
+
}
|
|
97
130
|
console.log("organization is", product2.owner.target._id);
|
|
98
131
|
await actions$1.addProductToCart(product2, product2.owner.target._id, selectedDates);
|
|
99
132
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Product.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n <div v-if=\"products.state.current\" class=\"h-100 w-100 mobile:pd-thin pd-big bg-white\">\n <div class=\"cols-2-1_2 w-100 gap-medium\">\n\n <ImagesThumbnails\n :images=\"images\"\n :product=\"product\"\n />\n\n <div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n <IconEdit\n v-if=\"accesses && hasAccess(route.params._id, 'products', 'edit', accesses)\"\n @click=\"$router.push({ name: 'ProductEdit', params: { _id: product.owner.target, product: product._id } })\"\n class=\"pos-absolute pos-t-regular pos-r-regular i-regular t-transp\"\n />\n\n\n\n <h2 class=\"w-100 h1-product mn-b-small\">{{ product.name }}</h2>\n \n <Price :product=\"product\" size=\"big\" class=\"flex gap-micro flex-center pd-small br-solid br-1px br-black-transp-10 w-max mn-b-medium\" />\n\n <p v-if=\"product.description && !product.localization < 1 && !recommendation\" class=\"w-100 mn-b-small\">\n {{ product.description }}\n </p>\n <p v-if=\"product.localization && product.localization.length > 1 && !recommendation\" class=\"w-100 mn-b-small\">\n {{ t('description') }}\n </p>\n\n <div class=\"w-max-33r mn-b-medium\">\n <div v-if=\"product.listing === 'rent'\">\n <button @click=\"openPopup\" class=\"cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button\">\n <div class=\"gap-thin flex flex-center flex-nowrap\">\n <IconShopcartAdd class=\"i-semi\" />\n <span>{{ t('addtoorder') }}</span>\n </div>\n </button>\n <PopupDateSelector\n :product=\"product\"\n :isOpen=\"isPopupOpen\"\n :showFees=\"globals.state.options?.orders.showFees\"\n :feesRate=\"globals.state.options?.orders.feesRate || 0.15\"\n :showVat=\"globals.state.options?.orders.showVat\"\n :vatRate=\"globals.state.options?.orders.vatRate || 0\"\n :onConfirm=\"selectedDates => addToCart(product, selectedDates)\"\n @close=\"closePopup\"\n />\n </div>\n <div v-else>\n <Button\n v-if=\"product.available > 0\"\n :submit=\"() => addToCart(product, null)\"\n class=\"h-3r w-max mobile:w-100 bg-main button\"\n >\n <div class=\"gap-thin flex flex-center flex-nowrap\">\n <IconShopcartAdd class=\"i-semi\" />\n <span>{{ t('addtoorder') }}</span>\n </div>\n </Button>\n <div\n v-else\n class=\"flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton\"\n >\n Out of Stock\n </div>\n </div>\n </div>\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconInfo class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Product Details</p>\n </div>\n\n <div class=\"cols-2 mn-b-medium w-100 gap-small\">\n <div\n v-if=\"product.information.length > 0\"\n v-for=\"information in product.information\"\n class=\"w-100 pd-small radius-small bg-light product-information\"\n >\n <p class=\"t-demi\">{{ information.name }}</p>\n <p>{{ information.value }}</p>\n </div>\n </div>\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconGroups class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Provided by</p>\n </div>\n\n <CardOrganization \n v-if=\"product.owner\"\n :organization=\"product.owner.target\"\n :showRating=\"true\"\n :showFollowers=\"false\"\n :showProducts=\"false\"\n class=\"bg-light w-100 o-hidden radius-medium pd-small \"\n />\n\n\n\n \n </div>\n </div>\n\n <div class=\"h-max mn-t-big pos-relative\">\n <h3 class=\"pd-b-small\">Most Popular</h3>\n <PopularProducts class=\"mn-r-big-negative mn-l-big-negative\"/>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, ref, onMounted, getCurrentInstance } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\n\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth'\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals'\nimport * as products from '@martyrs/src/modules/products/store/products'\nimport * as categories from '@martyrs/src/modules/products/store/categories'\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\nimport PopupDateSelector from '@martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue'\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\nimport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue'\n\n\nimport ImagesThumbnails from '@martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue'\nimport Price from '@martyrs/src/modules/products/components/elements/Price.vue'\nimport PopularProducts from '@martyrs/src/modules/products/components/sections/PopularProducts.vue'\n\n import CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\nconst route = useRoute()\nconst router = useRouter()\nconst { proxy } = getCurrentInstance()\n\nconst product = computed(() => products.state.current)\nconst images = computed(() => products.state.current.images)\n\nconst tabProduct = ref('description')\n\nconst text = {\n en: { addtoorder: 'Add to Cart', fastorder: 'Fast Order' },\n ru: { addtoorder: 'Добавить в корзину', fastorder: 'Быстрый заказ' }\n}\n\nconst { t } = useI18n({ messages: text })\n\nconst isPopupOpen = ref(false)\n\nfunction openPopup() {\n isPopupOpen.value = true\n}\n\nfunction closePopup() {\n isPopupOpen.value = false\n}\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n \nconst pageProduct = ref(null)\nconst orderOrganization = ref(null)\n\nproducts.state.current = null\nonMounted(async () => {\n\n emits('page-loading');\n await products.actions.read({ _id: route.params.product })\n emits('page-loaded');\n\n // route.meta.title.en = product.value.name\n // route.meta.title.ru = roduct.value.name\n\n})\n\n// onBeforeMounted\n\nfunction validateToCard(product) {\n return !(product.available > 0)\n}\n\nasync function addToCart(product, selectedDates = null) {\n try {\n // Если организация товара отличается от текущей в корзине\n if (shopcart.state.organization && shopcart.state.organization !== product.owner.target._id) {\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) throw error\n\n shopcart.state.organization = product.owner.target._id\n shopcart.state.positions = []\n }\n\n \n\n console.log('organization is', product.owner.target._id)\n await shopcart.actions.addProductToCart(product, product.owner.target._id, selectedDates)\n return true\n } catch (error) {\n console.error('Error while adding product to cart:', error)\n throw error\n }\n}\n</script>\n\n<style lang=\"scss\">\n</style>"],"names":["products.state","products.actions","product","shopcart.state","shopcart.actions","error"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8IA,UAAM,QAAQ,SAAQ;AACP,cAAS;AACxB,UAAM,EAAE,MAAO,IAAG,mBAAkB;AAEpC,UAAM,UAAU,SAAS,MAAMA,MAAe,OAAO;AACrD,UAAM,SAAS,SAAS,MAAMA,MAAe,QAAQ,MAAM;AAExC,QAAI,aAAa;AAEpC,UAAM,OAAO;AAAA,MACX,IAAI,EAAE,YAAY,eAAe,WAAW,aAAc;AAAA,MAC1D,IAAI,EAAE,YAAY,sBAAsB,WAAW,gBAAe;AAAA,IACpE;AAEA,UAAM,EAAE,EAAC,IAAK,QAAQ,EAAE,UAAU,KAAM,CAAA;AAExC,UAAM,cAAc,IAAI,KAAK;AAE7B,aAAS,YAAY;AACnB,kBAAY,QAAQ;AAAA,IACtB;AAEA,aAAS,aAAa;AACpB,kBAAY,QAAQ;AAAA,IACtB;AAEA,UAAM,QAAQ;AAEM,QAAI,IAAI;AACF,QAAI,IAAI;AAElCA,UAAe,UAAU;AACzB,cAAU,YAAY;AAEpB,YAAM,cAAc;AACpB,YAAMC,QAAiB,KAAK,EAAE,KAAK,MAAM,OAAO,QAAS,CAAA;AACzD,YAAM,aAAa;AAAA,IAKrB,CAAC;AAQD,mBAAe,UAAUC,UAAS,gBAAgB,MAAM;AACtD,UAAI;AAEF,YAAIC,QAAe,gBAAgBA,QAAe,iBAAiBD,SAAQ,MAAM,OAAO,KAAK;AAC3F,gBAAM,SAAS,MAAM,MAAM,OAAO;AAAA,YAChC,OAAO;AAAA,YACP,SAAS;AAAA,YACT,SAAS;AAAA,cACP,EAAE,OAAO,UAAU,OAAO,MAAO;AAAA,cACjC,EAAE,OAAO,WAAW,OAAO,KAAI;AAAA,YACzC;AAAA,UACO,CAAA;AAED,cAAI,CAAC,OAAQ,OAAM;AAEpBC,kBAAe,eAAeD,SAAQ,MAAM,OAAO;AAClDC,kBAAe,YAAY,CAAA;AAAA,QACjC;AAII,gBAAQ,IAAI,mBAAmBD,SAAQ,MAAM,OAAO,GAAG;AACvD,cAAME,UAAiB,iBAAiBF,UAASA,SAAQ,MAAM,OAAO,KAAK,aAAa;AACxF,eAAO;AAAA,MACR,SAAQG,QAAO;AACd,gBAAQ,MAAM,uCAAuCA,MAAK;AAC1D,cAAMA;AAAA,MACV;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Product.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n <div v-if=\"products.state.current\" class=\"h-100 w-100 mobile:pd-thin pd-big bg-white\">\n <div class=\"cols-2-1_2 w-100 gap-medium\">\n\n <ImagesThumbnails\n :images=\"images\"\n :product=\"product\"\n />\n\n <div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n <IconEdit\n v-if=\"accesses && hasAccess(route.params._id, 'products', 'edit', accesses)\"\n @click=\"$router.push({ name: 'ProductEdit', params: { _id: product.owner.target, product: product._id } })\"\n class=\"pos-absolute pos-t-regular pos-r-regular i-regular t-transp\"\n />\n\n <h2 class=\"w-100 h1-product mn-b-small\">{{ product.name }}</h2>\n \n <Price :product=\"product\" size=\"big\" class=\"flex gap-micro flex-center pd-small br-solid br-1px br-black-transp-10 w-max mn-b-medium\" />\n\n <p v-if=\"product.description && !product.localization < 1 && !recommendation\" class=\"w-100 mn-b-small\">\n {{ product.description }}\n </p>\n <p v-if=\"product.localization && product.localization.length > 1 && !recommendation\" class=\"w-100 mn-b-small\">\n {{ t('description') }}\n </p>\n\n <div class=\"w-max-33r mn-b-medium\">\n <div v-if=\"product.listing === 'rent'\">\n <button @click=\"openPopup\" class=\"cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button\">\n <div class=\"gap-thin flex flex-center flex-nowrap\">\n <IconShopcartAdd class=\"i-semi\" />\n <span>{{ t('addtoorder') }}</span>\n </div>\n </button>\n <PopupDateSelector\n :product=\"product\"\n :isOpen=\"isPopupOpen\"\n :showFees=\"globals.state.options?.orders.showFees\"\n :feesRate=\"globals.state.options?.orders.feesRate || 0.15\"\n :showVat=\"globals.state.options?.orders.showVat\"\n :vatRate=\"globals.state.options?.orders.vatRate || 0\"\n :onConfirm=\"selectedDates => addToCart(product, selectedDates)\"\n @close=\"closePopup\"\n />\n </div>\n <div v-else>\n <Button\n v-if=\"product.available > 0\"\n :submit=\"() => addToCart(product, null)\"\n class=\"h-3r w-max mobile:w-100 bg-main button\"\n >\n <div class=\"gap-thin flex flex-center flex-nowrap\">\n <IconShopcartAdd class=\"i-semi\" />\n <span>{{ t('addtoorder') }}</span>\n </div>\n </Button>\n <div\n v-else\n class=\"flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton\"\n >\n Out of Stock\n </div>\n </div>\n </div>\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconInfo class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Product Details</p>\n </div>\n\n <div class=\"cols-2 mn-b-medium w-100 gap-small\">\n <div\n v-if=\"product.information.length > 0\"\n v-for=\"information in product.information\"\n class=\"w-100 pd-small radius-small bg-light product-information\"\n >\n <p class=\"t-demi\">{{ information.name }}</p>\n <p>{{ information.value }}</p>\n </div>\n </div>\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconGroups class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Provided by</p>\n </div>\n\n <CardOrganization \n v-if=\"product.owner\"\n :organization=\"product.owner.target\"\n :showRating=\"true\"\n :showFollowers=\"false\"\n :showProducts=\"false\"\n class=\"bg-light w-100 o-hidden radius-medium pd-small \"\n />\n \n </div>\n </div>\n\n <div class=\"h-max mn-t-big pos-relative\">\n <h3 class=\"pd-b-small\">Most Popular</h3>\n <PopularProducts class=\"mn-r-big-negative mn-l-big-negative\"/>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, ref, onMounted, getCurrentInstance } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth'\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals'\nimport * as products from '@martyrs/src/modules/products/store/products'\nimport * as categories from '@martyrs/src/modules/products/store/categories'\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\nimport PopupDateSelector from '@martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue'\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\nimport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue'\n\n\nimport ImagesThumbnails from '@martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue'\nimport Price from '@martyrs/src/modules/products/components/elements/Price.vue'\nimport PopularProducts from '@martyrs/src/modules/products/components/sections/PopularProducts.vue'\n\nimport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\nconst route = useRoute()\nconst router = useRouter()\nconst { proxy } = getCurrentInstance()\nconst { returnCurrency } = useGlobalMixins()\n\nconst product = computed(() => products.state.current)\nconst images = computed(() => products.state.current.images)\n\nconst tabProduct = ref('description')\n\nconst text = {\n en: { addtoorder: 'Add to Cart', fastorder: 'Fast Order' },\n ru: { addtoorder: 'Добавить в корзину', fastorder: 'Быстрый заказ' }\n}\n\nconst { t } = useI18n({ messages: text })\n\nconst isPopupOpen = ref(false)\n\nfunction openPopup() {\n isPopupOpen.value = true\n}\n\nfunction closePopup() {\n isPopupOpen.value = false\n}\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n \nconst pageProduct = ref(null)\nconst orderOrganization = ref(null)\n\nproducts.state.current = null\nonMounted(async () => {\n\n emits('page-loading');\n await products.actions.read({ _id: route.params.product })\n\n if (typeof gtag === 'function') {\n gtag('event', 'view_item', {\n currency: returnCurrency(), // Замените на вашу валюту, если отличается\n value: product.value.price || 0,\n items: [{\n item_id: product.value.id || product.value._id,\n item_name: product.value.name || product.value.title,\n price: product.value.price || 0,\n item_category: product.value.category || '',\n item_brand: product.value.owner?.target?.profile.name || ''\n }]\n });\n }\n\n emits('page-loaded');\n\n // route.meta.title.en = product.value.name\n // route.meta.title.ru = roduct.value.name\n\n})\n\n// onBeforeMounted\n\nfunction validateToCard(product) {\n return !(product.available > 0)\n}\n\nasync function addToCart(product, selectedDates = null) {\n try {\n // Если организация товара отличается от текущей в корзине\n if (shopcart.state.organization && shopcart.state.organization !== product.owner.target._id) {\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) throw error\n\n shopcart.state.organization = product.owner.target._id\n shopcart.state.positions = []\n }\n\n if (typeof gtag === 'function') {\n gtag('event', 'add_to_cart', {\n currency: returnCurrency(), // Замените на вашу валюту, если отличается\n value: product.price || 0,\n items: [{\n item_id: product._id,\n item_name: product.name,\n price: product.price || 0,\n quantity: 1,\n item_category: product.category || '',\n item_brand: product.owner?.target?.profile?.name || ''\n }]\n });\n }\n\n console.log('organization is', product.owner.target._id)\n await shopcart.actions.addProductToCart(product, product.owner.target._id, selectedDates)\n return true\n } catch (error) {\n console.error('Error while adding product to cart:', error)\n throw error\n }\n}\n</script>\n\n<style lang=\"scss\">\n</style>"],"names":["products.state","products.actions","product","shopcart.state","shopcart.actions","error"],"mappings":"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"}
|
|
@@ -5,10 +5,10 @@ const vueRouter = require("vue-router");
|
|
|
5
5
|
require("vue-i18n");
|
|
6
6
|
;/* empty css */
|
|
7
7
|
const Block = require("../../../../components/Block/Block.vue.cjs");
|
|
8
|
-
;/* empty css
|
|
8
|
+
;/* empty css */
|
|
9
9
|
const Field = require("../../../../components/Field/Field.vue.cjs");
|
|
10
10
|
const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
|
|
11
|
-
const Button = require("../../../../components/Button/Button.
|
|
11
|
+
const Button = require("../../../../components/Button/Button.vue2.cjs");
|
|
12
12
|
const Popup = require("../../../../components/Popup/Popup.vue2.cjs");
|
|
13
13
|
const Feed = require("../../../../components/Feed/Feed.vue.cjs");
|
|
14
14
|
const Tree = require("../../../../components/Tree/Tree.vue.cjs");
|
|
@@ -3,10 +3,10 @@ import { useRoute, useRouter } from "vue-router";
|
|
|
3
3
|
import "vue-i18n";
|
|
4
4
|
/* empty css */
|
|
5
5
|
import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
|
|
6
|
-
/* empty css
|
|
6
|
+
/* empty css */
|
|
7
7
|
import Field from "../../../../components/Field/Field.vue.js";
|
|
8
8
|
import _sfc_main$6 from "../../../../components/Checkbox/Checkbox.vue.js";
|
|
9
|
-
import _sfc_main$2 from "../../../../components/Button/Button.
|
|
9
|
+
import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
|
|
10
10
|
import _sfc_main$9 from "../../../../components/Popup/Popup.vue2.js";
|
|
11
11
|
import _sfc_main$a from "../../../../components/Feed/Feed.vue.js";
|
|
12
12
|
import _sfc_main$5 from "../../../../components/Tree/Tree.vue.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
|
-
const Tab = require("../../../../components/Tab/Tab.
|
|
5
|
+
const Tab = require("../../../../components/Tab/Tab.vue2.cjs");
|
|
6
6
|
const Feed = require("../../../../components/Feed/Feed.vue.cjs");
|
|
7
7
|
;/* empty css */
|
|
8
8
|
require("vue-i18n");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, watch, onMounted, onUnmounted, resolveComponent, createElementBlock, openBlock, createCommentVNode, createBlock, createElementVNode, unref, createVNode, renderSlot, withCtx, Fragment, renderList } from "vue";
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
|
-
import _sfc_main$2 from "../../../../components/Tab/Tab.
|
|
3
|
+
import _sfc_main$2 from "../../../../components/Tab/Tab.vue2.js";
|
|
4
4
|
import _sfc_main$5 from "../../../../components/Feed/Feed.vue.js";
|
|
5
5
|
/* empty css */
|
|
6
6
|
import "vue-i18n";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
;/* empty css */
|
|
5
|
-
;/* empty css
|
|
5
|
+
;/* empty css */
|
|
6
6
|
const Field = require("../../../../components/Field/Field.vue.cjs");
|
|
7
7
|
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
8
8
|
const _hoisted_1 = { class: "flex-nowrap flex mn-b-small gap-thin" };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createElementBlock, openBlock, Fragment, createElementVNode, createVNode, withCtx } from "vue";
|
|
2
2
|
/* empty css */
|
|
3
|
-
/* empty css
|
|
3
|
+
/* empty css */
|
|
4
4
|
import Field from "../../../../components/Field/Field.vue.js";
|
|
5
5
|
import Select from "../../../../components/Select/Select.vue.js";
|
|
6
6
|
const _hoisted_1 = { class: "flex-nowrap flex mn-b-small gap-thin" };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
const Button = require("../../../../components/Button/Button.
|
|
5
|
-
const Tab = require("../../../../components/Tab/Tab.
|
|
4
|
+
const Button = require("../../../../components/Button/Button.vue2.cjs");
|
|
5
|
+
const Tab = require("../../../../components/Tab/Tab.vue2.cjs");
|
|
6
6
|
const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
|
|
7
7
|
const PlaceholderImage = require("../../../icons/placeholders/PlaceholderImage.vue.cjs");
|
|
8
8
|
const Images360 = require("../blocks/Images360.vue.cjs");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { computed, ref, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, createVNode, unref, toDisplayString, Transition, withCtx, Fragment, renderList, createTextVNode } from "vue";
|
|
2
|
-
import _sfc_main$4 from "../../../../components/Button/Button.
|
|
3
|
-
import _sfc_main$3 from "../../../../components/Tab/Tab.
|
|
2
|
+
import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
|
|
3
|
+
import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
|
|
4
4
|
import _sfc_main$1 from "../../../icons/navigation/IconEdit.vue.js";
|
|
5
5
|
import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
|
|
6
6
|
import Images360 from "../blocks/Images360.vue.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
const Tab = require("../../../../../components/Tab/Tab.
|
|
4
|
+
const Tab = require("../../../../../components/Tab/Tab.vue2.cjs");
|
|
5
5
|
const Select = require("../../../../../components/Select/Select.vue.cjs");
|
|
6
6
|
const IconChevronRight = require("../../../../icons/navigation/IconChevronRight.vue.cjs");
|
|
7
7
|
const IconChevronLeft = require("../../../../icons/navigation/IconChevronLeft.vue.cjs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCssVars, ref, computed, watch, onMounted, nextTick, createElementBlock, openBlock, createElementVNode, createVNode, withDirectives, Fragment, renderList, toDisplayString, vModelSelect, createCommentVNode, normalizeClass, normalizeStyle } from "vue";
|
|
2
|
-
import _sfc_main$1 from "../../../../../components/Tab/Tab.
|
|
2
|
+
import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
|
|
3
3
|
import Select from "../../../../../components/Select/Select.vue.js";
|
|
4
4
|
import IconChevronRight from "../../../../icons/navigation/IconChevronRight.vue.js";
|
|
5
5
|
import IconChevronLeft from "../../../../icons/navigation/IconChevronLeft.vue.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
const Tab = require("../../../../../components/Tab/Tab.
|
|
4
|
+
const Tab = require("../../../../../components/Tab/Tab.vue2.cjs");
|
|
5
5
|
const Feed = require("../../../../../components/Feed/Feed.vue.cjs");
|
|
6
6
|
;/* empty css */
|
|
7
7
|
const GanttChart = require("./GanttChart.vue.cjs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref, createElementBlock, openBlock, createElementVNode, createVNode, unref, toDisplayString, withCtx } from "vue";
|
|
2
|
-
import _sfc_main$1 from "../../../../../components/Tab/Tab.
|
|
2
|
+
import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
|
|
3
3
|
import _sfc_main$2 from "../../../../../components/Feed/Feed.vue.js";
|
|
4
4
|
/* empty css */
|
|
5
5
|
import GanttChart from "./GanttChart.vue.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const Popup = require("../../../../components/Popup/Popup.vue2.cjs");
|
|
5
|
-
const Button = require("../../../../components/Button/Button.
|
|
5
|
+
const Button = require("../../../../components/Button/Button.vue2.cjs");
|
|
6
6
|
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
7
7
|
const reports = require("../../store/reports.cjs");
|
|
8
8
|
const _sfc_main = {
|