{"version":3,"file":"FindingAidsCollection-h81ZdzhO.js","sources":["../../src/queries/GetFindingAidsCollection.js","../../src/components/findingAids/FindingAidsCollection.vue"],"sourcesContent":["import gql from 'graphql-tag';\n\nexport const findingAidsCollectionQuery = gql`\n  query findingAidsCollection($slug: ID!) {\n    findingAidsCollection(id: $slug, idType: SLUG) {\n      content\n      excerpt\n      files {\n        box\n        collection\n        depth\n        folder\n        label\n        id\n        phystech\n        slug\n        type\n        uid\n        unitdate\n        unittitle\n      }\n      notes {\n        note_content\n        note_name\n      }\n      series\n      sponsor\n      title\n    }\n  }\n`;\n","<template>\n  <article v-if=\"collection && Object.keys(collection).length\" class=\"space-0-above\">\n    <FindingAidsHeader\n      :obj=\"{ back: true }\"\n    ></FindingAidsHeader>\n    <div :class=\"$style.content\">\n      <h1 class=\"no-border-above\">{{ collection.title }}</h1>\n      <ProcessContent wrapper=\"section\" :content=\"collection.content\"></ProcessContent>\n      <aside>\n        <ContentDrawer\n          v-for=\"(note, key) in collection.notes\"\n          :key=\"key\"\n          :end-title=\"`Hide ${note.note_name}`\"\n          :title=\"`Show ${note.note_name}`\"\n        >\n          <p v-html=\"note.note_content\"></p>\n        </ContentDrawer>\n      </aside>\n      <section\n        v-if=\"collection.sponsor\"\n        :class=\"$style.sponsor\"\n        v-html=\"collection.sponsor\"\n      ></section>\n      <FileList\n        v-if=\"collection.files\"\n        :class=\"$style.spaced\"\n        :files=\"collection.files\"\n      ></FileList>\n      <section v-if=\"collection.series\" :class=\"$style.spaced\">\n        <h2>Collection Series</h2>\n        <article v-for=\"(series, key) in serieses\" :key=\"key\" :class=\"$style.spaced\">\n          <header>\n            <h2>Series {{ intToWord(key + 1) }}</h2>\n            <h3 v-html=\"series.title\"></h3>\n            <h3>{{ series.seriesData.date_label }}</h3>\n            <h3>{{ series.seriesData.volume }}</h3>\n          </header>\n          <section v-html=\"series.content\"></section>\n          <router-link\n            class=\"more-link\"\n            :to=\"{ name: 'FindingAidsSeries', params: { slug: series.slug } }\"\n          >\n            View series {{ intToWord(key + 1) }} folder list\n          </router-link>\n        </article>\n      </section>\n    </div>\n  </article>\n  <BackToTop></BackToTop>\n</template>\n\n<script setup lang=\"ts\">\nimport BackToTop from '@/components/common/BackToTop.vue';\nimport { computed, ref } from 'vue';\nimport ContentDrawer from '@/components/shortcodes/ContentDrawer.vue';\nimport { dataLoaded, useHandleError, useMetaData } from '@/composables/Common.js';\nimport { findingAidsCollectionQuery } from '@/queries/GetFindingAidsCollection';\nimport { FindingAid } from '@/types/findingaids.interface';\nimport FindingAidsHeader from '@/components/findingAids/FindingAidsHeader.vue';\nimport FileList from '@/components/findingAids/FileList.vue';\nimport { intToWord } from '@/utils';\nimport ProcessContent from '@/components/common/ProcessContent.vue';\nimport { useQuery } from 'villus';\n\ninterface Collection {\n  content: string;\n  excerpt: string;\n  files: string;\n  notes: Note[];\n  series: string;\n  sponsor: string;\n  title: string;\n}\n\ninterface Note {\n  note_content: string;\n  note_name: string;\n}\n\nconst props = defineProps<{\n  slug: string;\n}>();\n\nconst { handleError } = useHandleError();\nconst { setMetaDescription, setMetaTitle } = useMetaData();\n\nconst collection = ref<Collection>({});\nconst serieses = ref<FindingAid[]>({});\n\nconst fetchSeries = computed(() => {\n  return `query findingAidsSeries {\n    findingAidsSerieses(where: { seriesIn: [${collection.value.series}] }) {\n      nodes {\n        content\n        title\n        seriesData {\n          date_label\n          volume\n        }\n        slug\n      }\n    }\n  }`;\n});\n\nconst { data, error } = useQuery({\n  onData: data => {\n    if (data.findingAidsCollection && Object.keys(data.findingAidsCollection).length) {\n      collection.value = data.findingAidsCollection;\n      setMetaTitle(data.findingAidsCollection.title);\n      setMetaDescription(data.findingAidsCollection.excerpt);\n      dataLoaded();\n    }\n\n    if (!data.findingAidsCollection || Object.keys(data.findingAidsCollection).length === 0) {\n      handleError('FindingAidsCollection', error);\n    }\n  },\n  query: findingAidsCollectionQuery,\n  variables: { slug: props.slug },\n});\nconst { data: seriesQueryData } = useQuery({\n  fetchOnMount: false,\n  onData: data => {\n    if (data.findingAidsSerieses && data.findingAidsSerieses.nodes.length) {\n      serieses.value = data.findingAidsSerieses.nodes;\n    }\n  },\n  query: fetchSeries,\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: findingAidsCollectionQuery,\n          variables: { slug: params.slug },\n        })\n        .then(() => resolve())\n        .catch((err) => reject(err));\n    });\n  },\n};\n</script>\n\n<style lang=\"scss\" module>\n.sponsor {\n  display: flex;\n  padding: 3rem;\n}\n\n:global(.fa-sponsor-content) {\n  margin-top: 0;\n}\n\n:global(.fa-sponsor-img-wrap) {\n  align-items: center;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  margin: 0 px-to-rem(24) 0 0;\n\n  img {\n    height: auto;\n    max-width: 100%;\n    width: auto;\n  }\n}\n\n:global(.fa-sponsor-img) {\n  padding: 0 px-to-rem(12) px-to-rem(12) 0;\n}\n\n.spaced {\n  @include space-48-64-above;\n}\n\n@media (min-width: $break-point) {\n  .content {\n    @include grid-content;\n  }\n}\n</style>\n"],"names":["findingAidsCollectionQuery","gql","__default__","params","villusClient","resolve","reject","err","props","__props","handleError","useHandleError","setMetaDescription","setMetaTitle","useMetaData","collection","ref","serieses","fetchSeries","computed","data","error","useQuery","dataLoaded"],"mappings":"0nBAEO,MAAMA,EAA6BC;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,8HCmI3BC,EAAA,CACb,YAAYC,EAAQC,EAAc,CAChC,OAAO,IAAI,QAAc,CAACC,EAASC,IAAW,CAC5CF,EACG,aAAa,CACZ,MAAOJ,EACP,UAAW,CAAE,KAAMG,EAAO,IAAK,CAAA,CAChC,EACA,KAAK,IAAME,GAAS,EACpB,MAAOE,GAAQD,EAAOC,CAAG,CAAC,CAAA,CAC9B,CAAA,CAEL,oEAlEA,MAAMC,EAAQC,EAIR,CAAE,YAAAC,CAAY,EAAIC,EAAe,EACjC,CAAE,mBAAAC,EAAoB,aAAAC,CAAa,EAAIC,EAAY,EAEnDC,EAAaC,EAAgB,EAAE,EAC/BC,EAAWD,EAAkB,EAAE,EAE/BE,EAAcC,EAAS,IACpB;AAAA,8CACqCJ,EAAW,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYpE,EAEK,CAAE,KAAAK,GAAM,MAAAC,CAAM,EAAIC,EAAS,CAC/B,OAAQF,GAAQ,CACVA,EAAK,uBAAyB,OAAO,KAAKA,EAAK,qBAAqB,EAAE,SACxEL,EAAW,MAAQK,EAAK,sBACXA,EAAAA,EAAK,sBAAsB,KAAK,EAC1BA,EAAAA,EAAK,sBAAsB,OAAO,EAC1CG,EAAA,IAGT,CAACH,EAAK,uBAAyB,OAAO,KAAKA,EAAK,qBAAqB,EAAE,SAAW,IACpFV,EAAY,wBAAyBW,CAAK,CAE9C,EACA,MAAOrB,EACP,UAAW,CAAE,KAAMQ,EAAM,IAAK,CAAA,CAC/B,EACiC,OAAAc,EAAS,CACzC,aAAc,GACd,OAAQF,GAAQ,CACVA,EAAK,qBAAuBA,EAAK,oBAAoB,MAAM,SACpDH,EAAA,MAAQG,EAAK,oBAAoB,MAE9C,EACA,MAAOF,CACR,CAAA"}