{"version":3,"file":"reference-card.cjs","sources":["../../src/geodeepdive/reference-card.ts"],"sourcesContent":["// @ts-nocheck\nimport h from \"@macrostrat/hyper\";\nimport { Card } from \"@blueprintjs/core\";\n\nimport { APIResultView } from \"../api\";\nimport { LinkCard } from \"../link-card\";\nimport { AuthorList } from \"../citations\";\n\nconst VolumeNumber = function (props) {\n  const { volume, number } = props;\n  const _ = [];\n  if (volume != null && volume !== \"\") {\n    _.push(h(\"span.volume\", null, volume));\n  }\n  if (number != null && number !== \"\") {\n    _.push(\"(\");\n    _.push(h(\"span.number\", number));\n    _.push(\")\");\n  }\n  if (_.length === 0) {\n    return null;\n  }\n  _.push(\", \");\n  return h(\"span\", null, _);\n};\n\nexport function xDDReferenceInformation(props: { [k: string]: any }) {\n  let { title, author, doi, journal, identifier, volume, number, year } = props;\n  try {\n    ({ id: doi } = identifier.find((d) => d.type === \"doi\"));\n  } catch (error) {\n    doi = null;\n  }\n\n  const names = author.map(function (d) {\n    const n = d.name.split(\", \");\n    n.reverse();\n    return n.join(\" \");\n  });\n\n  return h([\n    h.if(author.length > 0)([h(AuthorList, { names, limit: 3 }), \", \"]),\n    h(\"span.title\", title),\n    \", \",\n    h(\"span.journal\", journal),\n    \", \",\n    h(VolumeNumber, { volume, number }),\n    h(\"span.year\", year),\n    h.if(doi != null)([\n      \", \",\n      h(\"span.doi-title\", \"doi: \"),\n      h(\n        \"a.doi\",\n        { href: `https://doi.org/${doi}`, target: \"_blank\" },\n        h(\"code\", doi),\n      ),\n    ]),\n  ]);\n}\n\nfunction GeoDeepDiveSwatchInnerBare(props: any) {\n  return h(Card, { interactive: false, className: \"gdd-article\" }, [\n    // @ts-ignore\n    h(InnerCard, props),\n  ]);\n}\n\nfunction GeoDeepDiveSwatch({ wrapper = xDDLinkCard, data, docid }) {\n  if (data == null) {\n    return h(wrapper, [\"Loading... \"]);\n  }\n\n  let url;\n  const { link, ...rest } = data;\n  try {\n    ({ url } = link.find((d) => d.type === \"publisher\"));\n  } catch (error) {\n    url = null;\n  }\n  return h(wrapper, { href: url, docid }, h(xDDReferenceInformation, data));\n}\n\nfunction xDDLinkCard(props: { href: string }) {\n  const { href, children, ...rest } = props;\n  return h(LinkCard, {\n    target: \"_blank\",\n    className: \"gdd-article\",\n    href,\n    children,\n  });\n}\n\nfunction GeoDeepDiveRelatedTerms(props: { data: any[] }) {\n  const { data } = props;\n  return h([\n    h(\"h1\", \"Related Terms\"),\n    h(\n      \"ul#related_terms\",\n      data.map((item) => h(\"li\", item[0])),\n    ),\n  ]);\n}\n\nconst GDDReferenceCard = (props: { docid: string }) => {\n  const { docid, wrapper } = props;\n  return h(\n    APIResultView,\n    {\n      route: \"https://xdd.wisc.edu/api/articles\",\n      params: { docid },\n\n      opts: {\n        unwrapResponse(res) {\n          return res.success.data[0];\n        },\n        memoize: true,\n      },\n      placeholder: () => h(GeoDeepDiveSwatch, { wrapper, data: null, docid }),\n    },\n    (data) => {\n      try {\n        return h(GeoDeepDiveSwatch, { wrapper, data, docid });\n      } catch (error) {\n        return null;\n      }\n    },\n  );\n};\n\nexport {\n  GDDReferenceCard,\n  GeoDeepDiveSwatch,\n  GeoDeepDiveSwatchInnerBare,\n  GeoDeepDiveRelatedTerms,\n};\n"],"names":["h","AuthorList","Card","LinkCard","APIResultView"],"mappings":"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"}