{"version":3,"file":"AudioSection-8JUvCI2E.js","sources":["../../src/queries/AudioQuery.js","../../src/queries/GetAudioSection.js","../../src/components/audio/AudioSection.vue"],"sourcesContent":["export const audioQuery = `\n  nodes {\n    __typename\n    ... on Audio_track {\n      databaseId\n      duration\n      featuredImage {\n        node {\n          altText\n          sourceUrl\n        }\n      }\n      imageSrcset\n      slug\n      tags {\n        nodes {\n          name\n          slug\n        }\n      }\n      title\n    }\n    ... on Audio_playlist {\n      databaseId\n      duration\n      featuredImage {\n        node {\n          altText\n          sourceUrl\n        }\n      }\n      imageSrcset\n      slug\n      title\n      tags {\n        nodes {\n          name\n          slug\n        }\n      }\n      tracks {\n        trackId\n      }\n    }\n  }\n`;\n","import { audioQuery } from '@/queries/AudioQuery';\nimport gql from 'graphql-tag';\nimport { paginationQuery } from '@/queries/PaginationQuery';\n\nexport const audioSectionQuery = gql`\n  query getAllAudio(\n    $filter: String,\n    $limit: Int,\n    $paged: Int,\n    $tag: String,\n    $subType: String,\n    $subTypeValue: String,\n    $type: String\n  ) {\n    allAudio(\n      first: $limit,\n      where: { orderby: { field: DATE, order: DESC }, paged: $paged, tag: $tag }\n    ) {\n      ${audioQuery}\n    }\n    ${paginationQuery}\n  }\n`;\n","<template>\n  <AudioGrid\n    v-if=\"audioData && audioData.length\"\n    :audio-data=\"audioData\"\n    :page=\"page\"\n    :tag=\"tag\"\n    :tag-name=\"getTagName\"\n    :total-page-count=\"pageCount\"\n  ></AudioGrid>\n</template>\n\n<script setup lang=\"ts\">\nimport AudioGrid from '@/components/audio/AudioGrid.vue';\nimport { audioSectionQuery } from '@/queries/GetAudioSection';\nimport { BootStrap } from '@/types/global.interface';\nimport { computed, inject, ref } from 'vue';\nimport { dataLoaded, useHandleError, useMetaData } from '@/composables/Common.js';\nimport { NameSlug } from '@/types/common.interface';\nimport { PageTag } from '../../types/audio.interface';\nimport { storeToRefs } from 'pinia';\nimport { useMainStore } from '@/stores/mainStore.js';\nimport { useQuery } from 'villus';\n\nconst props = withDefaults(\n  defineProps<PageTag>(),\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 audioData = ref([]);\nconst limit = 27;\nconst shouldSkip = ref(false);\nconst total = ref(0);\n\nconst getTagName = computed(() => {\n  if (audioData.value.length) {\n    const selected = audioData.value[0].tags.nodes.filter(\n      (tag: NameSlug) => props.tag === tag.slug\n    );\n\n    return selected.length ? selected[0].name : '';\n  }\n\n  return '';\n});\nconst pageCount = computed(() => Math.ceil(total.value / limit));\n\nconst queryVariables = {\n  limit: limit,\n  paged: +props.page,\n  subType: props.tag ? 'post_tag' : 'all_audio',\n  subTypeValue: props.tag || null,\n  tag: props.tag || null,\n  type: 'audio',\n};\n\nconst { data } = useQuery({\n  onData: data => {\n    if (data && Object.keys(data).length) {\n      if (data.allAudio.nodes && data.allAudio.nodes.length) {\n        audioData.value = data.allAudio.nodes;\n        total.value = data.totalCount;\n        setMetaTitle('Audio');\n        setMetaDescription();\n        dataLoaded();\n      }\n\n      if (!data.allAudio.nodes.length) {\n        handleError('AudioSection', `Page ${props.page}, limit ${limit}, tag ${props.tag}`);\n      }\n    }\n  },\n  query: audioSectionQuery,\n  skip: isNaN(props.page) || shouldSkip,\n  variables: queryVariables,\n});\n\nif (isNaN(props.page)) {\n  handleError('AudioSection', `Page ${props.page}, limit ${limit}, tag ${props.tag}`);\n}\n\nif (isNaN(props.page)) {\n  handleError('AudioSection', `Page ${props.page}, limit ${limit}, tag ${props.tag}`);\n}\n\nif (useBootstrap.value) {\n  shouldSkip.value = true;\n\n  if (\n    bootstrap &&\n    bootstrap.initial.main.posts &&\n    Object.keys(bootstrap.initial.main.posts).length\n  ) {\n    audioData.value = bootstrap.initial.main.posts;\n    total.value = bootstrap.initial.main.pagination.total_posts;\n    setMetaTitle('Audio');\n    setMetaDescription();\n    dataLoaded();\n  }\n\n  if (\n    bootstrap &&\n    (!bootstrap.initial.main.posts || Object.keys(bootstrap.initial.main.posts).length === 0)\n  ) {\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: audioSectionQuery,\n          variables: {\n            limit: 27,\n            paged: params.page ? +params.page : 1,\n            subType: params.tag ? 'post_tag' : 'all_audio',\n            subTypeValue: params.tag || null,\n            tag: params.tag || null,\n            type: 'audio',\n          },\n        })\n        .then(() => resolve())\n        .catch((err) => reject(err));\n    });\n  },\n};\n</script>\n"],"names":["audioQuery","audioSectionQuery","gql","paginationQuery","__default__","params","villusClient","resolve","reject","err","props","__props","bootstrap","inject","handleError","useHandleError","setMetaDescription","setMetaTitle","useMetaData","store","useMainStore","useBootstrap","storeToRefs","audioData","ref","limit","shouldSkip","total","getTagName","computed","selected","tag","pageCount","queryVariables","useQuery","data","dataLoaded"],"mappings":"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"}