@ozdao/martyrs 0.2.593 → 0.2.595
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/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
- package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
- package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
- 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/UploadImage/UploadImage.vue.js +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/core/locales/en.js +3 -0
- package/dist/martyrs/src/modules/core/locales/en.js.map +1 -1
- package/dist/martyrs/src/modules/core/locales/ru.js +3 -0
- package/dist/martyrs/src/modules/core/locales/ru.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +15 -5
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +22 -7
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +4 -4
- package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +4 -2
- package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +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.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +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.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/style.css +20 -20
- package/package.json +1 -1
- package/src/modules/core/locales/en.js +3 -0
- package/src/modules/core/locales/ru.js +3 -0
- package/src/modules/core/views/components/layouts/Client.vue +7 -1
- package/src/modules/core/views/components/partials/Header.vue +17 -3
- package/src/modules/core/views/components/partials/Navigation.vue +2 -2
- package/src/modules/core/views/components/partials/Sidebar.vue +3 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, computed, withDirectives, createElementBlock, openBlock, withModifiers, renderSlot, createVNode, createBlock, resolveDynamicComponent, mergeProps, toDisplayString, Transition, withCtx, createCommentVNode, normalizeStyle, unref } from "vue";
|
|
2
2
|
import clickOutside from "../FieldPhone/click-outside.js";
|
|
3
|
-
/* empty css
|
|
3
|
+
/* empty css */
|
|
4
4
|
const _hoisted_1 = {
|
|
5
5
|
key: 0,
|
|
6
6
|
class: "w-100 h-100 flex-center flex"
|
|
@@ -81,4 +81,4 @@ const _sfc_main = {
|
|
|
81
81
|
export {
|
|
82
82
|
_sfc_main as default
|
|
83
83
|
};
|
|
84
|
-
//# sourceMappingURL=Dropdown.
|
|
84
|
+
//# sourceMappingURL=Dropdown.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dropdown.vue.js","sources":["../../../../../src/components/Dropdown/Dropdown.vue"],"sourcesContent":["<template>\n <div\n class=\"dropdown pos-relative\"\n v-click-outside=\"clickedOutside\"\n @click.stop=\"trigger === 'click' ? (isOpen = !isOpen) : null\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <slot name=\"label\">\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 </slot>\n <Transition name=\"dropdown\">\n <div\n v-if=\"isOpen\"\n :style=\"{ left: align === 'left' ? '0' : 'auto', right: align === 'right' ? '0' : 'auto' }\"\n class=\"dropdown-content\"\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.js';\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 trigger: {\n type: String,\n default: 'click'\n }\n})\n\nconst isOpen = ref(false);\nconst isComponentLabel = computed(() => typeof props.label === 'object');\n\nlet closeTimeout = null;\n\nfunction handleMouseEnter() {\n if (props.trigger === 'hover') {\n clearTimeout(closeTimeout);\n isOpen.value = true;\n }\n}\n\nfunction handleMouseLeave() {\n if (props.trigger === 'hover') {\n closeTimeout = setTimeout(() => {\n isOpen.value = false;\n }, 100);\n }\n}\n\nfunction clickedOutside() {\n if (props.trigger === 'click') {\n isOpen.value = false;\n }\n}\n</script>\n\n<style>\n.dropdown-content {\n position: absolute;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n z-index: 100;\n border-radius: var(--small);\n transform-origin: top left;\n backdrop-filter: blur(var(--small));\n -webkit-backdrop-filter: blur(var(--small));\n background: rgba(var(--white), 0.5);\n}\n\n.dropdown-enter-active,\n.dropdown-leave-active {\n transition: transform 0.33s cubic-bezier(0.9, 0, 0.1, 1), opacity 0.15s ease;\n}\n\n.dropdown-enter-from,\n.dropdown-leave-to {\n opacity: 0.01;\n transform: translateY(-4px) scale(0.8);\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,QAAI,gBAAgB;AAEpB,UAAM,QAAQ;AAed,UAAM,SAAS,IAAI,KAAK;AACxB,UAAM,mBAAmB,SAAS,MAAM,OAAO,MAAM,UAAU,QAAQ;AAEvE,QAAI,eAAe;AAEnB,aAAS,mBAAmB;AAC1B,UAAI,MAAM,YAAY,SAAS;AAC7B,qBAAa,YAAY;AACzB,eAAO,QAAQ;AAAA,MACjB;AAAA,IACF;AAEA,aAAS,mBAAmB;AAC1B,UAAI,MAAM,YAAY,SAAS;AAC7B,uBAAe,WAAW,MAAM;AAC9B,iBAAO,QAAQ;AAAA,QACjB,GAAG,GAAG;AAAA,MACR;AAAA,IACF;AAEA,aAAS,iBAAiB;AACxB,UAAI,MAAM,YAAY,SAAS;AAC7B,eAAO,QAAQ;AAAA,MACjB;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, openBlock, createBlock, createVNode, normalizeClass, unref, withCtx, Fragment, renderList, Transition, renderSlot } from "vue";
|
|
2
2
|
import { useI18n } from "vue-i18n";
|
|
3
3
|
import { useGlobalMixins } from "../../modules/core/views/mixins/mixins.js";
|
|
4
|
-
import Loader from "../Loader/Loader.
|
|
4
|
+
import Loader from "../Loader/Loader.vue.js";
|
|
5
5
|
import _sfc_main$2 from "../Slider/Slider.vue.js";
|
|
6
6
|
import _sfc_main$1 from "../EmptyState/EmptyState.vue.js";
|
|
7
7
|
/* empty css */
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { mergeModels, useModel, ref, computed, watch, onMounted, onUnmounted, createElementBlock, openBlock, Fragment, createCommentVNode, createBlock, normalizeClass, withCtx, createVNode, renderList, resolveDynamicComponent, unref, TransitionGroup, renderSlot } from "vue";
|
|
2
2
|
import { useGlobalMixins } from "../../modules/core/views/mixins/mixins.js";
|
|
3
|
-
import Loader from "../Loader/Loader.
|
|
3
|
+
import Loader from "../Loader/Loader.vue.js";
|
|
4
4
|
import Skeleton from "../Skeleton/Skeleton.vue2.js";
|
|
5
5
|
import _sfc_main$6 from "../EmptyState/EmptyState.vue.js";
|
|
6
|
-
import _sfc_main$2 from "../Dropdown/Dropdown.
|
|
6
|
+
import _sfc_main$2 from "../Dropdown/Dropdown.vue.js";
|
|
7
7
|
import Calendar from "../Calendar/Calendar.vue2.js";
|
|
8
8
|
import _sfc_main$1 from "../../modules/core/views/components/blocks/BlockSearch.vue.js";
|
|
9
9
|
import _sfc_main$5 from "../../modules/core/views/components/blocks/BlockSorting.vue.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createElementBlock, openBlock, normalizeClass, createElementVNode, createCommentVNode, toDisplayString } from "vue";
|
|
2
|
-
/* empty css
|
|
2
|
+
/* empty css */
|
|
3
3
|
import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
4
|
const _sfc_main = {
|
|
5
5
|
props: {
|
|
@@ -57,4 +57,4 @@ const Loader = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]])
|
|
|
57
57
|
export {
|
|
58
58
|
Loader as default
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=Loader.
|
|
60
|
+
//# sourceMappingURL=Loader.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Loader.vue.js","sources":["../../../../../src/components/Loader/Loader.vue"],"sourcesContent":["<template>\n <div class=\"circular-loader z-index-1 w-100 h-100 w-max-2r h-max-2r\" :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 fw-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: false\n },\n },\n};\n</script>\n\n<style>\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;IAEX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA;IAEX,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;;AAGf;;EA3BA,KAAA;AAAA,EAMyB,OAAM;;;EAN/B,KAAA;AAAA,EAOuB,OAAM;;;sBAN3BA,mBAOM,OAAA;AAAA,IAPD,OADPC,eAAA,CACa,2DAAyD,EAAA,4BAAuC,OAAA,UAAQ,CAAA;AAAA;8BACjHC,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,OAAA,yBAAXF,mBAA+D,OAA/D,YAA+DG,gBAAjB,OAAA,QAAQ,GAAA,CAAA,KAN1DC,mBAAA,IAAA,IAAA;AAAA,IAOe,OAAA,uBAAXJ,mBAAmF,OAAnF,YAAmFG,gBAAf,OAAA,MAAM,GAAA,CAAA,KAP9EC,mBAAA,IAAA,IAAA;AAAA;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, onMounted, watchEffect, createElementBlock, openBlock, createElementVNode, createVNode, Transition, withCtx, createBlock } from "vue";
|
|
2
2
|
import { Loader } from "../../../../node_modules/.pnpm/@googlemaps_js-api-loader@1.16.8/node_modules/@googlemaps/js-api-loader/dist/index.js";
|
|
3
|
-
import Loader$1 from "../Loader/Loader.
|
|
3
|
+
import Loader$1 from "../Loader/Loader.vue.js";
|
|
4
4
|
/* empty css */
|
|
5
5
|
const _hoisted_1 = { class: "pos-relative" };
|
|
6
6
|
const _hoisted_2 = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref, computed, onMounted, onUnmounted, createElementBlock, openBlock, createCommentVNode, mergeProps, createElementVNode, createVNode } from "vue";
|
|
2
|
-
import Loader from "../Loader/Loader.
|
|
2
|
+
import Loader from "../Loader/Loader.vue.js";
|
|
3
3
|
import _sfc_main$1 from "../../modules/icons/entities/IconGallery.vue.js";
|
|
4
4
|
/* empty css */
|
|
5
5
|
import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createElementBlock, openBlock, renderSlot } from "vue";
|
|
2
|
-
/* empty css
|
|
2
|
+
/* empty css */
|
|
3
3
|
const _hoisted_1 = { class: "mobile-menu-section pd-r-zero pd-t-thin pd-b-thin pd-medium radius-medium" };
|
|
4
4
|
const _sfc_main = {
|
|
5
5
|
__name: "Menu",
|
|
@@ -14,4 +14,4 @@ const _sfc_main = {
|
|
|
14
14
|
export {
|
|
15
15
|
_sfc_main as default
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=Menu.
|
|
17
|
+
//# sourceMappingURL=Menu.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, computed, watch, createElementBlock, openBlock, normalizeClass, createElementVNode, createCommentVNode, withModifiers, createVNode, toDisplayString } from "vue";
|
|
2
2
|
import axios from "axios";
|
|
3
|
-
import Loader from "../Loader/Loader.
|
|
3
|
+
import Loader from "../Loader/Loader.vue.js";
|
|
4
4
|
import _sfc_main$1 from "../../modules/icons/navigation/IconUpload.vue.js";
|
|
5
5
|
import _sfc_main$2 from "../../modules/icons/navigation/IconDelete.vue.js";
|
|
6
6
|
/* empty css */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, createElementBlock, openBlock, withModifiers, createVNode, createElementVNode, Transition, withCtx, createBlock, createCommentVNode, toDisplayString } from "vue";
|
|
2
2
|
import axios from "axios";
|
|
3
|
-
import Loader from "../Loader/Loader.
|
|
3
|
+
import Loader from "../Loader/Loader.vue.js";
|
|
4
4
|
import _sfc_main$1 from "../../modules/icons/navigation/IconUpload.vue.js";
|
|
5
5
|
import { useStore } from "../../modules/core/views/store/core.store.js";
|
|
6
6
|
const _hoisted_1 = {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ref, onServerPrefetch, onMounted, resolveComponent, createElementBlock, openBlock, createElementVNode, createVNode, createBlock, createCommentVNode, unref, withCtx, toDisplayString, Fragment, renderList, normalizeClass, resolveDynamicComponent } from "vue";
|
|
2
2
|
/* empty css */
|
|
3
3
|
/* empty css */
|
|
4
|
-
import _sfc_main$1 from "../../../../../components/Dropdown/Dropdown.
|
|
5
|
-
import _sfc_main$7 from "../../../../../components/Menu/Menu.
|
|
4
|
+
import _sfc_main$1 from "../../../../../components/Dropdown/Dropdown.vue.js";
|
|
5
|
+
import _sfc_main$7 from "../../../../../components/Menu/Menu.vue.js";
|
|
6
6
|
import _sfc_main$c from "../../../../../components/Menu/MenuItem.vue.js";
|
|
7
7
|
import _sfc_main$3 from "../../../../organizations/components/elements/ButtonToggleMembership.vue.js";
|
|
8
8
|
import _sfc_main$2 from "../../../../reports/components/sections/FormReport.vue.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, onMounted, provide, resolveComponent, createBlock, openBlock, withCtx, createElementBlock, createVNode } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
|
|
3
|
-
import Loader from "../../../../../components/Loader/Loader.
|
|
3
|
+
import Loader from "../../../../../components/Loader/Loader.vue.js";
|
|
4
4
|
import _sfc_main$2 from "./ProfileEditSidebar.vue.js";
|
|
5
5
|
import { useRoute, useRouter } from "vue-router";
|
|
6
6
|
import { state } from "../../store/auth.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { computed, ref, onServerPrefetch, onMounted, createElementBlock, openBlock, createVNode, TransitionGroup, withCtx, createCommentVNode, Fragment, renderList, Transition, createBlock } from "vue";
|
|
2
2
|
import { u as useHead } from "../../../../../../node_modules/.pnpm/@unhead_vue@1.11.20_vue@3.5.13_typescript@5.8.3_/node_modules/@unhead/vue/dist/shared/vue.-sixQ7xP.js";
|
|
3
|
-
/* empty css
|
|
3
|
+
/* empty css */
|
|
4
4
|
import _sfc_main$1 from "../../../../components/EmptyState/EmptyState.vue.js";
|
|
5
5
|
import _sfc_main$2 from "../blocks/CardBlogpost.vue.js";
|
|
6
6
|
import SkeletonBlogpost from "../../../icons/skeletons/SkeletonBlogpost.vue.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","sources":["../../../../../../src/modules/core/locales/en.js"],"sourcesContent":["// @martyrs/src/modules/core/locales/en.js\nexport default {\n core: {\n errors: {\n USER_NOT_FOUND: 'Such user is not registered',\n USER_ALREADY_REGISTERED: 'Such user is already registered!',\n USER_NOT_REGISTERED_YET: 'This user has not been registered yet!',\n USER_PHONE_OR_PASSWORD_NOT_FOUND: 'User with such phone or password not found!',\n INCORRECT_PASSWORD_ENTERED: 'You entered an incorrect password!',\n INVALID_INVITATION_CODE: 'Incorrect invitation code.',\n MISSING_REQUIRED_PARAMETERS: 'Missing required parameters.',\n ERROR_UPDATING_USER: 'Something wrong when updating user.',\n PASSWORDS_DO_NOT_MATCH: 'The passwords you entered do not match. Please correct the errors and try again.',\n CODE_NOT_SENT: 'Something went wrong and the code was not sent. Please try again.',\n INPUT_ERROR: 'Please enter only a four-digit code.',\n WRONG_CODE: 'You entered an incorrect code. Please try again.',\n POST_URL_ALREADY_IN_USE: 'Failed! Blogpost with this URL is already in use!',\n NAME_CANNOT_BE_EMPTY: 'Error: Name cannot be empty. Please enter a name.',\n // File upload errors\n NO_FILES_UPLOADED: 'No files were uploaded.',\n FILE_PROCESSING_ERROR: 'Error processing files. Please try again.',\n FILES_TOO_LARGE: 'One or more files exceed the size limit.',\n FILES_WRONG_TYPE: 'One or more files have unsupported format.',\n FILES_SIZE_AND_TYPE_ERROR: 'Some files are too large and have unsupported format.',\n PREVIEW_GENERATION_ERROR: 'Error generating file previews.',\n IMAGE_CONVERSION_ERROR: 'Error converting image format.'\n }\n },\n footer: {\n description: 'Get in touch with us',\n phoneNumber: '+1 234 567 890',\n emailAddress: \"info{'@'}example.com\",\n hours_text: 'Mon-Fri: 9:00 AM - 6:00 PM',\n app: 'Download our app',\n subscribe: 'Subscribe to our newsletter',\n subscribe_text: 'Stay updated with the latest news and updates',\n follow: 'Follow us',\n year: '2025',\n heart: '♥',\n copyright: 'All rights reserved',\n ozdao: 'Made by OZ DAO',\n navigationColumns: [\n {\n sections: [\n {\n title: 'Company',\n items: [\n { name: 'About', url: 'about' },\n { name: 'Careers', url: 'careers' },\n { name: 'Contact', url: 'contact' }\n ]\n }\n ]\n },\n {\n sections: [\n {\n title: 'Resources',\n items: [\n { name: 'Blog', url: 'blog' },\n { name: 'Help Center', url: 'help' },\n { name: 'Privacy', url: 'privacy' }\n ]\n }\n ]\n }\n ],\n socialLinks: [\n { name: 'IconInstagram', url: 'https://instagram.com' },\n { name: 'IconFacebook', url: 'https://facebook.com' },\n { name: 'IconLinkedin', url: 'https://linkedin.com' }\n ]\n }\n};"],"names":[],"mappings":"AACA,MAAA,KAAe;AAAA,EACb,MAAM;AAAA,IACJ,QAAQ;AAAA,MACN,gBAAgB;AAAA,MAChB,yBAAyB;AAAA,MACzB,yBAAyB;AAAA,MACzB,kCAAkC;AAAA,MAClC,4BAA4B;AAAA,MAC5B,yBAAyB;AAAA,MACzB,6BAA6B;AAAA,MAC7B,qBAAqB;AAAA,MACrB,wBAAwB;AAAA,MACxB,eAAe;AAAA,MACf,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,yBAAyB;AAAA,MACzB,sBAAsB;AAAA;AAAA,MAEtB,mBAAmB;AAAA,MACnB,uBAAuB;AAAA,MACvB,iBAAiB;AAAA,MACjB,kBAAkB;AAAA,MAClB,2BAA2B;AAAA,MAC3B,0BAA0B;AAAA,MAC1B,wBAAwB;AAAA,IAC9B;AAAA,EACA;AAAA,EACE,QAAQ;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,OAAO;AAAA,IACP,mBAAmB;AAAA,MACjB;AAAA,QACE,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,cACL,EAAE,MAAM,SAAS,KAAK,QAAO;AAAA,cAC7B,EAAE,MAAM,WAAW,KAAK,UAAS;AAAA,cACjC,EAAE,MAAM,WAAW,KAAK,UAAS;AAAA,YAC/C;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,MACM;AAAA,QACE,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,cACL,EAAE,MAAM,QAAQ,KAAK,OAAM;AAAA,cAC3B,EAAE,MAAM,eAAe,KAAK,OAAM;AAAA,cAClC,EAAE,MAAM,WAAW,KAAK,UAAS;AAAA,YAC/C;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,IACI,aAAa;AAAA,MACX,EAAE,MAAM,iBAAiB,KAAK,wBAAuB;AAAA,MACrD,EAAE,MAAM,gBAAgB,KAAK,uBAAsB;AAAA,MACnD,EAAE,MAAM,gBAAgB,KAAK,uBAAsB;AAAA,IACzD;AAAA,EACA;AACA;"}
|
|
1
|
+
{"version":3,"file":"en.js","sources":["../../../../../../src/modules/core/locales/en.js"],"sourcesContent":["// @martyrs/src/modules/core/locales/en.js\nexport default {\n core: {\n ui: {\n darkMode: 'Dark Mode'\n },\n errors: {\n USER_NOT_FOUND: 'Such user is not registered',\n USER_ALREADY_REGISTERED: 'Such user is already registered!',\n USER_NOT_REGISTERED_YET: 'This user has not been registered yet!',\n USER_PHONE_OR_PASSWORD_NOT_FOUND: 'User with such phone or password not found!',\n INCORRECT_PASSWORD_ENTERED: 'You entered an incorrect password!',\n INVALID_INVITATION_CODE: 'Incorrect invitation code.',\n MISSING_REQUIRED_PARAMETERS: 'Missing required parameters.',\n ERROR_UPDATING_USER: 'Something wrong when updating user.',\n PASSWORDS_DO_NOT_MATCH: 'The passwords you entered do not match. Please correct the errors and try again.',\n CODE_NOT_SENT: 'Something went wrong and the code was not sent. Please try again.',\n INPUT_ERROR: 'Please enter only a four-digit code.',\n WRONG_CODE: 'You entered an incorrect code. Please try again.',\n POST_URL_ALREADY_IN_USE: 'Failed! Blogpost with this URL is already in use!',\n NAME_CANNOT_BE_EMPTY: 'Error: Name cannot be empty. Please enter a name.',\n // File upload errors\n NO_FILES_UPLOADED: 'No files were uploaded.',\n FILE_PROCESSING_ERROR: 'Error processing files. Please try again.',\n FILES_TOO_LARGE: 'One or more files exceed the size limit.',\n FILES_WRONG_TYPE: 'One or more files have unsupported format.',\n FILES_SIZE_AND_TYPE_ERROR: 'Some files are too large and have unsupported format.',\n PREVIEW_GENERATION_ERROR: 'Error generating file previews.',\n IMAGE_CONVERSION_ERROR: 'Error converting image format.'\n }\n },\n footer: {\n description: 'Get in touch with us',\n phoneNumber: '+1 234 567 890',\n emailAddress: \"info{'@'}example.com\",\n hours_text: 'Mon-Fri: 9:00 AM - 6:00 PM',\n app: 'Download our app',\n subscribe: 'Subscribe to our newsletter',\n subscribe_text: 'Stay updated with the latest news and updates',\n follow: 'Follow us',\n year: '2025',\n heart: '♥',\n copyright: 'All rights reserved',\n ozdao: 'Made by OZ DAO',\n navigationColumns: [\n {\n sections: [\n {\n title: 'Company',\n items: [\n { name: 'About', url: 'about' },\n { name: 'Careers', url: 'careers' },\n { name: 'Contact', url: 'contact' }\n ]\n }\n ]\n },\n {\n sections: [\n {\n title: 'Resources',\n items: [\n { name: 'Blog', url: 'blog' },\n { name: 'Help Center', url: 'help' },\n { name: 'Privacy', url: 'privacy' }\n ]\n }\n ]\n }\n ],\n socialLinks: [\n { name: 'IconInstagram', url: 'https://instagram.com' },\n { name: 'IconFacebook', url: 'https://facebook.com' },\n { name: 'IconLinkedin', url: 'https://linkedin.com' }\n ]\n }\n};"],"names":[],"mappings":"AACA,MAAA,KAAe;AAAA,EACb,MAAM;AAAA,IACJ,IAAI;AAAA,MACF,UAAU;AAAA,IAChB;AAAA,IACI,QAAQ;AAAA,MACN,gBAAgB;AAAA,MAChB,yBAAyB;AAAA,MACzB,yBAAyB;AAAA,MACzB,kCAAkC;AAAA,MAClC,4BAA4B;AAAA,MAC5B,yBAAyB;AAAA,MACzB,6BAA6B;AAAA,MAC7B,qBAAqB;AAAA,MACrB,wBAAwB;AAAA,MACxB,eAAe;AAAA,MACf,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,yBAAyB;AAAA,MACzB,sBAAsB;AAAA;AAAA,MAEtB,mBAAmB;AAAA,MACnB,uBAAuB;AAAA,MACvB,iBAAiB;AAAA,MACjB,kBAAkB;AAAA,MAClB,2BAA2B;AAAA,MAC3B,0BAA0B;AAAA,MAC1B,wBAAwB;AAAA,IAC9B;AAAA,EACA;AAAA,EACE,QAAQ;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,OAAO;AAAA,IACP,mBAAmB;AAAA,MACjB;AAAA,QACE,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,cACL,EAAE,MAAM,SAAS,KAAK,QAAO;AAAA,cAC7B,EAAE,MAAM,WAAW,KAAK,UAAS;AAAA,cACjC,EAAE,MAAM,WAAW,KAAK,UAAS;AAAA,YAC/C;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,MACM;AAAA,QACE,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,cACL,EAAE,MAAM,QAAQ,KAAK,OAAM;AAAA,cAC3B,EAAE,MAAM,eAAe,KAAK,OAAM;AAAA,cAClC,EAAE,MAAM,WAAW,KAAK,UAAS;AAAA,YAC/C;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,IACI,aAAa;AAAA,MACX,EAAE,MAAM,iBAAiB,KAAK,wBAAuB;AAAA,MACrD,EAAE,MAAM,gBAAgB,KAAK,uBAAsB;AAAA,MACnD,EAAE,MAAM,gBAAgB,KAAK,uBAAsB;AAAA,IACzD;AAAA,EACA;AACA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ru.js","sources":["../../../../../../src/modules/core/locales/ru.js"],"sourcesContent":["// @martyrs/src/modules/core/locales/ru.js\nexport default {\n core: {\n errors: {\n USER_NOT_FOUND: 'Такой пользователь не зарегистрирован!',\n USER_ALREADY_REGISTERED: 'Такой пользователь уже зарегистрирован!',\n USER_NOT_REGISTERED_YET: 'Такой пользователь еще не зарегистрирован!',\n USER_PHONE_OR_PASSWORD_NOT_FOUND: 'Пользователь с таким телефоном или паролем не найден!',\n INCORRECT_PASSWORD_ENTERED: 'Вы ввели неверный пароль!',\n INVALID_INVITATION_CODE: 'Неверный код приглашения',\n MISSING_REQUIRED_PARAMETERS: 'Отсутствуют необходимые параметры.',\n ERROR_UPDATING_USER: 'Произошла ошибка при обновлении пользователя.',\n PASSWORDS_DO_NOT_MATCH: 'Введенные вами пароли не совпадают. Исправьте ошибки и попробуйте еще раз.',\n CODE_NOT_SENT: 'Что-то пошло не так и код не был отправлен. Попробуйте еще раз.',\n INPUT_ERROR: 'Вставьте только четырехзначный код.',\n WRONG_CODE: 'Вы ввели неверный код. Попробуйте еще раз.',\n POST_URL_ALREADY_IN_USE: 'Ошибка! Публикация с этим URL уже используется!',\n NAME_CANNOT_BE_EMPTY: 'Ошибка: Название не может быть пустым. Пожалуйста, введите название.',\n }\n },\n footer: {\n description: 'Свяжитесь с нами',\n phoneNumber: '+1 234 567 890',\n emailAddress: \"info{'@'}example.com\",\n hours_text: 'Пн-Пт: 9:00 - 18:00',\n app: 'Скачайте наше приложение',\n subscribe: 'Подпишитесь на рассылку',\n subscribe_text: 'Будьте в курсе последних новостей и обновлений',\n follow: 'Подписывайтесь',\n year: '2025',\n heart: '♥',\n copyright: 'Все права защищены',\n ozdao: 'Сделано OZ DAO',\n navigationColumns: [\n {\n sections: [\n {\n title: 'Компания',\n items: [\n { name: 'О нас', url: 'about' },\n { name: 'Карьера', url: 'careers' },\n { name: 'Контакты', url: 'contact' }\n ]\n }\n ]\n },\n {\n sections: [\n {\n title: 'Ресурсы',\n items: [\n { name: 'Блог', url: 'blog' },\n { name: 'Помощь', url: 'help' },\n { name: 'Конфиденциальность', url: 'privacy' }\n ]\n }\n ]\n }\n ],\n socialLinks: [\n { name: 'IconInstagram', url: 'https://instagram.com' },\n { name: 'IconFacebook', url: 'https://facebook.com' },\n { name: 'IconLinkedin', url: 'https://linkedin.com' }\n ]\n }\n};"],"names":[],"mappings":"AACA,MAAA,KAAe;AAAA,EACb,MAAM;AAAA,IACJ,QAAQ;AAAA,MACN,gBAAgB;AAAA,MAChB,yBAAyB;AAAA,MACzB,yBAAyB;AAAA,MACzB,kCAAkC;AAAA,MAClC,4BAA4B;AAAA,MAC5B,yBAAyB;AAAA,MACzB,6BAA6B;AAAA,MAC7B,qBAAqB;AAAA,MACrB,wBAAwB;AAAA,MACxB,eAAe;AAAA,MACf,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,yBAAyB;AAAA,MACzB,sBAAsB;AAAA,IAC5B;AAAA,EACA;AAAA,EACE,QAAQ;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,OAAO;AAAA,IACP,mBAAmB;AAAA,MACjB;AAAA,QACE,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,cACL,EAAE,MAAM,SAAS,KAAK,QAAO;AAAA,cAC7B,EAAE,MAAM,WAAW,KAAK,UAAS;AAAA,cACjC,EAAE,MAAM,YAAY,KAAK,UAAS;AAAA,YAChD;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,MACM;AAAA,QACE,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,cACL,EAAE,MAAM,QAAQ,KAAK,OAAM;AAAA,cAC3B,EAAE,MAAM,UAAU,KAAK,OAAM;AAAA,cAC7B,EAAE,MAAM,sBAAsB,KAAK,UAAS;AAAA,YAC1D;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,IACI,aAAa;AAAA,MACX,EAAE,MAAM,iBAAiB,KAAK,wBAAuB;AAAA,MACrD,EAAE,MAAM,gBAAgB,KAAK,uBAAsB;AAAA,MACnD,EAAE,MAAM,gBAAgB,KAAK,uBAAsB;AAAA,IACzD;AAAA,EACA;AACA;"}
|
|
1
|
+
{"version":3,"file":"ru.js","sources":["../../../../../../src/modules/core/locales/ru.js"],"sourcesContent":["// @martyrs/src/modules/core/locales/ru.js\nexport default {\n core: {\n ui: {\n darkMode: 'Тёмная тема'\n },\n errors: {\n USER_NOT_FOUND: 'Такой пользователь не зарегистрирован!',\n USER_ALREADY_REGISTERED: 'Такой пользователь уже зарегистрирован!',\n USER_NOT_REGISTERED_YET: 'Такой пользователь еще не зарегистрирован!',\n USER_PHONE_OR_PASSWORD_NOT_FOUND: 'Пользователь с таким телефоном или паролем не найден!',\n INCORRECT_PASSWORD_ENTERED: 'Вы ввели неверный пароль!',\n INVALID_INVITATION_CODE: 'Неверный код приглашения',\n MISSING_REQUIRED_PARAMETERS: 'Отсутствуют необходимые параметры.',\n ERROR_UPDATING_USER: 'Произошла ошибка при обновлении пользователя.',\n PASSWORDS_DO_NOT_MATCH: 'Введенные вами пароли не совпадают. Исправьте ошибки и попробуйте еще раз.',\n CODE_NOT_SENT: 'Что-то пошло не так и код не был отправлен. Попробуйте еще раз.',\n INPUT_ERROR: 'Вставьте только четырехзначный код.',\n WRONG_CODE: 'Вы ввели неверный код. Попробуйте еще раз.',\n POST_URL_ALREADY_IN_USE: 'Ошибка! Публикация с этим URL уже используется!',\n NAME_CANNOT_BE_EMPTY: 'Ошибка: Название не может быть пустым. Пожалуйста, введите название.',\n }\n },\n footer: {\n description: 'Свяжитесь с нами',\n phoneNumber: '+1 234 567 890',\n emailAddress: \"info{'@'}example.com\",\n hours_text: 'Пн-Пт: 9:00 - 18:00',\n app: 'Скачайте наше приложение',\n subscribe: 'Подпишитесь на рассылку',\n subscribe_text: 'Будьте в курсе последних новостей и обновлений',\n follow: 'Подписывайтесь',\n year: '2025',\n heart: '♥',\n copyright: 'Все права защищены',\n ozdao: 'Сделано OZ DAO',\n navigationColumns: [\n {\n sections: [\n {\n title: 'Компания',\n items: [\n { name: 'О нас', url: 'about' },\n { name: 'Карьера', url: 'careers' },\n { name: 'Контакты', url: 'contact' }\n ]\n }\n ]\n },\n {\n sections: [\n {\n title: 'Ресурсы',\n items: [\n { name: 'Блог', url: 'blog' },\n { name: 'Помощь', url: 'help' },\n { name: 'Конфиденциальность', url: 'privacy' }\n ]\n }\n ]\n }\n ],\n socialLinks: [\n { name: 'IconInstagram', url: 'https://instagram.com' },\n { name: 'IconFacebook', url: 'https://facebook.com' },\n { name: 'IconLinkedin', url: 'https://linkedin.com' }\n ]\n }\n};"],"names":[],"mappings":"AACA,MAAA,KAAe;AAAA,EACb,MAAM;AAAA,IACJ,IAAI;AAAA,MACF,UAAU;AAAA,IAChB;AAAA,IACI,QAAQ;AAAA,MACN,gBAAgB;AAAA,MAChB,yBAAyB;AAAA,MACzB,yBAAyB;AAAA,MACzB,kCAAkC;AAAA,MAClC,4BAA4B;AAAA,MAC5B,yBAAyB;AAAA,MACzB,6BAA6B;AAAA,MAC7B,qBAAqB;AAAA,MACrB,wBAAwB;AAAA,MACxB,eAAe;AAAA,MACf,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,yBAAyB;AAAA,MACzB,sBAAsB;AAAA,IAC5B;AAAA,EACA;AAAA,EACE,QAAQ;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,OAAO;AAAA,IACP,mBAAmB;AAAA,MACjB;AAAA,QACE,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,cACL,EAAE,MAAM,SAAS,KAAK,QAAO;AAAA,cAC7B,EAAE,MAAM,WAAW,KAAK,UAAS;AAAA,cACjC,EAAE,MAAM,YAAY,KAAK,UAAS;AAAA,YAChD;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,MACM;AAAA,QACE,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,cACL,EAAE,MAAM,QAAQ,KAAK,OAAM;AAAA,cAC3B,EAAE,MAAM,UAAU,KAAK,OAAM;AAAA,cAC7B,EAAE,MAAM,sBAAsB,KAAK,UAAS;AAAA,YAC1D;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,IACI,aAAa;AAAA,MACX,EAAE,MAAM,iBAAiB,KAAK,wBAAuB;AAAA,MACrD,EAAE,MAAM,gBAAgB,KAAK,uBAAsB;AAAA,MACnD,EAAE,MAAM,gBAAgB,KAAK,uBAAsB;AAAA,IACzD;AAAA,EACA;AACA;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { resolveComponent, createElementBlock, createCommentVNode, openBlock, createElementVNode, createBlock, withModifiers, resolveDynamicComponent, toDisplayString, withCtx, createTextVNode, Fragment, renderList, normalizeClass } from "vue";
|
|
2
2
|
import { useRouter } from "vue-router";
|
|
3
3
|
import _sfc_main$1 from "../../../../../components/Tooltip/Tooltip.vue2.js";
|
|
4
|
-
import _sfc_main$3 from "../../../../../components/Dropdown/Dropdown.
|
|
4
|
+
import _sfc_main$3 from "../../../../../components/Dropdown/Dropdown.vue.js";
|
|
5
5
|
import PlaceholderUserpic from "../../../../icons/placeholders/PlaceholderUserpic.vue.js";
|
|
6
6
|
import PlaceholderOrganizationPic from "../../../../icons/placeholders/PlaceholderOrganizationPic.vue.js";
|
|
7
7
|
import _sfc_main$4 from "../../../../icons/navigation/IconEllipsis.vue.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, computed, watch, onMounted, createBlock, openBlock, withCtx, createElementVNode, createVNode, createElementBlock, createCommentVNode, toDisplayString, unref } from "vue";
|
|
2
2
|
import { useI18n } from "vue-i18n";
|
|
3
3
|
import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
|
|
4
|
-
import Loader from "../../../../../components/Loader/Loader.
|
|
4
|
+
import Loader from "../../../../../components/Loader/Loader.vue.js";
|
|
5
5
|
import Calendar from "../../../../../components/Calendar/Calendar.vue2.js";
|
|
6
6
|
import _sfc_main$3 from "../../../../../components/Button/Button.vue.js";
|
|
7
7
|
import _sfc_main$4 from "../../../../icons/actions/IconShopcartAdd.vue.js";
|
|
@@ -7,7 +7,7 @@ import _sfc_main$2 from "../../../../../components/Status/Snack.vue.js";
|
|
|
7
7
|
import _sfc_main$3 from "../../../../../components/Popup/Popup.vue.js";
|
|
8
8
|
import "vue-i18n";
|
|
9
9
|
/* empty css */
|
|
10
|
-
import Loader from "../../../../../components/Loader/Loader.
|
|
10
|
+
import Loader from "../../../../../components/Loader/Loader.vue.js";
|
|
11
11
|
/* empty css */
|
|
12
12
|
/* empty css */
|
|
13
13
|
import _sfc_main$4 from "../partials/LocationSelection.vue.js";
|
|
@@ -225,8 +225,17 @@ const _sfc_main = {
|
|
|
225
225
|
theme: headerTheme.value,
|
|
226
226
|
logotype: unref(route).meta.logotype,
|
|
227
227
|
location: unref(route).meta.location,
|
|
228
|
-
headerClass: computedHeaderClass.value
|
|
228
|
+
headerClass: computedHeaderClass.value,
|
|
229
|
+
showCart: unref(route).meta.header_show_cart ?? true,
|
|
230
|
+
showProfile: unref(route).meta.header_show_profile ?? true,
|
|
231
|
+
showNotifications: unref(route).meta.header_show_notifications ?? true
|
|
229
232
|
}, {
|
|
233
|
+
right: withCtx(() => [
|
|
234
|
+
unref(route).meta?.header_right_component ? (openBlock(), createBlock(resolveDynamicComponent(unref(route).meta.header_right_component), {
|
|
235
|
+
key: 0,
|
|
236
|
+
theme: headerTheme.value
|
|
237
|
+
}, null, 8, ["theme"])) : createCommentVNode("", true)
|
|
238
|
+
]),
|
|
230
239
|
default: withCtx(() => [
|
|
231
240
|
unref(route).meta?.header_navigation ? (openBlock(), createBlock(resolveDynamicComponent(unref(route).meta.header_navigation), {
|
|
232
241
|
key: 0,
|
|
@@ -237,7 +246,7 @@ const _sfc_main = {
|
|
|
237
246
|
}, null, 8, ["navigationItems", "stateSidebar", "theme"])) : createCommentVNode("", true)
|
|
238
247
|
]),
|
|
239
248
|
_: 1
|
|
240
|
-
}, 8, ["theme", "logotype", "location", "headerClass"])) : createCommentVNode("", true),
|
|
249
|
+
}, 8, ["theme", "logotype", "location", "headerClass", "showCart", "showProfile", "showNotifications"])) : createCommentVNode("", true),
|
|
241
250
|
createVNode(Transition, {
|
|
242
251
|
name: "moveFromTop",
|
|
243
252
|
mode: "out-in",
|
|
@@ -292,8 +301,9 @@ const _sfc_main = {
|
|
|
292
301
|
footer: withCtx(() => [
|
|
293
302
|
unref(route).meta?.sidebar_footer_component ? (openBlock(), createBlock(resolveDynamicComponent(unref(route).meta.sidebar_footer_component), {
|
|
294
303
|
key: 0,
|
|
295
|
-
theme: headerTheme.value
|
|
296
|
-
|
|
304
|
+
theme: headerTheme.value,
|
|
305
|
+
stateSidebar: unref(store).core.state.isOpenSidebar
|
|
306
|
+
}, null, 8, ["theme", "stateSidebar"])) : createCommentVNode("", true)
|
|
297
307
|
]),
|
|
298
308
|
default: withCtx(() => [
|
|
299
309
|
createVNode(Transition, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.vue.js","sources":["../../../../../../../../src/modules/core/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n <div\n class=\"flex flex-column h-100 w-100 pos-relative o-hidden\"\n id=\"app-wrapper\"\n :class=\"{\n [(route.name ? route.name.replace(/\\s+/g, '_') : route.path.replace(/\\W+/g, '_')).toLowerCase()]: true,\n 'pd-t-big': MOBILE_APP === 'ios',\n 'bg-white': headerTheme === 'light',\n 'bg-black': headerTheme === 'dark',\n }\"\n >\n <transition name=\"moveFromTop\" appear>\n <Loader class=\"pos-fixed z-index-10\" v-if=\"!page || store.core.state.loading\" :centered=\"true\" />\n </transition>\n\n <transition name=\"moveFromTop\" mode=\"out-in\">\n <section class=\"w-100 h-100\" v-if=\"FirstUse && route.meta.walkthrough\">\n <component class=\"tab\" :is=\"route.meta.walkthrough\" name=\"Walkthrough\" @updateFirstUse=\"updateFirstUse\" :slides=\"[1, 2, 3]\"> </component>\n </section>\n </transition>\n \n <transition name=\"moveFromTop\" mode=\"out-in\">\n <Status class=\"z-index-10\" v-if=\"store.core.state.error.show\" :data=\"store.core.state.error\" @close=\"store.core.state.error.show = false\" />\n </transition>\n\n <transition name=\"moveFromTop\" mode=\"out-in\">\n <Snack\n class=\"z-index-10\"\n v-if=\"store.core.state.snack.show\"\n :type=\"store.core.state.snack.type\"\n :message=\"store.core.state.snack.message\"\n :show=\"store.core.state.snack.show\"\n @close=\"store.core.state.snack.show = false\"\n />\n </transition>\n\n\n <component\n v-if=\"!MOBILE_APP && route.meta.header\"\n ref=\"header\"\n :is=\"route.meta.header\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.logotype\"\n :location=\"route.meta.location\"\n :headerClass=\"computedHeaderClass\"\n >\n <component\n v-if=\"route.meta?.header_navigation\"\n :is=\"route.meta.header_navigation\"\n :horizontal=\"true\"\n :navigationItems=\"route.meta.header_navigation_items\"\n :stateSidebar=\"store.core.state.isOpenSidebar\"\n :theme=\"headerTheme\"\n />\n </component>\n\n\n <transition name=\"moveFromTop\" mode=\"out-in\" appear>\n <component\n v-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.logotype\"\n :navigationItems=\"route.meta.sidebar_navigation_items\"\n :stateSidebar=\"store.core.state.isOpenSidebar\"\n />\n </transition>\n\n <Popup class=\"bg-white pd-semi w-m-33r radius-big\" @close-popup=\"closeLocationPopup\" :isPopupOpen=\"store.core.state.isOpenLocationPopup\">\n <LocationSelection />\n </Popup>\n\n <!-- class=\"flex flex-nowrap ease-in-out o-hidden pos-relative\" -->\n <section\n class=\"flex flex-nowrap h-100 pos-relative o-hidden ease-in-out\"\n id=\"screen\"\n ref=\"screen\"\n :class=\"{\n '': MOBILE_APP === 'ios',\n }\"\n >\n <ShopCart\n :class=\"{\n 'mobile:pd-t-extra': MOBILE_APP === 'ios',\n }\"\n />\n <component\n v-if=\"route.meta?.sidebar\"\n :is=\"route.meta.sidebar\"\n :stateSidebar=\"store.core.state.isOpenSidebar\"\n :widthHidden=\"route.meta?.sidebar_width_hidden\"\n :width=\"route.meta?.sidebar_width\"\n :theme=\"headerTheme\"\n @closeSidebar=\"() => (store.core.state.isOpenSidebar = false)\"\n >\n <!-- Header slot -->\n <template #header>\n <component v-if=\"route.meta?.sidebar_header_component\" :is=\"route.meta.sidebar_header_component\" :theme=\"headerTheme\" />\n </template>\n\n <!-- Navigation (default slot) -->\n <transition name=\"moveFromTop\" mode=\"out-in\">\n <component\n v-if=\"route.meta?.sidebar_navigation\"\n :is=\"route.meta.sidebar_navigation\"\n :key=\"route.meta.sidebar_navigation\"\n :navigationItems=\"route.meta.sidebar_navigation_items\"\n :stateSidebar=\"store.core.state.isOpenSidebar\"\n :theme=\"headerTheme\"\n />\n </transition>\n\n <!-- Footer slot -->\n <template #footer>\n <component v-if=\"route.meta?.sidebar_footer_component\" :is=\"route.meta.sidebar_footer_component\" :theme=\"headerTheme\" />\n </template>\n </component>\n\t \n <div class=\"rows-[minmax(0,1fr)] z-index-1 pos-relative w-100 h-100\">\n <div class=\"o-y-scroll o-x-hidden h-100\" id=\"scrollview\" ref=\"scrollview\" @scroll=\"handleScroll\">\n <div class=\"h-min-100 pos-relative w-100\">\n <!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t<Breadcrumbs \n\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\tclass=\"bg-light pd-small radius-small\"\n\t\t\t\t/>\n\t\t\t</section> -->\n\n <Suspense @resolve=\"onSuspenseResolved\">\n <router-view\n class=\"h-min-100 pos-relative w-100\"\n id=\"view\"\n v-slot=\"{ Component, route }\"\n :class=\"{\n 'scroll-hide': MOBILE_APP,\n }\"\n >\n <transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n <div class=\"w-100 h-min-100\" :key=\"componentKey\">\n <component class=\"w-100 h-min-100\" ref=\"page\" :is=\"Component\" @page-loading=\"handlePageLoading\" @page-loaded=\"handlePageLoaded\" />\n <component\n v-if=\"!MOBILE_APP && route.meta.footer && !route.meta.hideFooter\"\n ref=\"footer\"\n :is=\"route.meta.footer\"\n :theme=\"route.meta.footer_theme || 'light'\"\n :logotype=\"route.meta.logotype\"\n :location=\"route.meta.location\"\n />\n </div>\n </transition>\n </router-view>\n </Suspense>\n </div>\n\n <component class=\"z-index-2\" id=\"player-wrapper\" v-if=\"route.meta.player\" :is=\"route.meta.player\" />\n </div>\n </div>\n </section>\n\n <router-view v-slot=\"{ Component, route }\" name=\"defaultBottom\">\n <component :is=\"Component\" />\n </router-view>\n\n <component class=\"z-index-2\" v-if=\"MOBILE_APP && route.meta.title_hide\" :is=\"route.meta.bottombar\" />\n </div>\n</template>\n\n<script setup>\nimport { computed, ref, onMounted } from 'vue';\n// Router\nimport { useRoute } from 'vue-router';\n// Store\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n// Partials\nimport Status from '@martyrs/src/components/Status/Status.vue';\nimport Snack from '@martyrs/src/components/Status/Snack.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue';\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\n\nimport NavigationBar from '@martyrs/src/modules/core/views/components/partials/NavigationBar.vue';\nimport LocationSelection from '@martyrs/src/modules/core/views/components/partials/LocationSelection.vue';\n\nimport ShopCart from '@martyrs/src/modules/orders/components/partials/ShopCart.vue';\n// PROPS\nconst props = defineProps({\n env: {\n type: Object,\n required: true,\n },\n app: {\n type: Object,\n required: true,\n },\n modules: {\n type: Object,\n required: true,\n },\n});\n\nconst store = useStore();\n\n/////////////////////////////\n// LOADING\n/////////////////////////////\n// State\nlet show = ref(false);\n// Preloader\nconst page = ref(null);\nconst scrollview = ref(null);\n\n// isPageLoading убран - используем core.state.loading\n\n// Обработчики событий загрузки\nfunction handlePageLoading() {\n store.core.state.loading = true;\n}\n\nfunction handlePageLoaded() {\n store.core.state.loading = false;\n}\n\n// Обработка события разрешения Suspense (когда async setup компонента завершается)\nfunction onSuspenseResolved() {\n // Если страница не отправляет событие page-loaded, этот обработчик\n // может служить запасным вариантом для отключения лоадера\n // Можно оставить закомментированным, если все страницы будут явно вызывать handlePageLoaded\n store.core.state.loading = false;\n}\n/////////////////////////////\n// CREATED\n/////////////////////////////\nconst route = useRoute();\n// const router = useRouter()\n\n// Инициализация sidebar для SSR + первая загрузка\nif (route.meta?.sidebarOpenOnEnter === true) {\n store.core.state.isOpenSidebar = true;\n}\n\n// Ref Code\nconst referalCode = ref(route.query.referalCode);\n/////////////////////////////\n// Methods\n/////////////////////////////\nfunction closeLocationPopup() {\n store.core.state.isOpenLocationPopup = false;\n}\nfunction scrollTop() {\n if (scrollview.value) scrollview.value.scrollTop = 0;\n}\n// Scrolling header\nconst scrollOffset = ref(0);\nconst header = ref(null);\n\n// Режим → классы позиционирования\nconst modeClasses = {\n static: 'pos-relative',\n sticky: 'pos-sticky pos-t-0',\n fixed: 'pos-fixed pos-t-0 w-100',\n overlay: 'pos-absolute pos-t-0 w-100'\n};\n\n// isScrolled\nconst isScrolled = computed(() =>\n scrollOffset.value > (route.meta.header_scroll_threshold ?? 50)\n);\n\n// headerTheme с учётом скролла\nconst headerTheme = computed(() => {\n if (isScrolled.value && route.meta.header_scroll_theme) {\n return route.meta.header_scroll_theme;\n }\n return route.meta.header_theme || 'light';\n});\n\n// headerModeClass (overlay → fixed после скролла)\nconst headerModeClass = computed(() => {\n const mode = route.meta.header_mode || 'static';\n if (mode === 'overlay' && isScrolled.value) {\n return 'pos-fixed pos-t-0 w-100';\n }\n return modeClasses[mode];\n});\n\n// headerAppearanceClass\nconst headerAppearanceClass = computed(() => {\n const config = isScrolled.value\n ? route.meta.header_scroll_class\n : route.meta.header_class;\n\n if (config && typeof config === 'object') {\n return config[headerTheme.value];\n }\n return config;\n});\n\n// Autohide\nconst isHidden = ref(false);\nlet lastScrollY = 0;\n\n// computedHeaderClass для передачи в Header\nconst computedHeaderClass = computed(() => [\n headerModeClass.value,\n headerAppearanceClass.value,\n { 'header--hidden': isHidden.value }\n]);\n\nconst handleScroll = (event) => {\n const scrollY = event.target.scrollTop;\n scrollOffset.value = scrollY;\n\n // Autohide логика\n if (route.meta.header_autohide) {\n if (scrollY > lastScrollY && scrollY > 200) {\n isHidden.value = true;\n } else if (scrollY < lastScrollY) {\n isHidden.value = false;\n }\n lastScrollY = scrollY;\n }\n};\n/////////////////////////////\n// FIRST USE\n/////////////////////////////\nconst FirstUse = ref(false);\n\nimport { Preferences } from '@capacitor/preferences';\n\nasync function getFirstUse() {\n const ret = await Preferences.get({ key: 'first-use' });\n FirstUse.value = ret.value ? JSON.parse(ret.value) : true;\n}\n\nconst updateFirstUse = value => {\n FirstUse.value = value;\n};\n\nconst { isPhone, isTablet } = useGlobalMixins();\n\nonMounted(async () => {\n await getFirstUse();\n\n // Закрываем sidebar на mobile (CSS уже скрыл визуально)\n if ((isPhone() || isTablet()) && store.core.state.isOpenSidebar) {\n store.core.state.isOpenSidebar = false;\n }\n\n // Регистрация единого Service Worker (PWA + push notifications)\n if ('serviceWorker' in navigator && !window.__MOBILE_APP__) {\n window.addEventListener('load', () => {\n navigator.serviceWorker\n .register('/sw.js')\n .then(registration => {\n console.log('Unified SW registered: ', registration);\n })\n .catch(registrationError => {\n console.log('SW registration failed: ', registrationError);\n });\n });\n }\n\n if (!store.core.state.position && route.meta.location) {\n store.core.state.isOpenLocationPopup = true;\n } else {\n store.core.state.isOpenLocationPopup = false;\n }\n\n if (referalCode.value) {\n localStorage.setItem('referalCode', referalCode.value);\n }\n\n if (page.value) show.value = true;\n});\n\nconst componentKey = computed(() => {\n // Собираем только значимые параметры (ID сущностей)\n const significantParams = ['_id', 'product', 'organization', 'categoryPath', 'country', 'state', 'city']\n .map(param => route.params[param])\n .filter(Boolean)\n .join('-');\n\n return significantParams || route.meta.layoutKey || route.name;\n});\n</script>\n\n<style lang=\"scss\">\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.5s;\n}\n\n.fade-enter,\n.fade-leave-to\n\n/* .fade-leave-active в версии 2.1.8+ */ {\n opacity: 0;\n}\n\n.fade-move,\n.fade-enter-active,\n.fade-leave-active {\n transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);\n}\n\n/* 2. declare enter from and leave to state */\n.fade-enter-from,\n.fade-leave-to {\n opacity: 0;\n transform: translate(30px, 0);\n}\n\n/* 3. ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n.fade-leave-active {\n position: absolute;\n}\n\n.moveFromTop-enter-active,\n.moveFromTop-leave-active {\n transition:\n all 0.3s ease,\n max-height 0.2s ease;\n overflow: hidden;\n}\n\n.moveFromTop-enter-from,\n.moveFromTop-leave-to {\n transform: translateY(-1rem);\n opacity: 0;\n // max-height: 0;\n}\n\n.moveFromTop-enter-to,\n.moveFromTop-leave-from {\n // max-height: 100vh;\n}\n\n.moveFromTopAbsolute-enter-active,\n.moveFromTopAbsolute-leave-active {\n transform: translateY(0);\n opacity: 1;\n transition: all 0.5s ease;\n}\n\n.moveFromTopAbsolute-enter-from,\n.moveFromTopAbsolute-leave-to {\n position: absolute;\n transform: translateY(-1rem);\n opacity: 0;\n transition: all 0.5s ease;\n}\n\n.ScaleOut-enter-active,\n.ScaleOut-leave-active {\n opacity: 1;\n transform: scale(1);\n transition: all 0.3s ease;\n}\n\n.ScaleOut-enter-from,\n.ScaleOut-leave-to {\n opacity: 0;\n transform: scale(0.9);\n transition: all 0.3s ease;\n}\n\n.slide-fade-enter-active {\n // min-height: 100vh;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.slide-fade-leave-active {\n // min-height: 100vh;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.slide-fade-enter-from,\n.slide-fade-leave-to {\n min-height: 0;\n transform: translateX(20px);\n opacity: 0;\n left: 0;\n top: 0;\n}\n\n.scaleTransition-5px-enter-active,\n.scaleTransition-5px-leave-active {\n transform: translateY(0px);\n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.scaleTransition-5px-enter-from,\n.scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px);\n transition: all 0.2s ease;\n}\n\n.scaleTransition-enter-from,\n.scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px);\n transition: all 0.5s ease;\n}\n\n.scaleTransition-enter-active,\n.scaleTransition-leave-active {\n transform: translateY(0px);\n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n}\n\n.scaleTransition-enter-from,\n.scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px);\n transition: all 0.5s ease;\n}\n\n.scaleIn-enter-active,\n.scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n\n > section,\n div {\n transform-origin: 0 0;\n transform: translateZ(0px);\n transition: all 0.5s ease;\n }\n}\n\n.scaleIn-enter-from,\n.scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n\n > section,\n div {\n transform: translateZ(-30px);\n transition: all 0.5s ease;\n }\n}\n</style>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Client.vue.js","sources":["../../../../../../../../src/modules/core/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n <div\n class=\"flex flex-column h-100 w-100 pos-relative o-hidden\"\n id=\"app-wrapper\"\n :class=\"{\n [(route.name ? route.name.replace(/\\s+/g, '_') : route.path.replace(/\\W+/g, '_')).toLowerCase()]: true,\n 'pd-t-big': MOBILE_APP === 'ios',\n 'bg-white': headerTheme === 'light',\n 'bg-black': headerTheme === 'dark',\n }\"\n >\n <transition name=\"moveFromTop\" appear>\n <Loader class=\"pos-fixed z-index-10\" v-if=\"!page || store.core.state.loading\" :centered=\"true\" />\n </transition>\n\n <transition name=\"moveFromTop\" mode=\"out-in\">\n <section class=\"w-100 h-100\" v-if=\"FirstUse && route.meta.walkthrough\">\n <component class=\"tab\" :is=\"route.meta.walkthrough\" name=\"Walkthrough\" @updateFirstUse=\"updateFirstUse\" :slides=\"[1, 2, 3]\"> </component>\n </section>\n </transition>\n \n <transition name=\"moveFromTop\" mode=\"out-in\">\n <Status class=\"z-index-10\" v-if=\"store.core.state.error.show\" :data=\"store.core.state.error\" @close=\"store.core.state.error.show = false\" />\n </transition>\n\n <transition name=\"moveFromTop\" mode=\"out-in\">\n <Snack\n class=\"z-index-10\"\n v-if=\"store.core.state.snack.show\"\n :type=\"store.core.state.snack.type\"\n :message=\"store.core.state.snack.message\"\n :show=\"store.core.state.snack.show\"\n @close=\"store.core.state.snack.show = false\"\n />\n </transition>\n\n\n <component\n v-if=\"!MOBILE_APP && route.meta.header\"\n ref=\"header\"\n :is=\"route.meta.header\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.logotype\"\n :location=\"route.meta.location\"\n :headerClass=\"computedHeaderClass\"\n :showCart=\"route.meta.header_show_cart ?? true\"\n :showProfile=\"route.meta.header_show_profile ?? true\"\n :showNotifications=\"route.meta.header_show_notifications ?? true\"\n >\n <component\n v-if=\"route.meta?.header_navigation\"\n :is=\"route.meta.header_navigation\"\n :horizontal=\"true\"\n :navigationItems=\"route.meta.header_navigation_items\"\n :stateSidebar=\"store.core.state.isOpenSidebar\"\n :theme=\"headerTheme\"\n />\n <template #right>\n <component v-if=\"route.meta?.header_right_component\" :is=\"route.meta.header_right_component\" :theme=\"headerTheme\" />\n </template>\n </component>\n\n\n <transition name=\"moveFromTop\" mode=\"out-in\" appear>\n <component\n v-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.logotype\"\n :navigationItems=\"route.meta.sidebar_navigation_items\"\n :stateSidebar=\"store.core.state.isOpenSidebar\"\n />\n </transition>\n\n <Popup class=\"bg-white pd-semi w-m-33r radius-big\" @close-popup=\"closeLocationPopup\" :isPopupOpen=\"store.core.state.isOpenLocationPopup\">\n <LocationSelection />\n </Popup>\n\n <!-- class=\"flex flex-nowrap ease-in-out o-hidden pos-relative\" -->\n <section\n class=\"flex flex-nowrap h-100 pos-relative o-hidden ease-in-out\"\n id=\"screen\"\n ref=\"screen\"\n :class=\"{\n '': MOBILE_APP === 'ios',\n }\"\n >\n <ShopCart\n :class=\"{\n 'mobile:pd-t-extra': MOBILE_APP === 'ios',\n }\"\n />\n <component\n v-if=\"route.meta?.sidebar\"\n :is=\"route.meta.sidebar\"\n :stateSidebar=\"store.core.state.isOpenSidebar\"\n :widthHidden=\"route.meta?.sidebar_width_hidden\"\n :width=\"route.meta?.sidebar_width\"\n :theme=\"headerTheme\"\n @closeSidebar=\"() => (store.core.state.isOpenSidebar = false)\"\n >\n <!-- Header slot -->\n <template #header>\n <component v-if=\"route.meta?.sidebar_header_component\" :is=\"route.meta.sidebar_header_component\" :theme=\"headerTheme\" />\n </template>\n\n <!-- Navigation (default slot) -->\n <transition name=\"moveFromTop\" mode=\"out-in\">\n <component\n v-if=\"route.meta?.sidebar_navigation\"\n :is=\"route.meta.sidebar_navigation\"\n :key=\"route.meta.sidebar_navigation\"\n :navigationItems=\"route.meta.sidebar_navigation_items\"\n :stateSidebar=\"store.core.state.isOpenSidebar\"\n :theme=\"headerTheme\"\n />\n </transition>\n\n <!-- Footer slot -->\n <template #footer>\n <component v-if=\"route.meta?.sidebar_footer_component\" :is=\"route.meta.sidebar_footer_component\" :theme=\"headerTheme\" :stateSidebar=\"store.core.state.isOpenSidebar\" />\n </template>\n </component>\n\t \n <div class=\"rows-[minmax(0,1fr)] z-index-1 pos-relative w-100 h-100\">\n <div class=\"o-y-scroll o-x-hidden h-100\" id=\"scrollview\" ref=\"scrollview\" @scroll=\"handleScroll\">\n <div class=\"h-min-100 pos-relative w-100\">\n <!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t<Breadcrumbs \n\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\tclass=\"bg-light pd-small radius-small\"\n\t\t\t\t/>\n\t\t\t</section> -->\n\n <Suspense @resolve=\"onSuspenseResolved\">\n <router-view\n class=\"h-min-100 pos-relative w-100\"\n id=\"view\"\n v-slot=\"{ Component, route }\"\n :class=\"{\n 'scroll-hide': MOBILE_APP,\n }\"\n >\n <transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n <div class=\"w-100 h-min-100\" :key=\"componentKey\">\n <component class=\"w-100 h-min-100\" ref=\"page\" :is=\"Component\" @page-loading=\"handlePageLoading\" @page-loaded=\"handlePageLoaded\" />\n <component\n v-if=\"!MOBILE_APP && route.meta.footer && !route.meta.hideFooter\"\n ref=\"footer\"\n :is=\"route.meta.footer\"\n :theme=\"route.meta.footer_theme || 'light'\"\n :logotype=\"route.meta.logotype\"\n :location=\"route.meta.location\"\n />\n </div>\n </transition>\n </router-view>\n </Suspense>\n </div>\n\n <component class=\"z-index-2\" id=\"player-wrapper\" v-if=\"route.meta.player\" :is=\"route.meta.player\" />\n </div>\n </div>\n </section>\n\n <router-view v-slot=\"{ Component, route }\" name=\"defaultBottom\">\n <component :is=\"Component\" />\n </router-view>\n\n <component class=\"z-index-2\" v-if=\"MOBILE_APP && route.meta.title_hide\" :is=\"route.meta.bottombar\" />\n </div>\n</template>\n\n<script setup>\nimport { computed, ref, onMounted } from 'vue';\n// Router\nimport { useRoute } from 'vue-router';\n// Store\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n// Partials\nimport Status from '@martyrs/src/components/Status/Status.vue';\nimport Snack from '@martyrs/src/components/Status/Snack.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue';\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\n\nimport NavigationBar from '@martyrs/src/modules/core/views/components/partials/NavigationBar.vue';\nimport LocationSelection from '@martyrs/src/modules/core/views/components/partials/LocationSelection.vue';\n\nimport ShopCart from '@martyrs/src/modules/orders/components/partials/ShopCart.vue';\n// PROPS\nconst props = defineProps({\n env: {\n type: Object,\n required: true,\n },\n app: {\n type: Object,\n required: true,\n },\n modules: {\n type: Object,\n required: true,\n },\n});\n\nconst store = useStore();\n\n/////////////////////////////\n// LOADING\n/////////////////////////////\n// State\nlet show = ref(false);\n// Preloader\nconst page = ref(null);\nconst scrollview = ref(null);\n\n// isPageLoading убран - используем core.state.loading\n\n// Обработчики событий загрузки\nfunction handlePageLoading() {\n store.core.state.loading = true;\n}\n\nfunction handlePageLoaded() {\n store.core.state.loading = false;\n}\n\n// Обработка события разрешения Suspense (когда async setup компонента завершается)\nfunction onSuspenseResolved() {\n // Если страница не отправляет событие page-loaded, этот обработчик\n // может служить запасным вариантом для отключения лоадера\n // Можно оставить закомментированным, если все страницы будут явно вызывать handlePageLoaded\n store.core.state.loading = false;\n}\n/////////////////////////////\n// CREATED\n/////////////////////////////\nconst route = useRoute();\n// const router = useRouter()\n\n// Инициализация sidebar для SSR + первая загрузка\nif (route.meta?.sidebarOpenOnEnter === true) {\n store.core.state.isOpenSidebar = true;\n}\n\n// Ref Code\nconst referalCode = ref(route.query.referalCode);\n/////////////////////////////\n// Methods\n/////////////////////////////\nfunction closeLocationPopup() {\n store.core.state.isOpenLocationPopup = false;\n}\nfunction scrollTop() {\n if (scrollview.value) scrollview.value.scrollTop = 0;\n}\n// Scrolling header\nconst scrollOffset = ref(0);\nconst header = ref(null);\n\n// Режим → классы позиционирования\nconst modeClasses = {\n static: 'pos-relative',\n sticky: 'pos-sticky pos-t-0',\n fixed: 'pos-fixed pos-t-0 w-100',\n overlay: 'pos-absolute pos-t-0 w-100'\n};\n\n// isScrolled\nconst isScrolled = computed(() =>\n scrollOffset.value > (route.meta.header_scroll_threshold ?? 50)\n);\n\n// headerTheme с учётом скролла\nconst headerTheme = computed(() => {\n if (isScrolled.value && route.meta.header_scroll_theme) {\n return route.meta.header_scroll_theme;\n }\n return route.meta.header_theme || 'light';\n});\n\n// headerModeClass (overlay → fixed после скролла)\nconst headerModeClass = computed(() => {\n const mode = route.meta.header_mode || 'static';\n if (mode === 'overlay' && isScrolled.value) {\n return 'pos-fixed pos-t-0 w-100';\n }\n return modeClasses[mode];\n});\n\n// headerAppearanceClass\nconst headerAppearanceClass = computed(() => {\n const config = isScrolled.value\n ? route.meta.header_scroll_class\n : route.meta.header_class;\n\n if (config && typeof config === 'object') {\n return config[headerTheme.value];\n }\n return config;\n});\n\n// Autohide\nconst isHidden = ref(false);\nlet lastScrollY = 0;\n\n// computedHeaderClass для передачи в Header\nconst computedHeaderClass = computed(() => [\n headerModeClass.value,\n headerAppearanceClass.value,\n { 'header--hidden': isHidden.value }\n]);\n\nconst handleScroll = (event) => {\n const scrollY = event.target.scrollTop;\n scrollOffset.value = scrollY;\n\n // Autohide логика\n if (route.meta.header_autohide) {\n if (scrollY > lastScrollY && scrollY > 200) {\n isHidden.value = true;\n } else if (scrollY < lastScrollY) {\n isHidden.value = false;\n }\n lastScrollY = scrollY;\n }\n};\n/////////////////////////////\n// FIRST USE\n/////////////////////////////\nconst FirstUse = ref(false);\n\nimport { Preferences } from '@capacitor/preferences';\n\nasync function getFirstUse() {\n const ret = await Preferences.get({ key: 'first-use' });\n FirstUse.value = ret.value ? JSON.parse(ret.value) : true;\n}\n\nconst updateFirstUse = value => {\n FirstUse.value = value;\n};\n\nconst { isPhone, isTablet } = useGlobalMixins();\n\nonMounted(async () => {\n await getFirstUse();\n\n // Закрываем sidebar на mobile (CSS уже скрыл визуально)\n if ((isPhone() || isTablet()) && store.core.state.isOpenSidebar) {\n store.core.state.isOpenSidebar = false;\n }\n\n // Регистрация единого Service Worker (PWA + push notifications)\n if ('serviceWorker' in navigator && !window.__MOBILE_APP__) {\n window.addEventListener('load', () => {\n navigator.serviceWorker\n .register('/sw.js')\n .then(registration => {\n console.log('Unified SW registered: ', registration);\n })\n .catch(registrationError => {\n console.log('SW registration failed: ', registrationError);\n });\n });\n }\n\n if (!store.core.state.position && route.meta.location) {\n store.core.state.isOpenLocationPopup = true;\n } else {\n store.core.state.isOpenLocationPopup = false;\n }\n\n if (referalCode.value) {\n localStorage.setItem('referalCode', referalCode.value);\n }\n\n if (page.value) show.value = true;\n});\n\nconst componentKey = computed(() => {\n // Собираем только значимые параметры (ID сущностей)\n const significantParams = ['_id', 'product', 'organization', 'categoryPath', 'country', 'state', 'city']\n .map(param => route.params[param])\n .filter(Boolean)\n .join('-');\n\n return significantParams || route.meta.layoutKey || route.name;\n});\n</script>\n\n<style lang=\"scss\">\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.5s;\n}\n\n.fade-enter,\n.fade-leave-to\n\n/* .fade-leave-active в версии 2.1.8+ */ {\n opacity: 0;\n}\n\n.fade-move,\n.fade-enter-active,\n.fade-leave-active {\n transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);\n}\n\n/* 2. declare enter from and leave to state */\n.fade-enter-from,\n.fade-leave-to {\n opacity: 0;\n transform: translate(30px, 0);\n}\n\n/* 3. ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n.fade-leave-active {\n position: absolute;\n}\n\n.moveFromTop-enter-active,\n.moveFromTop-leave-active {\n transition:\n all 0.3s ease,\n max-height 0.2s ease;\n overflow: hidden;\n}\n\n.moveFromTop-enter-from,\n.moveFromTop-leave-to {\n transform: translateY(-1rem);\n opacity: 0;\n // max-height: 0;\n}\n\n.moveFromTop-enter-to,\n.moveFromTop-leave-from {\n // max-height: 100vh;\n}\n\n.moveFromTopAbsolute-enter-active,\n.moveFromTopAbsolute-leave-active {\n transform: translateY(0);\n opacity: 1;\n transition: all 0.5s ease;\n}\n\n.moveFromTopAbsolute-enter-from,\n.moveFromTopAbsolute-leave-to {\n position: absolute;\n transform: translateY(-1rem);\n opacity: 0;\n transition: all 0.5s ease;\n}\n\n.ScaleOut-enter-active,\n.ScaleOut-leave-active {\n opacity: 1;\n transform: scale(1);\n transition: all 0.3s ease;\n}\n\n.ScaleOut-enter-from,\n.ScaleOut-leave-to {\n opacity: 0;\n transform: scale(0.9);\n transition: all 0.3s ease;\n}\n\n.slide-fade-enter-active {\n // min-height: 100vh;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.slide-fade-leave-active {\n // min-height: 100vh;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.slide-fade-enter-from,\n.slide-fade-leave-to {\n min-height: 0;\n transform: translateX(20px);\n opacity: 0;\n left: 0;\n top: 0;\n}\n\n.scaleTransition-5px-enter-active,\n.scaleTransition-5px-leave-active {\n transform: translateY(0px);\n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.scaleTransition-5px-enter-from,\n.scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px);\n transition: all 0.2s ease;\n}\n\n.scaleTransition-enter-from,\n.scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px);\n transition: all 0.5s ease;\n}\n\n.scaleTransition-enter-active,\n.scaleTransition-leave-active {\n transform: translateY(0px);\n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n}\n\n.scaleTransition-enter-from,\n.scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px);\n transition: all 0.5s ease;\n}\n\n.scaleIn-enter-active,\n.scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n\n > section,\n div {\n transform-origin: 0 0;\n transform: translateZ(0px);\n transition: all 0.5s ease;\n }\n}\n\n.scaleIn-enter-from,\n.scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n\n > section,\n div {\n transform: translateZ(-30px);\n transition: all 0.5s ease;\n }\n}\n</style>\n"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,18 @@ const _sfc_main = {
|
|
|
43
43
|
headerClass: {
|
|
44
44
|
type: [String, Array, Object],
|
|
45
45
|
default: null
|
|
46
|
+
},
|
|
47
|
+
showCart: {
|
|
48
|
+
type: Boolean,
|
|
49
|
+
default: true
|
|
50
|
+
},
|
|
51
|
+
showProfile: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: true
|
|
54
|
+
},
|
|
55
|
+
showNotifications: {
|
|
56
|
+
type: Boolean,
|
|
57
|
+
default: true
|
|
46
58
|
}
|
|
47
59
|
},
|
|
48
60
|
setup(__props) {
|
|
@@ -106,6 +118,7 @@ const _sfc_main = {
|
|
|
106
118
|
]),
|
|
107
119
|
renderSlot(_ctx.$slots, "default"),
|
|
108
120
|
createElementVNode("div", _hoisted_3, [
|
|
121
|
+
renderSlot(_ctx.$slots, "right"),
|
|
109
122
|
unref(router).hasRoute("Search") && unref(route).meta.header_search ? (openBlock(), createBlock(_sfc_main$2, {
|
|
110
123
|
key: 0,
|
|
111
124
|
class: normalizeClass(["pd-zero bg-transparent", unref(route).meta.header_search_class]),
|
|
@@ -122,7 +135,8 @@ const _sfc_main = {
|
|
|
122
135
|
]),
|
|
123
136
|
_: 1
|
|
124
137
|
}, 8, ["class", "submit"])) : createCommentVNode("", true),
|
|
125
|
-
|
|
138
|
+
__props.showCart ? (openBlock(), createBlock(_sfc_main$2, {
|
|
139
|
+
key: 1,
|
|
126
140
|
class: "pd-zero mn-r-micro",
|
|
127
141
|
"aria-label": "shopcart",
|
|
128
142
|
submit: (a) => actions.toggleShopcart(),
|
|
@@ -137,12 +151,13 @@ const _sfc_main = {
|
|
|
137
151
|
}, null, 8, ["fill"])
|
|
138
152
|
]),
|
|
139
153
|
_: 1
|
|
140
|
-
}, 8, ["submit", "counter"]),
|
|
141
|
-
state.user._id ? (openBlock(), createBlock(NotificationBadge, {
|
|
142
|
-
key:
|
|
154
|
+
}, 8, ["submit", "counter"])) : createCommentVNode("", true),
|
|
155
|
+
__props.showNotifications && state.user._id ? (openBlock(), createBlock(NotificationBadge, {
|
|
156
|
+
key: 2,
|
|
143
157
|
fill: __props.theme === "light" ? "rgb(var(--black))" : "rgb(var(--white))"
|
|
144
158
|
}, null, 8, ["fill"])) : createCommentVNode("", true),
|
|
145
|
-
|
|
159
|
+
__props.showProfile ? (openBlock(), createBlock(_sfc_main$2, {
|
|
160
|
+
key: 3,
|
|
146
161
|
class: "pd-zero bg-transparent",
|
|
147
162
|
"aria-label": "profile",
|
|
148
163
|
submit: state.access.status === false ? (a) => unref(router).push({ name: "Sign In" }) : (a) => unref(router).push({ name: "User Profile", params: { _id: state.user._id } }),
|
|
@@ -156,9 +171,9 @@ const _sfc_main = {
|
|
|
156
171
|
}, null, 8, ["fill"])
|
|
157
172
|
]),
|
|
158
173
|
_: 1
|
|
159
|
-
}, 8, ["submit"]),
|
|
174
|
+
}, 8, ["submit"])) : createCommentVNode("", true),
|
|
160
175
|
localeOptions.value.length > 1 ? (openBlock(), createBlock(Select, {
|
|
161
|
-
key:
|
|
176
|
+
key: 4,
|
|
162
177
|
class: normalizeClass(["pos-relative flex flex-column gap-small ws-nowrap pd-thin fw-semi radius-thin", {
|
|
163
178
|
"bg-light t-black": __props.theme === "light",
|
|
164
179
|
"bg-dark t-white": __props.theme === "dark"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.vue.js","sources":["../../../../../../../../src/modules/core/views/components/partials/Header.vue"],"sourcesContent":["<script setup=\"props\">\nimport { computed, onMounted, ref } from 'vue';\n\nimport { useRouter, useRoute } from 'vue-router';\nimport { useI18n } from 'vue-i18n';\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\n\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\nimport NotificationBadge from '@martyrs/src/modules/notifications/components/elements/NotificationBadge.vue';\n// Martyrs Component\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\n// Icons module\nimport IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue';\nimport IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue';\nimport IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue';\nimport IconMenu from '@martyrs/src/modules/core/views/components/icons/IconMenu.vue';\n// Props\nconst props = defineProps({\n theme: {\n type: String,\n default: 'light',\n },\n logotype: {\n type: Object,\n },\n location: {\n type: Boolean,\n default: true,\n },\n theme_switcher: {\n type: Boolean,\n default: true,\n },\n headerClass: {\n type: [String, Array, Object],\n default: null,\n },\n});\nconst router = useRouter();\nconst route = useRoute();\nconst store = useStore();\nconst i18n = useI18n();\n\nconst { t, locale } = i18n;\n\nconst localeOptions = computed(() => {\n const localeNames = i18n.localeNames || {};\n return Object.entries(localeNames).map(([code, name]) => ({\n code,\n name,\n }));\n});\n// const search = computed(() => store.products.state.search)\n\nfunction openLocationPopup() {\n store.core.state.isOpenLocationPopup = true;\n}\n/////////////////////////////\n// MOUNTED\n/////////////////////////////\nonMounted(() => {\n shopcart.actions.setShopcart();\n});\n</script>\n\n<template>\n <header\n class=\"pd-thin gap-micro flex-justify-between flex-nowrap flex h-4r w-100 z-index-2\"\n id=\"header\"\n :class=\"[\n headerClass ?? {\n 'pos-relative pos-t-0 br-b-1px t-black br-light': theme === 'light',\n 'pos-relative pos-t-0 br-b-1px t-white br-dark': theme === 'dark',\n },\n ]\"\n >\n <div class=\"flex-nowrap flex-v-center flex-justify-start flex gap-micro\">\n <IconMenu\n :active=\"store.core.state.isOpenSidebar\"\n :theme=\"theme\"\n @click=\"store.core.state.isOpenSidebar = !store.core.state.isOpenSidebar\"\n />\n\n <!-- LOGO -->\n <component class=\"cursor-pointer h-2r\" v-if=\"logotype\" :is=\"logotype\" @click=\"router.push({ path: '/' })\" :theme=\"theme\" />\n\n <button\n class=\"cursor-pointer bg-transparent pd-micro radius-extra uppercase fw-semi br-2px ease-linear ws-nowrap\"\n v-if=\"location\"\n aria-label=\"button_location\"\n :class=\"{\n 'fill-black br-black t-black hover:bg-black hover:t-white hover:fill-white': theme === 'light',\n 'fill-white br-white t-white hover:bg-white hover:t-black hover:fill-black': theme === 'dark',\n }\"\n @click=\"openLocationPopup()\"\n >\n <svg class=\"i-small\" :fill=\"'inherit'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"50\" height=\"67\" viewBox=\"0 0 50 67\" fill=\"none\">\n <path\n d=\"M25 0C11.207 0 0 11.207 0 25C0 38.793 20.832 66.668 25 66.668C29.168 66.668 50 38.793 50 25C50 11.207 38.793 0 25 0ZM25 33.332C20.418 33.332 16.668 29.582 16.668 25C16.668 20.418 20.418 16.668 25 16.668C29.582 16.668 33.332 20.418 33.332 25C33.332 29.582 29.582 33.332 25 33.332Z\"\n :fill=\"'inherit'\"\n />\n </svg>\n {{ store.core.state.position?.country ? store.core.state.position.country : 'World' }}\n </button>\n </div>\n\n <slot></slot>\n\n <div class=\"flex-justify-end flex-v-center flex-nowrap flex gap-micro\">\n <Button\n class=\"pd-zero bg-transparent\"\n v-if=\"router.hasRoute('Search') && route.meta.header_search\"\n aria-label=\"search\"\n :class=\"route.meta.header_search_class\"\n :submit=\"() => router.push({ name: 'Search' })\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n <IconSearch class=\"i-medium\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n </Button>\n\n <Button class=\"pd-zero mn-r-micro\" aria-label=\"shopcart\" :submit=\"a => shopcart.actions.toggleShopcart()\" :counter=\"shopcart.getters.cartTotalAmount\" :showSucces=\"false\" :showLoader=\"false\">\n <IconShopcart class=\"i-medium\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n
|
|
1
|
+
{"version":3,"file":"Header.vue.js","sources":["../../../../../../../../src/modules/core/views/components/partials/Header.vue"],"sourcesContent":["<script setup=\"props\">\nimport { computed, onMounted, ref } from 'vue';\n\nimport { useRouter, useRoute } from 'vue-router';\nimport { useI18n } from 'vue-i18n';\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\n\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\nimport NotificationBadge from '@martyrs/src/modules/notifications/components/elements/NotificationBadge.vue';\n// Martyrs Component\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\n// Icons module\nimport IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue';\nimport IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue';\nimport IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue';\nimport IconMenu from '@martyrs/src/modules/core/views/components/icons/IconMenu.vue';\n// Props\nconst props = defineProps({\n theme: {\n type: String,\n default: 'light',\n },\n logotype: {\n type: Object,\n },\n location: {\n type: Boolean,\n default: true,\n },\n theme_switcher: {\n type: Boolean,\n default: true,\n },\n headerClass: {\n type: [String, Array, Object],\n default: null,\n },\n showCart: {\n type: Boolean,\n default: true,\n },\n showProfile: {\n type: Boolean,\n default: true,\n },\n showNotifications: {\n type: Boolean,\n default: true,\n },\n});\nconst router = useRouter();\nconst route = useRoute();\nconst store = useStore();\nconst i18n = useI18n();\n\nconst { t, locale } = i18n;\n\nconst localeOptions = computed(() => {\n const localeNames = i18n.localeNames || {};\n return Object.entries(localeNames).map(([code, name]) => ({\n code,\n name,\n }));\n});\n// const search = computed(() => store.products.state.search)\n\nfunction openLocationPopup() {\n store.core.state.isOpenLocationPopup = true;\n}\n/////////////////////////////\n// MOUNTED\n/////////////////////////////\nonMounted(() => {\n shopcart.actions.setShopcart();\n});\n</script>\n\n<template>\n <header\n class=\"pd-thin gap-micro flex-justify-between flex-nowrap flex h-4r w-100 z-index-2\"\n id=\"header\"\n :class=\"[\n headerClass ?? {\n 'pos-relative pos-t-0 br-b-1px t-black br-light': theme === 'light',\n 'pos-relative pos-t-0 br-b-1px t-white br-dark': theme === 'dark',\n },\n ]\"\n >\n <div class=\"flex-nowrap flex-v-center flex-justify-start flex gap-micro\">\n <IconMenu\n :active=\"store.core.state.isOpenSidebar\"\n :theme=\"theme\"\n @click=\"store.core.state.isOpenSidebar = !store.core.state.isOpenSidebar\"\n />\n\n <!-- LOGO -->\n <component class=\"cursor-pointer h-2r\" v-if=\"logotype\" :is=\"logotype\" @click=\"router.push({ path: '/' })\" :theme=\"theme\" />\n\n <button\n class=\"cursor-pointer bg-transparent pd-micro radius-extra uppercase fw-semi br-2px ease-linear ws-nowrap\"\n v-if=\"location\"\n aria-label=\"button_location\"\n :class=\"{\n 'fill-black br-black t-black hover:bg-black hover:t-white hover:fill-white': theme === 'light',\n 'fill-white br-white t-white hover:bg-white hover:t-black hover:fill-black': theme === 'dark',\n }\"\n @click=\"openLocationPopup()\"\n >\n <svg class=\"i-small\" :fill=\"'inherit'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"50\" height=\"67\" viewBox=\"0 0 50 67\" fill=\"none\">\n <path\n d=\"M25 0C11.207 0 0 11.207 0 25C0 38.793 20.832 66.668 25 66.668C29.168 66.668 50 38.793 50 25C50 11.207 38.793 0 25 0ZM25 33.332C20.418 33.332 16.668 29.582 16.668 25C16.668 20.418 20.418 16.668 25 16.668C29.582 16.668 33.332 20.418 33.332 25C33.332 29.582 29.582 33.332 25 33.332Z\"\n :fill=\"'inherit'\"\n />\n </svg>\n {{ store.core.state.position?.country ? store.core.state.position.country : 'World' }}\n </button>\n </div>\n\n <slot></slot>\n\n <div class=\"flex-justify-end flex-v-center flex-nowrap flex gap-micro\">\n <slot name=\"right\"></slot>\n\n <Button\n class=\"pd-zero bg-transparent\"\n v-if=\"router.hasRoute('Search') && route.meta.header_search\"\n aria-label=\"search\"\n :class=\"route.meta.header_search_class\"\n :submit=\"() => router.push({ name: 'Search' })\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n <IconSearch class=\"i-medium\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n </Button>\n\n <Button v-if=\"showCart\" class=\"pd-zero mn-r-micro\" aria-label=\"shopcart\" :submit=\"a => shopcart.actions.toggleShopcart()\" :counter=\"shopcart.getters.cartTotalAmount\" :showSucces=\"false\" :showLoader=\"false\">\n <IconShopcart class=\"i-medium\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n </Button>\n\n <NotificationBadge v-if=\"showNotifications && auth.state.user._id\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n\n <Button\n v-if=\"showProfile\"\n class=\"pd-zero bg-transparent\"\n aria-label=\"profile\"\n :submit=\"auth.state.access.status === false ? a => router.push({ name: 'Sign In' }) : a => router.push({ name: 'User Profile', params: { _id: auth.state.user._id } })\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n <IconProfile class=\"i-medium\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n </Button>\n\n <Select\n class=\"pos-relative flex flex-column gap-small ws-nowrap pd-thin fw-semi radius-thin\"\n v-if=\"localeOptions.length > 1\"\n v-model:select=\"locale\"\n :options=\"localeOptions\"\n :property=\"'code'\"\n :value=\"'name'\"\n :class=\"{\n 'bg-light t-black': theme === 'light',\n 'bg-dark t-white': theme === 'dark',\n }\"\n />\n </div>\n </header>\n</template>\n\n<style lang=\"scss\">\n#header {\n transition:\n transform 0.3s cubic-bezier(0.08, 0.75, 0.77, 1.03),\n margin-top 0.3s cubic-bezier(0.08, 0.75, 0.77, 1.03),\n background 0.3s ease,\n border-color 0.3s ease,\n backdrop-filter 0.3s ease;\n\n &.header--hidden {\n transform: translateY(-100%);\n margin-top: -4rem;\n }\n}\n\n.location-button {\n &:hover {\n box-shadow: inset 0 0 0 2px rgb(var(--main));\n }\n}\n</style>\n"],"names":["shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,UAAM,SAAS,UAAS;AACxB,UAAM,QAAQ,SAAQ;AACtB,UAAM,QAAQ,SAAQ;AACtB,UAAM,OAAO,QAAO;AAEpB,UAAM,EAAE,GAAG,OAAM,IAAK;AAEtB,UAAM,gBAAgB,SAAS,MAAM;AACnC,YAAM,cAAc,KAAK,eAAe,CAAA;AACxC,aAAO,OAAO,QAAQ,WAAW,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO;AAAA,QACxD;AAAA,QACA;AAAA,MACJ,EAAI;AAAA,IACJ,CAAC;AAGD,aAAS,oBAAoB;AAC3B,YAAM,KAAK,MAAM,sBAAsB;AAAA,IACzC;AAIA,cAAU,MAAM;AACdA,cAAiB,YAAW;AAAA,IAC9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -3,7 +3,7 @@ import { useRouter, useRoute } from "vue-router";
|
|
|
3
3
|
import IconChevronBottom from "../../../../icons/navigation/IconChevronBottom.vue.js";
|
|
4
4
|
import { useStore } from "../../store/core.store.js";
|
|
5
5
|
import { state } from "../../../../auth/views/store/auth.js";
|
|
6
|
-
import _sfc_main$1 from "../../../../../components/Dropdown/Dropdown.
|
|
6
|
+
import _sfc_main$1 from "../../../../../components/Dropdown/Dropdown.vue.js";
|
|
7
7
|
/* empty css */
|
|
8
8
|
/* empty css */
|
|
9
9
|
import _export_sfc from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
@@ -172,7 +172,7 @@ const _sfc_main = {
|
|
|
172
172
|
]]),
|
|
173
173
|
onClick: ($event) => item.route ? (_ctx.isPhone ? __props.stateSidebar = false : null, unref(route).path !== processRoute(item.route) ? unref(router).push(processRoute(item.route)) : null) : null
|
|
174
174
|
}, [
|
|
175
|
-
!__props.horizontal ? (openBlock(), createElementBlock("div", _hoisted_8, [
|
|
175
|
+
!__props.horizontal && (item.iconComponent || item.icon) ? (openBlock(), createElementBlock("div", _hoisted_8, [
|
|
176
176
|
item.iconComponent ? (openBlock(), createBlock(resolveDynamicComponent(item.iconComponent), {
|
|
177
177
|
key: 0,
|
|
178
178
|
class: "i-medium flex-child-default ease-quint-out t-black-transp-25 group-hover:t-main"
|
|
@@ -180,7 +180,7 @@ const _sfc_main = {
|
|
|
180
180
|
!item.iconComponent ? (openBlock(), createElementBlock("span", _hoisted_9, toDisplayString(item.icon), 1)) : createCommentVNode("", true)
|
|
181
181
|
])) : createCommentVNode("", true),
|
|
182
182
|
createElementVNode("span", {
|
|
183
|
-
class: normalizeClass(["ease-quint-out w-100 t-left fw-medium", { "hidden": !__props.stateSidebar && !__props.horizontal, "visible": __props.stateSidebar || __props.horizontal }])
|
|
183
|
+
class: normalizeClass(["ease-quint-out w-100 t-left fw-medium", { "pd-small": !__props.horizontal, "hidden": !__props.stateSidebar && !__props.horizontal, "visible": __props.stateSidebar || __props.horizontal }])
|
|
184
184
|
}, toDisplayString(item.title), 3),
|
|
185
185
|
item.subItems && __props.stateSidebar && !__props.horizontal ? (openBlock(), createElementBlock("span", {
|
|
186
186
|
key: 1,
|
|
@@ -240,7 +240,7 @@ const _sfc_main = {
|
|
|
240
240
|
};
|
|
241
241
|
}
|
|
242
242
|
};
|
|
243
|
-
const Navigation = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
243
|
+
const Navigation = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0f5220e0"]]);
|
|
244
244
|
export {
|
|
245
245
|
Navigation as default
|
|
246
246
|
};
|