forked from koff75/myGatsbyBlog
-
Notifications
You must be signed in to change notification settings - Fork 0
/
component---packages-blog-core-src-templates-post-js-55d7e48b6072f91010bd.js.map
1 lines (1 loc) · 52.7 KB
/
component---packages-blog-core-src-templates-post-js-55d7e48b6072f91010bd.js.map
1
{"version":3,"sources":["webpack:https:///../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:https:///../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack:https:///../packages/flow-ui/components/src/Sticky/Sticky.jsx","webpack:https:///../node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:https:///../node_modules/gatsby-plugin-mdx/mdx-renderer.js","webpack:https:///../packages/flow-ui/widgets/src/AuthorCompact/AuthorCompact.jsx","webpack:https:///../packages/flow-ui/widgets/src/Post/Post.Head.jsx","webpack:https:///../packages/flow-ui/widgets/src/Post/Post.Image.jsx","webpack:https:///../packages/flow-ui/widgets/src/Post/Post.Body.jsx","webpack:https:///../packages/flow-ui/widgets/src/Post/Post.Tags.jsx","webpack:https:///../packages/flow-ui/widgets/src/Post/index.js","webpack:https:///../packages/flow-ui/widgets/src/Post/Post.Tags.Share.jsx","webpack:https:///../packages/flow-ui/widgets/src/Post/Post.Footer.jsx","webpack:https:///../packages/themes/gatsby-theme-flexiblog-personal/src/containers/Post.jsx","webpack:https:///../packages/blog/core/src/templates/post.js","webpack:https:///../node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:https:///../packages/blog/helpers/src/useBlogCategories.jsx","webpack:https:///../packages/blog/helpers/src/useBlogAuthors.jsx","webpack:https:///../packages/blog/helpers/src/useBlogTags.jsx","webpack:https:///../node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:https:///../packages/flow-ui/components/src/PageTitle/PageTitle.jsx","webpack:https:///../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:https:///../packages/flow-ui/components/src/IconButton/IconButton.jsx","webpack:https:///../packages/flow-ui/widgets/src/Categories/Categories.jsx","webpack:https:///../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:https:///../node_modules/gatsby-plugin-mdx/index.js","webpack:https:///../node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:https:///../packages/flow-ui/components/src/CardList/CardList.Slider.Styles.js","webpack:https:///../packages/flow-ui/components/src/CardList/CardList.Slider.jsx","webpack:https:///../packages/flow-ui/components/src/CardList/CardList.jsx","webpack:https:///../node_modules/@babel/runtime/helpers/construct.js"],"names":["module","exports","arr","len","length","i","arr2","Array","Reflect","construct","sham","Proxy","Date","prototype","toString","call","e","Sticky","children","variant","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","_construct","_toConsumableArray","_defineProperty","_objectWithoutPropertiesLoose","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","getOwnPropertyDescriptors","defineProperties","defineProperty","React","mdx","useMDXScope","_ref","scope","props","mdxScope","End","useMemo","fullScope","values","map","Function","concat","createElement","styles","wrapper","textAlign","avatarWrapper","mb","title","color","AuthorCompact","author","omitSocial","Section","aside","sx","thumbnail","as","GLink","to","slug","aria-label","name","Avatar","avatar","withPattern","social","Navigation","items","attachSocialIcons","iconOnly","item","display","PostHead","date","timeToRead","category","info","TextList","PageTitle","header","running","regular","minHeight","bg","borderRadius","wide","full","inCard","t","radii","lg","mt","mx","fullImg","position","PostImage","hero","fluid","css","imgStyle","Divider","space","PostBody","body","alignItems","heading","mr","PostTags","tags","id","Link","PostComments","Loadable","PostShare","flex","justifyContent","flexDirection","flexBasis","PostTagsShare","borderStyle","borderWidth","borderColor","flexWrap","p","next","guide","PostLink","post","PostFooter","previous","Post","data","tagCategoryPosts","tagPosts","categoryPosts","location","relatedPosts","nodes","pageContext","services","siteUrl","categories","useBlogCategories","Seo","effectProps","effect","fraction","disqus","omitTitle","Categories","CardList","omitMedia","omitCategory","limit","distinct","PostPage","iter","Symbol","iterator","from","allArticleCategory","useStaticQuery","categoriesQuery","dedupe","node","useBlogAuthors","allArticleAuthor","authorsQuery","useBlogTags","tagsQuery","allArticleTag","_setPrototypeOf","o","setPrototypeOf","__proto__","count","fontSize","subheader","fontWeight","runninghead","totalCount","arrayLikeToArray","minLen","n","slice","constructor","test","button","vertical","overflow","pr","svg","verticalAlign","size","horizontal","icon","transition","alignSelf","width","boxSizing","height","pt","text","whiteSpace","m","IconButton","Icon","iconPath","iconColor","src","defaultProps","number","undefined","overflowX","scrollBehavior","a","minWidth","buttonProps","FaArchive","isArray","MDXRenderer","TypeError","slide","opacity","transform","transformOrigin","fade","left","controlBottom","top","bottom","ml","controlCenter","right","controlOver","Slider","loadable","CardListSlider","forwardRef","ref","columns","slidesToScroll","smoothAutoScroll","autoPlay","autoplaySpeed","dots","arrows","centerMode","centerPadding","controlPosition","beforeChange","context","useThemeUI","animationSettings","autoplay","cssEase","mobileSettings","swipeToSlide","responsiveSettings","theme","breakpoints","breakpoint","index","rSlidesToShow","rSlidesToScroll","parseInt","settings","slidesToShow","speed","infinite","responsive","prevArrow","arrowPrev","nextArrow","arrowNext","loadableFallback","fallback","rows","withTitleLink","skip","slider","asNavFor","loading","rest","reducedNodes","reduceArray","titleLink","sectionKey","hashCode","join","cardListVariant","buildResponsiveVariant","changeSlide","current","slickPause","slickGoTo","cards","Card","onMouseOver","onFocus","isNativeReflectConstruct","Parent","args","Class","instance","bind"],"mappings":"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","file":"component---packages-blog-core-src-templates-post-js-55d7e48b6072f91010bd.js","sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","import React from 'react'\r\nimport { Container } from 'theme-ui'\r\n\r\nconst Sticky = ({ children }) => (\r\n <Container variant='sticky'>{children}</Container>\r\n)\r\n\r\nexport default Sticky\r\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","var _construct = require(\"@babel/runtime/helpers/construct\");\n\nvar _toConsumableArray = require(\"@babel/runtime/helpers/toConsumableArray\");\n\nvar _defineProperty = require(\"@babel/runtime/helpers/defineProperty\");\n\nvar _objectWithoutPropertiesLoose = require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\");\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar React = require(\"react\");\n\nvar _require = require(\"@mdx-js/react\"),\n mdx = _require.mdx;\n\nvar _require2 = require(\"./context\"),\n useMDXScope = _require2.useMDXScope;\n\nmodule.exports = function MDXRenderer(_ref) {\n var scope = _ref.scope,\n children = _ref.children,\n props = _objectWithoutPropertiesLoose(_ref, [\"scope\", \"children\"]);\n\n var mdxScope = useMDXScope(scope); // Memoize the compiled component\n\n var End = React.useMemo(function () {\n if (!children) {\n return null;\n }\n\n var fullScope = _objectSpread({\n // React is here just in case the user doesn't pass them in\n // in a manual usage of the renderer\n React: React,\n mdx: mdx\n }, mdxScope);\n\n var keys = Object.keys(fullScope);\n var values = keys.map(function (key) {\n return fullScope[key];\n });\n\n var fn = _construct(Function, [\"_fn\"].concat(_toConsumableArray(keys), [\"\" + children]));\n\n return fn.apply(void 0, [{}].concat(_toConsumableArray(values)));\n }, [children, scope]);\n return React.createElement(End, _objectSpread({}, props));\n};","import React from 'react'\r\nimport { Link as GLink } from 'gatsby'\r\nimport { Box, Heading, Card, Link } from 'theme-ui'\r\nimport Navigation from '@components/Navigation'\r\nimport Section from '@components/Section'\r\nimport Avatar from '@components/Avatar'\r\nimport attachSocialIcons from '@helpers/attachSocialIcons'\r\n\r\nconst styles = {\r\n wrapper: {\r\n textAlign: `center`\r\n },\r\n avatarWrapper: {\r\n mb: 4\r\n },\r\n title: {\r\n color: `omegaDark`\r\n }\r\n}\r\n\r\nconst AuthorCompact = ({ author, omitSocial, ...props }) => {\r\n if (!author) return ''\r\n\r\n return (\r\n <Section aside title='The Author' {...props}>\r\n <Card variant='paper'>\r\n <Box sx={styles.wrapper}>\r\n {author.thumbnail && (\r\n <Box sx={styles.avatarWrapper}>\r\n <Link as={GLink} to={author.slug} aria-label={author.name}>\r\n <Avatar avatar={author.thumbnail} withPattern />\r\n </Link>\r\n </Box>\r\n )}\r\n <Link as={GLink} to={author.slug}>\r\n <Heading variant='h3'>{author.name}</Heading>\r\n </Link>\r\n <Heading variant='h4' sx={styles.title}>\r\n {author.title}\r\n </Heading>\r\n {!omitSocial && author.social && (\r\n <Navigation\r\n variant='horizontal'\r\n items={attachSocialIcons(author.social)}\r\n iconOnly\r\n />\r\n )}\r\n </Box>\r\n </Card>\r\n </Section>\r\n )\r\n}\r\n\r\nexport default AuthorCompact\r\n","import React from 'react'\r\nimport { Link as GLink } from 'gatsby'\r\nimport { Link, Text } from 'theme-ui'\r\nimport TextList from '@components/TextList'\r\nimport PageTitle from '@components/PageTitle'\r\n\r\nconst styles = {\r\n item: {\r\n display: `inline-block`\r\n }\r\n}\r\n\r\nexport const PostHead = ({ title, author, date, timeToRead, category }) => {\r\n const info = (\r\n <TextList>\r\n {author && author.slug && (\r\n <Text sx={styles.item}>\r\n {`By `}\r\n <Link variant='mute' as={GLink} to={author.slug}>\r\n <strong>{author.name}</strong>\r\n </Link>\r\n </Text>\r\n )}\r\n {category && category.slug && (\r\n <Text sx={styles.item}>\r\n {`Published in `}\r\n <Link variant='mute' as={GLink} to={category.slug}>\r\n <strong>{category.name}</strong>\r\n </Link>\r\n </Text>\r\n )}\r\n {date && <Text sx={styles.item}>{date}</Text>}\r\n {timeToRead && (\r\n <Text sx={{ ...styles.item, color: `error` }}>\r\n <strong>{timeToRead} min read</strong>\r\n </Text>\r\n )}\r\n </TextList>\r\n )\r\n\r\n return <PageTitle header={title} running={info} />\r\n}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport Img from 'gatsby-image'\r\nimport { css } from 'theme-ui'\r\nimport Divider from '@components/Divider'\r\n\r\nconst styles = {\r\n regular: {\r\n minHeight: `23rem`,\r\n bg: `omegaLighter`,\r\n borderRadius: `lg`,\r\n },\r\n wide: {\r\n borderRadius: `lg`,\r\n },\r\n full: {\r\n bg: `omegaLighter`,\r\n },\r\n inCard: {\r\n bg: `omegaLighter`,\r\n borderRadius: (t) => `${t.radii.lg} ${t.radii.lg} 0 0`,\r\n mt: -4,\r\n mx: -4,\r\n },\r\n fullImg: {\r\n position: `static`,\r\n display: `block`,\r\n },\r\n}\r\n\r\nexport const PostImage = ({ thumbnail, wide, full, inCard }) => {\r\n if (!thumbnail || !thumbnail.hero) return null\r\n\r\n const variant = (wide && 'wide') || (full && 'full') || 'regular'\r\n\r\n return (\r\n <>\r\n <Img\r\n fluid={thumbnail.hero}\r\n css={css({ ...styles[variant], ...(inCard && styles.inCard) })}\r\n imgStyle={(variant === 'wide' || variant === 'full') && styles.fullImg}\r\n />\r\n <Divider space={3} />\r\n </>\r\n )\r\n}\r\n\r\nPostImage.propTypes = {\r\n wide: PropTypes.bool,\r\n full: PropTypes.bool,\r\n inCard: PropTypes.bool,\r\n}\r\n","import React from 'react'\r\nimport { MDXRenderer } from 'gatsby-plugin-mdx'\r\n\r\nexport const PostBody = ({ body }) => {\r\n return <MDXRenderer>{body}</MDXRenderer>\r\n}\r\n","import React from 'react'\r\nimport { Link } from 'gatsby'\r\nimport { Badge, Heading, Flex, Box } from 'theme-ui'\r\n\r\nconst styles = {\r\n wrapper: {\r\n alignItems: `center`\r\n },\r\n heading: {\r\n color: `omegaDark`,\r\n mr: 3,\r\n mb: 0\r\n }\r\n}\r\n\r\nexport const PostTags = ({ tags }) =>\r\n tags && tags.length > 0 ? (\r\n <Flex sx={styles.wrapper}>\r\n <Heading variant='h5' sx={styles.heading}>\r\n Tags\r\n </Heading>\r\n <Box variant='lists.badges'>\r\n {tags.map(({ id, name, slug }) => (\r\n <Badge variant='tag' key={id} as={Link} to={slug}>\r\n {name}\r\n </Badge>\r\n ))}\r\n </Box>\r\n </Flex>\r\n ) : null\r\n","import Loadable from '@loadable/component'\r\n\r\nexport { PostBody } from './Post.Body'\r\nexport { PostFooter } from './Post.Footer'\r\nexport { PostHead } from './Post.Head'\r\nexport { PostImage } from './Post.Image'\r\nexport { PostTags } from './Post.Tags'\r\nexport { PostTagsShare } from './Post.Tags.Share'\r\n\r\nexport const PostComments = Loadable(() => import('./Post.Comments'))\r\nexport const PostShare = Loadable(() => import('./Post.Share'))\r\n","import React from 'react'\r\nimport { Flex, Box, Divider } from 'theme-ui'\r\nimport { PostTags, PostShare } from '@widgets/Post'\r\n\r\nconst styles = {\r\n flex: {\r\n alignItems: [`flex-start`, `center`],\r\n justifyContent: `space-between`,\r\n flexDirection: [`column`, `row`],\r\n '& > div + div': {\r\n mt: [3, 0],\r\n flexBasis: `1/2`,\r\n justifyContent: `flex-end`\r\n }\r\n }\r\n}\r\n\r\nexport const PostTagsShare = props => (\r\n <Box>\r\n <Divider />\r\n <Flex sx={styles.flex}>\r\n <PostTags {...props} />\r\n <PostShare {...props} />\r\n </Flex>\r\n </Box>\r\n)\r\n","import React from 'react'\r\nimport { Link } from 'gatsby'\r\nimport { Box, Flex, Text, Heading } from 'theme-ui'\r\n\r\nconst styles = {\r\n wrapper: {\r\n bg: `omegaLight`,\r\n borderRadius: `bottom`,\r\n color: `omegaDark`,\r\n borderStyle: `solid`,\r\n borderWidth: `md`,\r\n borderColor: `contentBg`,\r\n mx: -4,\r\n mb: -4,\r\n mt: 4,\r\n },\r\n flex: {\r\n flexWrap: `wrap`,\r\n justifyContent: `space-between`,\r\n p: 4,\r\n },\r\n item: {\r\n flexBasis: `50%`,\r\n },\r\n next: {\r\n textAlign: `right`,\r\n },\r\n guide: {\r\n mb: 2,\r\n },\r\n}\r\n\r\nconst PostLink = ({ title, post }) => (\r\n <>\r\n <Text sx={styles.guide}>{title}</Text>\r\n <Heading variant='h4' as={Link} to={post.slug}>\r\n {post.title}\r\n </Heading>\r\n </>\r\n)\r\n\r\nexport const PostFooter = ({ previous, next }) => {\r\n if (!next && !previous) return null\r\n\r\n return (\r\n <Box sx={styles.wrapper}>\r\n <Flex sx={styles.flex}>\r\n <Box sx={styles.item}>\r\n {previous && <PostLink post={previous} title='Previous Article' />}\r\n </Box>\r\n <Box sx={{ ...styles.item, ...styles.next }}>\r\n {next && <PostLink post={next} title='Next Article' />}\r\n </Box>\r\n </Flex>\r\n </Box>\r\n )\r\n}\r\n","import React from 'react'\r\nimport { Card as CardComponent } from 'theme-ui'\r\nimport { Stack, Main, Sidebar } from '@layout'\r\nimport CardList from '@components/CardList'\r\nimport Divider from '@components/Divider'\r\nimport Sticky from '@components/Sticky'\r\nimport Seo from '@widgets/Seo'\r\nimport AuthorCompact from '@widgets/AuthorCompact'\r\nimport Categories from '@widgets/Categories'\r\nimport {\r\n PostHead,\r\n PostImage,\r\n PostBody,\r\n PostComments,\r\n PostTagsShare,\r\n PostFooter,\r\n} from '@widgets/Post'\r\nimport { useBlogCategories } from '@helpers-blog'\r\n\r\nconst Post = ({\r\n data: { post, tagCategoryPosts, tagPosts, categoryPosts, previous, next },\r\n location,\r\n ...props\r\n}) => {\r\n const relatedPosts = [\r\n ...(tagCategoryPosts ? tagCategoryPosts.nodes : []),\r\n ...(tagPosts ? tagPosts.nodes : []),\r\n ...(categoryPosts ? categoryPosts.nodes : []),\r\n ]\r\n const { pageContext: { services = {}, siteUrl } = {} } = props\r\n const categories = useBlogCategories()\r\n\r\n return (\r\n <>\r\n <Seo {...post} siteUrl={siteUrl} />\r\n <Divider />\r\n <Stack effectProps={{ effect: 'fadeInDown' }}>\r\n <PostHead {...post} />\r\n </Stack>\r\n <Divider />\r\n <Stack effectProps={{ fraction: 0 }}>\r\n <Main>\r\n <CardComponent variant='paper'>\r\n <PostImage {...post} inCard />\r\n <PostBody {...post} />\r\n <PostTagsShare {...post} location={location} />\r\n {services.disqus && <PostComments {...post} />}\r\n <PostFooter {...{ previous, next }} />\r\n </CardComponent>\r\n </Main>\r\n <Sidebar>\r\n <AuthorCompact author={post.author} omitTitle />\r\n <Divider />\r\n <Categories categories={categories} />\r\n <Divider />\r\n {post.category && (\r\n <Sticky>\r\n <CardList\r\n title='Related Posts'\r\n nodes={relatedPosts}\r\n variant='horizontal-aside'\r\n omitMedia\r\n omitCategory\r\n limit={6}\r\n distinct\r\n aside\r\n />\r\n </Sticky>\r\n )}\r\n </Sidebar>\r\n </Stack>\r\n </>\r\n )\r\n}\r\n\r\nexport default Post\r\n","import { graphql } from 'gatsby'\r\nimport PostPage from '../containers/Post'\r\n\r\nexport default PostPage\r\n\r\nexport const pageQuery = graphql`\r\n query PostPageQuery(\r\n $id: String!\r\n $previousId: String\r\n $nextId: String\r\n $categoryId: String\r\n $tagsIds: [String]\r\n $hasTags: Boolean!\r\n ) {\r\n post: article(id: { eq: $id }) {\r\n ...ArticleInformation\r\n ...ArticleThumbnailRegular\r\n }\r\n\r\n # Related posts based on tags and category\r\n tagCategoryPosts: allArticle(\r\n filter: {\r\n private: { ne: true }\r\n tags: { elemMatch: { id: { in: $tagsIds } } }\r\n category: { id: { eq: $categoryId } }\r\n id: { ne: $id }\r\n }\r\n sort: { fields: [date], order: DESC }\r\n limit: 6\r\n ) @include(if: $hasTags) {\r\n nodes {\r\n ...ArticlePreview\r\n ...ArticleThumbnailRegular\r\n }\r\n }\r\n\r\n # Related posts based on tags only\r\n tagPosts: allArticle(\r\n filter: {\r\n private: { ne: true }\r\n tags: { elemMatch: { id: { in: $tagsIds } } }\r\n id: { ne: $id }\r\n }\r\n sort: { fields: [date], order: DESC }\r\n limit: 6\r\n ) @include(if: $hasTags) {\r\n nodes {\r\n ...ArticlePreview\r\n ...ArticleThumbnailRegular\r\n }\r\n }\r\n\r\n # Related posts based on category only\r\n categoryPosts: allArticle(\r\n filter: {\r\n private: { ne: true }\r\n category: { id: { eq: $categoryId } }\r\n id: { ne: $id }\r\n }\r\n sort: { fields: [date], order: DESC }\r\n limit: 6\r\n ) {\r\n nodes {\r\n ...ArticlePreview\r\n ...ArticleThumbnailRegular\r\n }\r\n }\r\n\r\n previous: article(id: { eq: $previousId }) {\r\n id\r\n slug\r\n title\r\n }\r\n\r\n next: article(id: { eq: $nextId }) {\r\n id\r\n slug\r\n title\r\n }\r\n }\r\n`\r\n","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","import { useStaticQuery, graphql } from 'gatsby'\r\nimport dedupe from 'dedupe'\r\n\r\nexport const useBlogCategories = () => {\r\n const { allArticleCategory } = useStaticQuery(categoriesQuery)\r\n return allArticleCategory.nodes\r\n ? dedupe(allArticleCategory.nodes, node => node.slug)\r\n : null\r\n}\r\n\r\nconst categoriesQuery = graphql`\r\n query allArticleCategoryQuery {\r\n allArticleCategory {\r\n nodes {\r\n ...ArticleCategory\r\n }\r\n }\r\n }\r\n`\r\n","import { useStaticQuery, graphql } from 'gatsby'\r\nimport dedupe from 'dedupe'\r\n\r\nexport const useBlogAuthors = () => {\r\n const { allArticleAuthor } = useStaticQuery(authorsQuery)\r\n return allArticleAuthor.nodes\r\n ? dedupe(allArticleAuthor.nodes, node => node.slug)\r\n : null\r\n}\r\n\r\nconst authorsQuery = graphql`\r\n query allArticleAuthorQuery {\r\n allArticleAuthor {\r\n nodes {\r\n ...ArticleAuthor\r\n }\r\n }\r\n }\r\n`\r\n","import { useStaticQuery, graphql } from 'gatsby'\r\n\r\nexport const useBlogTags = () => {\r\n const { allArticleTag } = useStaticQuery(tagsQuery)\r\n return allArticleTag.nodes || []\r\n}\r\n\r\nconst tagsQuery = graphql`\r\n query allArticleTagQuery {\r\n allArticleTag {\r\n nodes {\r\n ...ArticleTag\r\n }\r\n }\r\n }\r\n`\r\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { Heading, Text, Badge } from 'theme-ui'\r\n\r\nconst styles = {\r\n count: {\r\n fontSize: 4\r\n },\r\n subheader: {\r\n fontWeight: `body`,\r\n color: `omegaDark`\r\n },\r\n runninghead: {\r\n fontWeight: `body`,\r\n color: `omegaDark`,\r\n mb: 0\r\n }\r\n}\r\n\r\nconst PageTitle = ({ header, subheader, running, totalCount }) => {\r\n return (\r\n <div>\r\n <Heading variant='h1' as='h1'>\r\n {header}{' '}\r\n {totalCount && (\r\n <Badge variant='tag-white' sx={styles.count}>\r\n {' '}\r\n {totalCount}\r\n </Badge>\r\n )}\r\n </Heading>\r\n {subheader && (\r\n <Text variant='h3' sx={styles.subheader}>\r\n {subheader}\r\n </Text>\r\n )}\r\n {running && (\r\n <Text variant='h4' sx={styles.runninghead}>\r\n {running}\r\n </Text>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default PageTitle\r\n\r\nPageTitle.propTypes = {\r\n title: PropTypes.string,\r\n subheader: PropTypes.string,\r\n running: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n totalCount: PropTypes.number\r\n}\r\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { Link } from 'gatsby'\r\nimport SVG from 'react-inlinesvg'\r\nimport { Button, Box, Heading } from 'theme-ui'\r\n\r\nconst styles = {\r\n button: {\r\n vertical: {\r\n variant: `cards.primary`,\r\n display: `flex`,\r\n alignItems: `center`,\r\n textAlign: `initial`,\r\n overflow: `hidden`,\r\n mb: 3,\r\n p: 0,\r\n pr: 2,\r\n svg: {\r\n color: `omegaDark`,\r\n verticalAlign: `middle`,\r\n size: `icon.xs`\r\n },\r\n ':hover': {\r\n svg: {\r\n color: `white`\r\n },\r\n 'div:first-of-type': {\r\n bg: `alpha`\r\n }\r\n }\r\n },\r\n horizontal: {\r\n variant: `cards.interactive`,\r\n p: 0,\r\n svg: {\r\n color: `alpha`,\r\n size: `icon.sm`\r\n },\r\n ':hover': {\r\n svg: {\r\n color: `omegaDark`\r\n }\r\n }\r\n }\r\n },\r\n icon: {\r\n vertical: {\r\n display: [`flex`, `none`, `flex`],\r\n transition: `all 250ms ease`,\r\n alignItems: `center`,\r\n justifyContent: `center`,\r\n alignSelf: `stretch`,\r\n bg: `omegaLight`,\r\n width: 70\r\n },\r\n horizontal: {\r\n display: [`block`, `none`, `block`],\r\n boxSizing: `content-box`,\r\n transition: `all 250ms ease`,\r\n borderRadius: `bottom`,\r\n width: `1/3`,\r\n height: `icon.sm`,\r\n mx: `auto`,\r\n pt: 3\r\n }\r\n },\r\n text: {\r\n flex: `auto`,\r\n color: `omegaDark`,\r\n whiteSpace: `nowrap`,\r\n p: 3,\r\n m: 0\r\n }\r\n}\r\n\r\nexport const IconButton = ({\r\n variant,\r\n name,\r\n Icon,\r\n iconPath,\r\n iconColor,\r\n to\r\n}) => (\r\n <Button variant='none' as={to && Link} to={to} sx={styles.button[variant]}>\r\n {(Icon || iconPath) && (\r\n <Box sx={styles.icon[variant]}>\r\n {iconPath && <SVG src={iconPath} />}\r\n {Icon && <Icon color={iconColor} />}\r\n </Box>\r\n )}\r\n <Heading variant='h4' as='span' sx={styles.text}>\r\n {name}\r\n </Heading>\r\n </Button>\r\n)\r\n\r\nexport default IconButton\r\n\r\nIconButton.defaultProps = {\r\n variant: 'horizontal',\r\n number: undefined\r\n}\r\n\r\nIconButton.propTypes = {\r\n variant: PropTypes.oneOf(['horizontal', 'vertical']),\r\n name: PropTypes.string,\r\n number: PropTypes.number,\r\n Icon: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\r\n iconPath: PropTypes.string,\r\n to: PropTypes.string\r\n}\r\n","import React from 'react'\r\nimport { Box } from 'theme-ui'\r\nimport { FaArchive } from 'react-icons/fa'\r\nimport IconButton from '@components/IconButton'\r\nimport Section from '@components/Section'\r\n\r\nconst styles = {\r\n horizontal: {\r\n display: `flex`,\r\n justifyContent: [`flex-start`, `space-evenly`],\r\n flexWrap: `nowrap`,\r\n overflowX: `auto`,\r\n width: `auto`,\r\n scrollBehavior: `smooth`,\r\n m: -2,\r\n a: {\r\n flex: 1,\r\n minWidth: [`1/3`, `auto`],\r\n m: [3, 2]\r\n }\r\n }\r\n}\r\n\r\nconst Categories = ({ variant, categories, ...props }) => (\r\n <Section aside={variant === 'vertical'} title='Topics' {...props}>\r\n <Box sx={styles[variant]}>\r\n {categories &&\r\n categories.map(({ id, name, slug, totalCount, icon }) => {\r\n const buttonProps = {\r\n key: id,\r\n name,\r\n number: totalCount,\r\n to: slug,\r\n iconPath: icon,\r\n Icon: !icon && FaArchive,\r\n variant\r\n }\r\n\r\n return totalCount !== 0 && <IconButton {...buttonProps} />\r\n })}\r\n </Box>\r\n </Section>\r\n)\r\n\r\nexport default Categories\r\n\r\nCategories.defaultProps = {\r\n variant: 'vertical'\r\n}\r\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","/**\n * Welcome to gatsby-plugin-mdx!\n *\n * Start reading in gatsby-node.js\n */\nvar MDXRenderer = require(\"./mdx-renderer\");\n\nmodule.exports = {\n MDXRenderer: MDXRenderer\n};","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","export default {\r\n slide: {\r\n width: `full`,\r\n '.slick-slide': {\r\n transition: `all 600ms ease`,\r\n opacity: 1,\r\n transform: [null, `scale(1)`],\r\n transformOrigin: `left`\r\n },\r\n '.slick-slide.slick-active + :not(.slick-active)': {\r\n opacity: [null, 0],\r\n transform: [null, `scale(0.7)`]\r\n }\r\n },\r\n fade: {\r\n width: `full`,\r\n '.slick-slide:not(.slick-active)': {\r\n left: `-9999px !important` //fix overlapping slides in fade mode\r\n },\r\n '.slick-track': {\r\n display: `flex`,\r\n alignItems: `center`\r\n }\r\n },\r\n controlBottom: {\r\n '.slick-prev, .slick-next': {\r\n top: `auto`,\r\n bottom: 3,\r\n left: `50%`,\r\n transform: `translate(-125%, 0)`\r\n },\r\n '.slick-next': {\r\n ml: 5\r\n },\r\n '.slick-dots': {\r\n textAlign: `center`,\r\n width: [`full`, `auto`],\r\n top: [`100%`, `auto`],\r\n bottom: 0\r\n },\r\n '.slick-dots li': {\r\n verticalAlign: `middle`\r\n }\r\n },\r\n controlCenter: {\r\n '.slick-prev, .slick-next': {\r\n top: `50%`,\r\n left: `50%`,\r\n transform: `translate(-125%, -50%)`\r\n },\r\n '.slick-next': {\r\n ml: 5\r\n },\r\n '.slick-dots': {\r\n textAlign: `center`,\r\n width: [`full`, `auto`],\r\n top: [`100%`, `auto`],\r\n bottom: 4,\r\n right: 4\r\n }\r\n },\r\n controlOver: {\r\n width: `full`,\r\n '.slick-prev, .slick-next': {\r\n top: `auto`,\r\n bottom: [-2, 3],\r\n left: [4, 6]\r\n },\r\n '.slick-next': {\r\n ml: 5\r\n },\r\n '.slick-dots': {\r\n display: [`none`, `block`],\r\n textAlign: `center`,\r\n width: `auto`,\r\n top: 5,\r\n left: 4,\r\n p: 0,\r\n ml: 3\r\n },\r\n '.slick-dots li': {\r\n display: [`inline-block`, `block`]\r\n },\r\n '.slick-dots li.slick-active button': {\r\n bg: `alpha`\r\n }\r\n }\r\n}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { IconButton, css, useThemeUI } from 'theme-ui'\r\nimport { FaChevronLeft, FaChevronRight } from 'react-icons/fa'\r\nimport 'slick-carousel/slick/slick.css'\r\nimport './CardList.Slider.css'\r\nimport styles from './CardList.Slider.Styles'\r\n\r\nimport loadable from '@loadable/component'\r\nconst Slider = loadable(() => import('react-slick'))\r\n\r\nconst CardListSlider = React.forwardRef((props, ref) => {\r\n const {\r\n columns,\r\n slidesToScroll,\r\n smoothAutoScroll,\r\n autoPlay,\r\n autoplaySpeed,\r\n fade,\r\n dots,\r\n arrows,\r\n centerMode,\r\n centerPadding,\r\n controlPosition,\r\n beforeChange,\r\n children\r\n } = props\r\n\r\n const context = useThemeUI()\r\n\r\n const animationSettings = {\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n cssEase: 'linear'\r\n }\r\n\r\n const mobileSettings = {\r\n centerMode: fade ? false : true,\r\n centerPadding: '40px',\r\n swipeToSlide: true,\r\n arrows: false,\r\n dots: dots && fade ? true : false\r\n }\r\n\r\n const responsiveSettings = context.theme.breakpoints.map(\r\n (breakpoint, index) => {\r\n const rSlidesToShow =\r\n columns[index >= columns.length ? columns.length - 1 : index]\r\n const rSlidesToScroll =\r\n slidesToScroll[\r\n index >= slidesToScroll.length ? slidesToScroll.length - 1 : index\r\n ]\r\n return {\r\n breakpoint: parseInt(breakpoint),\r\n settings: {\r\n slidesToShow: rSlidesToShow,\r\n slidesToScroll: rSlidesToScroll,\r\n ...(index === 0 ? mobileSettings : {})\r\n }\r\n }\r\n }\r\n )\r\n let settings = {\r\n ref,\r\n beforeChange,\r\n slidesToShow: columns[columns.length - 1],\r\n slidesToScroll: slidesToScroll[slidesToScroll.length - 1],\r\n speed: 800,\r\n dots,\r\n arrows,\r\n centerMode,\r\n centerPadding,\r\n infinite: true,\r\n cssEase: fade ? 'ease-out' : 'cubic-bezier(0.23, 1, 0.32, 1)',\r\n fade,\r\n responsive: responsiveSettings,\r\n css: css({\r\n ...(fade ? styles.fade : styles.slide),\r\n ...(controlPosition === 'bottom' && styles.controlBottom),\r\n ...(controlPosition === 'center' && styles.controlCenter),\r\n ...(controlPosition === 'over' && styles.controlOver)\r\n }),\r\n prevArrow: (\r\n <IconButton sx={styles.arrowPrev}>\r\n <FaChevronLeft />\r\n </IconButton>\r\n ),\r\n nextArrow: (\r\n <IconButton sx={styles.arrowNext}>\r\n <FaChevronRight />\r\n </IconButton>\r\n )\r\n }\r\n\r\n if (smoothAutoScroll) {\r\n settings = {\r\n ...settings,\r\n ...animationSettings,\r\n speed: 10000,\r\n autoplaySpeed: 0,\r\n arrows: false,\r\n dots: false\r\n }\r\n }\r\n\r\n if (!smoothAutoScroll && autoPlay) {\r\n settings = {\r\n ...settings,\r\n ...animationSettings,\r\n speed: 300,\r\n autoplaySpeed\r\n }\r\n }\r\n\r\n const loadableFallback = children.slice(0, columns[columns.length - 1])\r\n\r\n return (\r\n <Slider {...settings} fallback={loadableFallback}>\r\n {children}\r\n </Slider>\r\n )\r\n})\r\n\r\nexport default CardListSlider\r\n\r\nCardListSlider.defaultProps = {\r\n fade: false,\r\n dots: true,\r\n arrows: true,\r\n centerMode: false,\r\n centerPadding: '50px',\r\n autoPlay: false,\r\n autoplaySpeed: 3000,\r\n smoothAutoScroll: false,\r\n slidesToScroll: [1],\r\n rows: 1,\r\n controlPosition: 'sides'\r\n}\r\n\r\nCardListSlider.propTypes = {\r\n fade: PropTypes.bool,\r\n dots: PropTypes.bool,\r\n arrows: PropTypes.bool,\r\n centerMode: PropTypes.bool,\r\n centerPadding: PropTypes.string,\r\n autoPlay: PropTypes.bool,\r\n autoplaySpeed: PropTypes.number,\r\n smoothAutoScroll: PropTypes.bool,\r\n columns: PropTypes.arrayOf(PropTypes.number),\r\n slidesToScroll: PropTypes.arrayOf(PropTypes.number),\r\n controlPosition: PropTypes.oneOf(['bottom', 'over', 'sides', 'center'])\r\n}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { Box } from 'theme-ui'\r\nimport { reduceArray, hashCode, buildResponsiveVariant } from '../utils/'\r\nimport Section from '@components/Section'\r\nimport CardListSlider from './CardList.Slider'\r\nimport Card from '@components/Card'\r\n\r\nconst SLIDER_VARIANT_GROUP = 'lists.cards.slider'\r\nconst FIXED_VARIANT_GROUP = 'lists.cards.fixed'\r\n\r\nconst CardList = React.forwardRef((props, ref) => {\r\n const {\r\n nodes,\r\n variant,\r\n title,\r\n withTitleLink,\r\n limit,\r\n skip,\r\n distinct,\r\n slider,\r\n aside,\r\n asNavFor,\r\n loading,\r\n ...rest\r\n } = props\r\n\r\n const reducedNodes = reduceArray(nodes, { distinct, limit, skip })\r\n if (!reducedNodes || !reducedNodes.length) return null\r\n\r\n //Section title link for viewing more posts from same category\r\n const titleLink = withTitleLink\r\n ? reducedNodes[0].category && reducedNodes[0].category.slug\r\n : ''\r\n\r\n //Unique key for section\r\n const sectionKey =\r\n title && `${hashCode(reducedNodes.map(node => node.id).join())}`\r\n\r\n //Build responsive variant for card list\r\n const cardListVariant = buildResponsiveVariant(\r\n slider ? SLIDER_VARIANT_GROUP : FIXED_VARIANT_GROUP,\r\n variant\r\n )\r\n\r\n const changeSlide = index => {\r\n if (asNavFor && asNavFor.current) {\r\n asNavFor.current.slickPause()\r\n asNavFor.current.slickGoTo(index)\r\n }\r\n }\r\n\r\n //Array of cards\r\n const cards = reducedNodes.map((node, index) => (\r\n <Card\r\n key={node.id}\r\n variant={variant}\r\n onMouseOver={() => changeSlide(index)}\r\n onFocus={() => changeSlide(index)}\r\n //In sliders with fade effect apply loading to the first card only\r\n loading={props.fade ? (index === 0 ? loading : undefined) : loading}\r\n {...node}\r\n {...rest}\r\n />\r\n ))\r\n\r\n //Cards List (Fixed or Slider)\r\n const CardList = () => (\r\n <Box sx={{ variant: cardListVariant }}>\r\n {slider ? (\r\n <CardListSlider\r\n ref={ref}\r\n // beforeChange={index => changeSlide(index)}\r\n {...rest}\r\n >\r\n {cards}\r\n </CardListSlider>\r\n ) : (\r\n cards\r\n )}\r\n </Box>\r\n )\r\n\r\n return title ? (\r\n <Section title={title} titleLink={titleLink} key={sectionKey} aside={aside}>\r\n <CardList />\r\n </Section>\r\n ) : (\r\n <CardList />\r\n )\r\n})\r\n\r\nexport default CardList\r\n\r\nCardList.defaultProps = {\r\n variant: 'vertical',\r\n columns: [1],\r\n aside: false\r\n}\r\n\r\nCardList.propTypes = {\r\n variant: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.oneOf([\r\n 'horizontal',\r\n 'horizontal-aside',\r\n 'horizontal-md',\r\n 'horizontal-lg',\r\n 'horizontal-cover',\r\n 'horizontal-cover-hero',\r\n 'horizontal-cover-wide',\r\n 'horizontal-hero',\r\n 'vertical-cover',\r\n 'vertical',\r\n 'search'\r\n ])\r\n ]),\r\n loading: PropTypes.oneOf(['lazy', 'auto', 'eager']),\r\n columns: PropTypes.array,\r\n title: PropTypes.string,\r\n withTitleLink: PropTypes.bool,\r\n nodes: PropTypes.array,\r\n distinct: PropTypes.bool,\r\n limit: PropTypes.number,\r\n skip: PropTypes.number,\r\n aside: PropTypes.bool\r\n}\r\n","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;"],"sourceRoot":""}