{"version":3,"file":"ArtworkTermArtist-D6NTR-Zw.js","sources":["../../src/queries/GetArtworkTermArtist.js","../../src/queries/MetaHubQuery.js","../../src/components/artwork/ArtworkTermArtist.vue"],"sourcesContent":["import { artworkNavQuery } from '@/queries/ArtworkNavQuery';\nimport gql from 'graphql-tag';\n\nexport const artworkTermArtistQuery = gql`\n query getArtists {\n artists(first: 1000) {\n nodes {\n name\n slug\n sort\n }\n }\n ${artworkNavQuery}\n }\n`;\n","export const metaHubQuery = `\n query getMetaHub(\n $path: String\n ) {\n metaHub(targetPath: $path) {\n path\n description\n image_alt\n image_src\n title\n }\n }\n`;\n","<template>\n <article :class=\"[$style.artists, 'container']\">\n <ArtworkNavHeader :filters=\"filters\"></ArtworkNavHeader>\n <header>\n <h1>Artists</h1>\n </header>\n <section v-if=\"results || Object.keys(mapped).length\" class=\"space-24-32-above\">\n <div\n v-for=\"(sorted, key, index) in mapped\"\n :id=\"key\"\n :key=\"key\"\n :aria-label=\"`Artists ${key}`\"\n >\n <h2>\n {{ key }}\n </h2>\n <ul>\n <li v-for=\"(artist, idx) in sorted\" :key=\"`${index}${idx}`\" class=\"space-12-16-above\">\n <router-link\n :to=\"{\n name: 'ArtworkTerm',\n params: {\n subtype: 'artist',\n search: artist.slug,\n },\n }\"\n v-html=\"artist.name\"\n ></router-link>\n </li>\n </ul>\n </div>\n </section>\n </article>\n <BackToTop></BackToTop>\n</template>\n\n<script setup lang=\"ts\">\nimport ArtworkNavHeader from '@/components/artwork/ArtworkNavHeader.vue';\nimport { artworkTermArtistQuery } from '@/queries/GetArtworkTermArtist';\nimport BackToTop from '@/components/common/BackToTop.vue';\nimport { BootStrap } from '@/types/global.interface';\nimport { dataLoaded, useHandleError, useMetaData } from '@/composables/Common.js';\nimport { inject, onMounted, ref } from 'vue';\nimport { metaHubQuery } from '@/queries/MetaHubQuery';\nimport { storeToRefs } from 'pinia';\nimport { useArtworkFilters } from '@/composables/ArtworkFilters.js';\nimport { useMainStore } from '@/stores/mainStore';\nimport { useQuery } from 'villus';\nimport { useRoute } from 'vue-router';\n\ninterface Artists {\n nodes: Array<{\n name: string;\n slug: string;\n sort?: string;\n }>;\n}\n\nconst bootstrap = inject<BootStrap>('bootstrap');\n\nconst filters = ref({});\nconst mapped = ref({});\nconst shouldSkip = ref(false);\n\nconst store = useMainStore();\nconst { useBootstrap } = storeToRefs(store);\n\nconst { getFilters } = useArtworkFilters();\nconst { handleError } = useHandleError();\nconst route = useRoute();\nconst { setMetaDescription, setMetaTitle } = useMetaData();\n\nconst { data } = useQuery({\n query: metaHubQuery,\n skip: shouldSkip,\n variables: { path: '/artwork/artist' },\n onData: (data) => {\n if (data) {\n const { description, title } = data.metaHub[0];\n\n setMetaTitle(title);\n setMetaDescription(description);\n }\n },\n});\n\nconst { data: results, isFetching } = useQuery({\n onData: (data) => {\n if (data && Object.keys(data).length && data.artists.nodes.length) {\n filters.value = getFilters(data);\n prepareData(data.artists);\n dataLoaded();\n\n if (route.hash) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n scroll(document.querySelector(route.hash));\n });\n });\n }\n }\n\n if (!data.artists.nodes.length) {\n handleError('ArtworkTermArtist', 'Page Artist');\n }\n },\n query: artworkTermArtistQuery,\n skip: shouldSkip,\n});\n\nonMounted(() => {\n if (!useBootstrap.value) {\n dataLoaded(!isFetching.value);\n }\n});\n\nif (useBootstrap.value) {\n const { description, title } = bootstrap.initial.main.posts.metaHub[0];\n\n shouldSkip.value = true;\n filters.value = getFilters(bootstrap.initial.main.posts);\n prepareData(bootstrap.initial.main.posts.artists);\n setMetaTitle(title);\n setMetaDescription(description);\n dataLoaded();\n\n if (route.hash) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n scroll(document.querySelector(route.hash));\n });\n });\n }\n}\n\nif (!useBootstrap.value) {\n shouldSkip.value = false;\n dataLoaded(!isFetching.value);\n}\n\nfunction prepareData(artists: Artists): void {\n mapped.value = artists.nodes.reduce((acc, curr) => {\n if (curr.sort && curr.sort !== '') {\n const key = curr.sort[0].toUpperCase();\n\n acc[key] ??= [];\n acc[key].push(curr);\n }\n\n return acc;\n }, {});\n}\n\nfunction scroll(target) {\n if (target) {\n const marginTop = parseFloat(getComputedStyle(target).marginTop);\n\n window.scrollTo(0, target.offsetTop - marginTop - 100);\n }\n}\n</script>\n\n<style lang=\"scss\" module>\n.artists {\n section {\n ul {\n margin-left: 0;\n margin-top: 1rem;\n padding: 0;\n\n li {\n list-style: none;\n\n &:first-child {\n margin-top: 0;\n }\n\n a {\n @include body-1;\n\n & {\n display: inline-block;\n overflow: auto;\n text-decoration: none;\n }\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n }\n}\n\n@media (min-width: $break-point) {\n .artists {\n section {\n ul {\n column-count: 4;\n }\n }\n }\n}\n</style>\n"],"names":["artworkTermArtistQuery","gql","artworkNavQuery","metaHubQuery","bootstrap","inject","filters","ref","mapped","shouldSkip","store","useMainStore","useBootstrap","storeToRefs","getFilters","useArtworkFilters","handleError","useHandleError","route","useRoute","setMetaDescription","setMetaTitle","useMetaData","useQuery","data","description","title","results","isFetching","prepareData","dataLoaded","scroll","onMounted","artists","acc","curr","key","target","marginTop"],"mappings":"2bAGO,MAAMA,EAAyBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAShCC,CAAe;AAAA;AAAA,ECZRC,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wGC0DtB,MAAAC,EAAYC,EAAkB,WAAW,EAEzCC,EAAUC,EAAI,EAAE,EAChBC,EAASD,EAAI,EAAE,EACfE,EAAaF,EAAI,EAAK,EAEtBG,EAAQC,EAAa,EACrB,CAAE,aAAAC,CAAA,EAAiBC,EAAYH,CAAK,EAEpC,CAAE,WAAAI,CAAW,EAAIC,EAAkB,EACnC,CAAE,YAAAC,CAAY,EAAIC,EAAe,EACjCC,EAAQC,EAAS,EACjB,CAAE,mBAAAC,EAAoB,aAAAC,CAAa,EAAIC,EAAY,EAExCC,EAAS,CACxB,MAAOpB,EACP,KAAMM,EACN,UAAW,CAAE,KAAM,iBAAkB,EACrC,OAASe,GAAS,CAChB,GAAIA,EAAM,CACR,KAAM,CAAE,YAAAC,EAAa,MAAAC,CAAA,EAAUF,EAAK,QAAQ,CAAC,EAE7CH,EAAaK,CAAK,EAClBN,EAAmBK,CAAW,CAAA,CAChC,CAEH,CAAA,EAED,KAAM,CAAE,KAAME,EAAS,WAAAC,CAAA,EAAeL,EAAS,CAC7C,OAASC,GAAS,CACZA,GAAQ,OAAO,KAAKA,CAAI,EAAE,QAAUA,EAAK,QAAQ,MAAM,SACjDlB,EAAA,MAAQQ,EAAWU,CAAI,EAC/BK,EAAYL,EAAK,OAAO,EACbM,EAAA,EAEPZ,EAAM,MACR,sBAAsB,IAAM,CAC1B,sBAAsB,IAAM,CAC1Ba,EAAO,SAAS,cAAcb,EAAM,IAAI,CAAC,CAAA,CAC1C,CAAA,CACF,GAIAM,EAAK,QAAQ,MAAM,QACtBR,EAAY,oBAAqB,aAAa,CAElD,EACA,MAAOhB,EACP,KAAMS,CAAA,CACP,EAQD,GANAuB,EAAU,IAAM,CACTpB,EAAa,OACLkB,EAAA,CAACF,EAAW,KAAK,CAC9B,CACD,EAEGhB,EAAa,MAAO,CAChB,KAAA,CAAE,YAAAa,EAAa,MAAAC,CAAM,EAAItB,EAAU,QAAQ,KAAK,MAAM,QAAQ,CAAC,EAErEK,EAAW,MAAQ,GACnBH,EAAQ,MAAQQ,EAAWV,EAAU,QAAQ,KAAK,KAAK,EACvDyB,EAAYzB,EAAU,QAAQ,KAAK,MAAM,OAAO,EAChDiB,EAAaK,CAAK,EAClBN,EAAmBK,CAAW,EACnBK,EAAA,EAEPZ,EAAM,MACR,sBAAsB,IAAM,CAC1B,sBAAsB,IAAM,CAC1Ba,EAAO,SAAS,cAAcb,EAAM,IAAI,CAAC,CAAA,CAC1C,CAAA,CACF,CACH,CAGGN,EAAa,QAChBH,EAAW,MAAQ,GACRqB,EAAA,CAACF,EAAW,KAAK,GAG9B,SAASC,EAAYI,EAAwB,CAC3CzB,EAAO,MAAQyB,EAAQ,MAAM,OAAO,CAACC,EAAKC,IAAS,CACjD,GAAIA,EAAK,MAAQA,EAAK,OAAS,GAAI,CACjC,MAAMC,EAAMD,EAAK,KAAK,CAAC,EAAE,YAAY,EAEjCD,EAAAE,KAAAF,EAAAE,GAAS,CAAC,GACVF,EAAAE,CAAG,EAAE,KAAKD,CAAI,CAAA,CAGb,OAAAD,CACT,EAAG,EAAE,CAAA,CAGP,SAASH,EAAOM,EAAQ,CACtB,GAAIA,EAAQ,CACV,MAAMC,EAAY,WAAW,iBAAiBD,CAAM,EAAE,SAAS,EAE/D,OAAO,SAAS,EAAGA,EAAO,UAAYC,EAAY,GAAG,CAAA,CACvD"}