{"version":3,"file":"VideoTaxonomy-l_DLzNjE.js","sources":["../../src/queries/GetVideoTaxonomy.js","../../src/components/video/VideoTaxonomy.vue"],"sourcesContent":["import gql from 'graphql-tag';\nimport { paginationQuery } from '@/queries/PaginationQuery';\nimport { videoPosts } from '@/queries/VideoFragment';\n\nexport const videoTaxonomyQuery = gql`\n query GetVideos(\n $category: String,\n $filter: String,\n $limit: Int!,\n $paged: Int,\n $subType: String,\n $subTypeValue: String,\n $tag: String,\n $type: String\n ) {\n videos(first: $limit, where: { tag: $tag, categoryName: $category, paged: $paged }) {\n ${videoPosts}\n }\n ${paginationQuery}\n }\n`;\n","<template>\n <section v-if=\"results.videos.nodes.length\" :class=\"[$style.videoSection, 'container']\">\n <nav>\n <BackLink component=\"VideoTaxonomy\" group=\"video\" label=\"Video\" name=\"Video\"></BackLink>\n </nav>\n <h1>{{ `Videos Tagged as ${getTitle}` }}</h1>\n <VideoGrid :posts=\"results.videos.nodes\"></VideoGrid>\n <GuggenPagination\n :bootstrap-total=\"total\"\n :current-page=\"page\"\n :has-bootstrap=\"total > 0\"\n :per-page=\"limit\"\n :sub-type=\"type\"\n :sub-type-value=\"slug\"\n :total-page-count=\"pageCount\"\n post-type=\"video\"\n ></GuggenPagination>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport BackLink from '@/components/common/BackLink.vue';\nimport { BootStrap } from '@/types/global.interface';\nimport { computed, inject, ref } from 'vue';\nimport { dataLoaded, useHandleError, useMetaData } from '@/composables/Common.js';\nimport GuggenPagination from '@/components/GuggenPagination.vue';\nimport { slugToTitle } from '@/utils';\nimport { storeToRefs } from 'pinia';\nimport { useMainStore } from '@/stores/mainStore.js';\nimport { useQuery } from 'villus';\nimport VideoGrid from '@/components/video/VideoGrid.vue';\nimport { videoTaxonomyQuery } from '@/queries/GetVideoTaxonomy';\n\nconst props = withDefaults(\n defineProps<{\n page?: number;\n slug: string;\n type: string;\n }>(),\n { page: 1 },\n);\n\nconst bootstrap = inject<BootStrap>('bootstrap');\n\nconst { handleError } = useHandleError();\nconst { setMetaDescription, setMetaTitle } = useMetaData();\n\nconst store = useMainStore();\nconst { useBootstrap } = storeToRefs(store);\n\nconst limit = 27;\nconst results = ref({\n totalCount: 0,\n videos: {\n nodes: [],\n },\n});\nconst shouldSkip = ref(true);\nconst total = ref(0);\n\nconst getTitle = computed(() => slugToTitle(props.slug));\nconst pageCount = computed(() => Math.ceil(total.value / limit));\n\nconst { data } = useQuery({\n onData: (data) => {\n if (Object.keys(data).length) {\n if (data.videos.nodes.length) {\n results.value.videos = data.videos;\n total.value = +data.totalCount;\n setMetaTitle('Video');\n setMetaDescription();\n dataLoaded();\n }\n\n if (data.videos.nodes.length === 0) {\n handleError('VideoTaxonomy', `Page ${props.page}, limit ${limit}, slug ${props.slug}`);\n }\n }\n },\n query: videoTaxonomyQuery,\n skip: isNaN(props.page) || shouldSkip,\n variables: {\n category: props.type === 'category' ? props.slug : null,\n limit: limit,\n paged: +props.page,\n subType: props.type === 'tag' ? 'post_tag' : props.type,\n subTypeValue: props.slug,\n tag: props.type === 'tag' ? props.slug : null,\n type: 'video',\n },\n});\n\nif (useBootstrap.value) {\n shouldSkip.value = true;\n\n if (bootstrap.initial.main.posts && Object.keys(bootstrap.initial.main.posts).length) {\n results.value.videos.nodes = bootstrap.initial.main.posts;\n total.value = +bootstrap.initial.main.pagination.total_posts;\n setMetaTitle(getTitle.value);\n setMetaDescription();\n dataLoaded();\n }\n\n if (!bootstrap.initial.main.posts || Object.keys(bootstrap.initial.main.posts).length === 0) {\n shouldSkip.value = false;\n }\n}\n\nif (!useBootstrap.value) {\n shouldSkip.value = false;\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: videoTaxonomyQuery,\n variables: {\n category: params.type === 'category' ? params.slug : null,\n limit: 27,\n paged: params.page ? +params.page : 1,\n subType: params.type === 'tag' ? 'post_tag' : params.type,\n subTypeValue: params.slug,\n tag: params.type === 'tag' ? params.slug : null,\n type: 'video',\n },\n })\n .then(() => resolve())\n .catch((err) => reject(err));\n });\n },\n};\n</script>\n\n<style lang=\"scss\" module>\n.videoSection {\n > span {\n display: block;\n }\n}\n\n@media (min-width: $break-point) {\n .videoSection {\n @include grid;\n\n > * {\n grid-column: span 12;\n }\n }\n}\n</style>\n"],"names":["videoTaxonomyQuery","gql","videoPosts","paginationQuery","__default__","params","villusClient","resolve","reject","err","props","__props","bootstrap","inject","handleError","useHandleError","setMetaDescription","setMetaTitle","useMetaData","store","useMainStore","useBootstrap","storeToRefs","limit","results","ref","shouldSkip","total","getTitle","computed","slugToTitle","pageCount","useQuery","data","dataLoaded"],"mappings":"ufAIO,MAAMA,EAAqBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAY1BC,CAAU;AAAA;AAAA,MAEZC,CAAe;AAAA;AAAA,ECgGNC,EAAA,CACb,YAAYC,EAAQC,EAAc,CAChC,OAAO,IAAI,QAAc,CAACC,EAASC,IAAW,CAC5CF,EACG,aAAa,CACZ,MAAON,EACP,UAAW,CACT,SAAUK,EAAO,OAAS,WAAaA,EAAO,KAAO,KACrD,MAAO,GACP,MAAOA,EAAO,KAAO,CAACA,EAAO,KAAO,EACpC,QAASA,EAAO,OAAS,MAAQ,WAAaA,EAAO,KACrD,aAAcA,EAAO,KACrB,IAAKA,EAAO,OAAS,MAAQA,EAAO,KAAO,KAC3C,KAAM,OAAA,CACR,CACD,EACA,KAAK,IAAME,GAAS,EACpB,MAAOE,GAAQD,EAAOC,CAAG,CAAC,CAAA,CAC9B,CAAA,CAEL,qFArGA,MAAMC,EAAQC,EASRC,EAAYC,EAAkB,WAAW,EAEzC,CAAE,YAAAC,CAAY,EAAIC,EAAe,EACjC,CAAE,mBAAAC,EAAoB,aAAAC,CAAa,EAAIC,EAAY,EAEnDC,EAAQC,EAAa,EACrB,CAAE,aAAAC,CAAA,EAAiBC,EAAYH,CAAK,EAEpCI,EAAQ,GACRC,EAAUC,EAAI,CAClB,WAAY,EACZ,OAAQ,CACN,MAAO,CAAA,CAAC,CACV,CACD,EACKC,EAAaD,EAAI,EAAI,EACrBE,EAAQF,EAAI,CAAC,EAEbG,EAAWC,EAAS,IAAMC,EAAYpB,EAAM,IAAI,CAAC,EACjDqB,EAAYF,EAAS,IAAM,KAAK,KAAKF,EAAM,MAAQJ,CAAK,CAAC,EAE9C,OAAAS,EAAS,CACxB,OAASC,GAAS,CACZ,OAAO,KAAKA,CAAI,EAAE,SAChBA,EAAK,OAAO,MAAM,SACZT,EAAA,MAAM,OAASS,EAAK,OACtBN,EAAA,MAAQ,CAACM,EAAK,WACpBhB,EAAa,OAAO,EACDD,EAAA,EACRkB,EAAA,GAGTD,EAAK,OAAO,MAAM,SAAW,GACnBnB,EAAA,gBAAiB,QAAQJ,EAAM,IAAI,WAAWa,CAAK,UAAUb,EAAM,IAAI,EAAE,EAG3F,EACA,MAAOV,EACP,KAAM,MAAMU,EAAM,IAAI,GAAKgB,EAC3B,UAAW,CACT,SAAUhB,EAAM,OAAS,WAAaA,EAAM,KAAO,KACnD,MAAAa,EACA,MAAO,CAACb,EAAM,KACd,QAASA,EAAM,OAAS,MAAQ,WAAaA,EAAM,KACnD,aAAcA,EAAM,KACpB,IAAKA,EAAM,OAAS,MAAQA,EAAM,KAAO,KACzC,KAAM,OAAA,CAET,CAAA,EAEGW,EAAa,QACfK,EAAW,MAAQ,GAEfd,EAAU,QAAQ,KAAK,OAAS,OAAO,KAAKA,EAAU,QAAQ,KAAK,KAAK,EAAE,SAC5EY,EAAQ,MAAM,OAAO,MAAQZ,EAAU,QAAQ,KAAK,MACpDe,EAAM,MAAQ,CAACf,EAAU,QAAQ,KAAK,WAAW,YACjDK,EAAaW,EAAS,KAAK,EACRZ,EAAA,EACRkB,EAAA,IAGT,CAACtB,EAAU,QAAQ,KAAK,OAAS,OAAO,KAAKA,EAAU,QAAQ,KAAK,KAAK,EAAE,SAAW,KACxFc,EAAW,MAAQ,KAIlBL,EAAa,QAChBK,EAAW,MAAQ"}