@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.
Files changed (64) hide show
  1. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
  2. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
  3. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  4. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
  5. package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
  6. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
  7. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
  8. package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
  9. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  10. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  11. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +1 -1
  12. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  13. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  14. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  15. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  16. package/dist/martyrs/src/modules/core/locales/en.js +3 -0
  17. package/dist/martyrs/src/modules/core/locales/en.js.map +1 -1
  18. package/dist/martyrs/src/modules/core/locales/ru.js +3 -0
  19. package/dist/martyrs/src/modules/core/locales/ru.js.map +1 -1
  20. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +1 -1
  21. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +1 -1
  22. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +15 -5
  23. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  24. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +22 -7
  25. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
  26. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +4 -4
  27. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js.map +1 -1
  28. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +4 -2
  29. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +1 -1
  30. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  31. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  32. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
  33. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  34. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  35. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +1 -1
  36. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
  37. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  38. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
  39. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  40. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
  41. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
  42. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
  43. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
  44. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
  45. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +1 -1
  46. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
  47. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +2 -2
  48. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  49. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  50. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  51. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
  52. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  53. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  54. package/dist/style.css +20 -20
  55. package/package.json +1 -1
  56. package/src/modules/core/locales/en.js +3 -0
  57. package/src/modules/core/locales/ru.js +3 -0
  58. package/src/modules/core/views/components/layouts/Client.vue +7 -1
  59. package/src/modules/core/views/components/partials/Header.vue +17 -3
  60. package/src/modules/core/views/components/partials/Navigation.vue +2 -2
  61. package/src/modules/core/views/components/partials/Sidebar.vue +3 -1
  62. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.js.map +0 -1
  63. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +0 -1
  64. 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.vue2.js.map
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.vue2.js";
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.vue2.js";
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.vue2.js";
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.vue2.js.map
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.vue2.js";
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.vue2.js";
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.vue2.js.map
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.vue2.js";
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.vue2.js";
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.vue2.js";
5
- import _sfc_main$7 from "../../../../../components/Menu/Menu.vue2.js";
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.vue2.js";
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,5 +1,8 @@
1
1
  const en = {
2
2
  core: {
3
+ ui: {
4
+ darkMode: "Dark Mode"
5
+ },
3
6
  errors: {
4
7
  USER_NOT_FOUND: "Such user is not registered",
5
8
  USER_ALREADY_REGISTERED: "Such user is already registered!",
@@ -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,5 +1,8 @@
1
1
  const ru = {
2
2
  core: {
3
+ ui: {
4
+ darkMode: "Тёмная тема"
5
+ },
3
6
  errors: {
4
7
  USER_NOT_FOUND: "Такой пользователь не зарегистрирован!",
5
8
  USER_ALREADY_REGISTERED: "Такой пользователь уже зарегистрирован!",
@@ -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.vue2.js";
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.vue2.js";
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.vue2.js";
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
- }, null, 8, ["theme"])) : createCommentVNode("", true)
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
- createVNode(_sfc_main$2, {
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: 1,
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
- createVNode(_sfc_main$2, {
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: 2,
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 <!-- <div class=\"w-max p-small pos-absolute pos-t-100 pos-r-0\">Product Added to Shopcart</div> -->\n </Button>\n\n <NotificationBadge v-if=\"auth.state.user._id\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n\n <Button\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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.vue2.js";
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-9f149045"]]);
243
+ const Navigation = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0f5220e0"]]);
244
244
  export {
245
245
  Navigation as default
246
246
  };