{"version":3,"sources":["webpack://taiharuru-press/./src/components/Flag.js","webpack://taiharuru-press/./src/components/icons/uk-flag.png","webpack://taiharuru-press/./src/components/icons/fr-flag.png","webpack://taiharuru-press/./src/components/TagList.js","webpack://taiharuru-press/./src/components/PostsListItem.js","webpack://taiharuru-press/./src/components/PostsList.js","webpack://taiharuru-press/./src/components/Pagination.js","webpack://taiharuru-press/./src/templates/blog-list-template.js"],"names":["FlagImage","styled","render","language","this","img","alt","src","className","React","ListContainer","TagListItemLink","TagListItem","TagList","tags","noLink","key","i","to","tag","PreviewContainer","Preview","PreviewCover","Date","PreviewContent","props","defaultLang","useSiteMetadata","coverImage","title","slug","excerpt","date","author","siteCover","fluid","useSiteImages","heroImg","aria-label","style","backgroundImage","posts","authorName","post","console","PaginationWrapper","PageBtn","PreviousBtn","NextBtn","Spacer","PageInfo","currentPage","nbPages","previousUrl","MainTitle","data","site","description","pageContext","location","subTitle","id"],"mappings":"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","file":"component---src-templates-blog-list-template-js-ea5c4b3c952825fe7741.js","sourcesContent":["import React from 'react'\nimport styled from 'styled-components'\nimport ukFlag from './icons/uk-flag.png'\nimport frFlag from './icons/fr-flag.png'\n\nconst FlagImage = styled.img`\n padding-right: 0.5rem;\n padding-bottom: 0.2rem;\n`\n\nclass Flag extends React.Component {\n render() {\n const { language } = this.props\n const img = language === 'en' ? ukFlag : frFlag\n const alt = language === 'en' ? 'english post' : 'post en francais'\n\n return \n }\n}\n\nexport default Flag\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAPASURBVDhPrZT7TxxVFMc/d/Y1wA60gEXwgSU1ViJiJSZqahpqm2jQNlRSHyhRa6wG2kTSpK3v2BptoyRorJi2IaLlF/qyoTU0sRAClDaKRqQ0qShElkJBdpd9z+7seGfQ+A9wkjvn3jnn3Pu93/PNFaY0lsiUf/2SmNATuqm4XYyPTRMOJ3C7nXbAMNLkF2STEw+RXAjjyvYSVDXmZhZwOBYx6HoKrWA5N4dmEZoXMflFi1m4YT2B4jtp2ncKny9IVpZKPK5TXfswlROXmb84RO5DFXQXP8CpYwOoqptoTOeWu4p4uUQn9/pfOJ7dgjJcupZIbz/qd8fZv7+aqk33EgpF5bkmQsivIqwZpviPWpNQIsnjm8p5S7tGocckZ8d2Bn6ZRLnUe5U9v+cSy9QI7H2Xmur7adxbJRHOEgrrSAikg0GIxQlHdK4vJNi5tZSNF9pQn6jC/WQV9fXfcrFvDCUm4fZ3DbPxkxEGVz2C75k6ykWAr1q3k6llkAyESM3NkwyG8OZnc2BdFsUnW1nW/CndvjQVFR/QNzBBTKJlzh8wdcM0o3raDOiWUEzTiEQWJ9Imd71njq5Zb3vbov/H/OGEXWfVW/uI0Z17TPObE5DhwVKcrTqLq/QiR44cDeGRsUQCQ6ITiiJzFhMVyafFq4SFeOEpFKtG98trzAdJ+YMYATmkTwcX7JGamSXpm7K9tTb8AdIyx47JPKvOqk/LzcVky1Ezs6cP0+0mlTSIRHWE1J1wyWEYhAd/InVjDueKfLwPVmDEJQrVIxEpqMLA5XJYgiNWuRZx4tzP5pU/YkQjCQqLNHY8Lwtm5zC+78JdV8vE1m3Mdxwnt6aG4o6j9tXDXd14VAfHnKu52j+CV+qytCQDh4uy95sPHGFqPETrkTpibe0kG17jHXMNpy/N8ljoCoHh31hx3z00/qhwvvMymxs246t/g1u7z/LZjTy+bjqMW3hQIpEYr7xey9i1j1l4cRuJM508V9ZIU8sZ8papiLSFRfIhuc3P1/i8uZ11lQe5/exJbpOkn5s4xJu7X0J3ulD2HXyaw4dqmVp5N9Ml5awaKaWz7bzcIFMOgWIRS8r2dpvJprfnV8nVq/y5YQvZPT/Q0L6btx/NQ8mYGmew4A4u7PqQso+GiYyNoWkSkXBgJPxMy3q/c7ntrbX1X5NiVpQUqwtr+bJjiKzRIcyZScTfwYDpTybxJBPkZMkOWofbJuQrEifqVFFk99Kyi5mpOF6vKmOLGrTABoOyefEkNxUVSipsBS6NLeHjCP8AHa/ubr0bcvgAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAKnRFWHRDcmVhdGlvbiBUaW1lAEZyIDkgTm92IDIwMDcgMTY6Mjc6MDYgKzAxMDAM3ZqdAAAAB3RJTUUH1wsJDxwzm8yD2gAAAAlwSFlzAAALEgAACxIB0t1+/AAAAARnQU1BAACxjwv8YQUAAAHdSURBVHjaxVO7btRAFD3zsNdxQIqQqBYk6ghR0tLxDXwCn8HX0BGlo6JCKAqCIlVCkCjQLgkgxbDB67XnlXPHRvsJGWs04/F53ZkxcNtNvXj5arG7uzf3KfJNIUSFh/dn2H9Qc564pABj0Z98hPt6CsVHyzoCrv6tl/bO3Xvzx0+fw0cveugp8ORRjWf7e1lAmi5naKuAHh2QSI4RpQbeHBzOrSfIBQ/vAzWRE8jcDQNCQk4g3TtinMtkEUHfIaxW0OIqa55rMTEYu3xXWm/r1AYZ5AYolqoJ6D4dU1jDCjFkMrskoFukKG2ys56EFEkyC38abE4+w1z/heU3K0Q/OUchp0zNxCCuU+sX37F69xZYt9CmQDHKUYDwQMPIONpo9A5o2gH9ZoPBjwKm5h78/glcs+ayylQtpyOjQFLS2fnovMHrDz9wftEixTACJKY1HFUmZbIk5GM4WkWyI/bg+AJD0CjKAmVhMlFPpchmaWUm4v8+HrElAu/Pmnz+RWmReGmU2QoYmRsRQHYdE2CbYMOaF51HOWNt1iJSoODFqeSd9YlAUe2g4+gVpjI0ZmoUspe/Lpfdqpk7cWH0QN0zVeOwqxnSjJtYVWi/fEO/DlDWZ2chX4W0vO1/EbgBHTnbxGOMU+UAAAAASUVORK5CYII=\"","import React, { Fragment } from 'react'\nimport { Link } from 'gatsby'\nimport styled from 'styled-components'\n\nconst ListContainer = styled.div`\n display: inline;\n color: var(--color-textSecondary);\n`\n\nconst TagListItemLink = styled(Link)`\n text-transform: uppercase;\n color: var(--color-textSecondary);\n\n &:not(:first-child) {\n margin-left: 0.3rem;\n }\n\n &:hover {\n border-bottom: 1px dotted var(--color-textSecondary);\n }\n &:before {\n content: '#';\n }\n`\n\nconst TagListItem = styled.span`\n text-transform: uppercase;\n color: var(--color-textSecondary);\n &:not(:first-child) {\n margin-left: 0.3rem;\n }\n &:before {\n content: '#';\n }\n`\n\nclass TagList extends React.Component {\n render() {\n const { tags, noLink } = this.props\n\n return (\n \n {tags.map((tag, i) => {\n return (\n \n {!noLink && (\n {tag}\n )}\n {noLink && {tag}}\n {i < tags.length - 1 ? ', ' : ''}\n \n )\n })}\n \n )\n }\n}\n\nexport default TagList\n","import React, { Fragment } from 'react';\nimport { Link } from 'gatsby';\nimport Flag from './Flag';\nimport TagList from './TagList';\nimport useSiteMetadata from '../hooks/use-site-config';\nimport useSiteImages from '../hooks/use-site-images';\nimport styled from 'styled-components';\nimport { Bull, ReadingTime } from './Commons';\n\n\nconst PreviewContainer = styled.aside`\nwidth: 20em;\nheight: 30em;\nmargin-bottom: 2em;\n@media (max-width: 780px) {\n width: 100%;\n margin-bottom: 1em;\n\n}\n`;\n\nconst Preview = styled.article`\n margin: 0px 2em 30px 2em;\n cursor: pointer;\n\n box-shadow: 0 0 0 0, 0 6px 12px rgba(0, 0, 0, 0.1);\n \n\n\n &:hover {\n box-shadow: 0 0 0 0, 0 6px 12px var(--color-dropDownShadow);\n transition: all 0.3s ease;\n transform: translate3D(0, -2px, 0);\n }\n\n\n`;\n\nconst PreviewCover = styled.div`\nheight: 30em;\n background: #c5d2d9 no-repeat 50%;\n background-size: cover;\n border-radius: 5px;\n\n\n \n position: relative;\n \n`;\n\nconst Date = styled.span`\ncolor: var(--color-textSecondary);\nfont-size: 0.9em;\n`;\n\nconst PreviewContent = styled.div`\n position: absolute;\n bottom: 0;\n padding: 20px;\n flex: 1 1 300px;\n background-color: var(--color-secondaryContentBackgroundTransparent);\n \n\n border-radius: 5px;\n @media (min-width: 780px) {\n &:first-child {\n margin-left: 0;\n }\n &:last-child {\n margin-right: 0;\n }\n }\n header {\n padding: 0 0 10px 0;\n }\n section {\n padding-bottom: 10px;\n }\n footer {\n font-size: 0.8em;\n }\n height: auto;\n`;\n\nconst PostsListItem = props => {\n // const { title, excerpt, slug, language, tags, timeToRead, coverImage } = props\n const { defaultLang } = useSiteMetadata();\n const {\n tags,\n coverImage,\n title,\n slug,\n language,\n excerpt,\n date,\n author\n } = props;\n const { siteCover } = useSiteMetadata();\n const { fluid } = useSiteImages(siteCover);\n const heroImg = (coverImage && coverImage.publicURL) || fluid.src;\n return (\n \n\n \n\n\n \n\n \n \n \n \n \n {defaultLang !== language && }\n {title}\n \n \n \n {excerpt}\n \n \n \n \n \n \n\n \n\n \n );\n};\nexport default PostsListItem;\n","import React, { Fragment } from 'react'\n\nimport PostsListItem from './PostsListItem'\nimport useSiteMetadata from '../hooks/use-site-config'\n\nconst PostsList = ({ posts }) => {\n const { defaultLang, authorName } = useSiteMetadata()\n\n return (\n \n {posts.map(post => {\n console.log(post.node);\n const props = {\n title: post.node.frontmatter.title,\n excerpt: post.node.excerpt,\n slug: post.node.frontmatter.slug,\n date: post.node.frontmatter.date,\n language: post.node.frontmatter.language || defaultLang,\n tags: post.node.frontmatter.tags || [],\n coverImage: post.node.frontmatter.cover,\n author: authorName,\n }\n return \n })}\n \n )\n}\nexport default PostsList\n","import React from 'react'\nimport { Link } from 'gatsby'\nimport styled from 'styled-components'\n\nconst PaginationWrapper = styled.nav`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n margin-top: 4em;\n justify-content: space-between;\n width: 80%;\n max-width: 770px;\n padding: 25px 0;\n margin: 0px auto;\n\n @media (max-width: 780px) {\n width: 90%;\n padding: 25px 0;\n }\n`\n\nconst PageBtn = styled(Link)`\n border-radius: 3px;\n background-color: var(--color-primary);\n border: 1px solid var(--color-primary);\n color: var(--color-white);\n padding: 8px 20px;\n min-width: 130px;\n\n &:hover {\n background-color: var(--color-white);\n color: var(--color-primary);\n border: 1px solid var(--color-primary);\n }\n\n @media (max-width: 564px) {\n margin-top: 10px;\n width: 100%;\n }\n`\n\nconst PreviousBtn = styled(PageBtn)`\n order: 1;\n @media (max-width: 564px) {\n order: 2;\n }\n`\n\nconst NextBtn = styled(PageBtn)`\n order: 3;\n`\n\nconst Spacer = styled.span`\n display: block;\n min-width: 130px;\n\n &.previous {\n order: 1;\n }\n\n &.next {\n order: 3;\n }\n\n @media (max-width: 564px) {\n display: none;\n\n &.previous {\n order: 2;\n }\n\n &.next {\n order: 3;\n }\n }\n`\n\n\nconst PageInfo = styled.span`\n order: 2;\n padding: 1em 0;\n @media (max-width: 564px) {\n order: 1;\n }\n`\n\nclass Pagination extends React.Component {\n render() {\n const { currentPage, nbPages } = this.props\n const previousUrl = (currentPage === 2 ? '/' : `/pages/${currentPage - 1}`) + \"#booklistSection\"\n\n return (\n \n {currentPage !== 1 ? (\n ‹ Newer Books\n ) : (\n \n )}\n\n \n Page {currentPage} of {nbPages}\n \n\n {currentPage < nbPages ? (\n Older Books ›\n ) : (\n \n )}\n \n )\n }\n}\n\nexport default Pagination\n","import React from 'react'\nimport { graphql } from 'gatsby'\n\nimport Layout from '../components/layout'\nimport Wrapper from '../components/Wrapper'\nimport Hero from '../components/Hero'\nimport PostsList from '../components/PostsList'\nimport Pagination from '../components/Pagination'\nimport styled from 'styled-components'\nimport SEO from '../components/SEO'\n\nconst MainTitle = styled.h1`\n line-height: 1.5;\n text-align: center;\n font-size: 3rem;\n padding-top: 40px;\n line-height: 1.2;\n border-top: 1px solid #ececec;\n margin-top: 44px;\n`\n\nclass BlogList extends React.Component {\n render() {\n const { title, description } = this.props.data.site.siteMetadata\n const posts = this.props.data.posts.edges\n const { pageContext } = this.props\n\n return (\n \n \n \n Publications\n \n \n \n \n\n \n \n )\n }\n}\n\nexport default BlogList\n\nexport const pageQuery = graphql`\n query blogListQuery($skip: Int!, $limit: Int!) {\n site {\n siteMetadata {\n title\n description\n }\n }\n posts: allMdx(\n sort: { fields: [frontmatter___date], order: DESC }\n filter: {\n fileAbsolutePath: { regex: \"//content/posts//\" }\n frontmatter: { published: { ne: false }, unlisted: { ne: true } }\n }\n limit: $limit\n skip: $skip\n ) {\n edges {\n node {\n excerpt\n timeToRead\n frontmatter {\n title\n tags\n language\n slug\n date\n cover {\n publicURL\n }\n }\n }\n }\n }\n }\n`\n"],"sourceRoot":""}
{excerpt}