changeSlide(index)}\n onFocus={() => changeSlide(index)}\n //In sliders with fade effect apply loading to the first card only\n loading={props.fade ? (index === 0 ? loading : undefined) : loading}\n {...node}\n {...rest}\n />\n ))\n\n //Cards List (Fixed or Slider)\n const CardList = () => (\n \n {slider ? (\n changeSlide(index)}\n {...rest}\n >\n {cards}\n \n ) : (\n cards\n )}\n \n )\n\n return title ? (\n \n ) : (\n \n )\n})\n\nexport default CardList\n\nCardList.defaultProps = {\n variant: 'vertical',\n columns: [1],\n aside: false\n}\n\nCardList.propTypes = {\n variant: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.oneOf([\n 'horizontal',\n 'horizontal-aside',\n 'horizontal-md',\n 'horizontal-lg',\n 'horizontal-cover',\n 'horizontal-cover-hero',\n 'horizontal-cover-wide',\n 'horizontal-hero',\n 'vertical-cover',\n 'vertical',\n 'search'\n ])\n ]),\n loading: PropTypes.oneOf(['lazy', 'auto', 'eager']),\n columns: PropTypes.array,\n title: PropTypes.string,\n withTitleLink: PropTypes.bool,\n nodes: PropTypes.array,\n distinct: PropTypes.bool,\n limit: PropTypes.number,\n skip: PropTypes.number,\n aside: PropTypes.bool\n}\n","import dedupe from 'dedupe'\n\nexport default (array, { limit, skip, distinct }) => {\n if (!array) return null\n\n if (!limit && !skip && !distinct) return array\n\n let newArray = array\n\n //Remove duplicate array\n if (distinct) {\n newArray = dedupe(newArray, node => node.id)\n }\n\n // Skip specified number of first elements\n if (skip) {\n newArray = newArray.slice(skip)\n }\n\n //Limit total number of array\n if (limit) {\n newArray = newArray.slice(0, limit)\n }\n\n return newArray\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Heading, Text, Badge } from 'theme-ui'\n\nconst styles = {\n count: {\n fontSize: 4\n },\n subheader: {\n fontWeight: `body`,\n color: `omegaDark`\n },\n runninghead: {\n fontWeight: `body`,\n color: `omegaDark`,\n mb: 0\n }\n}\n\nconst PageTitle = ({ header, subheader, running, totalCount }) => {\n return (\n \n \n {header}{' '}\n {totalCount && (\n \n {' '}\n {totalCount}\n \n )}\n \n {subheader && (\n \n {subheader}\n \n )}\n {running && (\n \n {running}\n \n )}\n
\n )\n}\n\nexport default PageTitle\n\nPageTitle.propTypes = {\n title: PropTypes.string,\n subheader: PropTypes.string,\n running: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n totalCount: PropTypes.number\n}\n","// normalize use of trailing slash\nexport default slug => slug.replace(/\\/*$/, `/`)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Link } from 'gatsby'\nimport { Button, Flex, Box } from 'theme-ui'\nimport { FaChevronLeft, FaChevronRight } from 'react-icons/fa'\nimport normalizeSlug from '@components/utils/normalizeSlug'\n\nconst pagingParam = 'page'\n\nconst styles = {\n wrapper: {\n justifyContent: `space-between`,\n alignItems: `center`,\n textAlign: `center`,\n borderRadius: `full`,\n bg: `contentBg`,\n maxWidth: [`none`, 500],\n mx: `auto`,\n p: 1\n },\n item: {\n width: `1/3`\n },\n number: {\n py: 2\n },\n button: {\n minWidth: `full`\n }\n}\n\nconst Pagination = ({\n currentPage,\n pageCount,\n hasPreviousPage,\n hasNextPage,\n basePath = '',\n slug = ''\n}) => {\n if (!hasNextPage && !hasPreviousPage) return ''\n let prefixPath = normalizeSlug(basePath + slug)\n let pagingPath = normalizeSlug(prefixPath + pagingParam)\n\n const prevLink =\n currentPage >= 3 ? `${pagingPath}${currentPage - 1}` : prefixPath\n const nextLink = `${pagingPath}${currentPage + 1}`\n\n return (\n \n \n {hasPreviousPage && (\n \n )}\n \n \n Page {currentPage} of {pageCount}\n \n \n {hasNextPage && (\n \n )}\n \n \n )\n}\n\nexport default Pagination\n\nPagination.propTypes = {\n currentPage: PropTypes.number,\n pageCount: PropTypes.number,\n hasPreviousPage: PropTypes.bool,\n hasNextPage: PropTypes.bool,\n slug: PropTypes.string,\n pagingParam: PropTypes.string\n}\n"],"sourceRoot":""}