{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/modules/productTourListing/ProductTourCard.tsx","webpack://@verndale/toolkit/./src/js/modules/taggedCardsListing/PressReleaseCard.tsx","webpack://@verndale/toolkit/./src/js/modules/taggedCardsListing/EventCard.tsx","webpack://@verndale/toolkit/./src/js/modules/taggedCardsListing/NewsHeadlineCard.tsx","webpack://@verndale/toolkit/./src/js/modules/taggedCardsListing/BlogCard.tsx","webpack://@verndale/toolkit/./src/js/modules/taggedCardsListing/WebinarCard.tsx","webpack://@verndale/toolkit/./src/js/modules/taggedCardsListing/index.tsx"],"names":["url","heading","tags","description","image","React","tag","date","eventType","label","mastheadSubhead","articleDate","articleAuthor","webinarDate","webinarTime","endpoint","cardListingTag","cardsType","itemsPerPage","maxItems","initialButtonLabel","isFeaturedFirstRow","showFeaturedOnly","page","setPage","showButton","setShowButton","buttonLabel","setButtonLabel","items","setItems","fetchResults","response","data","newItems","item","totalItems","featuredItem","itemsLeft","buttonCount","PressReleaseCard","__spreadValues","NewsHeadlineCard","EventCard","ProductTourCard","BlogCard","WebinarCard"],"mappings":"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","file":"scripts/3995.fdb2875735e87306739e.js","sourcesContent":["import * as React from 'react';\n\ntype ProductTourCardProps = {\n url: string;\n heading: string;\n tags: string[];\n description: string;\n image: {\n description: string;\n png: string;\n webp: string;\n };\n};\n\nconst ProductTourCard: React.FC = ({\n url,\n heading,\n tags,\n description,\n image\n}) => (\n \n
\n \n \n {image.description}\n \n
\n
\n

{heading}

\n {tags.length > 0 && (\n
\n {tags.map(tag => (\n

\n {tag}\n

\n ))}\n
\n )}\n

{description}

\n
\n
\n);\n\nexport default ProductTourCard;\n","import * as React from 'react';\n\ntype PressReleasesCardProps = {\n url: string;\n date: string;\n heading: string;\n description?: string;\n};\n\nconst PressReleaseCard: React.FC = ({\n url,\n date,\n heading,\n description\n}) => (\n \n

{date}

\n

{heading}

\n {description &&

{description}

}\n
\n);\nexport default PressReleaseCard;\n","import * as React from 'react';\n\ntype EventCardProps = {\n url: string;\n heading: string;\n eventType: string;\n date: string;\n image: {\n description: string;\n png: string;\n webp: string;\n };\n};\n\nconst EventCard: React.FC = ({\n url,\n heading,\n eventType,\n date,\n image\n}) => (\n \n
\n \n \n {image.description}\n \n
\n
\n

{heading}

\n

{eventType}

\n

{date}

\n
\n
\n);\n\nexport default EventCard;\n","import * as React from 'react';\n\ntype NewsHeadlineCardProps = {\n url: string;\n heading: string;\n label: string;\n};\n\nconst NewsHeadlineCard: React.FC = ({\n url,\n heading,\n label\n}) => (\n
\n \n \n

{heading}

\n

{label}

\n \n
\n);\n\nexport default NewsHeadlineCard;\n","import * as React from 'react';\n\ninterface IBlogCard {\n url: string;\n image: {\n description: string;\n png: string;\n webp: string;\n };\n heading: string;\n blurb: string;\n tags: string[];\n articleDate: string;\n articleAuthor: string;\n mastheadSubhead: string;\n}\n\nconst BlogCard: React.FC = ({\n url,\n image,\n heading,\n mastheadSubhead,\n tags,\n articleDate,\n articleAuthor,\n}) => {\n return (\n \n
\n \n \n \n \n
\n
\n \n );\n};\n\nexport default BlogCard;\n","import * as React from 'react';\n\ntype WebinarCardProps = {\n url: string;\n heading: string;\n description?: string;\n eventType: string;\n webinarDate: string;\n webinarTime: string;\n image: {\n description: string;\n png: string;\n webp: string;\n };\n};\n\nconst WebinarCard: React.FC = ({\n url,\n heading,\n description,\n eventType,\n webinarDate,\n webinarTime,\n image\n}) => (\n \n
\n \n \n {image.description}\n \n
\n
\n

{heading}

\n

{eventType}

\n
\n
{webinarDate}
\n
{webinarTime}
\n
\n

{description}

\n
\n
\n);\n\nexport default WebinarCard;\n","import * as React from 'react';\nimport PressReleaseCard from './PressReleaseCard';\nimport EventCard from './EventCard';\nimport NewsHeadlineCard from './NewsHeadlineCard';\nimport BlogCard from './BlogCard';\nimport WebinarCard from './WebinarCard';\nimport ProductTourCard from '../productTourListing/ProductTourCard';\n\ntype TaggedCardsContainerProps = {\n endpoint: string;\n buttonLabel: string;\n cardListingTag: string;\n cardsType: string;\n itemsPerPage?: string;\n maxItems?: string;\n isFeaturedFirstRow?: string;\n showFeaturedOnly?: string;\n};\n\ntype PressReleaseItem = {\n id: string;\n url: string;\n heading: string;\n date: string;\n description?: string;\n type: string;\n};\n\ntype EventItem = {\n id: string;\n url: string;\n heading: string;\n eventType: string;\n date: string;\n image: {\n description: string;\n png: string;\n webp: string;\n };\n type: string;\n};\n\ntype WebinarItem = {\n id: string;\n url: string;\n heading: string;\n eventType: string;\n webinarDate: string;\n webinarTime: string;\n image: {\n description: string;\n png: string;\n webp: string;\n };\n type: string;\n};\n\ntype BlogItem = {\n id: string;\n url: string;\n heading: string;\n author: string;\n eventType: string;\n date: string;\n image: {\n description: string;\n png: string;\n webp: string;\n };\n type: string;\n contentType: string;\n mastheadSubhead: string;\n blurb: string;\n tags: string[];\n articleDate: string;\n articleAuthor: string;\n};\n\ntype ProductTourItem = {\n id: string;\n url: string;\n heading: string;\n tags: string[];\n description: string;\n image: {\n description: string;\n png: string;\n webp: string;\n };\n type: string;\n};\n\ntype NewsHeadlineItem = {\n id: string;\n url: string;\n heading: string;\n label: string;\n type: string;\n};\n\ntype Item = Array<\n PressReleaseItem | EventItem | NewsHeadlineItem | ProductTourItem | BlogItem | WebinarItem\n>;\n\ntype EndpointResponse = {\n totalItems: number;\n items: Array<\n PressReleaseItem | EventItem | NewsHeadlineItem | ProductTourItem | BlogItem | WebinarItem\n >;\n};\n\nconst TaggedCardsListing: React.FC = ({\n endpoint,\n cardListingTag,\n cardsType,\n itemsPerPage = '12',\n maxItems = '12',\n buttonLabel: initialButtonLabel,\n isFeaturedFirstRow = 'false',\n showFeaturedOnly = 'false'\n}) => {\n const [page, setPage] = React.useState(1);\n const [showButton, setShowButton] = React.useState(false);\n const [buttonLabel, setButtonLabel] = React.useState('');\n const [items, setItems] = React.useState<\n Array\n >([]);\n\n const fetchResults = React.useCallback(() => {\n fetch(\n `${endpoint}?page=${page}&itemsPerPage=${itemsPerPage}&maxItems=${maxItems}&cardListingTag=${cardListingTag}&cardsType=${cardsType}&isFeaturedFirstRow=${isFeaturedFirstRow}&showFeaturedOnly=${showFeaturedOnly}`\n )\n .then(response => response.json())\n .then((data: EndpointResponse) => {\n const newItems: Item = data.items\n .map((item: any) => {\n if (item.type === 'press-release') {\n return item as PressReleaseItem;\n } else if (\n item.type === 'event' ||\n item.type === 'article' ||\n item.type === 'case-study'\n ) {\n return item as EventItem;\n } else if (item.type === 'news-headline') {\n return item as NewsHeadlineItem;\n } else if (item.type === 'product-tour') {\n return item as ProductTourItem;\n } else if (item.type === 'blog') {\n return item as BlogItem;\n } else if (item.type === 'webinar') {\n return item as WebinarItem;\n } else return null;\n })\n .filter(item => !!item) as (\n | PressReleaseItem\n | EventItem\n | NewsHeadlineItem\n | ProductTourItem\n | BlogItem\n | WebinarItem\n )[];\n setItems(items => [...items, ...newItems]);\n\n const totalItems: number = data.totalItems;\n\n // If the first row is featured, (itemsPerPage + 1) items are shown on the first load\n const featuredItem = isFeaturedFirstRow === 'true' ? 1 : 0;\n const itemsLeft =\n totalItems - page * parseInt(itemsPerPage, 10) - featuredItem;\n\n const buttonCount =\n itemsLeft > parseInt(itemsPerPage, 10) ? itemsPerPage : itemsLeft;\n setShowButton(itemsLeft > 0);\n\n setButtonLabel(\n initialButtonLabel\n ?.replace('[count]', buttonCount.toString())\n .replace('[tag]', cardListingTag)\n .replace('[total]', totalItems.toString())\n );\n });\n }, [endpoint, page]);\n\n React.useEffect(() => {\n fetchResults();\n }, [page]);\n\n return (\n <>\n \n {items.map(item => {\n if (item.type === 'press-release')\n return (\n \n );\n else if (item.type === 'news-headline')\n return (\n \n );\n else if (\n item.type === 'event' ||\n item.type === 'article' ||\n item.type === 'case-study'\n )\n return ;\n else if (item.type === 'product-tour')\n return (\n \n );\n else if (item.type === 'blog')\n return (\n \n );\n else if (item.type === 'webinar')\n return (\n \n );\n else return null;\n })}\n \n {showButton && buttonLabel && (\n setPage(page + 1)}\n >\n {buttonLabel}\n \n )}\n \n );\n};\n\nexport default TaggedCardsListing;\n"],"sourceRoot":""}