{"version":3,"file":"ArticleSection-xLFIBmHt.js","sources":["../../src/components/article/ArticleNavHeader.vue","../../src/queries/ArticleQuery.js","../../src/queries/ArticleCategoriesQuery.js","../../src/queries/GetArticleSection.js","../../src/components/article/ArticleSection.vue"],"sourcesContent":["<template>\n  <nav class=\"nav-bar\">\n    <ul>\n      <li :class=\"[{ active: selected === 'filter' }, 'nav-subtypes']\">\n        <button\n          id=\"filter-button\"\n          :class=\"['button-filter', selected === 'filter' ? 'up' : 'down']\"\n          aria-controls=\"filter\"\n          :aria-expanded=\"selected === 'filter'\"\n          @click.stop.prevent=\"toggle('filter')\"\n        >\n          Filters\n        </button>\n        <ul\n          id=\"filter\"\n          ref=\"filtersDropdown\"\n          class=\"nav-items\"\n          role=\"menu\"\n          aria-labelledby=\"filter-button\"\n        >\n          <li :class=\"{ pressed: !parent }\">\n            <router-link :to=\"{ name: 'ArticleSection' }\"> All Articles </router-link>\n          </li>\n          <li :class=\"{ pressed: parent === 'checklist' }\">\n            <router-link\n              :to=\"{\n                name: 'ArticleTerm',\n                params: {\n                  slug: 'checklist',\n                  type: 'category',\n                },\n              }\"\n            >\n              Checklist\n            </router-link>\n          </li>\n          <li :class=\"{ pressed: parent === 'findings' }\">\n            <router-link\n              :to=\"{\n                name: 'ArticleTerm',\n                params: {\n                  slug: 'findings',\n                  type: 'category',\n                },\n              }\"\n            >\n              Findings\n            </router-link>\n          </li>\n          <li :class=\"{ pressed: parent === 'map' }\">\n            <router-link\n              :to=\"{\n                name: 'ArticleTerm',\n                params: {\n                  slug: 'map',\n                  type: 'category',\n                },\n              }\"\n            >\n              Guggenheim UBS Map\n            </router-link>\n          </li>\n        </ul>\n      </li>\n      <li v-if=\"categories.length\" :class=\"[{ active: selected === 'category' }, 'nav-subtypes']\">\n        <button\n          id=\"category-button\"\n          :class=\"['button-filter', selected === 'category' ? 'up' : 'down']\"\n          aria-controls=\"category\"\n          :aria-expanded=\"selected === 'category'\"\n          aria-haspopup=\"true\"\n          type=\"button\"\n          @click.stop.prevent=\"toggle('category')\"\n        >\n          Category<span :class=\"screenreaderOnly\"> Filter</span>\n        </button>\n        <ul\n          id=\"category\"\n          ref=\"categoriesDropdown\"\n          class=\"nav-items\"\n          role=\"menu\"\n          aria-labelledby=\"category-button\"\n        >\n          <li\n            v-for=\"(category, index) in categories\"\n            :key=\"index\"\n            role=\"none\"\n            :class=\"{ pressed: filter === category.slug }\"\n          >\n            <router-link\n              :to=\"{\n                name: 'ArticleTerm',\n                params: {\n                  type: 'category',\n                  slug: parent,\n                  subcategory: category.slug,\n                },\n              }\"\n              role=\"menuitem\"\n              :ga4-event=\"\n                JSON.stringify({\n                  filter_location: 'posts',\n                  filter_type: 'category',\n                  filter_value: `${category.name}`,\n                  gtm_tag: 'filter',\n                })\n              \"\n            >\n              {{ category.name }}\n            </router-link>\n          </li>\n        </ul>\n      </li>\n    </ul>\n  </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport { Categories } from '@/types/articles.interface';\nimport { ref } from 'vue';\nimport { screenreaderOnly } from '@/styles/a11y.module.scss';\nimport { useFilterInteractions } from '@/composables/Common.js';\n\ndefineProps<{\n  categories: Array<Categories>;\n  filter?: string;\n  parent: string;\n}>();\n\nconst categoriesDropdown = ref(null);\nconst filtersDropdown = ref(null);\nconst selected = ref('');\n\nconst { selectNav } = useFilterInteractions(selected);\n\nfunction toggle(type: string): void {\n  selectNav(type, [categoriesDropdown.value, filtersDropdown.value]);\n}\n</script>\n\n<style lang=\"scss\">\n@use '@/styles/navigation.module.scss' as *;\n</style>\n","export const articleQuery = `\n  nodes {\n    categories {\n      nodes {\n        children {\n          nodes {\n            description\n            name\n            slug\n          }\n        }\n        description\n        name\n        slug\n      }\n    }\n    coAuthors {\n      description\n      name\n      slug\n      userphoto\n    }\n    date\n    excerpt\n    featuredImage {\n      node {\n        altText\n        sourceUrl\n      }\n    }\n    imageSrcset\n    postId\n    slug\n    tags {\n      nodes {\n        name\n        slug\n      }\n    }\n    title\n  }\n`;\n","export const articleCategoriesQuery = `\n  nodes {\n    description\n    name\n    slug\n  }\n`;\n","import { articleQuery } from '@/queries/ArticleQuery';\nimport { articleCategoriesQuery } from '@/queries/ArticleCategoriesQuery';\nimport gql from 'graphql-tag';\nimport { paginationQuery } from '@/queries/PaginationQuery';\n\nexport const articleSectionQuery = gql`\n  query getContent(\n    $author: String,\n    $category: String,\n    $filter: String,\n    $limit: Int,\n    $paged: Int,\n    $parent: String,\n    $subType: String,\n    $subTypeValue: String,\n    $tag: String,\n    $type: String\n  ) {\n    categories(where: { parentSlug: $parent }) {\n      ${articleCategoriesQuery}\n    }\n    posts(\n      first: $limit,\n      where: { authorName: $author, categoryName: $category, paged: $paged, tag: $tag }\n    ) {\n      ${articleQuery}\n    }\n    ${paginationQuery}\n  }\n`;\n","<template>\n  <div v-if=\"results.posts && results.posts.nodes.length\" :class=\"[$style.container, 'container']\">\n    <ArticleNavHeader\n      v-if=\"type === 'category' && results.categories && results.categories.nodes\"\n      :categories=\"results.categories.nodes\"\n      :filter=\"subcategory\"\n      :parent=\"slug\"\n    ></ArticleNavHeader>\n    <header v-if=\"type === 'tag' || type === 'category'\" :class=\"$style.tags\">\n      <nav>\n        <BackLink\n          component=\"ArticleSection\"\n          group=\"post\"\n          label=\"Articles\"\n          name=\"ArticleSection\"\n        ></BackLink>\n      </nav>\n      <h1>{{ `Articles Tagged as ${getTagName}` }}</h1>\n      <div v-if=\"type === 'category'\" :class=\"[$style.description, 'space-24-32-above']\">\n        <p v-html=\"getDescription\"></p>\n      </div>\n    </header>\n    <header v-else-if=\"type === 'author'\" :class=\"$style.author\">\n      <nav>\n        <BackLink\n          component=\"ArticleSection\"\n          group=\"post\"\n          label=\"Articles\"\n          name=\"ArticleSection\"\n        ></BackLink>\n      </nav>\n      <h1 v-html=\"getAuthorInfo('name')\"></h1>\n      <div class=\"space-12-16-above\">\n        <img :alt=\"getAuthorInfo('name')\" :src=\"proxySource(getAuthorInfo('userphoto'), 300)\" />\n        <p v-html=\"getAuthorInfo('description')\"></p>\n      </div>\n    </header>\n    <header v-else :class=\"[$style.heading, 'space-0-above', 'unspaced']\">\n      <h1 class=\"no-border-above\">Articles</h1>\n      <p class=\"space-24-32-above\">\n        Guggenheim Articles tells the Guggenheim’s evolving story, and offers insights on visual\n        culture, urbanism, and the global art world, along with regular discoveries from the\n        archives.\n      </p>\n    </header>\n    <article v-for=\"post in results.posts.nodes\" :key=\"post.postId\" :class=\"$style.list\">\n      <div>\n        <router-link\n          :to=\"{\n            name: 'ArticlePost',\n            params: {\n              category: getCategoryLink(post),\n              slug: post.slug,\n            },\n          }\"\n        >\n          <picture class=\"aspect-container\">\n            <img\n              v-if=\"post.featuredImage\"\n              :alt=\"post.featuredImage.node.altText\"\n              :src=\"proxySource(post.featuredImage.node.sourceUrl, 400)\"\n              :srcset=\"post.imageSrcset\"\n              class=\"aspect-image\"\n              loading=\"lazy\"\n              sizes=\"(min-width: 960px) 470px, 100vw\"\n            />\n          </picture>\n        </router-link>\n      </div>\n      <div :class=\"$style.content\">\n        <header>\n          <h2 class=\"heading-4\">\n            <router-link\n              :class=\"$style.title\"\n              :to=\"{\n                name: 'ArticlePost',\n                params: {\n                  category: getCategoryLink(post),\n                  slug: post.slug,\n                },\n              }\"\n              v-html=\"post.title\"\n            ></router-link>\n          </h2>\n          <div :class=\"[$style.categories, 'space-12-16-above', 'subtitle-2']\">\n            <time class=\"subtitle-2\" :datetime=\"post.date\">{{ post.date }}</time>\n          </div>\n        </header>\n        <section :class=\"[$style.excerpt, 'space-12-16-above']\" v-html=\"post.excerpt\"></section>\n      </div>\n    </article>\n    <GuggenPagination\n      :bootstrap-total=\"+total\"\n      :current-page=\"page\"\n      :has-bootstrap=\"total > 0\"\n      :per-page=\"limit\"\n      :sub-category=\"subcategory\"\n      :sub-type=\"type\"\n      :sub-type-value=\"slug\"\n      :total-page-count=\"pageCount\"\n      post-type=\"post\"\n    ></GuggenPagination>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ArticleNavHeader from '@/components/article/ArticleNavHeader.vue';\nimport { articleSectionQuery } from '@/queries/GetArticleSection';\nimport BackLink from '@/components/common/BackLink.vue';\nimport { Articles } from '@/types/articles.interface';\nimport { BootStrap } from '@/types/global.interface';\nimport { computed, inject, ref } from 'vue';\nimport { dataLoaded, useHandleError, useImageProxy, useMetaData } from '@/composables/Common.js';\nimport GuggenPagination from '@/components/GuggenPagination.vue';\nimport { Posts } from '@/types/articles.interface';\nimport { storeToRefs } from 'pinia';\nimport { useMainStore } from '@/stores/mainStore.js';\nimport { useQuery } from 'villus';\n\nconst props = withDefaults(\n  defineProps<{\n    page?: number;\n    slug?: string;\n    subcategory?: string;\n    type?: string;\n  }>(),\n  { page: 1 },\n);\n\nconst bootstrap = inject<BootStrap>('bootstrap');\n\nconst { handleError } = useHandleError();\nconst { proxySource } = useImageProxy();\nconst { setMetaDescription, setMetaTitle } = useMetaData();\n\nconst store = useMainStore();\nconst { useBootstrap } = storeToRefs(store);\n\nconst limit = 8;\nconst results = ref<Articles>({});\nconst shouldSkip = ref(false);\nconst total = ref(0);\n\nconst getAuthor = computed(() => (props.type === 'author' ? props.slug : null));\nconst getCategory = computed(() => {\n  if (props.type === 'category') {\n    if (props.subcategory) {\n      return props.subcategory;\n    }\n\n    return props.slug;\n  }\n\n  return null;\n});\nconst getDescription = computed(() => {\n  if (props.slug || props.subcategory || props.type) {\n    let currentDescription;\n\n    if (props.subcategory) {\n      currentDescription = results.value.categories.nodes.filter(\n        (category) => props.subcategory === category.slug,\n      );\n    }\n\n    if (!props.subcategory) {\n      currentDescription = results.value.posts.nodes[0].categories.nodes.filter(\n        (category) => props.slug === category.slug,\n      );\n    }\n\n    return currentDescription[0].description;\n  }\n\n  return '';\n});\nconst getTag = computed(() => (props.type === 'tag' ? props.slug : null));\nconst getTagName = computed(() => {\n  if (props.slug || props.subcategory || props.type) {\n    const searchType = props.type === 'tag' ? 'tags' : 'categories';\n    let currentTag;\n\n    if (props.subcategory) {\n      currentTag = results.value.categories.nodes.filter(\n        (category) => props.subcategory === category.slug,\n      );\n    }\n\n    if (!props.subcategory) {\n      currentTag = results.value.posts.nodes[0][searchType].nodes.filter(\n        (tag) => props.slug === tag.slug,\n      );\n    }\n\n    return currentTag[0].name;\n  }\n\n  return '';\n});\nconst pageCount = computed(() => Math.ceil(total.value / limit));\n\nconst queryVariables = {\n  author: getAuthor.value,\n  category: getCategory.value,\n  limit: limit,\n  paged: +props.page,\n  parent: props.slug,\n  subType: props.type === 'author' ? 'author' : props.type === 'tag' ? 'post_tag' : 'category',\n  subTypeValue: props.type === 'author' || props.type === 'tag' ? props.slug : getCategory.value,\n  tag: getTag.value,\n  type: 'post',\n};\n\nconst { data } = useQuery({\n  onData: (data) => {\n    if (Object.keys(data).length) {\n      if (data.posts.nodes.length) {\n        results.value.posts = data.posts;\n        results.value.categories = data.categories;\n        total.value = data.totalCount;\n        setMetaTitle('Articles');\n        setMetaDescription();\n        dataLoaded();\n      }\n\n      if (!data.posts.nodes.length) {\n        handleError(\n          `ArticleSection,\n          Author ${getAuthor.value},\n          category ${props.subcategory},\n          limit ${limit},\n          paged ${props.page},\n          parent ${props.slug},\n          tag ${getTag.value}`,\n        );\n      }\n    }\n  },\n  query: articleSectionQuery,\n  skip: isNaN(props.page) || shouldSkip,\n  variables: queryVariables,\n});\n\nif (isNaN(props.page)) {\n  handleError(\n    `ArticleSection,\n    Author ${getAuthor.value},\n    category ${props.subcategory},\n    limit ${limit},\n    paged ${props.page},\n    parent ${props.slug},\n    tag ${getTag.value}`,\n  );\n}\n\nif (isNaN(props.page)) {\n  handleError(\n    'ArticleSection',\n    `Author ${getAuthor.value},\n    category ${props.subcategory},\n    limit ${limit},\n    paged ${props.page},\n    parent ${props.slug},\n    tag ${getTag.value}`,\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.posts = bootstrap.initial.main.posts.posts;\n    results.value.categories = bootstrap.initial.main.posts.categories;\n    total.value = bootstrap.initial.main.pagination.total_posts;\n    setMetaTitle('Articles');\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\nfunction getAuthorInfo(type: string): string {\n  const match = results.value.posts.nodes[0].coAuthors.filter(\n    (author) => author.slug === props.slug,\n  );\n\n  return match[0][type];\n}\n\nfunction getCategoryLink(post: Posts): string {\n  const link = post.categories.nodes.filter((category) => category.children.nodes.length);\n\n  return link[0] ? link[0].slug : post.categories.nodes[0].slug;\n}\n</script>\n\n<script lang=\"ts\">\nexport default {\n  beforeRoute(params, villusClient) {\n    const getCategory =\n      params.type === 'category' ? (params.subcategory ? params.subcategory : params.slug) : null;\n\n    return new Promise<void>((resolve, reject) => {\n      villusClient\n        .executeQuery({\n          query: articleSectionQuery,\n          variables: {\n            author: params.type === 'author' ? params.slug : null,\n            category: getCategory,\n            limit: 8,\n            paged: params.page ? +params.page : 1,\n            parent: params.slug,\n            subType:\n              params.type === 'author' ? 'author' : params.type === 'tag' ? 'post_tag' : 'category',\n            subTypeValue:\n              params.type === 'author' || params.type === 'tag' ? params.slug : getCategory,\n            tag: params.type === 'tag' ? params.slug : null,\n            type: 'post',\n          },\n        })\n        .then(() => resolve())\n        .catch((err) => reject(err));\n    });\n  },\n};\n</script>\n\n<style lang=\"scss\">\n@use '@/styles/links.module.scss' as *;\n</style>\n\n<style lang=\"scss\" module>\n.author {\n  img {\n    margin-right: 0;\n    width: 100%;\n  }\n}\n\n.categories {\n  time {\n    @include space-0-above;\n  }\n}\n\n.content {\n  @include space-12-16-above;\n}\n\n.description {\n  p {\n    @include body-1;\n\n    & {\n      margin-top: 0;\n    }\n  }\n}\n\n.excerpt {\n  p {\n    margin-top: 0;\n  }\n}\n\n.list {\n  @include space-36-48-above;\n\n  h3 {\n    margin-top: 0;\n  }\n}\n\n.title {\n  text-decoration: none;\n}\n\n@media (min-width: $break-point) {\n  .author {\n    @include grid;\n\n    & {\n      grid-column: span 12;\n    }\n\n    h1 {\n      grid-column: 1 / span 6;\n    }\n\n    nav {\n      grid-column: span 12;\n    }\n  }\n\n  .author {\n    div {\n      @include grid;\n\n      & {\n        grid-column: 1 / span 8;\n        grid-template-columns: repeat(6, 1fr);\n      }\n    }\n\n    img {\n      grid-column: span 2;\n    }\n\n    p {\n      grid-column: span 4;\n      margin-top: 0;\n      text-align: left;\n    }\n  }\n\n  .container {\n    @include grid;\n\n    > article {\n      grid-column: 1 / span 8;\n    }\n    > nav {\n      grid-column: span 12;\n    }\n  }\n\n  .content {\n    margin-top: 0;\n\n    header {\n      h2 {\n        margin-top: 0;\n      }\n    }\n  }\n\n  .description {\n    @include grid;\n\n    & {\n      grid-template-columns: repeat(8, 1fr);\n    }\n\n    > * {\n      grid-column: span 8;\n    }\n\n    p {\n      grid-column: 1 / span 6;\n    }\n  }\n\n  .heading {\n    @include grid;\n\n    & {\n      grid-column: 1 / span 8;\n      grid-template-columns: repeat(8, 1fr);\n    }\n\n    > * {\n      grid-column: span 8;\n    }\n\n    p {\n      grid-column: 1 / span 8;\n      margin-top: 0;\n    }\n  }\n\n  .list {\n    @include grid;\n\n    & {\n      grid-template-columns: repeat(8, 1fr);\n    }\n\n    picture {\n      @include space-5-above;\n    }\n\n    > * {\n      grid-column: span 4;\n    }\n  }\n\n  .tags {\n    grid-column: span 12;\n  }\n}\n</style>\n"],"names":["categoriesDropdown","ref","filtersDropdown","selected","selectNav","useFilterInteractions","toggle","type","articleQuery","articleCategoriesQuery","articleSectionQuery","gql","paginationQuery","__default__","params","villusClient","getCategory","resolve","reject","err","props","__props","bootstrap","inject","handleError","useHandleError","proxySource","useImageProxy","setMetaDescription","setMetaTitle","useMetaData","store","useMainStore","useBootstrap","storeToRefs","limit","results","shouldSkip","total","getAuthor","computed","getDescription","currentDescription","category","getTag","getTagName","searchType","currentTag","tag","pageCount","queryVariables","useQuery","data","dataLoaded","getAuthorInfo","author","getCategoryLink","post","link"],"mappings":"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"}