-
Notifications
You must be signed in to change notification settings - Fork 0
/
component---src-pages-index-tsx-48a39a26f4f6ad3e1ba3.js.map
1 lines (1 loc) · 27.2 KB
/
component---src-pages-index-tsx-48a39a26f4f6ad3e1ba3.js.map
1
{"version":3,"sources":["webpack:///./src/component/image/idea.tsx","webpack:///./src/component/image/client/hiventy.tsx","webpack:///./src/component/image/client/ouisol.tsx","webpack:///./src/component/client-showcase.tsx","webpack:///./src/pages/index.tsx","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./.cache/public-page-renderer.js","webpack:///./.cache/public-page-renderer-prod.js","webpack:///./src/component/image/full-name-logo.tsx","webpack:///./src/component/ui/nav-item.tsx","webpack:///./src/component/navbar.tsx","webpack:///./src/component/ui/footer.tsx","webpack:///./src/component/image/letter-logo.tsx","webpack:///./src/component/layout.tsx","webpack:///./src/helper/slug.js","webpack:///./src/component/ui/rounded-img.tsx","webpack:///./src/component/blog-post-entry.tsx"],"names":["IdeaImage","_ref","alt","data","_2071893871","Object","core_browser_esm","rounded_img","fluid","file","childImageSharp","title","HiventyImage","_1190743934","gatsby_image_default","a","fixed","OuiSolImage","_938478466","Link","styled_base_browser_esm","OutboundLink","target","name","styles","ClientShowcase","className","href","hiventy_HiventyImage","ouisol_OuiSolImage","ContactButton","hsla","SkewBackground","Homepage","lastBlogPost","_2382495343","allMarkdownRemark","nodes","layout","container","Container","Row","Col","md","gatsby_browser_entry","to","idea_IdeaImage","blog_post_entry","date","frontmatter","excerpt","titleTag","client_showcase_ClientShowcase","loader","enqueue","React","createContext","m","module","exports","require","default","ProdPageRenderer","location","pageResources","createElement","InternalPageRenderer","assign","json","FullNameLogo","_4028588191","fadeIn","StyledNavItem","BaseNavItem","NavItem","children","otherProps","_objectWithoutPropertiesLoose","StyledNavbar","BaseNavbar","Navbar","_React$useState","isOpen","setIsOpen","expand","light","id","full_name_logo_FullNameLogo","NavbarToggler","onClick","Collapse","navbar","Nav","nav_item_NavItem","Footer","LetterLogo","_2462350619","Wrapper","Main","Layout","_ref$container","_1097489062","site","siteMetadata","Helmet","defer","lang","content","navbar_Navbar","react_default","Fragment","letter_logo_LetterLogo","gatsby_plugin_google_analytics","slugify","titleToSlug","replacement","remove","lower","titleToPath","RoundedImg","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_0__","BaseImg","Article","Excerpt","BlogPostEntry","_ref$titleTag","_emotion_core__WEBPACK_IMPORTED_MODULE_1__","gatsby__WEBPACK_IMPORTED_MODULE_3__","Date","toLocaleDateString"],"mappings":"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","file":"component---src-pages-index-tsx-48a39a26f4f6ad3e1ba3.js","sourcesContent":["import * as React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { RoundedImg } from \"../ui/rounded-img\";\n\nexport const query = graphql`\n query {\n file(relativePath: { eq: \"idea.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 800) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n`;\n\nexport interface IdeaImageProps {\n alt: string;\n}\n\nexport const IdeaImage: React.FC<IdeaImageProps> = ({ alt }) => {\n const data = useStaticQuery(query);\n return (\n <RoundedImg\n fluid={data.file.childImageSharp.fluid}\n alt={alt}\n title=\"Photo by Diego PH on Unsplash\"\n />\n );\n};\n","import * as React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport Img from \"gatsby-image\";\n\nexport const query = graphql`\n query {\n file(relativePath: { eq: \"client/hiventy.png\" }) {\n childImageSharp {\n fixed(width: 150) {\n ...GatsbyImageSharpFixed\n }\n }\n }\n }\n`;\n\nexport const HiventyImage: React.FC = () => {\n const data = useStaticQuery(query);\n return <Img fixed={data.file.childImageSharp.fixed} alt=\"Logo hiventy\" />;\n};\n","import * as React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport Img from \"gatsby-image\";\n\nexport const query = graphql`\n query {\n file(relativePath: { eq: \"client/ouisol.png\" }) {\n childImageSharp {\n fixed(width: 150) {\n ...GatsbyImageSharpFixed\n }\n }\n }\n }\n`;\n\nexport const OuiSolImage: React.FC = () => {\n const data = useStaticQuery(query);\n return <Img fixed={data.file.childImageSharp.fixed} alt=\"Logo OuiSol\" />;\n};\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { OutboundLink } from \"gatsby-plugin-google-analytics\";\n\nimport { HiventyImage } from \"./image/client/hiventy\";\nimport { OuiSolImage } from \"./image/client/ouisol\";\n\nconst Link = styled(OutboundLink)`\n border: 0;\n &:hover {\n border: 0;\n }\n`;\n\nexport const ClientShowcase: React.FC = () => (\n <div className=\"d-flex flex-column flex-md-row align-items-center justify-content-center justify-content-md-around\">\n <Link\n href=\"https://www.hiventy.com\"\n target=\"_blank\"\n className=\"mb-3 mb-md-0\"\n >\n <HiventyImage />\n </Link>\n <Link href=\"https://ouisol.com\" target=\"_blank\">\n <OuiSolImage />\n </Link>\n </div>\n);\n","import React from \"react\";\nimport { Row, Col, Container } from \"reactstrap\";\nimport { graphql, useStaticQuery, Link } from \"gatsby\";\nimport styled from \"@emotion/styled\";\nimport { hsla } from \"polished\";\n\nimport { IdeaImage } from \"../component/image/idea\";\nimport { Layout } from \"../component/layout\";\nimport { BlogPostEntry } from \"../component/blog-post-entry\";\nimport { ClientShowcase } from \"../component/client-showcase\";\n\nconst ContactButton = styled.a`\n border-radius: 10px;\n box-shadow: 0 5px 15px ${hsla(0, 0, 0, 0.2)};\n display: flex;\n font-size: 18px;\n padding: 0.7rem 1rem;\n\n &:hover {\n color: #fff !important;\n }\n`;\n\nconst SkewBackground = styled.div`\n flex-shrink: 0;\n margin-top: 3rem;\n position: relative;\n\n &:before {\n content: \"\";\n background-color: hsla(232, 42%, 67%, 0.1);\n position: absolute;\n top: 460px;\n left: 0;\n width: 100%;\n height: 450px;\n transform: skewY(-8deg);\n z-index: -1;\n }\n`;\n\nexport const lastBlogPostquery = graphql`\n query {\n allMarkdownRemark(\n filter: { fileAbsolutePath: { regex: \"/blog/\" } }\n sort: { order: DESC, fields: frontmatter___date }\n limit: 1\n ) {\n nodes {\n excerpt(format: PLAIN, truncate: true, pruneLength: 500)\n frontmatter {\n date(formatString: \"MMMM DD, YYYY\")\n title\n }\n }\n }\n }\n`;\n\nexport const Homepage: React.FC = () => {\n const {\n allMarkdownRemark: {\n nodes: [lastBlogPost],\n },\n } = useStaticQuery(lastBlogPostquery);\n return (\n <Layout container={false}>\n <SkewBackground>\n <Container>\n <section className=\"mb-5\">\n <Row>\n <Col md={7} className=\"d-flex flex-column justify-content-center\">\n <h1>Concrétisez vos projets d’innovation web et mobile</h1>\n <p className=\"lead\">\n Vous avez une idée que vous souhaitez concrétiser ?\n Contactez-moi et construisons la ensemble !\n </p>\n <p className=\"text-secondary\">\n Je m'appelle <strong>Robin Bressan</strong>. Je suis\n développeur web freelance. <br />\n Je crée des applications web modernes avec le meilleur de\n l'open-source.\n </p>\n\n <div className=\"d-flex align-items-center justify-content-center justify-content-md-start flex-column flex-md-row mb-3 mb-md-0\">\n <ContactButton\n className=\"btn btn-primary d-flex mw-100 mb-3 mb-md-0\"\n href=\"mailto:contact@lecomtoisduweb.com?subject=Demande de contact\"\n target=\"_blank\"\n >\n Me contacter\n </ContactButton>\n <Link to=\"/work\" className=\"d-inline-block ml-sm-4\">\n En savoir plus sur mon travail\n </Link>\n </div>\n </Col>\n <Col md={5}>\n <IdeaImage alt=\"Illustration page d'accueil\" />\n </Col>\n </Row>\n </section>\n <section className=\"mb-5\">\n <h2>À la Une sur le blog</h2>\n <BlogPostEntry\n date={lastBlogPost.frontmatter.date}\n excerpt={lastBlogPost.excerpt}\n title={lastBlogPost.frontmatter.title}\n titleTag=\"h3\"\n />\n <Link to=\"/blog\">Voir le reste des articles</Link>\n </section>\n <section>\n <h2>Qui sont mes clients ?</h2>\n <ClientShowcase />\n </section>\n </Container>\n </SkewBackground>\n </Layout>\n );\n};\n\nexport default Homepage;\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n <React.Fragment>\n {finalData && render(finalData)}\n {!finalData && <div>Loading (StaticQuery)</div>}\n </React.Fragment>\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n <StaticQueryContext.Consumer>\n {staticQueryData => (\n <StaticQueryDataRenderer\n data={data}\n query={query}\n render={render || children}\n staticQueryData={staticQueryData}\n />\n )}\n </StaticQueryContext.Consumer>\n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n if (context[query] && context[query].data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location, pageResources }) => {\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","import * as React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport Img from \"gatsby-image\";\n\nexport const query = graphql`\n query {\n file(relativePath: { eq: \"logo-couleur.png\" }) {\n childImageSharp {\n # Specify the image processing specifications right in the query.\n # Makes it trivial to update as your page's design changes.\n fixed(height: 50) {\n ...GatsbyImageSharpFixed\n }\n }\n }\n }\n`;\n\nexport const FullNameLogo: React.FC = () => {\n const data = useStaticQuery(query);\n return (\n <Img\n fixed={data.file.childImageSharp.fixed}\n alt=\"Logo le comtois du web\"\n fadeIn={false}\n />\n );\n};\n","import styled from \"@emotion/styled\";\nimport * as React from \"react\";\nimport {\n NavItem as BaseNavItem,\n NavItemProps as BaseNavItemProps,\n NavLink,\n} from \"reactstrap\";\nimport { Link } from \"gatsby\";\n\nexport interface NavItemProps extends BaseNavItemProps {\n children: React.ReactChild;\n to: string;\n}\n\nconst StyledNavItem = styled(BaseNavItem)`\n margin: 0 0.5rem;\n padding: 0.1rem;\n`;\n\nexport const NavItem: React.FC<NavItemProps> = ({\n children,\n to,\n ...otherProps\n}) => (\n <StyledNavItem {...otherProps}>\n <Link to={to}>{children}</Link>\n </StyledNavItem>\n);\n","import * as React from \"react\";\nimport {\n Navbar as BaseNavbar,\n Container,\n Collapse,\n Nav,\n NavbarToggler,\n} from \"reactstrap\";\nimport { Link } from \"gatsby\";\nimport styled from \"@emotion/styled\";\n\nimport { FullNameLogo } from \"./image/full-name-logo\";\nimport { NavItem } from \"./ui/nav-item\";\n\nconst StyledNavbar = styled(BaseNavbar)`\n padding: 1rem 0;\n font-size: 18px;\n display: flex;\n align-items: center;\n\n & > .navbar-brand {\n flex: 1;\n }\n`;\n\nexport const Navbar: React.FC = () => {\n const [isOpen, setIsOpen] = React.useState(false);\n const toggle = () => setIsOpen(!isOpen);\n\n return (\n <StyledNavbar expand=\"lg\" light id=\"navbar\" className=\"px-2 px-sm-0\">\n <Container className=\"d-flex align-items-center\">\n <Link className=\"navbar-brand d-flex\" to=\"/\">\n <FullNameLogo />\n </Link>\n <NavbarToggler onClick={toggle} />\n <Collapse isOpen={isOpen} navbar>\n <Nav className=\"ml-auto\" navbar>\n <NavItem to=\"/work\">Travail</NavItem>\n <NavItem to=\"/blog\">Blog</NavItem>\n </Nav>\n </Collapse>\n </Container>\n </StyledNavbar>\n );\n};\n","import styled from \"@emotion/styled\";\n\nexport const Footer = styled.div`\n background-color: #131f66;\n bottom: 0;\n color: #fff;\n min-height: 200px;\n position: absolute;\n width: 100%;\n\n & a {\n border: 0;\n color: #fff;\n }\n`;\n","import * as React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport Img from \"gatsby-image\";\n\nexport const query = graphql`\n query {\n file(relativePath: { eq: \"logo-lettre-blanc.png\" }) {\n childImageSharp {\n # Specify the image processing specifications right in the query.\n # Makes it trivial to update as your page's design changes.\n fixed(height: 100) {\n ...GatsbyImageSharpFixed\n }\n }\n }\n }\n`;\n\nexport const LetterLogo: React.FC = () => {\n const data = useStaticQuery(query);\n return (\n <Img\n fixed={data.file.childImageSharp.fixed}\n alt=\"Logo le comtois du web\"\n fadeIn={false}\n />\n );\n};\n","import React from \"react\";\nimport { Row, Col, Container } from \"reactstrap\";\nimport styled from \"@emotion/styled\";\nimport { Helmet } from \"react-helmet\";\nimport { graphql, useStaticQuery, Link } from \"gatsby\";\nimport { OutboundLink } from \"gatsby-plugin-google-analytics\";\n\nimport { Navbar } from \"./navbar\";\nimport { Footer } from \"./ui/footer\";\nimport { LetterLogo } from \"./image/letter-logo\";\n\nexport const query = graphql`\n query {\n site {\n siteMetadata {\n title\n }\n }\n }\n`;\n\nconst Wrapper = styled.div`\n position: relative;\n min-height: 100vh;\n`;\n\nconst Main = styled.main`\n margin-top: 3rem;\n padding-bottom: calc(200px + 2rem);\n position: relative;\n`;\n\nexport interface LayoutProps {\n container?: boolean;\n children: React.ReactChild;\n}\n\nexport const Layout: React.FC<LayoutProps> = ({\n children,\n container = true,\n}) => {\n const {\n site: {\n siteMetadata: { title },\n },\n } = useStaticQuery(query);\n\n return (\n <Wrapper>\n <Helmet title={title} defer={false}>\n <html lang=\"fr\" />\n <meta\n name=\"description\"\n content=\"Concrétisez vos projets d’innovation web et mobile\"\n />\n <meta\n name=\"og:description\"\n content=\"Concrétisez vos projets d’innovation web et mobile\"\n />\n <meta name=\"og:url\" content=\"https://lecomtoisduweb.com\" />\n <meta name=\"og:title\" content={title} />\n </Helmet>\n <header>\n <Navbar />\n </header>\n <Main id=\"main\">\n {container && <Container>{children}</Container>}\n {!container && <>{children}</>}\n </Main>\n <Footer className=\"footer mt-auto py-5 position-relative position-md-absolute\">\n <div className=\"container\">\n <Row>\n <Col\n md={2}\n className=\"d-flex flex-column align-items-center align-items-md-start justify-content-center\"\n >\n <Link to=\"/\">\n <LetterLogo />\n </Link>\n </Col>\n <Col\n md={4}\n className=\"d-flex flex-column align-items-center align-items-md-start justify-content-center\"\n >\n <p>Robin Bressan</p>\n <ul className=\"list-unstyled text-center text-md-left\">\n <li>contact@lecomtoisduweb.com</li>\n </ul>\n </Col>\n <Col md={6}>\n <ul className=\"h-100 list-unstyled d-flex flex-row align-items-center justify-content-md-end justify-content-center\">\n <li className=\"mr-3\">\n <OutboundLink\n href=\"https://www.linkedin.com/in/robin-bressan-99854141\"\n target=\"_blank\"\n >\n LinkedIn\n </OutboundLink>\n </li>\n <li className=\"mr-3\">\n <OutboundLink\n href=\"https://www.twitter.com/RobinBressan\"\n target=\"_blank\"\n >\n Twitter\n </OutboundLink>\n </li>\n <li>\n <OutboundLink\n href=\"https://github.com/RobinBressan\"\n target=\"_blank\"\n >\n GitHub\n </OutboundLink>\n </li>\n </ul>\n </Col>\n </Row>\n </div>\n </Footer>\n </Wrapper>\n );\n};\n","const slugify = require(\"slugify\");\n\nfunction titleToPath(title) {\n return `/blog/${titleToSlug(title)}`;\n}\n\nfunction titleToSlug(title) {\n return slugify(title, {\n replacement: \"-\", // replace spaces with replacement\n remove: /[*+~.,()'\"!:@]/g, // regex to remove characters\n lower: true, // result in lower case\n });\n}\n\nmodule.exports = { titleToPath, titleToSlug };\n","import BaseImg from \"gatsby-image\";\nimport styled from \"@emotion/styled\";\n\nexport const RoundedImg = styled(BaseImg)`\n border-radius: 10px;\n`;\n","import React from \"react\";\nimport { Link } from \"gatsby\";\nimport styled from \"@emotion/styled\";\nimport { titleToPath } from \"../helper/slug\";\n\nconst Article = styled.article`\n margin-bottom: 2rem;\n &:last-child {\n margin-bottom: 0;\n }\n`;\n\nconst Excerpt = styled.main`\n font-style: italic;\n`;\n\ninterface BlogPageProps {\n date: Date;\n excerpt: string;\n title: string;\n titleTag?: string;\n}\n\nexport const BlogPostEntry: React.FC<BlogPageProps> = ({\n date,\n excerpt,\n title,\n titleTag = \"h2\",\n}) => {\n return (\n <Article>\n <header>\n {React.createElement(\n titleTag,\n { className: \"mb-2\" },\n <Link to={titleToPath(title)}>{title}</Link>\n )}\n </header>\n <Excerpt>\n {excerpt}... - <small>{new Date(date).toLocaleDateString()}</small>\n </Excerpt>\n </Article>\n );\n};\n"],"sourceRoot":""}