@ozdao/martyrs 0.2.425 → 0.2.426
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/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +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/PhotoViewer/PhotoViewer.vue.cjs +87 -5
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +88 -6
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js.map +1 -1
- package/dist/martyrs/src/components/Popup/{Popup.vue2.cjs → Popup.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js.map → Popup.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js → Popup.vue.js} +2 -2
- package/dist/martyrs/src/components/Popup/Popup.vue.js.map +1 -0
- package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue.cjs → SelectMulti.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue.js → SelectMulti.vue2.js} +2 -2
- package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue.cjs.map → SelectMulti.vue2.js.map} +1 -1
- 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 +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- 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 +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- 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/community/components/sections/HotPosts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- 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/Event.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.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/events/components/sections/EventsHot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
- 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/Navigation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.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/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/OrderCreateBackoffice.vue.cjs +3 -3
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +3 -3
- 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/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.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 +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
- 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/DetailsTabSection.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
- 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/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.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/blocks/CardPosition.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +53 -15
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.js +54 -16
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +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/EditLeftover.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
- 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 +39 -67
- 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 +40 -68
- 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/SectionProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- 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/rents/views/components/pages/RentsEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +2 -2
- 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/blocks/CardSpot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.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/style.css +39 -61
- package/package.json +1 -1
- package/src/components/PhotoViewer/PhotoViewer.vue +140 -12
- package/src/modules/products/components/blocks/ImagesThumbnails.vue +46 -37
- package/src/modules/products/components/pages/Product.vue +5 -28
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.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/Popup/Popup.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +0 -1
- package/dist/martyrs/src/components/Tab/Tab.vue.js.map +0 -1
|
@@ -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";
|
|
@@ -4,8 +4,8 @@ const vue = require("vue");
|
|
|
4
4
|
const Block = require("../../../../../components/Block/Block.vue.cjs");
|
|
5
5
|
const Field = require("../../../../../components/Field/Field.vue.cjs");
|
|
6
6
|
const Feed = require("../../../../../components/Feed/Feed.vue.cjs");
|
|
7
|
-
const Popup = require("../../../../../components/Popup/Popup.
|
|
8
|
-
;/* empty css
|
|
7
|
+
const Popup = require("../../../../../components/Popup/Popup.vue.cjs");
|
|
8
|
+
;/* empty css */
|
|
9
9
|
;/* empty css */
|
|
10
10
|
const CardOrderItem = require("../../../../orders/components/blocks/CardOrderItem.vue.cjs");
|
|
11
11
|
const vueRouter = require("vue-router");
|
|
@@ -2,8 +2,8 @@ import { ref, computed, onMounted, createElementBlock, openBlock, createElementV
|
|
|
2
2
|
import _sfc_main$4 from "../../../../../components/Block/Block.vue.js";
|
|
3
3
|
import Field from "../../../../../components/Field/Field.vue.js";
|
|
4
4
|
import _sfc_main$2 from "../../../../../components/Feed/Feed.vue.js";
|
|
5
|
-
import _sfc_main$1 from "../../../../../components/Popup/Popup.
|
|
6
|
-
/* empty css
|
|
5
|
+
import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
|
|
6
|
+
/* empty css */
|
|
7
7
|
/* empty css */
|
|
8
8
|
import _sfc_main$3 from "../../../../orders/components/blocks/CardOrderItem.vue.js";
|
|
9
9
|
import { useRoute, useRouter } from "vue-router";
|
|
@@ -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 Popup = require("../../../../components/Popup/Popup.
|
|
4
|
+
const Popup = require("../../../../components/Popup/Popup.vue.cjs");
|
|
5
5
|
const Button = require("../../../../components/Button/Button.vue.cjs");
|
|
6
6
|
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
7
7
|
const reports = require("../../store/reports.cjs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { reactive, ref, createElementBlock, openBlock, renderSlot, createVNode, withCtx, createElementVNode, createTextVNode } from "vue";
|
|
2
|
-
import _sfc_main$1 from "../../../../components/Popup/Popup.
|
|
2
|
+
import _sfc_main$1 from "../../../../components/Popup/Popup.vue.js";
|
|
3
3
|
import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
|
|
4
4
|
import Select from "../../../../components/Select/Select.vue.js";
|
|
5
5
|
import { actions } from "../../store/reports.js";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
|
|
5
5
|
const IconCheckmark = require("../../../icons/navigation/IconCheckmark.vue.cjs");
|
|
6
|
-
const Chips = require("../../../../components/Chips/Chips.
|
|
6
|
+
const Chips = require("../../../../components/Chips/Chips.vue2.cjs");
|
|
7
7
|
const Map = require("../../../../components/Map/Map.vue.cjs");
|
|
8
8
|
const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.cjs");
|
|
9
9
|
const _hoisted_1 = { class: "pos-relative cols-2-1_3" };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createElementBlock, openBlock, createVNode, createElementVNode, createBlock, createCommentVNode, toDisplayString } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../../../icons/navigation/IconEdit.vue.js";
|
|
3
3
|
import _sfc_main$2 from "../../../icons/navigation/IconCheckmark.vue.js";
|
|
4
|
-
import _sfc_main$3 from "../../../../components/Chips/Chips.
|
|
4
|
+
import _sfc_main$3 from "../../../../components/Chips/Chips.vue2.js";
|
|
5
5
|
import Map from "../../../../components/Map/Map.vue.js";
|
|
6
6
|
import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
7
7
|
const _hoisted_1 = { class: "pos-relative cols-2-1_3" };
|
|
@@ -5,7 +5,7 @@ const vueRouter = require("vue-router");
|
|
|
5
5
|
const vueI18n = require("vue-i18n");
|
|
6
6
|
;/* empty css */
|
|
7
7
|
;/* empty css */
|
|
8
|
-
;/* empty css
|
|
8
|
+
;/* empty css */
|
|
9
9
|
const globals = require("../../../globals/views/store/globals.cjs");
|
|
10
10
|
const categories = require("../../../products/store/categories.cjs");
|
|
11
11
|
const marketplace = require("../../../marketplace/views/store/marketplace.cjs");
|
|
@@ -3,7 +3,7 @@ import { useRoute, useRouter } from "vue-router";
|
|
|
3
3
|
import { useI18n } from "vue-i18n";
|
|
4
4
|
/* empty css */
|
|
5
5
|
/* empty css */
|
|
6
|
-
/* empty css
|
|
6
|
+
/* empty css */
|
|
7
7
|
import { state as state$1 } from "../../../globals/views/store/globals.js";
|
|
8
8
|
import { actions, state as state$2 } from "../../../products/store/categories.js";
|
|
9
9
|
import { state } from "../../../marketplace/views/store/marketplace.js";
|
|
@@ -4,7 +4,7 @@ const vue = require("vue");
|
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const Block = require("../../../../components/Block/Block.vue.cjs");
|
|
6
6
|
const UploadImage = require("../../../../components/UploadImage/UploadImage.vue.cjs");
|
|
7
|
-
;/* empty css
|
|
7
|
+
;/* empty css */
|
|
8
8
|
const Field = require("../../../../components/Field/Field.vue.cjs");
|
|
9
9
|
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
10
10
|
const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
|
|
@@ -12,7 +12,7 @@ const Address = require("../../../../components/Address/Address.vue2.cjs");
|
|
|
12
12
|
const LocationMarker = require("../../../../components/LocationMarker/LocationMarker.vue2.cjs");
|
|
13
13
|
const Button = require("../../../../components/Button/Button.vue.cjs");
|
|
14
14
|
require("vue-i18n");
|
|
15
|
-
;/* empty css
|
|
15
|
+
;/* empty css */
|
|
16
16
|
const spots = require("../../store/spots.cjs");
|
|
17
17
|
const _hoisted_1 = { class: "for-transition w-100 cols-1 pd-thin gap-thin" };
|
|
18
18
|
const _hoisted_2 = { class: "mn-r-auto" };
|
|
@@ -2,7 +2,7 @@ import { ref, onMounted, createElementBlock, openBlock, createVNode, createEleme
|
|
|
2
2
|
import { useRouter, useRoute } from "vue-router";
|
|
3
3
|
import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
|
|
4
4
|
import _sfc_main$3 from "../../../../components/UploadImage/UploadImage.vue.js";
|
|
5
|
-
/* empty css
|
|
5
|
+
/* empty css */
|
|
6
6
|
import Field from "../../../../components/Field/Field.vue.js";
|
|
7
7
|
import Select from "../../../../components/Select/Select.vue.js";
|
|
8
8
|
import _sfc_main$4 from "../../../../components/Checkbox/Checkbox.vue.js";
|
|
@@ -10,7 +10,7 @@ import _sfc_main$5 from "../../../../components/Address/Address.vue2.js";
|
|
|
10
10
|
import _sfc_main$6 from "../../../../components/LocationMarker/LocationMarker.vue2.js";
|
|
11
11
|
import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
|
|
12
12
|
import "vue-i18n";
|
|
13
|
-
/* empty css
|
|
13
|
+
/* empty css */
|
|
14
14
|
import { actions, state } from "../../store/spots.js";
|
|
15
15
|
const _hoisted_1 = { class: "for-transition w-100 cols-1 pd-thin gap-thin" };
|
|
16
16
|
const _hoisted_2 = { class: "mn-r-auto" };
|
package/dist/style.css
CHANGED
|
@@ -2159,39 +2159,55 @@ to {
|
|
|
2159
2159
|
width: 100%;
|
|
2160
2160
|
height: 100%;
|
|
2161
2161
|
object-fit: scale-down;
|
|
2162
|
-
transition: transform 0.
|
|
2162
|
+
transition: transform 0.05s;
|
|
2163
|
+
transform-origin: center center;
|
|
2163
2164
|
}
|
|
2164
2165
|
|
|
2165
|
-
.
|
|
2166
|
-
|
|
2166
|
+
.expand-enter-active[data-v-cd8791b7],
|
|
2167
|
+
.expand-leave-active[data-v-cd8791b7] {
|
|
2168
|
+
transition: max-height 0.5s ease-in-out;
|
|
2169
|
+
overflow: hidden;
|
|
2167
2170
|
}
|
|
2168
|
-
.
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
+
.scale-enter-active[data-v-cd8791b7],
|
|
2172
|
+
.scale-leave-active[data-v-cd8791b7] {
|
|
2173
|
+
transition: transform 0.5s ease-in-out;
|
|
2174
|
+
}
|
|
2175
|
+
.scale5-enter-from[data-v-cd8791b7],
|
|
2176
|
+
.scale5-leave-to[data-v-cd8791b7] {
|
|
2177
|
+
transform: scale(1.2);
|
|
2178
|
+
opacity: 0;
|
|
2171
2179
|
}
|
|
2172
|
-
.
|
|
2180
|
+
.scale5-enter-to[data-v-cd8791b7],
|
|
2181
|
+
.scale5-leave-from[data-v-cd8791b7] {
|
|
2182
|
+
transform: scale(1);
|
|
2183
|
+
opacity: 1;
|
|
2184
|
+
}
|
|
2185
|
+
.product-360-viewer[data-v-cd8791b7] {
|
|
2186
|
+
user-select: none;
|
|
2187
|
+
min-height: 16rem;
|
|
2188
|
+
}
|
|
2189
|
+
.product-360-viewer img[data-v-cd8791b7] {
|
|
2190
|
+
max-width: 100%;
|
|
2191
|
+
cursor: grab;
|
|
2192
|
+
|
|
2193
|
+
object-fit: cover;
|
|
2194
|
+
transition: all 0.3s ease;
|
|
2195
|
+
}
|
|
2196
|
+
.product-360-viewer img[data-v-cd8791b7]:active {
|
|
2197
|
+
cursor: grabbing;
|
|
2198
|
+
}
|
|
2199
|
+
|
|
2200
|
+
/*.product-360-viewer img:hover {
|
|
2201
|
+
transform: scale(1.1);
|
|
2202
|
+
}*/
|
|
2203
|
+
|
|
2204
|
+
.thumbnail[data-v-832a66d9] {
|
|
2173
2205
|
width: 100%;
|
|
2174
2206
|
max-width: 6rem;
|
|
2175
2207
|
height: 6rem;
|
|
2176
2208
|
object-fit: cover;
|
|
2177
2209
|
cursor: pointer;
|
|
2178
2210
|
}
|
|
2179
|
-
.popup[data-v-77776640] {
|
|
2180
|
-
position: fixed;
|
|
2181
|
-
top: 0;
|
|
2182
|
-
left: 0;
|
|
2183
|
-
width: 100vw;
|
|
2184
|
-
height: 100vh;
|
|
2185
|
-
background-color: rgba(0, 0, 0, 0.8);
|
|
2186
|
-
display: flex;
|
|
2187
|
-
justify-content: center;
|
|
2188
|
-
align-items: center;
|
|
2189
|
-
cursor: zoom-out;
|
|
2190
|
-
}
|
|
2191
|
-
.popup-image[data-v-77776640] {
|
|
2192
|
-
max-width: 90%;
|
|
2193
|
-
max-height: 90%;
|
|
2194
|
-
}
|
|
2195
2211
|
.vue-select {
|
|
2196
2212
|
background: #f7f7f7;
|
|
2197
2213
|
border-radius: 0.5rem;
|
|
@@ -2227,44 +2243,6 @@ to {
|
|
|
2227
2243
|
.spoiler-active[data-v-e326492a] {
|
|
2228
2244
|
transform: rotate(180deg);
|
|
2229
2245
|
}
|
|
2230
|
-
.expand-enter-active[data-v-cd8791b7],
|
|
2231
|
-
.expand-leave-active[data-v-cd8791b7] {
|
|
2232
|
-
transition: max-height 0.5s ease-in-out;
|
|
2233
|
-
overflow: hidden;
|
|
2234
|
-
}
|
|
2235
|
-
.scale-enter-active[data-v-cd8791b7],
|
|
2236
|
-
.scale-leave-active[data-v-cd8791b7] {
|
|
2237
|
-
transition: transform 0.5s ease-in-out;
|
|
2238
|
-
}
|
|
2239
|
-
.scale5-enter-from[data-v-cd8791b7],
|
|
2240
|
-
.scale5-leave-to[data-v-cd8791b7] {
|
|
2241
|
-
transform: scale(1.2);
|
|
2242
|
-
opacity: 0;
|
|
2243
|
-
}
|
|
2244
|
-
.scale5-enter-to[data-v-cd8791b7],
|
|
2245
|
-
.scale5-leave-from[data-v-cd8791b7] {
|
|
2246
|
-
transform: scale(1);
|
|
2247
|
-
opacity: 1;
|
|
2248
|
-
}
|
|
2249
|
-
.product-360-viewer[data-v-cd8791b7] {
|
|
2250
|
-
user-select: none;
|
|
2251
|
-
min-height: 16rem;
|
|
2252
|
-
}
|
|
2253
|
-
.product-360-viewer img[data-v-cd8791b7] {
|
|
2254
|
-
max-width: 100%;
|
|
2255
|
-
cursor: grab;
|
|
2256
|
-
|
|
2257
|
-
object-fit: cover;
|
|
2258
|
-
transition: all 0.3s ease;
|
|
2259
|
-
}
|
|
2260
|
-
.product-360-viewer img[data-v-cd8791b7]:active {
|
|
2261
|
-
cursor: grabbing;
|
|
2262
|
-
}
|
|
2263
|
-
|
|
2264
|
-
/*.product-360-viewer img:hover {
|
|
2265
|
-
transform: scale(1.1);
|
|
2266
|
-
}*/
|
|
2267
|
-
|
|
2268
2246
|
#glcanvas {
|
|
2269
2247
|
width: 100%;
|
|
2270
2248
|
height: 100%;
|
package/package.json
CHANGED
|
@@ -3,47 +3,119 @@
|
|
|
3
3
|
<img loading="lazy" :src="photoUrl" :style="imgStyle" ref="image" @load="initialize" />
|
|
4
4
|
</div>
|
|
5
5
|
</template>
|
|
6
|
-
|
|
7
6
|
<script setup>
|
|
8
|
-
import { ref, reactive, computed } from 'vue';
|
|
9
|
-
|
|
7
|
+
import { ref, reactive, computed, onMounted, watch } from 'vue';
|
|
10
8
|
const props = defineProps({
|
|
11
9
|
photoUrl: String,
|
|
12
10
|
show: Boolean,
|
|
13
11
|
});
|
|
14
|
-
|
|
15
12
|
const scale = ref(1);
|
|
16
13
|
const position = reactive({ x: 0, y: 0 });
|
|
17
14
|
const dragging = ref(false);
|
|
18
15
|
const startPosition = reactive({ x: 0, y: 0 });
|
|
19
16
|
const startScale = ref(1);
|
|
20
17
|
const startDistance = ref(0);
|
|
18
|
+
const image = ref(null);
|
|
19
|
+
const container = ref(null);
|
|
21
20
|
|
|
22
21
|
const imgStyle = computed(() => ({
|
|
23
22
|
transform: `scale(${scale.value}) translate(${position.x}px, ${position.y}px)`,
|
|
24
23
|
}));
|
|
25
24
|
|
|
25
|
+
// Наблюдаем за изменением масштаба, чтобы ограничивать позицию
|
|
26
|
+
watch(scale, () => {
|
|
27
|
+
constrainPosition();
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const getImageDimensions = () => {
|
|
31
|
+
if (!image.value) return { width: 0, height: 0 };
|
|
32
|
+
|
|
33
|
+
// Используем естественные размеры изображения
|
|
34
|
+
const imgWidth = image.value.naturalWidth;
|
|
35
|
+
const imgHeight = image.value.naturalHeight;
|
|
36
|
+
|
|
37
|
+
// Получаем размеры контейнера
|
|
38
|
+
const containerRect = image.value.parentElement?.getBoundingClientRect();
|
|
39
|
+
if (!containerRect) return { width: 0, height: 0 };
|
|
40
|
+
|
|
41
|
+
const containerWidth = containerRect.width;
|
|
42
|
+
const containerHeight = containerRect.height;
|
|
43
|
+
|
|
44
|
+
// Определяем, как изображение вписывается в контейнер (с учетом object-fit: scale-down)
|
|
45
|
+
let renderedWidth, renderedHeight;
|
|
46
|
+
|
|
47
|
+
if (imgWidth > containerWidth || imgHeight > containerHeight) {
|
|
48
|
+
const ratioX = containerWidth / imgWidth;
|
|
49
|
+
const ratioY = containerHeight / imgHeight;
|
|
50
|
+
const ratio = Math.min(ratioX, ratioY);
|
|
51
|
+
|
|
52
|
+
renderedWidth = imgWidth * ratio;
|
|
53
|
+
renderedHeight = imgHeight * ratio;
|
|
54
|
+
} else {
|
|
55
|
+
renderedWidth = imgWidth;
|
|
56
|
+
renderedHeight = imgHeight;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return {
|
|
60
|
+
renderedWidth,
|
|
61
|
+
renderedHeight,
|
|
62
|
+
containerWidth,
|
|
63
|
+
containerHeight
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
|
|
26
67
|
const handleWheel = (event) => {
|
|
27
68
|
event.preventDefault();
|
|
69
|
+
|
|
28
70
|
const delta = event.deltaY > 0 ? -0.1 : 0.1;
|
|
29
|
-
|
|
71
|
+
const newScale = Math.min(Math.max(1, scale.value + delta), 3);
|
|
72
|
+
|
|
73
|
+
// Рассчитываем позицию курсора относительно центра изображения
|
|
74
|
+
const rect = image.value.getBoundingClientRect();
|
|
75
|
+
const mouseX = event.clientX - rect.left - rect.width / 2;
|
|
76
|
+
const mouseY = event.clientY - rect.top - rect.height / 2;
|
|
77
|
+
|
|
78
|
+
// Сохраняем соотношение позиции курсора к изображению при масштабировании
|
|
79
|
+
const scaleChange = newScale / scale.value;
|
|
80
|
+
|
|
81
|
+
// Обновляем позицию так, чтобы точка под курсором оставалась на месте
|
|
82
|
+
position.x = position.x - (mouseX / scale.value) * (scaleChange - 1);
|
|
83
|
+
position.y = position.y - (mouseY / scale.value) * (scaleChange - 1);
|
|
84
|
+
|
|
85
|
+
// Обновляем масштаб
|
|
86
|
+
scale.value = newScale;
|
|
87
|
+
|
|
88
|
+
// Ограничиваем позицию после обновления масштаба
|
|
89
|
+
constrainPosition();
|
|
30
90
|
};
|
|
31
91
|
|
|
32
92
|
const startDrag = (event) => {
|
|
33
93
|
event.preventDefault();
|
|
94
|
+
if (scale.value <= 1) return; // Не позволяем перетаскивать при масштабе 1
|
|
95
|
+
|
|
34
96
|
dragging.value = true;
|
|
35
97
|
startPosition.x = event.type === 'mousedown' ? event.clientX : event.touches[0].clientX;
|
|
36
98
|
startPosition.y = event.type === 'mousedown' ? event.clientY : event.touches[0].clientY;
|
|
99
|
+
|
|
37
100
|
const move = (moveEvent) => {
|
|
38
101
|
if (dragging.value) {
|
|
39
102
|
const currentX = moveEvent.type === 'mousemove' ? moveEvent.clientX : moveEvent.touches[0].clientX;
|
|
40
103
|
const currentY = moveEvent.type === 'mousemove' ? moveEvent.clientY : moveEvent.touches[0].clientY;
|
|
41
|
-
|
|
42
|
-
|
|
104
|
+
|
|
105
|
+
const deltaX = (currentX - startPosition.x) / scale.value;
|
|
106
|
+
const deltaY = (currentY - startPosition.y) / scale.value;
|
|
107
|
+
|
|
108
|
+
position.x += deltaX;
|
|
109
|
+
position.y += deltaY;
|
|
110
|
+
|
|
111
|
+
// Ограничиваем позицию после перемещения
|
|
112
|
+
constrainPosition();
|
|
113
|
+
|
|
43
114
|
startPosition.x = currentX;
|
|
44
115
|
startPosition.y = currentY;
|
|
45
116
|
}
|
|
46
117
|
};
|
|
118
|
+
|
|
47
119
|
const endDrag = () => {
|
|
48
120
|
dragging.value = false;
|
|
49
121
|
document.removeEventListener('mousemove', move);
|
|
@@ -51,6 +123,7 @@ const startDrag = (event) => {
|
|
|
51
123
|
document.removeEventListener('touchmove', move);
|
|
52
124
|
document.removeEventListener('touchend', endDrag);
|
|
53
125
|
};
|
|
126
|
+
|
|
54
127
|
document.addEventListener('mousemove', move);
|
|
55
128
|
document.addEventListener('mouseup', endDrag);
|
|
56
129
|
document.addEventListener('touchmove', move);
|
|
@@ -79,7 +152,25 @@ const handleTouchMove = (event) => {
|
|
|
79
152
|
const distanceY = Math.abs(touch1.clientY - touch2.clientY);
|
|
80
153
|
const newDistance = Math.sqrt(distanceX ** 2 + distanceY ** 2);
|
|
81
154
|
const scaleFactor = newDistance / startDistance.value;
|
|
82
|
-
|
|
155
|
+
|
|
156
|
+
// Получаем центр между двумя касаниями
|
|
157
|
+
const centerX = (touch1.clientX + touch2.clientX) / 2;
|
|
158
|
+
const centerY = (touch1.clientY + touch2.clientY) / 2;
|
|
159
|
+
|
|
160
|
+
// Получаем координаты центра касания относительно изображения
|
|
161
|
+
const rect = image.value.getBoundingClientRect();
|
|
162
|
+
const touchCenterX = centerX - rect.left - rect.width / 2;
|
|
163
|
+
const touchCenterY = centerY - rect.top - rect.height / 2;
|
|
164
|
+
|
|
165
|
+
const newScale = Math.min(Math.max(1, startScale.value * scaleFactor), 3);
|
|
166
|
+
const scaleChange = newScale / scale.value;
|
|
167
|
+
|
|
168
|
+
// Обновляем позицию, чтобы центр касания оставался на месте
|
|
169
|
+
position.x = position.x - (touchCenterX / scale.value) * (scaleChange - 1);
|
|
170
|
+
position.y = position.y - (touchCenterY / scale.value) * (scaleChange - 1);
|
|
171
|
+
|
|
172
|
+
scale.value = newScale;
|
|
173
|
+
constrainPosition();
|
|
83
174
|
}
|
|
84
175
|
};
|
|
85
176
|
|
|
@@ -94,8 +185,45 @@ const initialize = () => {
|
|
|
94
185
|
position.x = 0;
|
|
95
186
|
position.y = 0;
|
|
96
187
|
};
|
|
97
|
-
</script>
|
|
98
188
|
|
|
189
|
+
const constrainPosition = () => {
|
|
190
|
+
// Если масштаб 1, сбрасываем позицию в центр
|
|
191
|
+
if (scale.value <= 1) {
|
|
192
|
+
position.x = 0;
|
|
193
|
+
position.y = 0;
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
const { renderedWidth, renderedHeight, containerWidth, containerHeight } = getImageDimensions();
|
|
198
|
+
|
|
199
|
+
// Вычисляем максимальное смещение
|
|
200
|
+
const scaledWidth = renderedWidth * scale.value;
|
|
201
|
+
const scaledHeight = renderedHeight * scale.value;
|
|
202
|
+
|
|
203
|
+
// Отступ от края изображения до края контейнера при текущем масштабе
|
|
204
|
+
const horizontalOffset = (scaledWidth - containerWidth) / 2 / scale.value;
|
|
205
|
+
const verticalOffset = (scaledHeight - containerHeight) / 2 / scale.value;
|
|
206
|
+
|
|
207
|
+
// Ограничиваем смещение, чтобы изображение не выходило за пределы контейнера
|
|
208
|
+
if (horizontalOffset > 0) {
|
|
209
|
+
position.x = Math.max(-horizontalOffset, Math.min(horizontalOffset, position.x));
|
|
210
|
+
} else {
|
|
211
|
+
position.x = 0;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
if (verticalOffset > 0) {
|
|
215
|
+
position.y = Math.max(-verticalOffset, Math.min(verticalOffset, position.y));
|
|
216
|
+
} else {
|
|
217
|
+
position.y = 0;
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
onMounted(() => {
|
|
222
|
+
window.addEventListener('resize', () => {
|
|
223
|
+
constrainPosition();
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
</script>
|
|
99
227
|
<style>
|
|
100
228
|
.photo-container {
|
|
101
229
|
width: 100%;
|
|
@@ -105,11 +233,11 @@ const initialize = () => {
|
|
|
105
233
|
position: relative;
|
|
106
234
|
cursor: grab;
|
|
107
235
|
}
|
|
108
|
-
|
|
109
236
|
.photo-container img {
|
|
110
237
|
width: 100%;
|
|
111
238
|
height: 100%;
|
|
112
239
|
object-fit: scale-down;
|
|
113
|
-
transition: transform 0.
|
|
240
|
+
transition: transform 0.05s;
|
|
241
|
+
transform-origin: center center;
|
|
114
242
|
}
|
|
115
|
-
</style>
|
|
243
|
+
</style>
|
|
@@ -1,14 +1,41 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="o-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
<div class="w-100 o-hidden bg-light radius-big flex-nowrap flex-column flex pos-relative">
|
|
3
|
+
<!-- Main image container -->
|
|
4
|
+
<div class="pd-semi w-100 bg-light radius-semi o-hidden" @click="openPopup(images[0])">
|
|
5
|
+
<Images360
|
|
6
|
+
v-if="product && product.image3d"
|
|
7
|
+
class="h-100 w-100"
|
|
8
|
+
:imagePath="`/assets/images/products/${product.image3d}`"
|
|
9
|
+
:imageCount="36"
|
|
10
10
|
/>
|
|
11
|
+
<img
|
|
12
|
+
loading="lazy"
|
|
13
|
+
v-if="images[0] && !product?.image3d"
|
|
14
|
+
class="h-max h-max-15r bg-white radius-semi w-100"
|
|
15
|
+
style="object-fit: contain;"
|
|
16
|
+
:src="(FILE_SERVER_URL || '') + images[0]"
|
|
17
|
+
/>
|
|
18
|
+
<PlaceholderImage
|
|
19
|
+
v-if="!images[0] && !product?.image3d"
|
|
20
|
+
class="h-max-20r h-100 w-100"
|
|
21
|
+
style="object-fit: cover;"
|
|
22
|
+
/>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<!-- Thumbnails -->
|
|
26
|
+
<div v-if="images.length > 1" class="o-scroll w-100 pd-semi pd-t-zero">
|
|
27
|
+
<div class="no-responsive w-max flex flex-nowrap gap-thin">
|
|
28
|
+
<img loading="lazy"
|
|
29
|
+
v-for="(image, index) in images"
|
|
30
|
+
:key="index"
|
|
31
|
+
:src="(FILE_SERVER_URL || '') + image"
|
|
32
|
+
@click="openPopup(image)"
|
|
33
|
+
class="flex-child flex-child-grow-1 aspect-1x1 radius-semi bg-white o-hidden thumbnail"
|
|
34
|
+
/>
|
|
35
|
+
</div>
|
|
11
36
|
</div>
|
|
37
|
+
|
|
38
|
+
<!-- Popup with photo viewer -->
|
|
12
39
|
<Popup @close-popup="closePopup" :isPopupOpen="isPopupVisible" class="radius-medium o-hidden">
|
|
13
40
|
<PhotoViewer
|
|
14
41
|
:photoUrl="(FILE_SERVER_URL || '') + selectedImage"
|
|
@@ -20,20 +47,28 @@
|
|
|
20
47
|
<script setup>
|
|
21
48
|
import { ref } from "vue";
|
|
22
49
|
|
|
23
|
-
import Popup from '@martyrs/src/components/Popup/Popup.vue'
|
|
24
|
-
import PhotoViewer from '@martyrs/src/components/PhotoViewer/PhotoViewer.vue'
|
|
50
|
+
import Popup from '@martyrs/src/components/Popup/Popup.vue';
|
|
51
|
+
import PhotoViewer from '@martyrs/src/components/PhotoViewer/PhotoViewer.vue';
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
import Images360 from '@martyrs/src/modules/products/components/blocks/Images360.vue'
|
|
25
55
|
|
|
26
56
|
const props = defineProps({
|
|
27
57
|
images: {
|
|
28
58
|
type: Array,
|
|
29
59
|
required: true,
|
|
30
|
-
}
|
|
60
|
+
},
|
|
61
|
+
product: {
|
|
62
|
+
type: Object,
|
|
63
|
+
default: () => ({})
|
|
64
|
+
},
|
|
31
65
|
});
|
|
32
66
|
|
|
33
67
|
const isPopupVisible = ref(false);
|
|
34
68
|
const selectedImage = ref(null);
|
|
35
69
|
|
|
36
70
|
const openPopup = (image) => {
|
|
71
|
+
if (!image) return;
|
|
37
72
|
selectedImage.value = image;
|
|
38
73
|
isPopupVisible.value = true;
|
|
39
74
|
};
|
|
@@ -44,14 +79,6 @@ const closePopup = () => {
|
|
|
44
79
|
</script>
|
|
45
80
|
|
|
46
81
|
<style scoped>
|
|
47
|
-
.magnifier {
|
|
48
|
-
max-width: 32rem;
|
|
49
|
-
}
|
|
50
|
-
.product-images {
|
|
51
|
-
display: flex;
|
|
52
|
-
flex-direction: column;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
82
|
.thumbnail {
|
|
56
83
|
width: 100%;
|
|
57
84
|
max-width: 6rem;
|
|
@@ -59,22 +86,4 @@ const closePopup = () => {
|
|
|
59
86
|
object-fit: cover;
|
|
60
87
|
cursor: pointer;
|
|
61
88
|
}
|
|
62
|
-
|
|
63
|
-
.popup {
|
|
64
|
-
position: fixed;
|
|
65
|
-
top: 0;
|
|
66
|
-
left: 0;
|
|
67
|
-
width: 100vw;
|
|
68
|
-
height: 100vh;
|
|
69
|
-
background-color: rgba(0, 0, 0, 0.8);
|
|
70
|
-
display: flex;
|
|
71
|
-
justify-content: center;
|
|
72
|
-
align-items: center;
|
|
73
|
-
cursor: zoom-out;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
.popup-image {
|
|
77
|
-
max-width: 90%;
|
|
78
|
-
max-height: 90%;
|
|
79
|
-
}
|
|
80
89
|
</style>
|
|
@@ -1,33 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div v-if="products.state.current._id" class="h-100 w-100 mobile:pd-thin pd-big bg-white">
|
|
3
3
|
<div class="cols-2-1_2 w-100 gap-medium">
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
:imagePath="`/assets/images/products/${product.image3d}`"
|
|
10
|
-
:imageCount="36"
|
|
11
|
-
/>
|
|
12
|
-
<img
|
|
13
|
-
loading="lazy"
|
|
14
|
-
v-if="images[0] && !product.image3d"
|
|
15
|
-
class="h-max h-max-15r bg-white radius-semi w-100"
|
|
16
|
-
style="object-fit: contain;"
|
|
17
|
-
:src="(FILE_SERVER_URL || '') + images[0]"
|
|
18
|
-
/>
|
|
19
|
-
<PlaceholderImage
|
|
20
|
-
v-if="!images[0] && !product.image3d"
|
|
21
|
-
class="h-max-20r h-100 w-100"
|
|
22
|
-
style="object-fit: cover;"
|
|
23
|
-
/>
|
|
24
|
-
</div>
|
|
25
|
-
<ImagesThumbnails
|
|
26
|
-
v-if="images.length > 1"
|
|
27
|
-
:images="images"
|
|
28
|
-
class="pd-semi pd-t-zero"
|
|
29
|
-
/>
|
|
30
|
-
</div>
|
|
4
|
+
|
|
5
|
+
<ImagesThumbnails
|
|
6
|
+
:images="images"
|
|
7
|
+
:product="product"
|
|
8
|
+
/>
|
|
31
9
|
|
|
32
10
|
<div class="pos-relative w-100 h-100 flex-column flex-h-center flex">
|
|
33
11
|
<IconEdit
|
|
@@ -138,7 +116,6 @@ import PopupDateSelector from '@martyrs/src/modules/globals/views/components/blo
|
|
|
138
116
|
import IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'
|
|
139
117
|
import IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'
|
|
140
118
|
import PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'
|
|
141
|
-
import Images360 from '@martyrs/src/modules/products/components/blocks/Images360.vue'
|
|
142
119
|
import ImagesThumbnails from '@martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue'
|
|
143
120
|
import Price from '@martyrs/src/modules/products/components/elements/Price.vue'
|
|
144
121
|
import PopularProducts from '@martyrs/src/modules/products/components/sections/PopularProducts.vue'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Chips.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|