@ozdao/martyrs 0.2.454 → 0.2.456
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/{Media-DlEIDFaB.js → Media-1oukRVfv.js} +1 -1
- package/dist/{Media-DzQv7XkX.mjs → Media-q-XJSM_H.mjs} +3 -3
- package/dist/{main-CSphtCso.js → main-C7jGMDJC.js} +2 -2
- package/dist/{main-CjVIbgn3.mjs → main-yXkgrjj8.mjs} +3 -9
- package/dist/martyrs/src/components/Button/Button.vue.cjs +1 -1
- package/dist/martyrs/src/components/Button/Button.vue.js +1 -1
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.cjs +2 -2
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js +2 -2
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js.map +1 -1
- 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/EditImages/EditImages.vue.cjs +93 -0
- package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js +94 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs +0 -93
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js +1 -94
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -1
- package/dist/martyrs/src/components/EmptyState/EmptyState.vue.cjs +1 -1
- package/dist/martyrs/src/components/EmptyState/EmptyState.vue.js +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -2
- package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
- package/dist/martyrs/src/components/Loader/{Loader.vue.cjs → Loader.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Loader/{Loader.vue.js → Loader.vue2.js} +2 -2
- package/dist/martyrs/src/components/Loader/{Loader.vue.cjs.map → Loader.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.cjs +2 -2
- package/dist/martyrs/src/components/Media/Media.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.js +2 -2
- package/dist/martyrs/src/components/Media/Media.vue.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/Slider/Slider.native.vue.cjs +229 -0
- package/dist/martyrs/src/components/Slider/Slider.native.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Slider/Slider.native.vue.js +229 -0
- package/dist/martyrs/src/components/Slider/Slider.native.vue.js.map +1 -0
- package/dist/martyrs/src/components/Slider/Slider.vue.cjs +1 -1
- package/dist/martyrs/src/components/Slider/Slider.vue.js +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +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/Profile.vue.cjs +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.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/sections/HotPosts.vue.cjs +3 -4
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +3 -4
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +29 -17
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +29 -17
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js.map +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/Event.vue.cjs +2 -23
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +5 -26
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +50 -132
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +66 -148
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +3 -33
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +3 -33
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.cjs +98 -0
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.js +98 -0
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.js.map +1 -0
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +4 -6
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +4 -6
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs +10 -8
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js +10 -8
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +4 -4
- package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +4 -4
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs +190 -0
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js +190 -0
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/events/events.client.js +12 -12
- package/dist/martyrs/src/modules/events/events.client.js.map +1 -1
- package/dist/martyrs/src/modules/events/router/events.cjs +15 -0
- package/dist/martyrs/src/modules/events/router/events.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/router/events.js +15 -0
- package/dist/martyrs/src/modules/events/router/events.js.map +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 +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
- 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/App.vue.cjs +2 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.js +1 -0
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.js.map +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/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +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/sections/DetailsTabSection.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.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/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/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/products/components/blocks/Images360.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/Images360.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.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/PopularProducts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.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.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/organizations.server.js +0 -1
- package/dist/organizations.server.mjs +0 -1
- package/dist/style.css +93 -6
- package/package.json +1 -1
- package/src/components/DatePicker/DatePicker.vue +1 -1
- package/src/components/EmptyState/EmptyState.vue +1 -1
- package/src/components/Media/Media.vue +1 -1
- package/src/components/Slider/Slider.native.vue +313 -0
- package/src/modules/auth/views/components/sections/FeaturedUsers.vue +2 -2
- package/src/modules/community/components/sections/HotPosts.vue +0 -1
- package/src/modules/events/components/blocks/CardEvent.vue +21 -7
- package/src/modules/events/components/pages/Event.vue +0 -20
- package/src/modules/events/components/pages/Events.vue +91 -141
- package/src/modules/events/components/pages/EventsBackoffice.vue +5 -3
- package/src/modules/events/components/pages/EventsSearch.vue +122 -0
- package/src/modules/events/components/sections/EventsHot.vue +3 -5
- package/src/modules/events/components/sections/FeaturedEvents.vue +45 -13
- package/src/modules/events/components/sections/List.vue +3 -3
- package/src/modules/events/components/sections/SelectDate.vue +217 -0
- package/src/modules/events/router/events.js +12 -0
- package/src/modules/globals/views/components/layouts/App.vue +1 -0
- package/src/modules/organizations/policies/organizations.policies.js +0 -1
- package/src/modules/products/components/pages/Product.old.vue +201 -0
- package/src/styles/base/all.scss +1 -0
- package/src/styles/typography.scss +22 -0
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
- package/dist/martyrs/src/components/Loader/Loader.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
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="gap-medium radius-medium mn-b-semi">
|
|
3
|
+
<h3 class="mn-b-small">
|
|
4
|
+
{{ title }}
|
|
5
|
+
</h3>
|
|
6
|
+
|
|
7
|
+
<div class="cols-4 gap-thin">
|
|
8
|
+
<div
|
|
9
|
+
v-for="(date, index) in computedDateOptions"
|
|
10
|
+
:key="index"
|
|
11
|
+
class="bg-light radius-medium pd-medium cursor-pointer"
|
|
12
|
+
@click="handleDateSelect(date)"
|
|
13
|
+
>
|
|
14
|
+
<h4 class="t-medium">{{ date.label }}</h4>
|
|
15
|
+
<div class="text-small text-muted">{{ date.range }}</div>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</template>
|
|
20
|
+
|
|
21
|
+
<script setup>
|
|
22
|
+
import { computed, defineProps, defineEmits } from 'vue'
|
|
23
|
+
|
|
24
|
+
const props = defineProps({
|
|
25
|
+
title: {
|
|
26
|
+
type: String,
|
|
27
|
+
default: 'Explore by Date'
|
|
28
|
+
},
|
|
29
|
+
locale: {
|
|
30
|
+
type: String,
|
|
31
|
+
default: 'en-US'
|
|
32
|
+
},
|
|
33
|
+
labels: {
|
|
34
|
+
type: Object,
|
|
35
|
+
default: () => ({
|
|
36
|
+
today: 'Today',
|
|
37
|
+
tomorrow: 'Tomorrow',
|
|
38
|
+
thisWeekend: 'This Weekend',
|
|
39
|
+
thisWeek: 'This Week',
|
|
40
|
+
nextWeekend: 'Next Weekend',
|
|
41
|
+
nextWeek: 'Next Week',
|
|
42
|
+
thisMonth: 'This Month',
|
|
43
|
+
customDate: 'Custom Date',
|
|
44
|
+
pickRange: 'Pick Range'
|
|
45
|
+
})
|
|
46
|
+
},
|
|
47
|
+
customDateOptions: {
|
|
48
|
+
type: Array,
|
|
49
|
+
default: () => []
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const emit = defineEmits(['date-selected']);
|
|
54
|
+
|
|
55
|
+
// Форматирование одиночной даты с месяцем после числа
|
|
56
|
+
const formatSingleDate = (date) => {
|
|
57
|
+
// Получаем отдельные форматированные части
|
|
58
|
+
const weekday = new Intl.DateTimeFormat(props.locale, { weekday: 'short' }).format(date);
|
|
59
|
+
const day = new Intl.DateTimeFormat(props.locale, { day: 'numeric' }).format(date);
|
|
60
|
+
const month = new Intl.DateTimeFormat(props.locale, { month: 'short' }).format(date);
|
|
61
|
+
|
|
62
|
+
// Собираем в нужном порядке: день недели, число месяца
|
|
63
|
+
return `${weekday}, ${day} ${month}`;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
// Форматирование диапазона дат с месяцем после числа
|
|
67
|
+
const formatDateRange = (startDate, endDate) => {
|
|
68
|
+
const sameMonth = startDate.getMonth() === endDate.getMonth();
|
|
69
|
+
|
|
70
|
+
// Форматируем начало и конец диапазона
|
|
71
|
+
const startDay = new Intl.DateTimeFormat(props.locale, { day: 'numeric' }).format(startDate);
|
|
72
|
+
const endDay = new Intl.DateTimeFormat(props.locale, { day: 'numeric' }).format(endDate);
|
|
73
|
+
const startMonth = new Intl.DateTimeFormat(props.locale, { month: 'short' }).format(startDate);
|
|
74
|
+
const endMonth = new Intl.DateTimeFormat(props.locale, { month: 'short' }).format(endDate);
|
|
75
|
+
|
|
76
|
+
if (sameMonth) {
|
|
77
|
+
// Если один и тот же месяц: "1 - 2 Jan"
|
|
78
|
+
return `${startDay} - ${endDay} ${startMonth}`;
|
|
79
|
+
} else {
|
|
80
|
+
// Если разные месяцы: "30 Dec - 5 Jan"
|
|
81
|
+
return `${startDay} ${startMonth} - ${endDay} ${endMonth}`;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
// Вспомогательная функция для установки времени на начало дня (00:00:00)
|
|
86
|
+
const setStartOfDay = (date) => {
|
|
87
|
+
const result = new Date(date);
|
|
88
|
+
result.setHours(0, 0, 0, 0);
|
|
89
|
+
return result;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
// Вспомогательная функция для установки времени на конец дня (23:59:59.999)
|
|
93
|
+
const setEndOfDay = (date) => {
|
|
94
|
+
const result = new Date(date);
|
|
95
|
+
result.setHours(23, 59, 59, 999);
|
|
96
|
+
return result;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
const computedDateOptions = computed(() => {
|
|
100
|
+
if (props.customDateOptions.length > 0) {
|
|
101
|
+
return props.customDateOptions;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const today = new Date();
|
|
105
|
+
const tomorrow = new Date(today);
|
|
106
|
+
tomorrow.setDate(tomorrow.getDate() + 1);
|
|
107
|
+
|
|
108
|
+
// Расчет текущих выходных (следующие суббота и воскресенье)
|
|
109
|
+
const thisWeekendStart = new Date(today);
|
|
110
|
+
const daysUntilWeekend = (6 - today.getDay()); // 6 - суббота
|
|
111
|
+
thisWeekendStart.setDate(today.getDate() + (daysUntilWeekend <= 0 ? daysUntilWeekend + 7 : daysUntilWeekend));
|
|
112
|
+
|
|
113
|
+
const thisWeekendEnd = new Date(thisWeekendStart);
|
|
114
|
+
thisWeekendEnd.setDate(thisWeekendStart.getDate() + 1);
|
|
115
|
+
|
|
116
|
+
// Расчет текущей недели (воскресенье - суббота)
|
|
117
|
+
const thisWeekStart = new Date(today);
|
|
118
|
+
thisWeekStart.setDate(today.getDate() - today.getDay());
|
|
119
|
+
|
|
120
|
+
const thisWeekEnd = new Date(thisWeekStart);
|
|
121
|
+
thisWeekEnd.setDate(thisWeekStart.getDate() + 6);
|
|
122
|
+
|
|
123
|
+
// Расчет следующих выходных
|
|
124
|
+
const nextWeekendStart = new Date(thisWeekendStart);
|
|
125
|
+
nextWeekendStart.setDate(nextWeekendStart.getDate() + 7);
|
|
126
|
+
|
|
127
|
+
const nextWeekendEnd = new Date(nextWeekendStart);
|
|
128
|
+
nextWeekendEnd.setDate(nextWeekendStart.getDate() + 1);
|
|
129
|
+
|
|
130
|
+
// Расчет следующей недели
|
|
131
|
+
const nextWeekStart = new Date(thisWeekStart);
|
|
132
|
+
nextWeekStart.setDate(nextWeekStart.getDate() + 7);
|
|
133
|
+
|
|
134
|
+
const nextWeekEnd = new Date(nextWeekStart);
|
|
135
|
+
nextWeekEnd.setDate(nextWeekStart.getDate() + 6);
|
|
136
|
+
|
|
137
|
+
// Расчет текущего месяца
|
|
138
|
+
const thisMonthStart = new Date(today.getFullYear(), today.getMonth(), 1);
|
|
139
|
+
const thisMonthEnd = new Date(today.getFullYear(), today.getMonth() + 1, 0);
|
|
140
|
+
|
|
141
|
+
return [
|
|
142
|
+
{
|
|
143
|
+
label: props.labels.today,
|
|
144
|
+
range: formatSingleDate(today),
|
|
145
|
+
data: {
|
|
146
|
+
startDate: setStartOfDay(today),
|
|
147
|
+
endDate: setEndOfDay(today)
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
label: props.labels.tomorrow,
|
|
152
|
+
range: formatSingleDate(tomorrow),
|
|
153
|
+
data: {
|
|
154
|
+
startDate: setStartOfDay(tomorrow),
|
|
155
|
+
endDate: setEndOfDay(tomorrow)
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
label: props.labels.thisWeekend,
|
|
160
|
+
range: formatDateRange(thisWeekendStart, thisWeekendEnd),
|
|
161
|
+
data: {
|
|
162
|
+
startDate: setStartOfDay(thisWeekendStart),
|
|
163
|
+
endDate: setEndOfDay(thisWeekendEnd)
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
label: props.labels.thisWeek,
|
|
168
|
+
range: formatDateRange(thisWeekStart, thisWeekEnd),
|
|
169
|
+
data: {
|
|
170
|
+
startDate: setStartOfDay(thisWeekStart),
|
|
171
|
+
endDate: setEndOfDay(thisWeekEnd)
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
label: props.labels.nextWeekend,
|
|
176
|
+
range: formatDateRange(nextWeekendStart, nextWeekendEnd),
|
|
177
|
+
data: {
|
|
178
|
+
startDate: setStartOfDay(nextWeekendStart),
|
|
179
|
+
endDate: setEndOfDay(nextWeekendEnd)
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
label: props.labels.nextWeek,
|
|
184
|
+
range: formatDateRange(nextWeekStart, nextWeekEnd),
|
|
185
|
+
data: {
|
|
186
|
+
startDate: setStartOfDay(nextWeekStart),
|
|
187
|
+
endDate: setEndOfDay(nextWeekEnd)
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
// {
|
|
191
|
+
// label: props.labels.thisMonth,
|
|
192
|
+
// range: formatDateRange(thisMonthStart, thisMonthEnd),
|
|
193
|
+
// data: {
|
|
194
|
+
// startDate: setStartOfDay(thisMonthStart),
|
|
195
|
+
// endDate: setEndOfDay(thisMonthEnd)
|
|
196
|
+
// }
|
|
197
|
+
// },
|
|
198
|
+
// {
|
|
199
|
+
// label: props.labels.customDate,
|
|
200
|
+
// range: props.labels.pickRange,
|
|
201
|
+
// data: {
|
|
202
|
+
// startDate: null,
|
|
203
|
+
// endDate: null,
|
|
204
|
+
// isCustom: true
|
|
205
|
+
// }
|
|
206
|
+
// }
|
|
207
|
+
];
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
const handleDateSelect = (date) => {
|
|
211
|
+
emit('date-selected', date.data);
|
|
212
|
+
};
|
|
213
|
+
</script>
|
|
214
|
+
|
|
215
|
+
<style lang="scss">
|
|
216
|
+
/* Стили остаются неизменными */
|
|
217
|
+
</style>
|
|
@@ -27,6 +27,18 @@ export function createEventRoutes(prefix = '', options = {}) {
|
|
|
27
27
|
},
|
|
28
28
|
component: () => import(/* webpackChunkName: 'Events' */ '../components/pages/Events.vue')
|
|
29
29
|
},
|
|
30
|
+
{
|
|
31
|
+
path: 'search',
|
|
32
|
+
name: nameWithPrefix('Events Search'),
|
|
33
|
+
meta: {
|
|
34
|
+
title: {
|
|
35
|
+
en: 'Events',
|
|
36
|
+
ru: 'События'
|
|
37
|
+
},
|
|
38
|
+
title_hide: true
|
|
39
|
+
},
|
|
40
|
+
component: () => import(/* webpackChunkName: 'Events' */ '../components/pages/EventsSearch.vue')
|
|
41
|
+
},
|
|
30
42
|
{
|
|
31
43
|
path: 'backoffice',
|
|
32
44
|
name: nameWithPrefix('Events Backoffice'),
|
|
@@ -15,7 +15,6 @@ module.exports = function initializeOrganizationPolicies(abacAccessControl, db)
|
|
|
15
15
|
const publicAccessVerifier = new Verifier({
|
|
16
16
|
status: {
|
|
17
17
|
allowed: true,
|
|
18
|
-
default: 'published',
|
|
19
18
|
validator: Validator.schema({ context: 'Status' }).string().required().oneOf(['published', 'active', 'featured'])
|
|
20
19
|
}
|
|
21
20
|
});
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div v-if="products.state.current" class="h-100 w-100 mobile:pd-thin pd-big bg-white">
|
|
3
|
+
<div class="cols-2-1_2 w-100 gap-medium">
|
|
4
|
+
|
|
5
|
+
<ImagesThumbnails
|
|
6
|
+
:images="images"
|
|
7
|
+
:product="product"
|
|
8
|
+
/>
|
|
9
|
+
|
|
10
|
+
<div class="pos-relative w-100 h-100 flex-column flex-h-center flex">
|
|
11
|
+
<IconEdit
|
|
12
|
+
v-if="accesses && hasAccess(route.params._id, 'products', 'edit', accesses)"
|
|
13
|
+
@click="$router.push({ name: 'ProductEdit', params: { _id: product.owner.target, product: product._id } })"
|
|
14
|
+
class="pos-absolute pos-t-regular pos-r-regular i-regular t-transp"
|
|
15
|
+
/>
|
|
16
|
+
<h2 class="w-100 h1-product mn-b-small">{{ product.name }}</h2>
|
|
17
|
+
<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" />
|
|
18
|
+
|
|
19
|
+
<div v-if="product.description || product.specification" class="h-min-5r o-hidden radius-small bg-light mn-b-medium pos-relative">
|
|
20
|
+
<Tab
|
|
21
|
+
v-model:selected="tabProduct"
|
|
22
|
+
:tabs="[
|
|
23
|
+
{name: 'Description', value: 'description'},
|
|
24
|
+
{name: 'Specifications', value: 'specifications'}
|
|
25
|
+
]"
|
|
26
|
+
tabClass="pd-thin bg-white radius-thin p-small uppercase t-medium"
|
|
27
|
+
class="gap-micro bg-light pos-relative z-index-2 pd-thin br-solid br-b br-black-transp-10"
|
|
28
|
+
/>
|
|
29
|
+
<transition name="slide-fade">
|
|
30
|
+
<div v-if="tabProduct === 'description'" class="pd-medium">
|
|
31
|
+
<p v-if="product.description && !product.localization < 1 && !recommendation" class="w-100 t-transp">
|
|
32
|
+
{{ product.description }}
|
|
33
|
+
</p>
|
|
34
|
+
<p v-if="product.localization && product.localization.length > 1 && !recommendation" class="w-100 t-transp">
|
|
35
|
+
{{ t('description') }}
|
|
36
|
+
</p>
|
|
37
|
+
</div>
|
|
38
|
+
<div v-else class="cols-2 pd-medium w-100 gap-small">
|
|
39
|
+
<div
|
|
40
|
+
v-if="product.information.length > 0"
|
|
41
|
+
v-for="information in product.information"
|
|
42
|
+
class="w-100 pd-small radius-small bg-white product-information"
|
|
43
|
+
>
|
|
44
|
+
<p class="t-demi">{{ information.name }}</p>
|
|
45
|
+
<p>{{ information.value }}</p>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</transition>
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
<div class="w-max-33r">
|
|
52
|
+
<div class="w-max-33r">
|
|
53
|
+
<div v-if="product.listing === 'rent'">
|
|
54
|
+
<button @click="openPopup" class="cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button">
|
|
55
|
+
<div class="gap-thin flex flex-center flex-nowrap">
|
|
56
|
+
<IconShopcartAdd class="i-semi" />
|
|
57
|
+
<span>{{ t('addtoorder') }}</span>
|
|
58
|
+
</div>
|
|
59
|
+
</button>
|
|
60
|
+
<PopupDateSelector
|
|
61
|
+
:product="product"
|
|
62
|
+
:isOpen="isPopupOpen"
|
|
63
|
+
:showFees="globals.state.options?.orders.showFees"
|
|
64
|
+
:feesRate="globals.state.options?.orders.feesRate || 0.15"
|
|
65
|
+
:showVat="globals.state.options?.orders.showVat"
|
|
66
|
+
:vatRate="globals.state.options?.orders.vatRate || 0"
|
|
67
|
+
:onConfirm="selectedDates => addToCart(product, selectedDates)"
|
|
68
|
+
@close="closePopup"
|
|
69
|
+
/>
|
|
70
|
+
</div>
|
|
71
|
+
<div v-else>
|
|
72
|
+
<Button
|
|
73
|
+
v-if="product.available > 0"
|
|
74
|
+
:submit="() => addToCart(product, null)"
|
|
75
|
+
class="h-3r w-100 bg-main button"
|
|
76
|
+
>
|
|
77
|
+
<div class="gap-thin flex flex-center flex-nowrap">
|
|
78
|
+
<IconShopcartAdd class="i-semi" />
|
|
79
|
+
<span>{{ t('addtoorder') }}</span>
|
|
80
|
+
</div>
|
|
81
|
+
</Button>
|
|
82
|
+
<div
|
|
83
|
+
v-else
|
|
84
|
+
class="flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton"
|
|
85
|
+
>
|
|
86
|
+
Out of Stock
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
|
|
94
|
+
<div class="h-max mn-t-big pos-relative">
|
|
95
|
+
<h3 class="pd-b-small">Most Popular</h3>
|
|
96
|
+
<PopularProducts class="mn-r-big-negative mn-l-big-negative"/>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</template>
|
|
100
|
+
|
|
101
|
+
<script setup>
|
|
102
|
+
import { computed, ref, onMounted, getCurrentInstance } from 'vue'
|
|
103
|
+
import { useRoute, useRouter } from 'vue-router'
|
|
104
|
+
import { useI18n } from 'vue-i18n'
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
import * as auth from '@martyrs/src/modules/auth/views/store/auth'
|
|
108
|
+
import * as globals from '@martyrs/src/modules/globals/views/store/globals'
|
|
109
|
+
import * as products from '@martyrs/src/modules/products/store/products'
|
|
110
|
+
import * as categories from '@martyrs/src/modules/products/store/categories'
|
|
111
|
+
import * as shopcart from '@martyrs/src/modules/orders/store/shopcart'
|
|
112
|
+
|
|
113
|
+
import Button from '@martyrs/src/components/Button/Button.vue'
|
|
114
|
+
import Popup from '@martyrs/src/components/Popup/Popup.vue'
|
|
115
|
+
import Tab from '@martyrs/src/components/Tab/Tab.vue'
|
|
116
|
+
import Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'
|
|
117
|
+
import PopupDateSelector from '@martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue'
|
|
118
|
+
import IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'
|
|
119
|
+
import IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'
|
|
120
|
+
import ImagesThumbnails from '@martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue'
|
|
121
|
+
import Price from '@martyrs/src/modules/products/components/elements/Price.vue'
|
|
122
|
+
import PopularProducts from '@martyrs/src/modules/products/components/sections/PopularProducts.vue'
|
|
123
|
+
|
|
124
|
+
const route = useRoute()
|
|
125
|
+
const router = useRouter()
|
|
126
|
+
const { proxy } = getCurrentInstance()
|
|
127
|
+
|
|
128
|
+
const product = computed(() => products.state.current)
|
|
129
|
+
const images = computed(() => products.state.current.images)
|
|
130
|
+
|
|
131
|
+
const tabProduct = ref('description')
|
|
132
|
+
|
|
133
|
+
const text = {
|
|
134
|
+
en: { addtoorder: 'Add to Cart', fastorder: 'Fast Order' },
|
|
135
|
+
ru: { addtoorder: 'Добавить в корзину', fastorder: 'Быстрый заказ' }
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const { t } = useI18n({ messages: text })
|
|
139
|
+
|
|
140
|
+
const isPopupOpen = ref(false)
|
|
141
|
+
|
|
142
|
+
function openPopup() {
|
|
143
|
+
isPopupOpen.value = true
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function closePopup() {
|
|
147
|
+
isPopupOpen.value = false
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const emits = defineEmits(['page-loading', 'page-loaded']);
|
|
151
|
+
|
|
152
|
+
const pageProduct = ref(null)
|
|
153
|
+
products.state.current = null
|
|
154
|
+
onMounted(async () => {
|
|
155
|
+
|
|
156
|
+
emits('page-loading');
|
|
157
|
+
await products.actions.read({ _id: route.params.product })
|
|
158
|
+
emits('page-loaded');
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
// route.meta.title.en = product.value.name
|
|
162
|
+
// route.meta.title.ru = roduct.value.name
|
|
163
|
+
|
|
164
|
+
})
|
|
165
|
+
|
|
166
|
+
// onBeforeMounted
|
|
167
|
+
|
|
168
|
+
function validateToCard(product) {
|
|
169
|
+
return !(product.available > 0)
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
async function addToCart(product, selectedDates = null) {
|
|
173
|
+
try {
|
|
174
|
+
// Если организация товара отличается от текущей в корзине
|
|
175
|
+
if (shopcart.state.organization && shopcart.state.organization !== product.owner.target) {
|
|
176
|
+
const result = await proxy.$alert({
|
|
177
|
+
title: 'Start a new order?',
|
|
178
|
+
message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,
|
|
179
|
+
actions: [
|
|
180
|
+
{ label: 'Cancel', value: false },
|
|
181
|
+
{ label: 'Start New Order', value: true }
|
|
182
|
+
]
|
|
183
|
+
})
|
|
184
|
+
|
|
185
|
+
if (!result) throw error
|
|
186
|
+
|
|
187
|
+
shopcart.state.organization = product.owner.target
|
|
188
|
+
shopcart.state.positions = []
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
await shopcart.actions.addProductToCart(product, product.owner.target, selectedDates)
|
|
192
|
+
return true
|
|
193
|
+
} catch (error) {
|
|
194
|
+
console.error('Error while adding product to cart:', error)
|
|
195
|
+
throw error
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
</script>
|
|
199
|
+
|
|
200
|
+
<style lang="scss">
|
|
201
|
+
</style>
|
package/src/styles/base/all.scss
CHANGED
|
@@ -159,6 +159,7 @@ body {
|
|
|
159
159
|
.o-hidden {overflow: hidden; }
|
|
160
160
|
.o-scroll {overflow: scroll; }
|
|
161
161
|
.o-y-scroll {overflow-y: scroll; }
|
|
162
|
+
.o-x-scroll {overflow-y: scroll; }
|
|
162
163
|
.o-x-hidden {overflow-x: hidden; touch-action: pan-y;}
|
|
163
164
|
.o-auto {overflow: auto; }
|
|
164
165
|
.o-visible {overflow: visible; }
|
|
@@ -59,6 +59,28 @@ a:hover { cursor: pointer;}
|
|
|
59
59
|
.lh-medium { line-height: 1.250; }
|
|
60
60
|
.lh-regular { line-height: 1.125; }
|
|
61
61
|
.lh-light { line-height: 1.000; }
|
|
62
|
+
/*Text trim*/
|
|
63
|
+
.t-trim {
|
|
64
|
+
display: -webkit-box;
|
|
65
|
+
-webkit-box-orient: vertical;
|
|
66
|
+
overflow: hidden;
|
|
67
|
+
-webkit-line-clamp: 1;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.t-trim-2 {
|
|
71
|
+
display: -webkit-box;
|
|
72
|
+
-webkit-box-orient: vertical;
|
|
73
|
+
overflow: hidden;
|
|
74
|
+
-webkit-line-clamp: 2;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.t-trim-3 {
|
|
78
|
+
display: -webkit-box;
|
|
79
|
+
-webkit-box-orient: vertical;
|
|
80
|
+
overflow: hidden;
|
|
81
|
+
-webkit-line-clamp: 3;
|
|
82
|
+
}
|
|
83
|
+
|
|
62
84
|
|
|
63
85
|
|
|
64
86
|
// Text decoration
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.vue.js","sources":["../../../../../src/components/Dropdown/Dropdown.vue"],"sourcesContent":["<template>\n <div class=\"dropdown pos-relative\" v-click-outside=\"clickedOutside\" @click.stop=\"isOpen = !isOpen\">\n <div v-if=\"isComponentLabel\" class=\"w-100 h-100 flex-center flex\">\n <component :is=\"label.component\" v-bind=\"label.props\" :class=\"label.class\"></component>\n </div>\n <div v-else>\n {{ label }}\n </div>\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <div \n v-show=\"isOpen\" \n :style=\"{ left: align === 'left' ? '0' : 'auto', right: align === 'right' ? '0' : 'auto' }\" \n class=\"dropdown-content radius-big\" \n >\n <slot></slot>\n </div>\n </transition>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\nimport clickOutside from '../FieldPhone/click-outside';\n\nlet vClickOutside = clickOutside\n\nconst props = defineProps({\n label: {\n type: [String, Object],\n default: 'Open'\n },\n align: {\n type: String,\n default: 'left'\n }\n})\n\nconst isOpen = ref(false);\nconst isComponentLabel = computed(() => typeof props.label === 'object');\n\nfunction clickedOutside () {\n isOpen.value = false\n}\n</script>\n\n<style >\n.dropdown-content {\n display: block;\n position: absolute;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n z-index: 1;\n}\n\n/*.dropdown:hover .dropdown-content {\n display: block;\n}*/\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,QAAI,gBAAgB;AAEpB,UAAM,QAAQ;AAWd,UAAM,SAAS,IAAI,KAAK;AACxB,UAAM,mBAAmB,SAAS,MAAM,OAAO,MAAM,UAAU,QAAQ;AAEvE,aAAS,iBAAkB;AACzB,aAAO,QAAQ;AAAA,IACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Loader.vue.js","sources":["../../../../../src/components/Loader/Loader.vue"],"sourcesContent":["<template>\n <div class=\"circular-loader\" :class=\"{ 'circular-loader-centered': centered }\">\n <svg viewBox=\"25 25 50 50\">\n <circle class=\"circular-loader-fill\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-width=\"4\" stroke-miterlimit=\"10\" />\n <circle class=\"circular-loader-circle\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-width=\"4\" stroke-miterlimit=\"10\" />\n </svg>\n <div v-if=\"progress\" class=\"progress-text\">{{ progress }}</div>\n <div v-if=\"status\" class=\"uppercase t-semi w-m-10r status-text\">{{ status }}</div>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n progress: {\n type: Number,\n default: null,\n },\n status: {\n type: String,\n default: null,\n },\n centered: {\n type: Boolean,\n default: true, // По умолчанию лоадер центрирован (для обратной совместимости)\n },\n },\n};\n</script>\n\n<style>\n.circular-loader {\n position: relative;\n z-index: 50;\n height: 2rem;\n width: 2rem;\n}\n\n.circular-loader-centered {\n top: calc(50% - 1rem);\n left: calc(50% - 1rem);\n}\n\n.circular-loader svg {\n animation: rotate 2s linear infinite;\n}\n\n.circular-loader-circle {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n stroke-linecap: round;\n stroke: rgb(var(--main));\n animation: dash 1.5s ease-in-out infinite;\n}\n\n.circular-loader-fill {\n stroke-linecap: round;\n stroke: rgba(var(--black),0.2);\n}\n\n.progress-text {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 0.8rem;\n color: rgb(var(--main));;\n}\n\n.status-text {\n position: absolute;\n top: 120%;\n left: calc(50% - 5rem);\n font-size: 0.8rem;\n width: 10rem !important;\n text-align: center;\n}\n\n@keyframes rotate {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: -124;\n }\n}\n</style>"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_toDisplayString","_createCommentVNode"],"mappings":";;;AAYA,MAAK,YAAU;AAAA,EACb,OAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IACV;AAAA,EACF;AACH;;EA3BA,KAAA;AAAA,EAMyB,OAAM;;;EAN/B,KAAA;AAAA,EAOuB,OAAM;;;sBAN3BA,mBAOM,OAAA;AAAA,IAPD,OADPC,eAAA,CACa,mBAAiB,EAAA,4BAAuC,OAAQ,UAAA,CAAA;AAAA;8BACzEC,mBAGM,OAAA,EAHD,SAAQ,iBAAa;AAAA,MACxBA,mBAAkH,UAAA;AAAA,QAA1G,OAAM;AAAA,QAAuB,IAAG;AAAA,QAAK,IAAG;AAAA,QAAK,GAAE;AAAA,QAAK,MAAK;AAAA,QAAO,gBAAa;AAAA,QAAI,qBAAkB;AAAA;MAC3GA,mBAAoH,UAAA;AAAA,QAA5G,OAAM;AAAA,QAAyB,IAAG;AAAA,QAAK,IAAG;AAAA,QAAK,GAAE;AAAA,QAAK,MAAK;AAAA,QAAO,gBAAa;AAAA,QAAI,qBAAkB;AAAA;;IAEpG,OAAQ,yBAAnBF,mBAA+D,OAA/D,YAA+DG,gBAAjB,OAAQ,QAAA,GAAA,CAAA,KAN1DC,mBAAA,IAAA,IAAA;AAAA,IAOe,OAAM,uBAAjBJ,mBAAkF,OAAlF,YAAkFG,gBAAf,OAAM,MAAA,GAAA,CAAA,KAP7EC,mBAAA,IAAA,IAAA;AAAA;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|