{"version":3,"file":"CalendarSeries-BUfKxIRM.js","sources":["../../src/queries/GetCalendarSeries.js","../../src/components/calendar/CalendarSeries.vue"],"sourcesContent":["import gql from 'graphql-tag';\n\nexport const calendarSeriesQuery = gql`\n  query getSeries($slug: [String]) {\n    eventSerieses(where: { slug: $slug }) {\n      nodes {\n        eventSeriesId\n        name\n        slug\n        description\n        eventOccurrences(first: 1000) {\n          nodes {\n            end {\n              day\n              meridiem\n              month\n              time\n              timezone\n              year\n              weekday\n            }\n            excerpt\n            eventSlug\n            featuredImage {\n              node {\n                altText\n                description\n                mediaDetails {\n                  height\n                  width\n                }\n                sourceUrl\n              }\n            }\n            start {\n              day\n              isoDate\n              meridiem\n              month\n              time\n              timezone\n              year\n              weekday\n            }\n            title\n            timezoneAbbr\n          }\n        }\n        featuredImage {\n          altText\n          description\n          mediaDetails {\n            height\n            width\n          }\n          sourceUrl\n        }\n        imageSrcset\n        seriesDescription\n      }\n    }\n  }\n`;\n","<template>\n  <article v-if=\"series && Object.keys(series).length\" class=\"space-0-above\">\n    <PostFeaturedImage\n      v-if=\"series.featuredImage\"\n      :featured-image=\"series.featuredImage\"\n      :srcset=\"series.imageSrcset\"\n      :is-wide=\"true\"\n    ></PostFeaturedImage>\n    <nav>\n      <BackLink\n        component=\"CalendarSeries\"\n        group=\"calendar\"\n        label=\"Calendar\"\n        name=\"CalendarSection\"\n      ></BackLink>\n    </nav>\n    <section>\n      <div :class=\"$style.content\">\n        <h1 v-html=\"series.name\"></h1>\n      </div>\n      <ProcessContent\n        v-if=\"series.seriesDescription\"\n        :class=\"$style.content\"\n        :content=\"series.seriesDescription\"\n        wrapper=\"section\"\n      ></ProcessContent>\n      <div :class=\"$style.content\">\n        <CalendarMonth\n          v-if=\"series.eventOccurrences.nodes.length\"\n          :events=\"series.eventOccurrences.nodes\"\n          :first-date=\"new Date(`${appConfig.today.isoDate}T00:00:00`)\"\n          :show-desc=\"true\"\n        ></CalendarMonth>\n      </div>\n    </section>\n  </article>\n  <BackToTop></BackToTop>\n</template>\n\n<script setup lang=\"ts\">\nimport { AppConfig } from '@/types/global.interface';\nimport BackLink from '@/components/common/BackLink.vue';\nimport BackToTop from '@/components/common/BackToTop.vue';\nimport CalendarMonth from '@/components/calendar/CalendarMonth.vue';\nimport { calendarSeriesQuery } from '@/queries/GetCalendarSeries';\nimport { dataLoaded, useHandleError, useMetaData } from '@/composables/Common.js';\nimport { inject, ref } from 'vue';\nimport PostFeaturedImage from '@/components/common/PostFeaturedImage.vue';\nimport ProcessContent from '@/components/common/ProcessContent.vue';\nimport { SeriesInterface } from '@/types/event.interface';\nimport { useQuery } from 'villus';\n\nconst appConfig = inject<AppConfig>('appConfig');\n\nconst props = defineProps<{\n  slug: string;\n}>();\n\nconst { handleError } = useHandleError();\nconst { setMetaDescription, setMetaTitle } = useMetaData();\n\nconst series = ref<SeriesInterface>({});\n\nconst { data } = useQuery({\n  query: calendarSeriesQuery,\n  variables: { slug: props.slug },\n  onData: data => {\n    if (data.eventSerieses.nodes.length) {\n      series.value = data.eventSerieses.nodes[0];\n      setMetaTitle(data.eventSerieses.nodes[0].name);\n      setMetaDescription(data.eventSerieses.nodes[0].description);\n      dataLoaded();\n    }\n\n    if (data.eventSerieses.nodes.length === 0) {\n      handleError('CalendarSeries', props.slug);\n    }\n  },\n});\n</script>\n\n<script lang=\"ts\">\nexport default {\n  beforeRoute(params, villusClient) {\n    return new Promise<void>((resolve, reject) => {\n      villusClient\n        .executeQuery({\n          query: calendarSeriesQuery,\n          variables: {\n            slug: params.slug,\n          },\n        })\n        .then(() => resolve())\n        .catch((err) => reject(err));\n    });\n  },\n};\n</script>\n\n<style lang=\"scss\">\n@use '@/styles/links.module.scss' as *;\n</style>\n\n<style lang=\"scss\" module>\n.content {\n  p:first-of-type {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: $break-point) {\n  .content {\n    @include grid-content;\n  }\n}\n</style>\n"],"names":["calendarSeriesQuery","gql","__default__","params","villusClient","resolve","reject","err","appConfig","inject","props","__props","handleError","useHandleError","setMetaDescription","setMetaTitle","useMetaData","series","ref","useQuery","data","dataLoaded"],"mappings":"6gBAEO,MAAMA,EAAsBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kDCgFpBC,EAAA,CACb,YAAYC,EAAQC,EAAc,CAChC,OAAO,IAAI,QAAc,CAACC,EAASC,IAAW,CAC5CF,EACG,aAAa,CACZ,MAAOJ,EACP,UAAW,CACT,KAAMG,EAAO,IAAA,CACf,CACD,EACA,KAAK,IAAME,GAAS,EACpB,MAAOE,GAAQD,EAAOC,CAAG,CAAC,CAAA,CAC9B,CAAA,CAEL,6DA5CM,MAAAC,EAAYC,EAAkB,WAAW,EAEzCC,EAAQC,EAIR,CAAE,YAAAC,CAAY,EAAIC,EAAe,EACjC,CAAE,mBAAAC,EAAoB,aAAAC,CAAa,EAAIC,EAAY,EAEnDC,EAASC,EAAqB,EAAE,EAErB,OAAAC,EAAS,CACxB,MAAOnB,EACP,UAAW,CAAE,KAAMU,EAAM,IAAK,EAC9B,OAAQU,GAAQ,CACVA,EAAK,cAAc,MAAM,SAC3BH,EAAO,MAAQG,EAAK,cAAc,MAAM,CAAC,EACzCL,EAAaK,EAAK,cAAc,MAAM,CAAC,EAAE,IAAI,EAC7CN,EAAmBM,EAAK,cAAc,MAAM,CAAC,EAAE,WAAW,EAC/CC,EAAA,GAGTD,EAAK,cAAc,MAAM,SAAW,GAC1BR,EAAA,iBAAkBF,EAAM,IAAI,CAC1C,CAEH,CAAA"}