@ozdao/martyrs 0.2.453 → 0.2.455
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Media-BsgJlo-X.js → Media-1oukRVfv.js} +1 -1
- package/dist/{Media-CxRfrG2S.mjs → Media-q-XJSM_H.mjs} +3 -3
- package/dist/builder.js +5 -0
- package/dist/builder.mjs +5 -0
- package/dist/{main-Zocv7IVl.js → main-C7jGMDJC.js} +6 -6
- package/dist/{main-7FA_ai95.mjs → main-yXkgrjj8.mjs} +120 -133
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.cjs +2 -2
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js +2 -2
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js.map +1 -1
- package/dist/martyrs/src/components/EmptyState/EmptyState.vue.cjs +1 -1
- package/dist/martyrs/src/components/EmptyState/EmptyState.vue.js +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.cjs +2 -2
- package/dist/martyrs/src/components/Media/Media.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.js +2 -2
- package/dist/martyrs/src/components/Media/Media.vue.js.map +1 -1
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs +0 -8
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Popup/Popup.vue2.js +0 -8
- package/dist/martyrs/src/components/Popup/Popup.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Slider/Slider.native.vue.cjs +229 -0
- package/dist/martyrs/src/components/Slider/Slider.native.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Slider/Slider.native.vue.js +229 -0
- package/dist/martyrs/src/components/Slider/Slider.native.vue.js.map +1 -0
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +29 -17
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +29 -17
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -22
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +4 -25
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +50 -132
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +66 -148
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +3 -33
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +3 -33
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.cjs +98 -0
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.js +98 -0
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.js.map +1 -0
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +2 -4
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +2 -4
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs +8 -7
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js +8 -7
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +3 -3
- package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs +190 -0
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js +190 -0
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/events/router/events.cjs +15 -0
- package/dist/martyrs/src/modules/events/router/events.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/router/events.js +15 -0
- package/dist/martyrs/src/modules/events/router/events.js.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.cjs +2 -0
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +2 -0
- package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.cjs +4 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.js +3 -0
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -4
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +0 -2
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.cjs +43 -0
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.js +43 -0
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.cjs +53 -0
- package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.js +53 -0
- package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +0 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +0 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs +5 -6
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +5 -6
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +61 -69
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +62 -70
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/store/products.cjs +0 -1
- package/dist/martyrs/src/modules/products/store/products.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/store/products.js +0 -1
- package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +0 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +0 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js.map +1 -1
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/organizations.server.js +0 -1
- package/dist/organizations.server.mjs +0 -1
- package/dist/products.server.js +5 -0
- package/dist/products.server.mjs +5 -0
- package/dist/style.css +93 -6
- package/package.json +1 -1
- package/src/builder/rspack/rspack.config.client.js +5 -0
- package/src/components/DatePicker/DatePicker.vue +1 -1
- package/src/components/EmptyState/EmptyState.vue +1 -1
- package/src/components/Media/Media.vue +1 -1
- package/src/components/Popup/Popup.vue +2 -2
- package/src/components/Slider/Slider.native.vue +313 -0
- package/src/modules/events/components/blocks/CardEvent.vue +21 -7
- package/src/modules/events/components/pages/Event.vue +0 -20
- package/src/modules/events/components/pages/Events.vue +91 -141
- package/src/modules/events/components/pages/EventsBackoffice.vue +5 -3
- package/src/modules/events/components/pages/EventsSearch.vue +122 -0
- package/src/modules/events/components/sections/EventsHot.vue +3 -5
- package/src/modules/events/components/sections/FeaturedEvents.vue +44 -12
- package/src/modules/events/components/sections/List.vue +3 -3
- package/src/modules/events/components/sections/SelectDate.vue +217 -0
- package/src/modules/events/router/events.js +12 -0
- package/src/modules/globals/globals.client.js +5 -2
- package/src/modules/globals/views/components/layouts/App.vue +7 -1
- package/src/modules/globals/views/components/layouts/Client.vue +0 -3
- package/src/modules/globals/views/plugins/AlertDialog.vue +35 -0
- package/src/modules/globals/views/plugins/alert.plugin.js +65 -0
- package/src/modules/organizations/policies/organizations.policies.js +0 -1
- package/src/modules/products/components/elements/Price.vue +3 -4
- package/src/modules/products/components/pages/Product.old.vue +201 -0
- package/src/modules/products/components/pages/Product.vue +57 -38
- package/src/modules/products/controllers/products.controller.js +7 -0
- package/src/modules/products/store/products.js +0 -1
- package/src/styles/base/all.scss +1 -0
- package/src/styles/typography.scss +22 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Event.vue.cjs","sources":["../../../../../../../src/modules/events/components/pages/Event.vue"],"sourcesContent":["<template>\n <section id=\"eventPage\">\n <TransitionGroup tag=\"ul\" name=\"fade\" class=\"bg-light\">\n <SkeletonEvent\n v-if=\"isLoading\"\n v-for=\"i in 3\" :key=\"i\"\n />\n\n <HeroEvent\n v-if=\"!isLoading && event &&event.cover\"\n :content=\"{\n title: event.name,\n ticketLinkStripe: event.ticketLinkStripe,\n cover: event.cover,\n subtitle: event.subtitle,\n }\"\n :options=\"{\n date: event.date.start,\n }\"\n class=\"o-hidden\"\n />\n\n <div class=\"cols-2-2_1 gap-small bg-white t-black pd-t-zero mobile:pd-small pd-extra\" v-if=\"!isLoading && event\"> \n \n <div class=\"bg-light mobile:pd-medium pd-big radius-big\">\n\n <h1 class=\"z-index-1 mn-b-semi\">\n {{event?.name}}\n </h1>\n\n <div class=\"flex flex-wrap gap-micro t-medium p-big mn-b-semi justify-start align-center\">\n <span v-if=\"event.date?.start\" class=\"mn-r-nano d-inline-block w-max pd-b-micro pd-t-micro pd-r-thin pd-l-thin radius-small t-medium bg-white\">\n <IconDate :fill=\"'rgb(var(--black))'\" class=\"w-1r h-auto\"/>\n {{formatDate(event.date.start)}}\n </span>\n\n\n <span\n v-for=\"(chip, index) in event.tags\"\n :key=\"index\"\n class=\"d-inline-flex pd-b-micro pd-t-micro pd-r-thin pd-l-thin radius-small bg-main\"\n >\n {{ chip }}\n </span>\n </div>\n\n <p class=\"z-index-1 p-big mn-b-semi\">\n {{event?.description}}\n </p>\n\n <hr v-if=\"event?.content?.length > 0\" class=\"bg-black-transp-10 mn-b-semi mn-t-semi d-block\">\n\n <Viewer\n v-if=\"event && event.content\"\n :content=\"event.content\"\n :notitle=\"true\"\n />\n\n </div>\n\n <div class=\"\">\n \n <div class=\"radius-semi pd-medium bg-light mn-b-thin\">\n\n <div class=\"mn-b-small flex-nowrap flex-v-center flex pos-relative\">\n <h4 class=\"mn-r-auto\">Tickets</h4>\n <PhotoStack\n :number=\"event.numberOfTickets\"\n :photos=\"event.participantsPhotos\" \n />\n </div>\n <div v-if=\"event?.ticketsTypes?.length > 0\" v-for=\"ticketType in event.ticketsTypes\" class=\"pd-medium w-100 radius-medium bg-white mn-b-small\">\n <div class=\"flex-nowrap mn-b-small p-big flex\">\n <span class=\"mn-r-auto\">{{ticketType.name}}</span>\n <span class=\"t-medium\">{{ticketType.price}} {{returnCurrency()}}</span>\n </div>\n <a :href=\"ticketType.link\" class=\"d-block t-center pd-l-medium pd-r-medium pd-t-small pd-b-small radius-extra uppercase t-medium t-white w-100 bg-second \">\n Buy Now\n </a>\n </div>\n\n <ButtonJoin \n v-if=\"auth.state.user._id && !event?.ticketsTypes?.length > 0\"\n :type=\"'event'\" \n :hasTicket=\"event.hasTicket\" \n :targetId=\"event._id\" \n :userId=\"auth.state.user._id\"\n class=\" w-100 pd-medium mn-auto\"\n @updateTicket=\"handleTicketUpdate\"\n />\n\n <p v-if=\"event?.ticketsTypes.length > 0\" class=\"z-index-1 t-transp p-small mn-t-small \">Buy ticket online with special price:</p>\n <Countdown \n v-if=\"event?.date?.start && event?.ticketsTypes?.length > 0\"\n class=\"mn-t-thin radius-medium bg-white w-100\"\n :date=\"event?.date?.start\"\n />\n </div>\n\n
|
|
1
|
+
{"version":3,"file":"Event.vue.cjs","sources":["../../../../../../../src/modules/events/components/pages/Event.vue"],"sourcesContent":["<template>\n <section id=\"eventPage\">\n <TransitionGroup tag=\"ul\" name=\"fade\" class=\"bg-light\">\n <SkeletonEvent\n v-if=\"isLoading\"\n v-for=\"i in 3\" :key=\"i\"\n />\n\n <HeroEvent\n v-if=\"!isLoading && event &&event.cover\"\n :content=\"{\n title: event.name,\n ticketLinkStripe: event.ticketLinkStripe,\n cover: event.cover,\n subtitle: event.subtitle,\n }\"\n :options=\"{\n date: event.date.start,\n }\"\n class=\"o-hidden\"\n />\n\n <div class=\"cols-2-2_1 gap-small bg-white t-black pd-t-zero mobile:pd-small pd-extra\" v-if=\"!isLoading && event\"> \n \n <div class=\"bg-light mobile:pd-medium pd-big radius-big\">\n\n <h1 class=\"z-index-1 mn-b-semi\">\n {{event?.name}}\n </h1>\n\n <div class=\"flex flex-wrap gap-micro t-medium p-big mn-b-semi justify-start align-center\">\n <span v-if=\"event.date?.start\" class=\"mn-r-nano d-inline-block w-max pd-b-micro pd-t-micro pd-r-thin pd-l-thin radius-small t-medium bg-white\">\n <IconDate :fill=\"'rgb(var(--black))'\" class=\"w-1r h-auto\"/>\n {{formatDate(event.date.start)}}\n </span>\n\n\n <span\n v-for=\"(chip, index) in event.tags\"\n :key=\"index\"\n class=\"d-inline-flex pd-b-micro pd-t-micro pd-r-thin pd-l-thin radius-small bg-main\"\n >\n {{ chip }}\n </span>\n </div>\n\n <p class=\"z-index-1 p-big mn-b-semi\">\n {{event?.description}}\n </p>\n\n <hr v-if=\"event?.content?.length > 0\" class=\"bg-black-transp-10 mn-b-semi mn-t-semi d-block\">\n\n <Viewer\n v-if=\"event && event.content\"\n :content=\"event.content\"\n :notitle=\"true\"\n />\n\n </div>\n\n <div class=\"\">\n \n <div class=\"radius-semi pd-medium bg-light mn-b-thin\">\n\n <div class=\"mn-b-small flex-nowrap flex-v-center flex pos-relative\">\n <h4 class=\"mn-r-auto\">Tickets</h4>\n <PhotoStack\n :number=\"event.numberOfTickets\"\n :photos=\"event.participantsPhotos\" \n />\n </div>\n <div v-if=\"event?.ticketsTypes?.length > 0\" v-for=\"ticketType in event.ticketsTypes\" class=\"pd-medium w-100 radius-medium bg-white mn-b-small\">\n <div class=\"flex-nowrap mn-b-small p-big flex\">\n <span class=\"mn-r-auto\">{{ticketType.name}}</span>\n <span class=\"t-medium\">{{ticketType.price}} {{returnCurrency()}}</span>\n </div>\n <a :href=\"ticketType.link\" class=\"d-block t-center pd-l-medium pd-r-medium pd-t-small pd-b-small radius-extra uppercase t-medium t-white w-100 bg-second \">\n Buy Now\n </a>\n </div>\n\n <ButtonJoin \n v-if=\"auth.state.user._id && !event?.ticketsTypes?.length > 0\"\n :type=\"'event'\" \n :hasTicket=\"event.hasTicket\" \n :targetId=\"event._id\" \n :userId=\"auth.state.user._id\"\n class=\" w-100 pd-medium mn-auto\"\n @updateTicket=\"handleTicketUpdate\"\n />\n\n <p v-if=\"event?.ticketsTypes.length > 0\" class=\"z-index-1 t-transp p-small mn-t-small \">Buy ticket online with special price:</p>\n <Countdown \n v-if=\"event?.date?.start && event?.ticketsTypes?.length > 0\"\n class=\"mn-t-thin radius-medium bg-white w-100\"\n :date=\"event?.date?.start\"\n />\n </div>\n\n\n </div>\n\n <Comments \n v-if=\"!isLoading && event\" \n :type=\"'event'\" \n :target=\"event._id\" \n :owner=\"auth.state.user._id\"\n class=\"bg-light radius-big pd-medium\"\n />\n\n </div>\n \n </TransitionGroup> \n\n </section>\n</template>\n\n<script setup>\nimport { ref, onMounted } from 'vue';\n\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport Chips from '@martyrs/src/components/Chips/Chips.vue';\nimport EmptyState from '@martyrs/src/components/EmptyState/EmptyState.vue';\n\nimport Viewer from '@martyrs/src/modules/constructor/components/sections/Viewer.vue';\n\nimport Countdown from \"@martyrs/src/components/Countdown/Countdown.vue\";\n\nimport HeroEvent from '@martyrs/src/modules/events/components/sections/HeroEvent.vue';\n\nimport PhotoStack from \"@martyrs/src/modules/globals/views/components/elements/PhotoStack.vue\";\n\nimport { SkeletonEvent, IconDate } from '@martyrs/src/modules/icons/icons.client.js';\n\nimport ButtonJoin from '@martyrs/src/modules/events/components/elements/ButtonJoin.vue';\nimport Comments from '@martyrs/src/modules/community/components/sections/Comments.vue';\n\nimport Image from '@martyrs/src/modules/constructor/components/elements/Image.vue';\nimport User from '@martyrs/src/modules/auth/views/components/blocks/CardUser.vue';\n\nimport * as events from '@martyrs/src/modules/events/store/events.js';\nimport * as tickets from '@martyrs/src/modules/events/store/tickets.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n\nimport { useRoute } from 'vue-router';\n\nconst route = useRoute();\nconst qrcode = ref(null);\n\nconst handleTicketUpdate = ({ ticket, hasTicket, targetId }) => {\n tickets.mutations.handleTicketUpdate(event.value, ticket, hasTicket, targetId);\n console.log('HANDLE TICKET UPDATE', ticket, event.value);\n qrcode.value = ticket.qrcode;\n};\n\nfunction clickBuyTicket() {\n gtag('event', 'buy_ticket', {\n 'event_category': 'conversion',\n 'event_label': 'Buy Ticket'\n });\n}\n\nconst event = ref(null);\nconst isLoading = ref(true);\n\nonMounted(async () => {\n isLoading.value = true;\n\n const data = await events.read({\n user: auth.state.user._id,\n url: route.params.url\n });\n\n event.value = data[0];\n isLoading.value = false;\n});\n</script>\n\n\n<style>\n #eventPage {\n display: block;\n }\n</style>"],"names":["useRoute","ref","tickets.mutations","onMounted","events.read","auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkJA,UAAM,QAAQA,UAAAA,SAAU;AACxB,UAAM,SAASC,IAAG,IAAC,IAAI;AAEvB,UAAM,qBAAqB,CAAC,EAAE,QAAQ,WAAW,SAAQ,MAAO;AAC9DC,cAAiB,UAAC,mBAAmB,MAAM,OAAO,QAAQ,WAAW,QAAQ;AAC7E,cAAQ,IAAI,wBAAwB,QAAQ,MAAM,KAAK;AACvD,aAAO,QAAQ,OAAO;AAAA,IACxB;AASA,UAAM,QAAQD,IAAG,IAAC,IAAI;AACtB,UAAM,YAAYA,IAAG,IAAC,IAAI;AAE1BE,QAAAA,UAAU,YAAY;AACnB,gBAAU,QAAQ;AAElB,YAAM,OAAO,MAAMC,YAAY;AAAA,QAC5B,MAAMC,KAAAA,MAAW,KAAK;AAAA,QACtB,KAAK,MAAM,OAAO;AAAA,MACxB,CAAI;AAED,YAAM,QAAQ,KAAK,CAAC;AACpB,gBAAU,QAAQ;AAAA,IACrB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ref, onMounted, createElementBlock, openBlock, createVNode, TransitionGroup, withCtx, createCommentVNode, createBlock, Fragment, renderList, unref, createElementVNode, toDisplayString, createTextVNode
|
|
1
|
+
import { ref, onMounted, createElementBlock, openBlock, createVNode, TransitionGroup, withCtx, createCommentVNode, createBlock, Fragment, renderList, unref, createElementVNode, toDisplayString, createTextVNode } from "vue";
|
|
2
2
|
/* empty css */
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _sfc_main$2 from "../../../constructor/components/sections/Viewer.vue.js";
|
|
@@ -9,8 +9,7 @@ import _sfc_main$3 from "../../../globals/views/components/elements/PhotoStack.v
|
|
|
9
9
|
import _sfc_main$1 from "../../../icons/entities/IconDate.vue.js";
|
|
10
10
|
import SkeletonEvent from "../../../icons/skeletons/SkeletonEvent.vue.js";
|
|
11
11
|
import ButtonJoin from "../elements/ButtonJoin.vue.js";
|
|
12
|
-
import _sfc_main$
|
|
13
|
-
import _sfc_main$5 from "../../../auth/views/components/blocks/CardUser.vue.js";
|
|
12
|
+
import _sfc_main$5 from "../../../community/components/sections/Comments.vue.js";
|
|
14
13
|
import { read } from "../../store/events.js";
|
|
15
14
|
import { mutations } from "../../store/tickets.js";
|
|
16
15
|
import { state } from "../../../auth/views/store/auth.js";
|
|
@@ -45,7 +44,6 @@ const _hoisted_17 = {
|
|
|
45
44
|
key: 2,
|
|
46
45
|
class: "z-index-1 t-transp p-small mn-t-small"
|
|
47
46
|
};
|
|
48
|
-
const _hoisted_18 = { class: "radius-semi pd-medium bg-light" };
|
|
49
47
|
const _sfc_main = {
|
|
50
48
|
__name: "Event",
|
|
51
49
|
setup(__props) {
|
|
@@ -122,7 +120,7 @@ const _sfc_main = {
|
|
|
122
120
|
createElementVNode("div", _hoisted_9, [
|
|
123
121
|
createElementVNode("div", _hoisted_10, [
|
|
124
122
|
createElementVNode("div", _hoisted_11, [
|
|
125
|
-
_cache[
|
|
123
|
+
_cache[0] || (_cache[0] = createElementVNode("h4", { class: "mn-r-auto" }, "Tickets", -1)),
|
|
126
124
|
createVNode(_sfc_main$3, {
|
|
127
125
|
number: event.value.numberOfTickets,
|
|
128
126
|
photos: event.value.participantsPhotos
|
|
@@ -155,28 +153,9 @@ const _sfc_main = {
|
|
|
155
153
|
class: "mn-t-thin radius-medium bg-white w-100",
|
|
156
154
|
date: (_p = (_o = event.value) == null ? void 0 : _o.date) == null ? void 0 : _p.start
|
|
157
155
|
}, null, 8, ["date"])) : createCommentVNode("", true)
|
|
158
|
-
]),
|
|
159
|
-
createElementVNode("div", _hoisted_18, [
|
|
160
|
-
_cache[2] || (_cache[2] = createElementVNode("h4", { class: "mn-b-small" }, "Organizer", -1)),
|
|
161
|
-
createVNode(_sfc_main$5, {
|
|
162
|
-
class: "h-5r cursor-pointer pd-medium radius-medium bg-white",
|
|
163
|
-
user: event.value.owner.target._id,
|
|
164
|
-
photo: event.value.owner.target.profile.photo,
|
|
165
|
-
name: event.value.owner.target.profile.name,
|
|
166
|
-
position: event.value.owner,
|
|
167
|
-
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.$router.push({
|
|
168
|
-
name: event.value.owner.type === "user" ? "User Profile" : "Organization",
|
|
169
|
-
params: {
|
|
170
|
-
_id: event.value.owner.target._id
|
|
171
|
-
},
|
|
172
|
-
query: {
|
|
173
|
-
tab: "events"
|
|
174
|
-
}
|
|
175
|
-
}), ["stop"]))
|
|
176
|
-
}, null, 8, ["user", "photo", "name", "position"])
|
|
177
156
|
])
|
|
178
157
|
]),
|
|
179
|
-
!isLoading.value && event.value ? (openBlock(), createBlock(_sfc_main$
|
|
158
|
+
!isLoading.value && event.value ? (openBlock(), createBlock(_sfc_main$5, {
|
|
180
159
|
key: 0,
|
|
181
160
|
type: "event",
|
|
182
161
|
target: event.value._id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Event.vue.js","sources":["../../../../../../../src/modules/events/components/pages/Event.vue"],"sourcesContent":["<template>\n <section id=\"eventPage\">\n <TransitionGroup tag=\"ul\" name=\"fade\" class=\"bg-light\">\n <SkeletonEvent\n v-if=\"isLoading\"\n v-for=\"i in 3\" :key=\"i\"\n />\n\n <HeroEvent\n v-if=\"!isLoading && event &&event.cover\"\n :content=\"{\n title: event.name,\n ticketLinkStripe: event.ticketLinkStripe,\n cover: event.cover,\n subtitle: event.subtitle,\n }\"\n :options=\"{\n date: event.date.start,\n }\"\n class=\"o-hidden\"\n />\n\n <div class=\"cols-2-2_1 gap-small bg-white t-black pd-t-zero mobile:pd-small pd-extra\" v-if=\"!isLoading && event\"> \n \n <div class=\"bg-light mobile:pd-medium pd-big radius-big\">\n\n <h1 class=\"z-index-1 mn-b-semi\">\n {{event?.name}}\n </h1>\n\n <div class=\"flex flex-wrap gap-micro t-medium p-big mn-b-semi justify-start align-center\">\n <span v-if=\"event.date?.start\" class=\"mn-r-nano d-inline-block w-max pd-b-micro pd-t-micro pd-r-thin pd-l-thin radius-small t-medium bg-white\">\n <IconDate :fill=\"'rgb(var(--black))'\" class=\"w-1r h-auto\"/>\n {{formatDate(event.date.start)}}\n </span>\n\n\n <span\n v-for=\"(chip, index) in event.tags\"\n :key=\"index\"\n class=\"d-inline-flex pd-b-micro pd-t-micro pd-r-thin pd-l-thin radius-small bg-main\"\n >\n {{ chip }}\n </span>\n </div>\n\n <p class=\"z-index-1 p-big mn-b-semi\">\n {{event?.description}}\n </p>\n\n <hr v-if=\"event?.content?.length > 0\" class=\"bg-black-transp-10 mn-b-semi mn-t-semi d-block\">\n\n <Viewer\n v-if=\"event && event.content\"\n :content=\"event.content\"\n :notitle=\"true\"\n />\n\n </div>\n\n <div class=\"\">\n \n <div class=\"radius-semi pd-medium bg-light mn-b-thin\">\n\n <div class=\"mn-b-small flex-nowrap flex-v-center flex pos-relative\">\n <h4 class=\"mn-r-auto\">Tickets</h4>\n <PhotoStack\n :number=\"event.numberOfTickets\"\n :photos=\"event.participantsPhotos\" \n />\n </div>\n <div v-if=\"event?.ticketsTypes?.length > 0\" v-for=\"ticketType in event.ticketsTypes\" class=\"pd-medium w-100 radius-medium bg-white mn-b-small\">\n <div class=\"flex-nowrap mn-b-small p-big flex\">\n <span class=\"mn-r-auto\">{{ticketType.name}}</span>\n <span class=\"t-medium\">{{ticketType.price}} {{returnCurrency()}}</span>\n </div>\n <a :href=\"ticketType.link\" class=\"d-block t-center pd-l-medium pd-r-medium pd-t-small pd-b-small radius-extra uppercase t-medium t-white w-100 bg-second \">\n Buy Now\n </a>\n </div>\n\n <ButtonJoin \n v-if=\"auth.state.user._id && !event?.ticketsTypes?.length > 0\"\n :type=\"'event'\" \n :hasTicket=\"event.hasTicket\" \n :targetId=\"event._id\" \n :userId=\"auth.state.user._id\"\n class=\" w-100 pd-medium mn-auto\"\n @updateTicket=\"handleTicketUpdate\"\n />\n\n <p v-if=\"event?.ticketsTypes.length > 0\" class=\"z-index-1 t-transp p-small mn-t-small \">Buy ticket online with special price:</p>\n <Countdown \n v-if=\"event?.date?.start && event?.ticketsTypes?.length > 0\"\n class=\"mn-t-thin radius-medium bg-white w-100\"\n :date=\"event?.date?.start\"\n />\n </div>\n\n
|
|
1
|
+
{"version":3,"file":"Event.vue.js","sources":["../../../../../../../src/modules/events/components/pages/Event.vue"],"sourcesContent":["<template>\n <section id=\"eventPage\">\n <TransitionGroup tag=\"ul\" name=\"fade\" class=\"bg-light\">\n <SkeletonEvent\n v-if=\"isLoading\"\n v-for=\"i in 3\" :key=\"i\"\n />\n\n <HeroEvent\n v-if=\"!isLoading && event &&event.cover\"\n :content=\"{\n title: event.name,\n ticketLinkStripe: event.ticketLinkStripe,\n cover: event.cover,\n subtitle: event.subtitle,\n }\"\n :options=\"{\n date: event.date.start,\n }\"\n class=\"o-hidden\"\n />\n\n <div class=\"cols-2-2_1 gap-small bg-white t-black pd-t-zero mobile:pd-small pd-extra\" v-if=\"!isLoading && event\"> \n \n <div class=\"bg-light mobile:pd-medium pd-big radius-big\">\n\n <h1 class=\"z-index-1 mn-b-semi\">\n {{event?.name}}\n </h1>\n\n <div class=\"flex flex-wrap gap-micro t-medium p-big mn-b-semi justify-start align-center\">\n <span v-if=\"event.date?.start\" class=\"mn-r-nano d-inline-block w-max pd-b-micro pd-t-micro pd-r-thin pd-l-thin radius-small t-medium bg-white\">\n <IconDate :fill=\"'rgb(var(--black))'\" class=\"w-1r h-auto\"/>\n {{formatDate(event.date.start)}}\n </span>\n\n\n <span\n v-for=\"(chip, index) in event.tags\"\n :key=\"index\"\n class=\"d-inline-flex pd-b-micro pd-t-micro pd-r-thin pd-l-thin radius-small bg-main\"\n >\n {{ chip }}\n </span>\n </div>\n\n <p class=\"z-index-1 p-big mn-b-semi\">\n {{event?.description}}\n </p>\n\n <hr v-if=\"event?.content?.length > 0\" class=\"bg-black-transp-10 mn-b-semi mn-t-semi d-block\">\n\n <Viewer\n v-if=\"event && event.content\"\n :content=\"event.content\"\n :notitle=\"true\"\n />\n\n </div>\n\n <div class=\"\">\n \n <div class=\"radius-semi pd-medium bg-light mn-b-thin\">\n\n <div class=\"mn-b-small flex-nowrap flex-v-center flex pos-relative\">\n <h4 class=\"mn-r-auto\">Tickets</h4>\n <PhotoStack\n :number=\"event.numberOfTickets\"\n :photos=\"event.participantsPhotos\" \n />\n </div>\n <div v-if=\"event?.ticketsTypes?.length > 0\" v-for=\"ticketType in event.ticketsTypes\" class=\"pd-medium w-100 radius-medium bg-white mn-b-small\">\n <div class=\"flex-nowrap mn-b-small p-big flex\">\n <span class=\"mn-r-auto\">{{ticketType.name}}</span>\n <span class=\"t-medium\">{{ticketType.price}} {{returnCurrency()}}</span>\n </div>\n <a :href=\"ticketType.link\" class=\"d-block t-center pd-l-medium pd-r-medium pd-t-small pd-b-small radius-extra uppercase t-medium t-white w-100 bg-second \">\n Buy Now\n </a>\n </div>\n\n <ButtonJoin \n v-if=\"auth.state.user._id && !event?.ticketsTypes?.length > 0\"\n :type=\"'event'\" \n :hasTicket=\"event.hasTicket\" \n :targetId=\"event._id\" \n :userId=\"auth.state.user._id\"\n class=\" w-100 pd-medium mn-auto\"\n @updateTicket=\"handleTicketUpdate\"\n />\n\n <p v-if=\"event?.ticketsTypes.length > 0\" class=\"z-index-1 t-transp p-small mn-t-small \">Buy ticket online with special price:</p>\n <Countdown \n v-if=\"event?.date?.start && event?.ticketsTypes?.length > 0\"\n class=\"mn-t-thin radius-medium bg-white w-100\"\n :date=\"event?.date?.start\"\n />\n </div>\n\n\n </div>\n\n <Comments \n v-if=\"!isLoading && event\" \n :type=\"'event'\" \n :target=\"event._id\" \n :owner=\"auth.state.user._id\"\n class=\"bg-light radius-big pd-medium\"\n />\n\n </div>\n \n </TransitionGroup> \n\n </section>\n</template>\n\n<script setup>\nimport { ref, onMounted } from 'vue';\n\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport Chips from '@martyrs/src/components/Chips/Chips.vue';\nimport EmptyState from '@martyrs/src/components/EmptyState/EmptyState.vue';\n\nimport Viewer from '@martyrs/src/modules/constructor/components/sections/Viewer.vue';\n\nimport Countdown from \"@martyrs/src/components/Countdown/Countdown.vue\";\n\nimport HeroEvent from '@martyrs/src/modules/events/components/sections/HeroEvent.vue';\n\nimport PhotoStack from \"@martyrs/src/modules/globals/views/components/elements/PhotoStack.vue\";\n\nimport { SkeletonEvent, IconDate } from '@martyrs/src/modules/icons/icons.client.js';\n\nimport ButtonJoin from '@martyrs/src/modules/events/components/elements/ButtonJoin.vue';\nimport Comments from '@martyrs/src/modules/community/components/sections/Comments.vue';\n\nimport Image from '@martyrs/src/modules/constructor/components/elements/Image.vue';\nimport User from '@martyrs/src/modules/auth/views/components/blocks/CardUser.vue';\n\nimport * as events from '@martyrs/src/modules/events/store/events.js';\nimport * as tickets from '@martyrs/src/modules/events/store/tickets.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n\nimport { useRoute } from 'vue-router';\n\nconst route = useRoute();\nconst qrcode = ref(null);\n\nconst handleTicketUpdate = ({ ticket, hasTicket, targetId }) => {\n tickets.mutations.handleTicketUpdate(event.value, ticket, hasTicket, targetId);\n console.log('HANDLE TICKET UPDATE', ticket, event.value);\n qrcode.value = ticket.qrcode;\n};\n\nfunction clickBuyTicket() {\n gtag('event', 'buy_ticket', {\n 'event_category': 'conversion',\n 'event_label': 'Buy Ticket'\n });\n}\n\nconst event = ref(null);\nconst isLoading = ref(true);\n\nonMounted(async () => {\n isLoading.value = true;\n\n const data = await events.read({\n user: auth.state.user._id,\n url: route.params.url\n });\n\n event.value = data[0];\n isLoading.value = false;\n});\n</script>\n\n\n<style>\n #eventPage {\n display: block;\n }\n</style>"],"names":["tickets.mutations","events.read","auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkJA,UAAM,QAAQ,SAAU;AACxB,UAAM,SAAS,IAAI,IAAI;AAEvB,UAAM,qBAAqB,CAAC,EAAE,QAAQ,WAAW,SAAQ,MAAO;AAC9DA,gBAAkB,mBAAmB,MAAM,OAAO,QAAQ,WAAW,QAAQ;AAC7E,cAAQ,IAAI,wBAAwB,QAAQ,MAAM,KAAK;AACvD,aAAO,QAAQ,OAAO;AAAA,IACxB;AASA,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,YAAY,IAAI,IAAI;AAE1B,cAAU,YAAY;AACnB,gBAAU,QAAQ;AAElB,YAAM,OAAO,MAAMC,KAAY;AAAA,QAC5B,MAAMC,MAAW,KAAK;AAAA,QACtB,KAAK,MAAM,OAAO;AAAA,MACxB,CAAI;AAED,YAAM,QAAQ,KAAK,CAAC;AACpB,gBAAU,QAAQ;AAAA,IACrB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -9,6 +9,7 @@ const Popup = require("../../../../components/Popup/Popup.vue2.cjs");
|
|
|
9
9
|
const DatePicker = require("../../../../components/DatePicker/DatePicker.vue.cjs");
|
|
10
10
|
const CitySelection = require("../../../globals/views/components/partials/CitySelection.vue.cjs");
|
|
11
11
|
const FeaturedEvents = require("../sections/FeaturedEvents.vue.cjs");
|
|
12
|
+
const SelectDate = require("../sections/SelectDate.vue.cjs");
|
|
12
13
|
const EventsHot = require("../sections/EventsHot.vue.cjs");
|
|
13
14
|
const CardEvent = require("../blocks/CardEvent.vue.cjs");
|
|
14
15
|
const CardOrganization = require("../../../organizations/components/blocks/CardOrganization.vue.cjs");
|
|
@@ -16,71 +17,20 @@ const auth = require("../../../auth/views/store/auth.cjs");
|
|
|
16
17
|
const organizations = require("../../../organizations/store/organizations.cjs");
|
|
17
18
|
const memberships = require("../../../organizations/store/memberships.cjs");
|
|
18
19
|
const events = require("../../store/events.cjs");
|
|
19
|
-
const _hoisted_1 = { class: "
|
|
20
|
-
const _hoisted_2 = { class: "gap-medium pos-t-0 pos-sticky z-index-
|
|
20
|
+
const _hoisted_1 = { class: "bg-white" };
|
|
21
|
+
const _hoisted_2 = { class: "gap-medium pos-t-0 pos-sticky z-index-3 radius-medium" };
|
|
21
22
|
const _hoisted_3 = { class: "pd-big mobile:pd-thin radius-tr-medium radius-tl-medium bg-white" };
|
|
22
|
-
const _hoisted_4 = { class: "gap-medium radius-medium mn-b-
|
|
23
|
-
const _hoisted_5 = { class: "gap-medium radius-medium mn-b-
|
|
24
|
-
const _hoisted_6 = { class: "gap-medium radius-medium
|
|
25
|
-
const _hoisted_7 = { class: "cols-4 gap-thin" };
|
|
26
|
-
const _hoisted_8 = ["onClick"];
|
|
27
|
-
const _hoisted_9 = { class: "t-medium" };
|
|
28
|
-
const _hoisted_10 = { class: "text-small text-muted" };
|
|
29
|
-
const _hoisted_11 = { class: "gap-medium radius-medium mn-b-medium" };
|
|
30
|
-
const _hoisted_12 = { class: "gap-medium radius-medium mn-b-medium" };
|
|
31
|
-
const _hoisted_13 = { class: "gap-medium radius-medium mn-b-thin" };
|
|
23
|
+
const _hoisted_4 = { class: "gap-medium radius-medium mn-b-semi" };
|
|
24
|
+
const _hoisted_5 = { class: "gap-medium radius-medium mn-b-semi" };
|
|
25
|
+
const _hoisted_6 = { class: "gap-medium radius-medium" };
|
|
32
26
|
const _sfc_main = {
|
|
33
27
|
__name: "Events",
|
|
34
28
|
setup(__props) {
|
|
35
29
|
const handleMembershipUpdate = ({ membership, status, target }, statusName, statusNumber) => {
|
|
36
30
|
memberships.mutations.handleMembershipUpdate(organizations.state.current, membership, status, target, statusName, statusNumber);
|
|
37
31
|
};
|
|
38
|
-
|
|
32
|
+
vueRouter.useRoute();
|
|
39
33
|
const router = vueRouter.useRouter();
|
|
40
|
-
let baseDate = /* @__PURE__ */ new Date();
|
|
41
|
-
const formattedDate = formatDateForRouter(baseDate);
|
|
42
|
-
const dateOptions = [
|
|
43
|
-
{ label: "Today", range: "Tue, 4th Feb" },
|
|
44
|
-
{ label: "Tomorrow", range: "Wed, 5th Feb" },
|
|
45
|
-
{ label: "This Weekend", range: "8th - 9th Feb" },
|
|
46
|
-
{ label: "This Week", range: "3rd - 9th Feb" },
|
|
47
|
-
{ label: "Next Weekend", range: "15th - 16th Feb" },
|
|
48
|
-
{ label: "Next Week", range: "10th - 16th Feb" },
|
|
49
|
-
{ label: "This Month", range: "1st - 28th Feb" },
|
|
50
|
-
{ label: "Custom Date", range: "Pick Range" }
|
|
51
|
-
];
|
|
52
|
-
const selectDate = (date) => {
|
|
53
|
-
console.log("Selected date:", date);
|
|
54
|
-
};
|
|
55
|
-
function formatDateForRouter(date) {
|
|
56
|
-
return `${date.getDate().toString().padStart(2, "0")}${(date.getMonth() + 1).toString().padStart(2, "0")}${date.getFullYear()}`;
|
|
57
|
-
}
|
|
58
|
-
if (route.query) {
|
|
59
|
-
const query = route.query;
|
|
60
|
-
const newFilterValue = {
|
|
61
|
-
tags: query.tags ? query.tags.split(",") : null,
|
|
62
|
-
date: query.date ? query.date : null
|
|
63
|
-
};
|
|
64
|
-
events.state.filter = newFilterValue;
|
|
65
|
-
} else {
|
|
66
|
-
const newFilterValue = {
|
|
67
|
-
date: formattedDate
|
|
68
|
-
};
|
|
69
|
-
events.state.filter = newFilterValue;
|
|
70
|
-
}
|
|
71
|
-
vue.watch(() => events.state.filter, (newFilterValue, oldFilterValue) => {
|
|
72
|
-
const query = { ...route.query };
|
|
73
|
-
Object.keys(oldFilterValue).forEach((key) => {
|
|
74
|
-
if (query[key]) {
|
|
75
|
-
delete query[key];
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
const newQueryValues = Object.fromEntries(
|
|
79
|
-
Object.entries(newFilterValue).filter(([key, value]) => Array.isArray(value) && value.length > 0 || typeof value === "string" && value).map(([key, value]) => [key, Array.isArray(value) ? value.join(",") : value])
|
|
80
|
-
);
|
|
81
|
-
Object.assign(query, newQueryValues);
|
|
82
|
-
router.push({ query });
|
|
83
|
-
}, { deep: true });
|
|
84
34
|
const isCitySelectionPopup = vue.ref(false);
|
|
85
35
|
function openCitySelectionPopup() {
|
|
86
36
|
isCitySelectionPopup.value = true;
|
|
@@ -88,24 +38,50 @@ const _sfc_main = {
|
|
|
88
38
|
function closeCitySelectionPopup() {
|
|
89
39
|
isCitySelectionPopup.value = false;
|
|
90
40
|
}
|
|
41
|
+
const handleDatePickerChange = (date) => {
|
|
42
|
+
if (date) {
|
|
43
|
+
const selectedDate = new Date(date);
|
|
44
|
+
const startOfDay = new Date(selectedDate);
|
|
45
|
+
startOfDay.setHours(0, 0, 0, 0);
|
|
46
|
+
const endOfDay = new Date(selectedDate);
|
|
47
|
+
endOfDay.setHours(23, 59, 59, 999);
|
|
48
|
+
router.push({
|
|
49
|
+
name: "Events Search",
|
|
50
|
+
query: {
|
|
51
|
+
period: "day",
|
|
52
|
+
periodStart: startOfDay.toISOString(),
|
|
53
|
+
periodEnd: endOfDay.toISOString()
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
const handleDateSelection = (dateData) => {
|
|
59
|
+
console.log("Selected date data:", dateData);
|
|
60
|
+
router.push({
|
|
61
|
+
name: "Events Search",
|
|
62
|
+
query: {
|
|
63
|
+
periodStart: dateData.startDate.toISOString(),
|
|
64
|
+
periodEnd: dateData.endDate.toISOString()
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
};
|
|
91
68
|
return (_ctx, _cache) => {
|
|
92
69
|
return vue.openBlock(), vue.createElementBlock("section", _hoisted_1, [
|
|
93
70
|
vue.createElementVNode("div", _hoisted_2, [
|
|
94
71
|
vue.createVNode(DatePicker.default, {
|
|
95
|
-
date:
|
|
96
|
-
"onUpdate:date": _cache[0] || (_cache[0] = ($event) => events.state.filter.date = $event),
|
|
72
|
+
"onUpdate:date": handleDatePickerChange,
|
|
97
73
|
locale: _ctx.$i18n.locale,
|
|
98
74
|
options: {
|
|
99
75
|
dateStart: 0,
|
|
100
76
|
dateEnd: 30
|
|
101
77
|
},
|
|
102
78
|
class: "bs-black-small br-b br-solid br-black-transp-10 o-hidden bg-white pd-l-zero pd-r-zero pd-medium"
|
|
103
|
-
}, null, 8, ["
|
|
79
|
+
}, null, 8, ["locale"])
|
|
104
80
|
]),
|
|
105
81
|
vue.createElementVNode("section", _hoisted_3, [
|
|
106
82
|
vue.createElementVNode("div", _hoisted_4, [
|
|
107
83
|
vue.createElementVNode("h2", { class: "mn-b-small" }, [
|
|
108
|
-
_cache[
|
|
84
|
+
_cache[0] || (_cache[0] = vue.createTextVNode(" Events in ")),
|
|
109
85
|
vue.createElementVNode("p", {
|
|
110
86
|
onClick: openCitySelectionPopup,
|
|
111
87
|
class: "d-inline-block hover-bg-second hover-t-white cursor-pointer transition-elastic transition-timing-1 h2 pd-micro pd-t-thin pd-r-small pd-l-small br-solid br-1px br-black-transp-10 radius-extra"
|
|
@@ -121,73 +97,15 @@ const _sfc_main = {
|
|
|
121
97
|
]),
|
|
122
98
|
_: 1
|
|
123
99
|
}, 8, ["isPopupOpen"]),
|
|
124
|
-
vue.createVNode(EventsHot.default, {
|
|
125
|
-
options: {
|
|
126
|
-
status: "featured"
|
|
127
|
-
},
|
|
128
|
-
class: "mn-big-negative pd-big"
|
|
129
|
-
})
|
|
100
|
+
vue.createVNode(EventsHot.default, { options: {} })
|
|
130
101
|
]),
|
|
102
|
+
vue.createVNode(FeaturedEvents.default, { class: "mn-b-semi" }),
|
|
103
|
+
vue.createVNode(SelectDate.default, {
|
|
104
|
+
class: "mn-b-semi",
|
|
105
|
+
onDateSelected: handleDateSelection
|
|
106
|
+
}),
|
|
131
107
|
vue.createElementVNode("div", _hoisted_5, [
|
|
132
|
-
_cache[
|
|
133
|
-
vue.createVNode(FeaturedEvents.default, { class: "gap-thin" })
|
|
134
|
-
]),
|
|
135
|
-
vue.createElementVNode("div", _hoisted_6, [
|
|
136
|
-
_cache[3] || (_cache[3] = vue.createElementVNode("h3", { class: "mn-b-small" }, " Explore by Date ", -1)),
|
|
137
|
-
vue.createElementVNode("div", _hoisted_7, [
|
|
138
|
-
(vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(dateOptions, (date, index) => {
|
|
139
|
-
return vue.createElementVNode("div", {
|
|
140
|
-
key: index,
|
|
141
|
-
class: "bg-light radius-medium pd-medium cursor-pointer",
|
|
142
|
-
onClick: ($event) => selectDate(date)
|
|
143
|
-
}, [
|
|
144
|
-
vue.createElementVNode("h4", _hoisted_9, vue.toDisplayString(date.label), 1),
|
|
145
|
-
vue.createElementVNode("div", _hoisted_10, vue.toDisplayString(date.range), 1)
|
|
146
|
-
], 8, _hoisted_8);
|
|
147
|
-
}), 64))
|
|
148
|
-
])
|
|
149
|
-
]),
|
|
150
|
-
vue.createElementVNode("div", _hoisted_11, [
|
|
151
|
-
_cache[4] || (_cache[4] = vue.createElementVNode("h3", { class: "mn-b-small" }, " Popular Events ", -1)),
|
|
152
|
-
vue.createVNode(Feed.default, {
|
|
153
|
-
showLoadMore: false,
|
|
154
|
-
LoadMore: false,
|
|
155
|
-
states: {
|
|
156
|
-
empty: {
|
|
157
|
-
title: "No Events Today",
|
|
158
|
-
description: "Currently, there are no events available."
|
|
159
|
-
}
|
|
160
|
-
},
|
|
161
|
-
store: {
|
|
162
|
-
read: (options) => events.read(options),
|
|
163
|
-
state: events.state
|
|
164
|
-
},
|
|
165
|
-
options: {
|
|
166
|
-
user: auth.state.user._id,
|
|
167
|
-
limit: 3,
|
|
168
|
-
page: 1
|
|
169
|
-
},
|
|
170
|
-
class: "cols-3 gap-thin"
|
|
171
|
-
}, {
|
|
172
|
-
default: vue.withCtx(({
|
|
173
|
-
items
|
|
174
|
-
}) => [
|
|
175
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (event, index) => {
|
|
176
|
-
return vue.openBlock(), vue.createBlock(CardEvent.default, {
|
|
177
|
-
onClick: ($event) => _ctx.$router.push({ name: "Event", params: { url: event.url } }),
|
|
178
|
-
key: event._id,
|
|
179
|
-
event,
|
|
180
|
-
user: auth.state.user._id,
|
|
181
|
-
type: "normal",
|
|
182
|
-
class: "bg-light radius-big mn-b-thin"
|
|
183
|
-
}, null, 8, ["onClick", "event", "user"]);
|
|
184
|
-
}), 128))
|
|
185
|
-
]),
|
|
186
|
-
_: 1
|
|
187
|
-
}, 8, ["store", "options"])
|
|
188
|
-
]),
|
|
189
|
-
vue.createElementVNode("div", _hoisted_12, [
|
|
190
|
-
_cache[5] || (_cache[5] = vue.createElementVNode("h3", { class: "mn-b-small" }, " Most Happening Organizers ", -1)),
|
|
108
|
+
_cache[1] || (_cache[1] = vue.createElementVNode("h3", { class: "mn-b-small" }, " Most Happening Organizers ", -1)),
|
|
191
109
|
vue.createVNode(Feed.default, {
|
|
192
110
|
showLoadMore: false,
|
|
193
111
|
LoadMore: false,
|
|
@@ -206,9 +124,9 @@ const _sfc_main = {
|
|
|
206
124
|
sort: "numberOfMemberships",
|
|
207
125
|
contain: ["blogposts"],
|
|
208
126
|
lookup: ["blogposts"],
|
|
209
|
-
limit:
|
|
127
|
+
limit: 6
|
|
210
128
|
},
|
|
211
|
-
class: "cols-
|
|
129
|
+
class: "cols-2 gap-thin"
|
|
212
130
|
}, {
|
|
213
131
|
default: vue.withCtx(({
|
|
214
132
|
items
|
|
@@ -230,8 +148,8 @@ const _sfc_main = {
|
|
|
230
148
|
_: 1
|
|
231
149
|
}, 8, ["store", "options"])
|
|
232
150
|
]),
|
|
233
|
-
vue.createElementVNode("div",
|
|
234
|
-
_cache[
|
|
151
|
+
vue.createElementVNode("div", _hoisted_6, [
|
|
152
|
+
_cache[2] || (_cache[2] = vue.createElementVNode("h3", { class: "mn-b-small" }, " All Events ", -1)),
|
|
235
153
|
vue.createVNode(Feed.default, {
|
|
236
154
|
search: true,
|
|
237
155
|
showLoadMore: false,
|
|
@@ -247,7 +165,7 @@ const _sfc_main = {
|
|
|
247
165
|
},
|
|
248
166
|
options: {
|
|
249
167
|
user: auth.state.user._id,
|
|
250
|
-
limit:
|
|
168
|
+
limit: 9
|
|
251
169
|
},
|
|
252
170
|
class: "cols-3 gap-thin"
|
|
253
171
|
}, {
|
|
@@ -261,7 +179,7 @@ const _sfc_main = {
|
|
|
261
179
|
event,
|
|
262
180
|
user: auth.state.user._id,
|
|
263
181
|
type: "normal",
|
|
264
|
-
class: "bg-light radius-big
|
|
182
|
+
class: "bg-light radius-big"
|
|
265
183
|
}, null, 8, ["onClick", "event", "user"]);
|
|
266
184
|
}), 128))
|
|
267
185
|
]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.vue.cjs","sources":["../../../../../../../src/modules/events/components/pages/Events.vue"],"sourcesContent":["<template>\n <section class=\"radius-tl-medium bg-white\"> \n\n\n <div class=\"gap-medium pos-t-0 pos-sticky z-index-2 radius-medium \">\n <DatePicker\n v-model:date=\"events.state.filter.date\"\n :locale=\"$i18n.locale\"\n :options=\"{\n dateStart: 0,\n dateEnd: 30\n }\"\n class=\"bs-black-small br-b br-solid br-black-transp-10 o-hidden bg-white pd-l-zero pd-r-zero pd-medium\"\n />\n </div>\n\n <section class=\"pd-big mobile:pd-thin radius-tr-medium radius-tl-medium bg-white\"> \n\n <div class=\"gap-medium radius-medium mn-b-big\">\n <h2\n class=\"mn-b-small\"\n >\n Events in <p @click=\"openCitySelectionPopup\" class=\"d-inline-block hover-bg-second hover-t-white cursor-pointer transition-elastic transition-timing-1 h2 pd-micro pd-t-thin pd-r-small pd-l-small br-solid br-1px br-black-transp-10 radius-extra\">Phuket</p>\n </h2>\n\n <Popup \n @close-popup=\"closeCitySelectionPopup\" \n :isPopupOpen=\"isCitySelectionPopup\"\n class=\"w-m-33r t-left pd-medium bg-white radius-semi\"\n\n >\n <CitySelection/>\n </Popup>\n\n <EventsHot \n :options=\"{\n status: 'featured'\n }\"\n class=\" mn-big-negative pd-big\"\n />\n </div>\n\n\n <div class=\"gap-medium radius-medium mn-b-thin\">\n <h3\n class=\"mn-b-small\"\n >\n Popular Events\n </h3>\n <FeaturedEvents class=\"gap-thin\"/>\n </div>\n\n <div class=\"gap-medium radius-medium mn-b-medium\">\n <h3 class=\"mn-b-small\">\n Explore by Date\n </h3>\n \n <div class=\"cols-4 gap-thin\">\n <div \n v-for=\"(date, index) in dateOptions\" \n :key=\"index\"\n class=\"bg-light radius-medium pd-medium cursor-pointer\"\n @click=\"selectDate(date)\"\n >\n <h4 class=\"t-medium\">{{ date.label }}</h4>\n <div class=\"text-small text-muted\">{{ date.range }}</div>\n </div>\n </div>\n </div>\n\n <div class=\"gap-medium radius-medium mn-b-medium\">\n \n <h3\n class=\"mn-b-small\"\n >\n Popular Events\n </h3>\n \n <Feed\n :showLoadMore=\"false\"\n :LoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Events Today',\n description: 'Currently, there are no events available.'\n }\n }\"\n :store=\"{\n read: (options) => events.read(options),\n state: events.state\n }\"\n :options=\"{\n user: auth.state.user._id,\n limit: 3,\n page: 1\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-3 gap-thin\"\n >\n <CardEvent \n @click=\"$router.push({name: 'Event', params: {url: event.url}})\" \n v-for=\"(event,index) in items\" \n :key=\"event._id\" \n :event=\"event\" \n :user=\"auth.state.user._id\" \n :type=\"'normal'\"\n class=\"bg-light radius-big mn-b-thin\"\n >\n </CardEvent>\n </Feed>\n \n\n </div>\n\n <div class=\"gap-medium radius-medium mn-b-medium\">\n\n <h3\n class=\"mn-b-small\"\n >\n Most Happening Organizers\n </h3>\n <Feed\n :showLoadMore=\"false\"\n :LoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Organization Found',\n description: 'Currently, there are no organization available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: organizations.state\n }\"\n :options=\"{\n user: auth.state.user._id,\n sort: 'numberOfMemberships',\n contain: ['blogposts'],\n lookup: ['blogposts'],\n limit: 8\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 gap-thin\"\n >\n <CardOrganization \n v-for=\"organization in items\"\n :key=\"organization._id\" \n :organization=\"organization\"\n :user=\"auth.state.user\"\n :showProducts=\"false\"\n :showRating=\"false\"\n :showFeatured=\"false\"\n :showFollowers=\"false\"\n @updateMembership=\"handleMembershipUpdate\"\n class=\"pd-small w-100 pd-0 bg-light radius-semi o-hidden\"\n />\n </Feed>\n\n </div>\n \n <div class=\"gap-medium radius-medium mn-b-thin\">\n\n <h3\n class=\"mn-b-small\"\n >\n All Events\n </h3>\n\n <Feed\n :search=\"true\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Events Today',\n description: 'Currently, there are no events available.'\n }\n }\"\n :store=\"{\n read: (options) => events.read(options),\n state: events.state\n }\"\n :options=\"{\n user: auth.state.user._id,\n limit: 10\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-3 gap-thin\"\n >\n <CardEvent \n @click=\"$router.push({name: 'Event', params: {url: event.url}})\" \n v-for=\"(event,index) in items\" \n :key=\"event._id\" \n :event=\"event\" \n :user=\"auth.state.user._id\" \n :type=\"'normal'\"\n class=\"bg-light radius-big mn-t-thin\"\n >\n </CardEvent>\n </Feed>\n\n </div>\n\n </section>\n </section>\n</template>\n\n<script setup=\"props\">\n import { computed, onMounted, watch, ref } from 'vue';\n import { useRoute, useRouter } from 'vue-router';\n\n import Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue';\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n import Popup from '@martyrs/src/components/Popup/Popup.vue'\n import DatePicker from '@martyrs/src/components/DatePicker/DatePicker.vue'\n\n import CitySelection from '@martyrs/src/modules/globals/views/components/partials/CitySelection.vue';\n\n import FeaturedEvents from '@martyrs/src/modules/events/components/sections/FeaturedEvents.vue'; \n\n import EventsHot from '@martyrs/src/modules/events/components/sections/EventsHot.vue'; \n import CardEvent from '@martyrs/src/modules/events/components/blocks/CardEvent.vue';\n import CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n // Import state\n import * as auth from '@martyrs/src/modules/auth/views/store/auth'\n import * as organizations from '@martyrs/src/modules/organizations/store/organizations'\n import * as memberships from '@martyrs/src/modules/organizations/store/memberships'\n\n\n import * as events from '@martyrs/src/modules/events/store/events.js'; \n\n const handleMembershipUpdate = ({ membership, status, target }, statusName, statusNumber) => {\n memberships.mutations.handleMembershipUpdate(organizations.state.current, membership, status, target, statusName, statusNumber)\n };\n // State\n const route = useRoute();\n const router = useRouter();\n\n let baseDate = new Date();\n const formattedDate = formatDateForRouter(baseDate);\n\n const dateOptions = [\n { label: 'Today', range: 'Tue, 4th Feb' },\n { label: 'Tomorrow', range: 'Wed, 5th Feb' },\n { label: 'This Weekend', range: '8th - 9th Feb' },\n { label: 'This Week', range: '3rd - 9th Feb' },\n { label: 'Next Weekend', range: '15th - 16th Feb' },\n { label: 'Next Week', range: '10th - 16th Feb' },\n { label: 'This Month', range: '1st - 28th Feb' },\n { label: 'Custom Date', range: 'Pick Range' }\n ];\n\n const selectDate = (date) => {\n // Здесь можно добавить логику выбора даты\n console.log('Selected date:', date);\n };\n \n function formatDateForRouter(date) {\n return `${date.getDate().toString().padStart(2, '0')}${(date.getMonth() + 1).toString().padStart(2, '0')}${date.getFullYear()}`;\n }\n\n if (route.query) {\n const query = route.query;\n \n const newFilterValue = {\n tags: query.tags ? query.tags.split(',') : null,\n date: query.date ? query.date : null,\n };\n\n events.state.filter = newFilterValue; // <-- Modified\n } else {\n const newFilterValue = {\n date: formattedDate,\n };\n\n events.state.filter = newFilterValue;\n }\n\n watch(() => events.state.filter, (newFilterValue, oldFilterValue) => { // <-- Modified\n const query = { ...route.query };\n\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => (Array.isArray(value) && value.length > 0) || (typeof value === 'string' && value))\n .map(([key, value]) => [key, Array.isArray(value) ? value.join(',') : value])\n );\n Object.assign(query, newQueryValues);\n\n router.push({ query });\n }, { deep: true })\n\n const isCitySelectionPopup = ref(false)\n\n function openCitySelectionPopup() {\n isCitySelectionPopup.value = true;\n }\n function closeCitySelectionPopup() {\n isCitySelectionPopup.value = false;\n }\n</script>\n\n<style lang=\"scss\">\n \n</style>\n"],"names":["memberships.mutations","organizations.state","useRoute","useRouter","events.state","watch","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6OE,UAAM,yBAAyB,CAAC,EAAE,YAAY,QAAQ,OAAQ,GAAE,YAAY,iBAAiB;AAC3FA,4BAAsB,uBAAuBC,cAAAA,MAAoB,SAAS,YAAY,QAAQ,QAAQ,YAAY,YAAY;AAAA,IAC/H;AAED,UAAM,QAAQC,UAAAA,SAAU;AACxB,UAAM,SAASC,UAAAA,UAAW;AAE1B,QAAI,WAAW,oBAAI,KAAM;AACzB,UAAM,gBAAgB,oBAAoB,QAAQ;AAElD,UAAM,cAAc;AAAA,MAClB,EAAE,OAAO,SAAS,OAAO,eAAgB;AAAA,MACzC,EAAE,OAAO,YAAY,OAAO,eAAgB;AAAA,MAC5C,EAAE,OAAO,gBAAgB,OAAO,gBAAiB;AAAA,MACjD,EAAE,OAAO,aAAa,OAAO,gBAAiB;AAAA,MAC9C,EAAE,OAAO,gBAAgB,OAAO,kBAAmB;AAAA,MACnD,EAAE,OAAO,aAAa,OAAO,kBAAmB;AAAA,MAChD,EAAE,OAAO,cAAc,OAAO,iBAAkB;AAAA,MAChD,EAAE,OAAO,eAAe,OAAO,aAAY;AAAA,IAC5C;AAED,UAAM,aAAa,CAAC,SAAS;AAE3B,cAAQ,IAAI,kBAAkB,IAAI;AAAA,IACnC;AAED,aAAS,oBAAoB,MAAM;AACjC,aAAO,GAAG,KAAK,UAAU,WAAW,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,SAAQ,IAAK,GAAG,SAAU,EAAC,SAAS,GAAG,GAAG,CAAC,GAAG,KAAK,YAAW,CAAE;AAAA,IACjI;AAEE,QAAI,MAAM,OAAO;AACf,YAAM,QAAQ,MAAM;AAEpB,YAAM,iBAAiB;AAAA,QACrB,MAAM,MAAM,OAAO,MAAM,KAAK,MAAM,GAAG,IAAI;AAAA,QAC3C,MAAM,MAAM,OAAO,MAAM,OAAO;AAAA,MACjC;AAEDC,aAAY,MAAC,SAAS;AAAA,IAC1B,OAAS;AACL,YAAM,iBAAiB;AAAA,QACrB,MAAM;AAAA,MACP;AAEDA,aAAY,MAAC,SAAS;AAAA,IAC1B;AAEEC,QAAAA,MAAM,MAAMD,OAAY,MAAC,QAAQ,CAAC,gBAAgB,mBAAmB;AACnE,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAO;AAEhC,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACxB;AAAA,MACA,CAAK;AAED,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,KAAO,OAAO,UAAU,YAAY,KAAM,EAC3G,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,QAAQ,KAAK,IAAI,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;AAAA,MAC/E;AACD,aAAO,OAAO,OAAO,cAAc;AAEnC,aAAO,KAAK,EAAE,OAAO;AAAA,IACzB,GAAK,EAAE,MAAM,KAAM,CAAA;AAEjB,UAAM,uBAAuBE,IAAAA,IAAI,KAAK;AAEtC,aAAS,yBAAyB;AAChC,2BAAqB,QAAQ;AAAA,IACjC;AACE,aAAS,0BAA0B;AACjC,2BAAqB,QAAQ;AAAA,IACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Events.vue.cjs","sources":["../../../../../../../src/modules/events/components/pages/Events.vue"],"sourcesContent":["<template>\n <section class=\"bg-white\"> \n <div class=\"gap-medium pos-t-0 pos-sticky z-index-3 radius-medium \">\n <DatePicker\n @update:date=\"handleDatePickerChange\"\n :locale=\"$i18n.locale\"\n :options=\"{\n dateStart: 0,\n dateEnd: 30\n }\"\n class=\"bs-black-small br-b br-solid br-black-transp-10 o-hidden bg-white pd-l-zero pd-r-zero pd-medium\"\n />\n </div>\n\n <section class=\"pd-big mobile:pd-thin radius-tr-medium radius-tl-medium bg-white\"> \n\n <div class=\"gap-medium radius-medium mn-b-semi\">\n <h2\n class=\"mn-b-small\"\n >\n Events in <p @click=\"openCitySelectionPopup\" class=\"d-inline-block hover-bg-second hover-t-white cursor-pointer transition-elastic transition-timing-1 h2 pd-micro pd-t-thin pd-r-small pd-l-small br-solid br-1px br-black-transp-10 radius-extra\">Phuket</p>\n </h2>\n\n <Popup \n @close-popup=\"closeCitySelectionPopup\" \n :isPopupOpen=\"isCitySelectionPopup\"\n class=\"w-m-33r t-left pd-medium bg-white radius-semi\"\n\n >\n <CitySelection/>\n </Popup>\n\n <EventsHot \n :options=\"{\n }\"\n />\n </div>\n\n\n <FeaturedEvents class=\"mn-b-semi\"/>\n <SelectDate \n class=\"mn-b-semi\"\n @date-selected=\"handleDateSelection\" \n />\n\n <div class=\"gap-medium radius-medium mn-b-semi\">\n\n <h3\n class=\"mn-b-small\"\n >\n Most Happening Organizers\n </h3>\n <Feed\n :showLoadMore=\"false\"\n :LoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Organization Found',\n description: 'Currently, there are no organization available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: organizations.state\n }\"\n :options=\"{\n user: auth.state.user._id,\n sort: 'numberOfMemberships',\n contain: ['blogposts'],\n lookup: ['blogposts'],\n limit: 6\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-2 gap-thin\"\n >\n <CardOrganization \n v-for=\"organization in items\"\n :key=\"organization._id\" \n :organization=\"organization\"\n :user=\"auth.state.user\"\n :showProducts=\"false\"\n :showRating=\"false\"\n :showFeatured=\"false\"\n :showFollowers=\"false\"\n @updateMembership=\"handleMembershipUpdate\"\n class=\"pd-small w-100 pd-0 bg-light radius-semi o-hidden\"\n />\n </Feed>\n\n </div>\n \n <div class=\"gap-medium radius-medium\">\n\n <h3\n class=\"mn-b-small\"\n >\n All Events\n </h3>\n\n <Feed\n :search=\"true\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Events Today',\n description: 'Currently, there are no events available.'\n }\n }\"\n :store=\"{\n read: (options) => events.read(options),\n state: events.state\n }\"\n :options=\"{\n user: auth.state.user._id,\n limit: 9\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-3 gap-thin\"\n >\n <CardEvent \n @click=\"$router.push({name: 'Event', params: {url: event.url}})\" \n v-for=\"(event,index) in items\" \n :key=\"event._id\" \n :event=\"event\" \n :user=\"auth.state.user._id\" \n :type=\"'normal'\"\n class=\"bg-light radius-big\"\n >\n </CardEvent>\n </Feed>\n\n </div>\n\n </section>\n </section>\n</template>\n\n<script setup=\"props\">\n import { computed, onMounted, watch, ref } from 'vue';\n import { useRoute, useRouter } from 'vue-router';\n\n import Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue';\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n import Popup from '@martyrs/src/components/Popup/Popup.vue'\n import DatePicker from '@martyrs/src/components/DatePicker/DatePicker.vue'\n\n import CitySelection from '@martyrs/src/modules/globals/views/components/partials/CitySelection.vue';\n\n import FeaturedEvents from '@martyrs/src/modules/events/components/sections/FeaturedEvents.vue'; \n import SelectDate from '@martyrs/src/modules/events/components/sections/SelectDate.vue'; \n\n import EventsHot from '@martyrs/src/modules/events/components/sections/EventsHot.vue'; \n import CardEvent from '@martyrs/src/modules/events/components/blocks/CardEvent.vue';\n import CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n // Import state\n import * as auth from '@martyrs/src/modules/auth/views/store/auth'\n import * as organizations from '@martyrs/src/modules/organizations/store/organizations'\n import * as memberships from '@martyrs/src/modules/organizations/store/memberships'\n\n\n import * as events from '@martyrs/src/modules/events/store/events.js'; \n\n const handleMembershipUpdate = ({ membership, status, target }, statusName, statusNumber) => {\n memberships.mutations.handleMembershipUpdate(organizations.state.current, membership, status, target, statusName, statusNumber)\n };\n // State\n const route = useRoute();\n const router = useRouter();\n\n // let baseDate = new Date();\n // const formattedDate = formatDateForRouter(baseDate);\n \n // function formatDateForRouter(date) {\n // return `${date.getDate().toString().padStart(2, '0')}${(date.getMonth() + 1).toString().padStart(2, '0')}${date.getFullYear()}`;\n // }\n\n // if (route.query) {\n // const query = route.query;\n \n // const newFilterValue = {\n // tags: query.tags ? query.tags.split(',') : null,\n // date: query.date ? query.date : null,\n // };\n\n // events.state.filter = newFilterValue; // <-- Modified\n // } else {\n // const newFilterValue = {\n // date: formattedDate,\n // };\n\n // events.state.filter = newFilterValue;\n // }\n\n // watch(() => events.state.filter, (newFilterValue, oldFilterValue) => { // <-- Modified\n // const query = { ...route.query };\n\n // Object.keys(oldFilterValue).forEach(key => {\n // if (query[key]) {\n // delete query[key];\n // }\n // });\n\n // const newQueryValues = Object.fromEntries(\n // Object.entries(newFilterValue)\n // .filter(([key, value]) => (Array.isArray(value) && value.length > 0) || (typeof value === 'string' && value))\n // .map(([key, value]) => [key, Array.isArray(value) ? value.join(',') : value])\n // );\n // Object.assign(query, newQueryValues);\n\n // router.push({ query });\n // }, { deep: true })\n\n const isCitySelectionPopup = ref(false)\n\n function openCitySelectionPopup() {\n isCitySelectionPopup.value = true;\n }\n function closeCitySelectionPopup() {\n isCitySelectionPopup.value = false;\n }\n \n const handleDatePickerChange = (date) => {\n if (date) {\n // Убедимся, что у нас действительно объект даты\n const selectedDate = new Date(date);\n \n // Создаем начало дня в локальной временной зоне\n const startOfDay = new Date(selectedDate);\n startOfDay.setHours(0, 0, 0, 0);\n \n // Создаем конец дня в локальной временной зоне\n const endOfDay = new Date(selectedDate);\n endOfDay.setHours(23, 59, 59, 999);\n \n router.push({\n name: 'Events Search',\n query: {\n period: 'day',\n periodStart: startOfDay.toISOString(),\n periodEnd: endOfDay.toISOString()\n }\n });\n }\n };\n\n // Update the existing handleDateSelection method\n const handleDateSelection = (dateData) => {\n console.log('Selected date data:', dateData);\n router.push({\n name: 'Events Search',\n query: {\n periodStart: dateData.startDate.toISOString(),\n periodEnd: dateData.endDate.toISOString()\n }\n });\n };\n</script>\n\n<style lang=\"scss\">\n \n</style>\n"],"names":["memberships.mutations","organizations.state","useRoute","useRouter","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuKE,UAAM,yBAAyB,CAAC,EAAE,YAAY,QAAQ,OAAQ,GAAE,YAAY,iBAAiB;AAC3FA,4BAAsB,uBAAuBC,cAAAA,MAAoB,SAAS,YAAY,QAAQ,QAAQ,YAAY,YAAY;AAAA,IAC/H;AAEaC,cAAQ,SAAA;AACtB,UAAM,SAASC,UAAAA,UAAW;AA6C1B,UAAM,uBAAuBC,IAAAA,IAAI,KAAK;AAEtC,aAAS,yBAAyB;AAChC,2BAAqB,QAAQ;AAAA,IACjC;AACE,aAAS,0BAA0B;AACjC,2BAAqB,QAAQ;AAAA,IACjC;AAEE,UAAM,yBAAyB,CAAC,SAAS;AACvC,UAAI,MAAM;AAER,cAAM,eAAe,IAAI,KAAK,IAAI;AAGlC,cAAM,aAAa,IAAI,KAAK,YAAY;AACxC,mBAAW,SAAS,GAAG,GAAG,GAAG,CAAC;AAG9B,cAAM,WAAW,IAAI,KAAK,YAAY;AACtC,iBAAS,SAAS,IAAI,IAAI,IAAI,GAAG;AAEjC,eAAO,KAAK;AAAA,UACV,MAAM;AAAA,UACN,OAAO;AAAA,YACL,QAAQ;AAAA,YACR,aAAa,WAAW,YAAa;AAAA,YACrC,WAAW,SAAS,YAAW;AAAA,UACzC;AAAA,QACA,CAAO;AAAA,MACP;AAAA,IACG;AAGD,UAAM,sBAAsB,CAAC,aAAa;AACxC,cAAQ,IAAI,uBAAuB,QAAQ;AAC3C,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,OAAO;AAAA,UACL,aAAa,SAAS,UAAU,YAAa;AAAA,UAC7C,WAAW,SAAS,QAAQ,YAAW;AAAA,QAC/C;AAAA,MACA,CAAK;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|