{"version":3,"file":"TeachingMaterialsTopic-xdnIe2YW.js","sources":["../../src/queries/GetTeachingMaterialsTopic.js","../../src/stores/eventStore.js","../../src/components/teachingMaterials/TeachingMaterialsTopic.vue"],"sourcesContent":["import { associatedInfo, tmMedia, tmSubjects, tmThemes } from '@/queries/TeachingMaterialsFragments';\nimport gql from 'graphql-tag';\n\nexport const teachingMaterialsTopicQuery = gql`\n query getTopic($slug: String) {\n tmTopics(where: { slugName: $slug }) {\n nodes {\n ${associatedInfo}\n associatedTopics {\n topic {\n ${associatedInfo}\n databaseId\n excerpt\n featuredImage {\n node {\n altText\n mediaDetails {\n height\n width\n }\n sourceUrl\n }\n }\n imageSrcset\n packageParent {\n slug\n }\n title\n }\n }\n content\n excerpt\n featuredImage {\n node {\n altText\n sourceUrl\n }\n }\n imageSrcset\n packageParent {\n slug\n title\n }\n relatedMaterials {\n ... on Tm_package {\n __typename\n associatedTopics {\n topic {\n ${associatedInfo}\n }\n }\n excerpt\n featuredImage {\n node {\n altText\n sourceUrl\n }\n }\n imageSrcset\n imageCount\n slug\n title\n tmPackagePageElements {\n whats_included\n }\n videoCount\n }\n ... on Tm_topic {\n __typename\n caCount\n excerpt\n featuredImage {\n node {\n altText\n sourceUrl\n }\n }\n imageSrcset\n imageCount\n packageParent {\n slug\n }\n slug\n title\n vdCount\n videoCount\n }\n }\n ${tmMedia}\n ${tmSubjects}\n ${tmThemes}\n title\n tmArtistInfo {\n audio_file\n bio\n pronounciation_guide\n }\n tmData {\n type\n content {\n __typename\n links {\n image\n label\n video\n }\n text\n title\n }\n }\n tmGallery\n tmTopicPageElements {\n all_resources {\n header\n resources\n }\n key_terms {\n header\n terms {\n __typename\n term\n title\n }\n }\n pdf\n }\n databaseId\n tmType\n }\n }\n }\n`;\n","import { defineStore } from 'pinia';\n\n// TODO: GUGG Typescript\n// interface State {\n// clicked: Boolean;\n// filter: String;\n// payload: Object;\n// }\n\nexport const useEventStore = defineStore('eventStore', {\n state: () => ({\n clicked: false,\n payload: {}\n }),\n actions: {\n updateEventState(value) {\n Object.keys(value).map(val => {\n if (val in this) {\n this[val] = value[val];\n }\n });\n }\n }\n});\n","<template>\n <section v-if=\"topic && Object.keys(topic).length\" :class=\"['container', $style.topic]\">\n <header :class=\"$style.header\">\n <nav>\n <BackLink\n component=\"TeachingMaterialsTopic\"\n group=\"teaching_materials\"\n :label=\"topic.packageParent.title\"\n name=\"TeachingMaterialsPackage\"\n :params=\"{ slug: topic.packageParent.slug }\"\n ></BackLink>\n </nav>\n <h1 v-html=\"topic.title\"></h1>\n <div v-for=\"(artist, key) in topic.tmArtistInfo\" :key=\"key\">\n <div :class=\"$style.pronounce\">\n <ProcessContent\n v-if=\"artist.audio_file\"\n :content=\"artist.audio_file\"\n :class=\"$style.audio\"\n ></ProcessContent>\n <p v-if=\"artist.pronounciation_guide\" v-html=\"artist.pronounciation_guide\"></p>\n </div>\n <p v-if=\"artist.bio\" :class=\"$style.bio\" class=\"space-8-10-above\" v-html=\"artist.bio\"></p>\n </div>\n <p :class=\"$style.label\">What’s Included</p>\n <p :class=\"$style.included\">{{ getWhatsIncluded }}</p>\n <div v-if=\"topic.tmTopicPageElements && topic.tmTopicPageElements.pdf\">\n <a :href=\"topic.tmTopicPageElements.pdf\" :class=\"$style.pdf\">Download PDF</a>\n </div>\n <div :class=\"$style.mst\">\n <div v-if=\"topic.teachingMaterialMedia.nodes.length\">\n <p :class=\"$style.label\">Mediums</p>\n <ul>\n <li\n v-for=\"(medium, key) in topic.teachingMaterialMedia.nodes\"\n :key=\"key\"\n :class=\"{ comma: key < topic.teachingMaterialMedia.nodes.length - 1 }\"\n >\n {{ medium.name }}\n </li>\n </ul>\n </div>\n <div v-if=\"topic.teachingMaterialSubjects.nodes || topic.teachingMaterialThemes.nodes\">\n <p :class=\"$style.label\">Subjects and Themes</p>\n <ul>\n <li\n v-for=\"(item, key) in getSubjectsAndThemes\"\n :key=\"key\"\n :class=\"{ comma: key < getSubjectsAndThemes.length - 1 }\"\n >\n {{ item.name }}\n </li>\n </ul>\n </div>\n </div>\n </header>\n <section :class=\"[{ [$style.showGallery]: isGallery }, $style.gallery, 'space-12-16-above']\">\n <ProcessContent\n v-if=\"topic.tmGallery\"\n :content=\"topic.tmGallery\"\n :no-wrapper=\"true\"\n ></ProcessContent>\n </section>\n <ProcessContent\n v-if=\"topic.content\"\n :content=\"topic.content\"\n wrapper=\"section\"\n :class=\"$style.content\"\n ></ProcessContent>\n <section v-if=\"findData('view_discuss').length\" :class=\"$style.viewDiscuss\">\n <h2>View and Discuss</h2>\n <article v-for=\"(item, key) in findData('view_discuss')[0].content.slice(0, 2)\" :key=\"key\">\n <h3 v-html=\"item.title\"></h3>\n <button\n v-for=\"(link, index) in item.links\"\n :key=\"index\"\n :class=\"[$style.links, moreLink]\"\n @click.prevent=\"openLink(link)\"\n @keypress.enter=\"openLink(link)\"\n v-html=\"getLinkLabel(link)\"\n ></button>\n <ProcessContent\n v-if=\"item.text\"\n :content=\"item.text\"\n class=\"space-8-10-above\"\n ></ProcessContent>\n <div v-if=\"item.links\"></div>\n </article>\n <TeachingMaterialsDrawer\n v-if=\"findData('view_discuss')[0].content.length > 2\"\n :content=\"\n findData('view_discuss')[0].content.slice(2, findData('view_discuss')[0].content.length)\n \"\n group=\"view-and-discuss\"\n title=\"Show All\"\n @link-opened=\"openLink\"\n ></TeachingMaterialsDrawer>\n </section>\n <section v-if=\"findData('classroom_activity').length\" :class=\"$style.activities\">\n <h2>Classroom Activities</h2>\n <article\n v-for=\"(item, key) in findData('classroom_activity')[0].content.slice(0, 3)\"\n :key=\"key\"\n >\n <h3 v-html=\"item.title\"></h3>\n <ProcessContent v-if=\"item.text\" :content=\"item.text\"></ProcessContent>\n </article>\n <TeachingMaterialsDrawer\n v-if=\"findData('classroom_activity')[0].content.length > 3\"\n :content=\"\n findData('classroom_activity')[0].content.slice(\n 3,\n findData('classroom_activity')[0].content.length,\n )\n \"\n group=\"classroom-activities\"\n title=\"Show All\"\n ></TeachingMaterialsDrawer>\n </section>\n <section v-if=\"findData('context').length\" :class=\"$style.context\">\n <h2>Context</h2>\n <article v-for=\"(item, key) in findData('context')[0].content\" :key=\"key\">\n <h3 v-html=\"item.title\"></h3>\n <ProcessContent v-if=\"item.text\" :content=\"item.text\"></ProcessContent>\n </article>\n </section>\n <section v-if=\"findInfo('key_terms', 'topic', instance).length\" :class=\"$style.terms\">\n <h2\n v-if=\"topic.tmTopicPageElements.key_terms.header.length\"\n v-html=\"topic.tmTopicPageElements.key_terms.header\"\n ></h2>\n <h2 v-else>Key Terms</h2>\n <div :class=\"term\">\n <article\n v-for=\"(item, key) in findInfo('key_terms', 'topic', instance).slice(0, 4)\"\n :key=\"key\"\n class=\"space-12-16-above\"\n >\n <h3 v-html=\"item.title\"></h3>\n <p v-html=\"item.term\"></p>\n </article>\n </div>\n <TeachingMaterialsDrawer\n v-if=\"findInfo('key_terms', 'topic', instance).length > 4\"\n :content=\"\n findInfo('key_terms', 'topic', instance).slice(\n 4,\n findInfo('key_terms', 'topic', instance).length,\n )\n \"\n group=\"key-terms\"\n title=\"Show All\"\n ></TeachingMaterialsDrawer>\n </section>\n <section v-if=\"findInfo('all_resources', 'topic', instance).length\" :class=\"$style.resources\">\n <h2\n v-if=\"topic.tmTopicPageElements.all_resources.header.length\"\n v-html=\"topic.tmTopicPageElements.all_resources.header\"\n ></h2>\n <h2 v-else>Resources</h2>\n <ProcessContent\n :content=\"findInfo('all_resources', 'topic', instance)\"\n wrapper=\"article\"\n ></ProcessContent>\n </section>\n <section\n v-if=\"isArtist && topic.relatedMaterials && topic.relatedMaterials.length\"\n :class=\"$style.related\"\n >\n <h2>Related Materials</h2>\n <TeachingMaterialsFeatureShowcase\n :associated=\"topic.relatedMaterials\"\n ></TeachingMaterialsFeatureShowcase>\n </section>\n <section v-else-if=\"!isArtist && getAssociatedTopics.length\" :class=\"$style.related\">\n <h2>More Topics: Discuss and Create</h2>\n <TeachingMaterialsFeatureShowcase\n :associated=\"getAssociatedTopics\"\n associated-type=\"topics\"\n ></TeachingMaterialsFeatureShowcase>\n </section>\n <p v-if=\"isFreeman\" :class=\"[$style.freeman, 'space-48-64-above']\">\n These teaching materials are supported by The Freeman Foundation.\n </p>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport BackLink from '@/components/common/BackLink.vue';\nimport { moreLink } from '@/styles/links.module.scss';\nimport { computed, getCurrentInstance, onMounted, ref, watch } from 'vue';\nimport { dataLoaded, useMetaData } from '@/composables/Common.js';\nimport { Link, TMData, TMTopic } from '@/types/teachingMaterials.interface';\nimport ProcessContent from '@/components/common/ProcessContent.vue';\nimport { storeToRefs } from 'pinia';\nimport TeachingMaterialsDrawer from '@/components/teachingMaterials/TeachingMaterialsDrawer.vue';\nimport TeachingMaterialsFeatureShowcase from '@/components/teachingMaterials/TeachingMaterialsFeatureShowcase.vue';\nimport { teachingMaterialsTopicQuery } from '@/queries/GetTeachingMaterialsTopic';\nimport { term } from '@/styles/teachingMaterials.module.scss';\nimport { useEventStore } from '@/stores/eventStore.js';\nimport { useQuery } from 'villus';\nimport { useRoute, useRouter } from 'vue-router';\nimport { useTeachingMaterials } from '@/composables/TeachingMaterials.js';\n\nconst props = defineProps<{\n parent: string;\n slug: string;\n}>();\n\nconst instance = getCurrentInstance();\nconst route = useRoute();\nconst router = useRouter();\nconst store = useEventStore();\nconst { clicked, payload } = storeToRefs(store);\n\nconst { findInfo } = useTeachingMaterials();\nconst { setMetaDescription, setMetaTitle } = useMetaData();\n\nconst isGallery = ref(false);\nconst topic = ref<TMTopic>({});\n\ndefineExpose({ topic });\n\nconst getAssociatedTopics = computed(() => {\n if (topic.value.associatedTopics && topic.value.associatedTopics.length) {\n return topic.value.associatedTopics.filter(\n (item) => item.topic.databaseId !== topic.value.databaseId,\n );\n }\n\n return null;\n});\nconst getSubjectsAndThemes = computed(() => {\n return [\n ...topic.value.teachingMaterialSubjects.nodes,\n ...topic.value.teachingMaterialThemes.nodes,\n ];\n});\nconst getWhatsIncluded = computed(() => {\n const included = [] as Array<string>;\n\n if (topic.value.videoCount) {\n included.push(`${topic.value.videoCount} videos`);\n }\n\n if (topic.value.imageCount) {\n included.push(`${topic.value.imageCount} ${topic.value.imageCount > 1 ? 'images' : 'image'}`);\n }\n\n if (topic.value.vdCount) {\n included.push(`${topic.value.vdCount} view and discuss`);\n }\n\n if (topic.value.caCount) {\n included.push(\n `${topic.value.caCount} classroom ${topic.value.caCount > 1 ? 'activities' : 'activity'}`,\n );\n }\n\n const last = included.pop();\n const final = included.join(', ');\n\n return `${final}, and ${last}`;\n});\nconst isArtist = computed(() => {\n return topic.value.tmType === 'artist';\n});\nconst isFreeman = computed(() => {\n return props.parent === 'teaching-modern-and-contemporary-asian-art';\n});\n\nconst { data } = useQuery({\n onData: (data) => {\n if (data.tmTopics && data.tmTopics.nodes.length) {\n topic.value = data.tmTopics.nodes[0];\n setMetaTitle(data.tmTopics.nodes[0].title);\n setMetaDescription(data.tmTopics.nodes[0].excerpt);\n dataLoaded();\n }\n\n if (!data.tmTopics || data.tmTopics.nodes.length === 0) {\n handleError('TeachingMaterialsTopic', props.slug);\n }\n },\n query: teachingMaterialsTopicQuery,\n variables: { slug: props.slug },\n});\n\nonMounted(() => {\n if (route.query && route.query.gallery) {\n isGallery.value = true;\n }\n});\n\nwatch(clicked, (newValue) => {\n if (newValue && Object.keys(payload).length) {\n openLink(payload);\n }\n});\n\nfunction findData(key: string): TMData {\n if (topic.value.tmData && topic.value.tmData.length) {\n return topic.value.tmData.filter(\n (data) => data.type === key && data.content && data.content.length,\n );\n }\n\n return [];\n}\n\nfunction getLinkLabel(link: Link): string {\n if (link.label) {\n return link.label;\n }\n\n return link.video ? 'View video' : 'View artwork';\n}\n\nfunction openLink(link: Link): void {\n const value = link.video || link.image;\n\n router.push({\n path: route.path,\n query: { gallery: value },\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: teachingMaterialsTopicQuery,\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\" module>\n.audio {\n button {\n height: 1.5rem;\n }\n\n svg {\n cursor: pointer;\n height: 1.5rem;\n width: 1.5rem;\n\n &:hover {\n path {\n fill: $black-hover;\n }\n }\n }\n\n time {\n display: none;\n }\n}\n\n.bio {\n @include heading-4;\n\n & {\n margin-top: 0.5rem;\n }\n}\n\n.content,\n.view-discuss,\n.activities,\n.context {\n img {\n max-width: 100%;\n }\n}\n\n.freeman {\n @include body-2;\n\n & {\n margin-bottom: 0;\n }\n}\n\n.header {\n a[href$='.pdf'][href$='.pdf'] {\n margin-bottom: 0;\n margin-top: 2rem;\n }\n h1 + p {\n margin-top: 0;\n }\n}\n\n.included {\n margin-top: 0;\n}\n\n.label {\n @include heading-4;\n}\n\n.links {\n cursor: pointer;\n display: inline-block;\n text-decoration: none;\n}\n\n.mst {\n div {\n margin-right: 2rem;\n\n &:last-of-type {\n margin-top: 1rem;\n }\n }\n\n ul {\n display: inline-flex;\n flex-wrap: wrap;\n margin: 0; // defeat global\n padding-left: 0;\n\n li {\n list-style: none; // defeat global\n margin-top: 0;\n }\n }\n}\n\n.pdf {\n margin-bottom: 0;\n\n svg {\n height: 1rem;\n margin-left: 0.5rem;\n vertical-align: text-bottom;\n width: 1rem;\n }\n\n &:hover {\n background: $white-hover;\n border: 2px solid $black-hover;\n color: $white;\n\n svg {\n path {\n stroke: $white;\n }\n }\n }\n}\n\n.pronounce {\n display: flex;\n\n p {\n @include heading-4;\n\n & {\n margin-left: 0.5rem;\n margin-top: 0;\n }\n }\n}\n\n.resources {\n h3:not(:first-of-type) {\n margin-top: 1rem;\n }\n}\n\n.show-gallery {\n visibility: visible;\n}\n\n.topic {\n h2,\n h3 {\n margin: 0; // defeat global\n }\n\n img + p:global(.caption) {\n margin-top: 0;\n }\n\n p:global(.caption) {\n img {\n margin-bottom: 0.5rem;\n }\n }\n\n > section:not(:first-of-type) {\n @include space-48-64-above;\n }\n\n :global(.epigraph-author) {\n margin-bottom: 0;\n }\n}\n\n:global(.epigraph) {\n p {\n &::before {\n margin-left: 0;\n position: relative;\n }\n }\n}\n\n@media (min-width: $break-point) {\n .pronounce {\n p {\n margin-top: 0;\n }\n }\n .topic {\n @include grid;\n\n > * {\n grid-column: 1 / span 8;\n }\n\n .header {\n @include grid;\n\n & {\n grid-column: span 12;\n }\n\n > * {\n grid-column: 1 / span 8;\n }\n\n nav {\n grid-column: span 12;\n }\n }\n\n .gallery,\n .related {\n grid-column: 1 / span 8;\n }\n }\n\n :global(.epigraph) {\n p::before {\n margin-left: -1.35rem;\n position: absolute;\n }\n }\n}\n</style>\n"],"names":["teachingMaterialsTopicQuery","gql","associatedInfo","tmMedia","tmSubjects","tmThemes","useEventStore","defineStore","value","val","__default__","params","villusClient","resolve","reject","err","props","__props","instance","getCurrentInstance","route","useRoute","router","useRouter","store","clicked","payload","storeToRefs","findInfo","useTeachingMaterials","setMetaDescription","setMetaTitle","useMetaData","isGallery","ref","topic","__expose","getAssociatedTopics","computed","item","getSubjectsAndThemes","getWhatsIncluded","included","last","isArtist","isFreeman","useQuery","data","dataLoaded","onMounted","watch","newValue","openLink","findData","key","getLinkLabel","link"],"mappings":"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"}