{"version":3,"sources":["webpack:///./src/pages/writing.jsx","webpack:///./src/components/image.jsx","webpack:///./src/components/card-hover.jsx","webpack:///./src/components/post-meta.jsx","webpack:///./src/components/post-preview.jsx"],"names":["BlogPosts","props","posts","data","allMarkdownRemark","edges","tag","qs__WEBPACK_IMPORTED_MODULE_4___default","a","parse","location","search","lodash__WEBPACK_IMPORTED_MODULE_3___default","filter","post","includes","node","frontmatter","tags","postPreviews","map","_ref","i","_node$frontmatter","title","path","featuredImage","short","date","locations","Glamor","createElement","react__WEBPACK_IMPORTED_MODULE_5___default","Fragment","key","_components_card_hover__WEBPACK_IMPORTED_MODULE_10__","_components_post_preview__WEBPACK_IMPORTED_MODULE_9__","renderLinks","queryPrefix","glamorous__WEBPACK_IMPORTED_MODULE_7__","b","Div","css","marginTop","marginBottom","_layouts_default__WEBPACK_IMPORTED_MODULE_8__","description","propTypes","Object","prop_types__WEBPACK_IMPORTED_MODULE_6__","shape","pathname","string","isRequired","arrayOf","pageQuery","ImageWrapper","glamorous__WEBPACK_IMPORTED_MODULE_4__","span","display","Caption","fontSize","fontWeight","_css_themes__WEBPACK_IMPORTED_MODULE_5__","d","Image","fluid","fixed","caption","gatsby_image__WEBPACK_IMPORTED_MODULE_3___default","prop_types__WEBPACK_IMPORTED_MODULE_2__","any","__webpack_exports__","m","call","this","r","285","e","t","n","Hover","glamorous__WEBPACK_IMPORTED_MODULE_1__","div","position","paddingLeft","paddingRight","margin","&:hover .hover-backdrop","cursor","opacity","transform","HoverBackdrop","pointerEvents","top","bottom","left","right","background","_css_themes__WEBPACK_IMPORTED_MODULE_2__","orange","boxShadow","black","borderRadius","transition","style","children","className","styleIconItem","flexDirection","alignItems","justifyContent","marginRight","color","darkGrey","styleDelimeter","marginLeft","IconRow","flexWrap","IconItem","PostMeta","_common__WEBPACK_IMPORTED_MODULE_6__","dateString","length","strings","queryKey","delimeter","lodash__WEBPACK_IMPORTED_MODULE_0___default","chain","react__WEBPACK_IMPORTED_MODULE_1___default","q","gatsby__WEBPACK_IMPORTED_MODULE_3__","to","s","reduce","prev","curr","value","join","h","396","o","c","l","styleTitle","styleShort","lineHeight","PreviewImageWrapper","glamorous__WEBPACK_IMPORTED_MODULE_5__","PostWrapper","lodash__WEBPACK_IMPORTED_MODULE_1___default","has","TitleWrapper","PostPreview","_ref2","hasPreviewImage","& a","textDecoration","borderBottom","gatsby__WEBPACK_IMPORTED_MODULE_4__","_components_image__WEBPACK_IMPORTED_MODULE_7__","childImageSharp","k","_post_meta__WEBPACK_IMPORTED_MODULE_8__","prop_types__WEBPACK_IMPORTED_MODULE_3__"],"mappings":"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","file":"component---src-pages-writing-jsx-8dc1371bf6a7655c4bf8.js","sourcesContent":["import _ from 'lodash'\nimport qs from 'qs'\nimport React from 'react'\nimport {string, arrayOf, shape} from 'prop-types'\nimport {graphql} from 'gatsby'\nimport glamorous from 'glamorous'\n\nimport Default from '../layouts/default'\nimport PostPreview from '../components/post-preview'\nimport CardHover from '../components/card-hover'\n\n// const removeHeadings = (excerpt, headingsArr) =>\n// _.reduce(headingsArr, (ex, {value}) => ex.replace(value, ''), excerpt)\n\nconst prefixBlogPath = path => `/writing${path}`\n\nconst filterPostsByTag = (posts, tag) => _.filter(posts, post => _.includes(post.node.frontmatter.tags, tag))\n\nconst BlogPosts = props => {\n let posts = props.data.allMarkdownRemark.edges\n\n const tagQuery = qs.parse(props.location.search)\n const tag = tagQuery.tag\n if (tag) {\n posts = filterPostsByTag(posts, tag)\n }\n\n const postPreviews = _.map(posts, ({node}, i) => {\n const {\n frontmatter: {title, path, featuredImage, short, date, tags, locations},\n } = node\n return (\n \n \n \n \n {/* Spacing Between Previews */}\n \n \n )\n })\n\n return (\n \n {postPreviews}\n \n )\n}\n\nBlogPosts.propTypes = {\n location: shape({\n pathname: string.isRequired,\n }),\n allMarkdownRemark: shape({\n edges: arrayOf(\n shape({\n node: shape({\n frontmatter: shape({\n title: string.isRequired,\n path: string.isRequired,\n date: string.isRequired,\n tags: arrayOf(string),\n locations: arrayOf(string),\n }).isRequired,\n }).isRequired,\n })\n ).isRequired,\n }),\n}\n\nexport default BlogPosts\n\nexport const pageQuery = graphql`\n query BlogPosts {\n allMarkdownRemark(\n sort: {order: DESC, fields: [frontmatter___date]}\n filter: {fields: {type: {eq: \"writing\"}}}\n ) {\n edges {\n node {\n id\n excerpt(pruneLength: 250)\n frontmatter {\n path\n title\n short\n date(formatString: \"YYYY-MM-DD\")\n tags\n locations\n featuredImage {\n childImageSharp {\n ...featuredImageTiny\n }\n }\n }\n headings {\n value\n }\n }\n }\n }\n }\n`\n","import React from 'react'\nimport {any, string} from 'prop-types'\nimport Img from 'gatsby-image'\nimport glamorous from 'glamorous'\n\nimport {getThemeStyles} from '../css/themes'\n\nconst ImageWrapper = glamorous.span({\n display: 'block',\n marginTop: '2rem',\n marginBottom: '2rem',\n})\nconst Caption = glamorous.i(\n {\n marginTop: '0.25rem',\n marginBottom: '0.25rem',\n fontSize: '0.9rem',\n fontWeight: 'normal',\n },\n getThemeStyles('i')\n)\nconst Image = ({fluid, fixed, caption}) => (\n \n \n {caption && {caption}}\n \n)\nImage.propTypes = {\n fixed: any,\n fluid: any,\n caption: string,\n}\n\nexport default Image\n","import React from 'react'\nimport glamorous from 'glamorous'\nimport {colors, hexToRgba} from '../css/themes'\n\nconst Hover = glamorous.div({\n position: 'relative',\n paddingLeft: '1rem',\n paddingRight: '1rem',\n margin: '0.5rem',\n '&:hover .hover-backdrop': {\n cursor: 'pointer',\n opacity: 0.18,\n transform: 'none',\n },\n})\n\nconst HoverBackdrop = glamorous.div({\n position: 'absolute',\n pointerEvents: 'none',\n top: '-4px',\n bottom: '-4px',\n left: '-4px',\n right: '-4px',\n background: colors.orange,\n boxShadow: `0 0 40px 3px ${hexToRgba(colors.black, 0.4)}`,\n borderRadius: '8px',\n transition: 'all 320ms ease-out',\n transform: 'scale(1.03)',\n opacity: 0,\n})\n\nconst CardHover = ({style, children}) => (\n \n \n {children}\n \n)\n\nexport default CardHover\n","import _ from 'lodash'\nimport React from 'react'\nimport {string, arrayOf} from 'prop-types'\nimport {Link} from 'gatsby'\nimport glamorous from 'glamorous'\n\nimport {colors} from '../css/themes'\nimport {Span, Date, LinkStyled} from './common'\n\nconst styleIcon = {\n display: 'inline-block',\n marginRight: '0.5rem',\n}\n\nconst styleIconItem = {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n marginRight: '2rem',\n color: colors.darkGrey,\n}\n\nconst styleIconRow = {\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row',\n marginBottom: '0.75rem',\n}\n\nconst styleDelimeter = {\n marginLeft: '0.2rem',\n marginRight: '0.2rem',\n}\n\nconst IconRow = glamorous.div(styleIconRow)\nconst IconItem = glamorous.div(styleIconItem)\n\nconst joinLinks = (strings, renderLinks, queryPrefix, queryKey, delimeter) =>\n _.chain(strings)\n .map((string, i) => (\n \n {renderLinks ? (\n \n {string}{' '}\n \n ) : (\n {string}\n )}\n \n ))\n .reduce((prev, curr, i) => [\n prev,\n \n {`${delimeter}`}\n ,\n curr,\n ])\n .value()\n\nconst PostMeta = ({queryPrefix, date, tags, locations, renderLinks}) => (\n \n \n {/* */}\n \n \n {tags &&\n tags.length && (\n \n {/* */}\n {joinLinks(tags, renderLinks, queryPrefix, 'tag', '·')}\n \n )}\n {locations &&\n locations.length && (\n \n {/* */}\n {locations.join(' · ')}\n \n )}\n \n)\n\nPostMeta.propTypes = {\n date: string.isRequired,\n tags: arrayOf(string),\n locations: arrayOf(string),\n queryPrefix: string.isRequired,\n}\n\nexport default PostMeta\n","import _ from 'lodash'\nimport React from 'react'\nimport {string, arrayOf} from 'prop-types'\nimport {Link} from 'gatsby'\nimport glamorous from 'glamorous'\n\nimport {H4, P, LinkStyled} from './common'\nimport Image from '../components/image'\nimport PostMeta from './post-meta'\n\nconst styleTitle = {\n marginBottom: '0.5rem',\n}\nconst styleShort = {\n marginTop: '0.5rem',\n lineHeight: '1.3rem',\n}\n\nconst PreviewImageWrapper = glamorous.div({\n display: 'flex',\n flexDirection: 'row',\n})\n\nconst PostWrapper = glamorous.div(\n {\n marginLeft: '2rem',\n },\n ({featuredImage}) => {\n const hasPreviewImage = _.has(featuredImage, 'childImageSharp.fixed')\n if (!hasPreviewImage) return {marginLeft: '0rem'}\n }\n)\n\nconst TitleWrapper = glamorous.div({\n marginTop: '0.5rem',\n marginBottom: '1.5rem',\n})\n\nconst PostPreview = ({\n path,\n featuredImage,\n title,\n date,\n tags,\n locations,\n short,\n renderLinks,\n queryPrefix,\n}) => {\n const hasPreviewImage = _.has(featuredImage, 'childImageSharp.fixed')\n return (\n \n \n \n {hasPreviewImage && }\n \n \n

{title}

\n \n
\n {short &&

{short}

}\n
\n
\n \n \n )\n}\n\nPostPreview.propTypes = {\n path: string.isRequired,\n title: string.isRequired,\n date: string.isRequired,\n tags: arrayOf(string),\n locations: arrayOf(string),\n short: string,\n queryPrefix: string.isRequired,\n}\n\nexport default PostPreview\n"],"sourceRoot":""}