{"version":3,"sources":["webpack://switch-website/./src/helpers/hooks/usePagination.js","webpack://switch-website/./src/components/about/careers/EmployeeTestimonies.js","webpack://switch-website/./src/components/about/careers/HeroHeader.js","webpack://switch-website/./src/components/about/careers/Perks.js","webpack://switch-website/./src/images/about/careers/switch-way-bg.png","webpack://switch-website/./src/components/about/careers/SwitchWay.js","webpack://switch-website/./src/components/about/careers/WhatWeHaveBeenDoing.js","webpack://switch-website/./src/pages/about/careers/index.js","webpack://switch-website/./src/images/product/analytics/noise.png"],"names":["dataset","currentPage","elementsPerPage","initialElement","finalElement","maxIteration","Math","min","length","slice","StyledEmployeeTestimonies","colors","ContentContainer","breakpoints","StyledTestimony","H2","PMono","Testimony","title","content","photo","employeeName","employeeTitle","as","className","P","G","image","getImage","alt","imgStyle","borderRadius","data","useState","setCurrentPage","paginatedTestimonies","usePagination","Trans","map","testimony","idx","key","employee_name","employee_title","employee_photo","localFile","onClick","disabled","invertedDirection","ceil","heroHeaderCss","css","Hero","imageElement","useStaticQuery","hero","StyledPerks","P2","fontWeights","H1","h1BaseStyle","StyledNoiseBackground","NoiseBackgroundImage","H4","AnimatedBackground","StyledSwitchWay","SwitchWayBg","StyledSwitchValue","SwitchValue","t","useTranslation","formattedSwitchValues","value","mdBreakpoint","parseInt","StyledWhatWeHaveBeenDoing","StyledInstagramCard","InstagramCard","post","innerRef","ref","defaultProps","StyledMobileIGPosts","MobileIGPosts","posts","StyledDesktopIGPosts","DesktopIGPosts","igCardRef","useRef","setCss","imgCardHeight","current","offsetHeight","useEffect","height","instagramPosts","InstagramPostsElement","useContext","ScreenSizeContext","width","allStrapiInstagramPost","nodes","ContrastContext","setContrast","normalizedEmployeeTestimonies","allStrapiEmployeeTestimony","edges","node","SEO","ogTitle","description"],"mappings":"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","file":"component---src-pages-about-careers-index-js-d92d5e45a7efc073c205.js","sourcesContent":["/**\n * Get a subset of the data list, based on the page number\n *\n * It can handle partial page navigation, such as showing a page of 10 elements, but only adding new 5 elements on the\n * next page (and removing 5 elements from the previous page). This is useful for navigating with arrows instead of page\n * numbers, because you can show several elements in the same page, but only moving one element at a time instead of the\n * whole page.\n *\n * @param {Object[]} dataset - the data to paginate\n * @param {number} currentPage - the current page to show\n * @param {number} elementsPerPage - the number of elements per page to show\n * @returns {Object[]} list of the paginated (subset of) items\n */\nexport default (dataset, currentPage, elementsPerPage) => {\n // Get the first and last elements to display based on the page\n const initialElement = elementsPerPage * (currentPage - 1);\n const finalElement = initialElement + elementsPerPage;\n\n // If the last element is higher than the total number of elements, it means we are in the last page, so we only\n // display until the last item.\n const maxIteration = Math.min(finalElement, dataset.length);\n\n // Return the subset of items related to the specified page\n return dataset.slice(initialElement, maxIteration);\n};\n","import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {GatsbyImage, getImage} from 'gatsby-plugin-image';\n\nimport styled from '@emotion/styled';\nimport {Trans} from 'gatsby-plugin-react-i18next';\n\nimport {breakpoints, colors, ContentContainer} from '../../../styles/theme';\nimport {BlockQuote, H2, P, PMono} from '../../common/Typography';\nimport usePagination from '../../../helpers/hooks/usePagination';\nimport {ArrowCircleButton} from '../../common/Clickables';\n\n\n/*\n * Private Elements\n */\nconst StyledEmployeeTestimonies = styled.div`\n background-color: ${colors.black};\n clip-path: polygon(0 100px, 100% 0, 100% 100%, 0 100%);\n margin-top: -100px;\n margin-bottom: -1px;\n padding-top: 150px;\n padding-bottom: 80px;\n color: ${colors.white};\n\n ${ContentContainer} {\n padding-right: 45px;\n padding-left: 45px;\n\n .story-to-tell {\n margin-bottom: 50px;\n }\n\n .navigation {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n\n .arrow {\n margin-right: 30px;\n }\n }\n }\n\n @media (min-width: ${breakpoints.lg}) {\n clip-path: polygon(0 150px, 100% 0, 100% 100%, 0 100%);\n padding-top: 250px;\n\n ${ContentContainer} {\n .higher {\n margin-top: -75px;\n }\n }\n }\n`;\n\nconst StyledTestimony = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 15px 0;\n margin-bottom: 60px;\n\n ${H2} {\n margin-bottom: 50px;\n }\n\n .blockquote {\n margin-left: -20px;\n margin-bottom: 15px;\n }\n\n .signature {\n display: flex;\n flex-direction: row;\n align-items: center;\n\n .gatsby-image-wrapper {\n width: 45px;\n height: 45px;\n border-radius: 50%;\n margin-bottom: 20px;\n }\n\n .employee-data {\n display: flex;\n flex-direction: column;\n\n ${PMono} {\n margin-left: 25px;\n margin-bottom: 0;\n\n &.employee-name {\n color: ${colors.darkPurple};\n }\n }\n }\n }\n\n @media (min-width: ${breakpoints.lg}) {\n padding: 15px 35px;\n\n .blockquote {\n margin-left: 0;\n }\n\n .signature {\n .gatsby-image-wrapper {\n width: 70px;\n height: 70px;\n margin-left: 35px;\n margin-bottom: 0;\n }\n\n .employee-data {\n flex-direction: row;\n }\n }\n }\n`;\n\nconst Testimony = ({title, content, photo, employeeName, employeeTitle}) => (\n \n

{title}

\n\n

{content}

\n\n
\n \n
\n {employeeName}\n {employeeTitle}\n
\n
\n
\n);\n\nTestimony.propTypes = {\n title: PropTypes.string.isRequired,\n content: PropTypes.string.isRequired,\n photo: PropTypes.object.isRequired,\n employeeName: PropTypes.string.isRequired,\n employeeTitle: PropTypes.string.isRequired,\n};\n\n\n/*\n * Public Elements\n */\nconst EmployeeTestimonies = ({data}) => {\n const [currentPage, setCurrentPage] = useState(1);\n const paginatedTestimonies = usePagination(data, currentPage, 2);\n\n return (\n \n \n

It's your story to tell.

\n\n
\n {paginatedTestimonies.map((testimony, idx) => (\n
\n \n
\n ))}\n
\n\n
\n setCurrentPage(currentPage - 1)}\n className=\"arrow\"\n disabled={currentPage === 1}\n invertedDirection\n />\n setCurrentPage(currentPage + 1)}\n className=\"arrow\"\n disabled={currentPage === Math.ceil(data.length / 2)}\n />\n
\n
\n
\n );\n};\n\nEmployeeTestimonies.propTypes = {\n data: PropTypes.arrayOf(PropTypes.object.isRequired).isRequired,\n};\n\n\n/*\n * Exports\n */\nexport default EmployeeTestimonies;\n","/** @jsx jsx */\nimport React from 'react';\nimport {graphql, useStaticQuery} from 'gatsby';\n\nimport {css, jsx} from '@emotion/react';\nimport {BgImage} from 'gbimage-bridge';\nimport {getImage} from 'gatsby-plugin-image';\nimport {Trans} from 'gatsby-plugin-react-i18next';\n\nimport {Hero} from '../../common/Typography';\nimport {colors} from '../../../styles/theme';\n\n\n/*\n * Constants\n */\nconst imageQuery = graphql`\n query {\n hero: file(relativePath: { eq: \"about/careers/hero.jpg\" }) {\n childImageSharp {\n gatsbyImageData(\n placeholder: BLURRED\n width: 1400\n quality: 95\n )\n }\n }\n }\n`;\n\n\n/*\n * Private Elements\n */\nconst heroHeaderCss = css`\n height: 100vh;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n color: ${colors.white};\n\n ${Hero} {\n max-width: 750px;\n text-align: center;\n }\n`;\n\n\n/*\n * Public Elements\n */\nconst HeroHeader = () => {\n const imageElement = useStaticQuery(imageQuery);\n\n return (\n \n Do you think you have what it takes?\n \n );\n};\n\n\n/*\n * Exports\n */\nexport default HeroHeader;\n","import React from 'react';\n\nimport styled from '@emotion/styled';\nimport {Trans} from 'gatsby-plugin-react-i18next';\n\nimport {breakpoints, colors, ContentContainer, fontWeights} from '../../../styles/theme';\nimport {H1, H4, P2, PMono, h1BaseStyle, P} from '../../common/Typography';\nimport NoiseBackgroundImage from '../../../images/product/analytics/noise.png';\nimport AnimatedBackground from '../../common/AnimatedBackground';\n\n\n/*\n * Private Elements\n */\nconst StyledPerks = styled.div`\n background-color: ${colors.black};\n color: ${colors.white};\n\n ${ContentContainer} {\n padding: 0;\n\n .animated-background {\n padding: 20px;\n\n ${P2} {\n font-size: 12px;\n line-height: 15px;\n text-transform: uppercase;\n letter-spacing: 3px;\n font-weight: ${fontWeights.bold};\n margin-top: 30px;\n margin-bottom: 30px;\n }\n\n ${H1} {\n ${h1BaseStyle};\n margin-bottom: 100px;\n }\n }\n \n .perk {\n p {\n font-weight: ${fontWeights.regular};\n }\n }\n \n }\n\n @media (min-width: ${breakpoints.md}) {\n ${ContentContainer} {\n padding: 0;\n\n .animated-background {\n padding: 60px;\n }\n }\n }\n`;\n\nconst StyledNoiseBackground = styled.div`\n width: 100%;\n padding: 50px 15px 30px;\n background: repeat url(${NoiseBackgroundImage}), linear-gradient(45deg, #000000 0%, ${colors.darkPurple} 250%);\n\n .perk {\n padding: 10px;\n\n ${H4} {\n margin-bottom: 20px;\n }\n\n ${PMono} {\n margin-bottom: 25px;\n }\n }\n\n @media (min-width: ${breakpoints.md}) {\n margin: -30px 0;\n padding: 80px 70px 40px;\n\n .perk {\n padding: 25px;\n }\n }\n`;\n\n\n/*\n * Public Elements\n */\nconst Perks = () => (\n \n \n
\n
\n \n Work at Switch\n

Perks you'll have.

\n
\n
\n
\n \n
\n
\n

Healthy Choices.

\n

\n \n Fresh fruit, healthy snacks, and warm soup always available at the office.\n Partnerships with gyms, surf schools, pharmacies, and nutrition supplement\n shops.\n \n

\n
\n
\n

Medical Care.

\n

\n \n Free health insurance program with dental plan included. Coverage in most\n clinics and hospitals.\n \n

\n
\n
\n

Switch Weekend.

\n

\n \n Yearly retreats in different locations in Portugal. Time off from work for\n leisure with the team.\n \n

\n
\n
\n

Tune In.

\n

\n \n Netflix and Spotify Premium accounts. No more ads in your playlists and never\n missing the show everyone’s talking about.\n \n

\n
\n
\n

Learning Resources.

\n

\n \n Free online programming courses for newcomers, and access to more than 200 books\n on the Switch Library.\n \n

\n
\n
\n

Chilling Outside.

\n

\n \n Regular hangouts at the park. Parque da Cidade in Porto or Parque Urbano do\n Jamor in Lisbon are 2 minutes away by foot from the office.\n \n

\n
\n
\n
\n
\n
\n
\n
\n);\n\n\n/*\n * Exports\n */\nexport default Perks;\n","export default __webpack_public_path__ + \"static/switch-way-bg-bdd0c362487b9b6021cb9d17217d8ac1.png\";","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled from '@emotion/styled';\nimport {Trans, useTranslation} from 'gatsby-plugin-react-i18next';\n\nimport {breakpoints, colors, ContentContainer} from '../../../styles/theme';\nimport SwitchWayBg from '../../../images/about/careers/switch-way-bg.png';\nimport {H1, Highlighted, P, PMono} from '../../common/Typography';\n\n\n/*\n * Private Elements\n */\nconst StyledSwitchWay = styled.div`\n background-color: ${colors.white};\n\n ${ContentContainer} {\n padding-top: 80px;\n padding-bottom: 100px;\n }\n\n @media (min-width: ${breakpoints.md}) {\n background: ${colors.white} url(${SwitchWayBg}) scroll no-repeat right 100px;\n background-size: contain;\n\n ${ContentContainer} {\n padding: 100px 80px 80px;\n }\n }\n`;\n\nconst StyledSwitchValue = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n margin-top: 50px;\n padding-right: 25px;\n\n .idx {\n line-height: 44px;\n color: ${colors.darkPurple};\n margin-bottom: 10px;\n margin-right: 5px;\n }\n\n .title {\n font-size: 26px;\n line-height: 36px;\n }\n\n ${P} {\n color: ${colors.black};\n }\n`;\n\nconst SwitchValue = ({idx, title, content}) => (\n \n \n \n {idx}\n .\n \n {title}\n \n\n

{content}

\n
\n);\n\nSwitchValue.propTypes = {\n idx: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n content: PropTypes.string.isRequired,\n};\n\n\n/*\n * Public Elements\n */\nconst SwitchWay = () => {\n const {t} = useTranslation();\n\n const switchValues = [\n {\n idx: '01',\n title: t('Simplicity'),\n content: t(\n 'Switch stands for simplicity — it is the shortest path to a solution. Because we don’t try to overfit,'\n + ' our product is adaptable to unpredictable future challenges.',\n ),\n },\n {\n idx: '02',\n title: t('Selflessness'),\n content: t(\n 'Cognitive diversity is always welcome, but when debating internally, we make sure to leave our egos '\n + 'outside. The idea that best serves Switch’s interests will always win.',\n ),\n },\n {\n idx: '03',\n title: t('Ownership'),\n content: t(\n 'It’s never not our problem: we proactively approach challenges on our own. Here’s the catch though: '\n + '\"with great power comes great responsibility\".',\n ),\n },\n {\n idx: '04',\n title: t('Greatness'),\n content: t(\n 'We don\\'t just deliver, we make sure we exceed ourselves while doing so. We understand that going the '\n + 'extra mile leads to a positive mental attitude and builds loyalty around us.',\n ),\n },\n {\n idx: '05',\n title: t('Grit'),\n content: t(\n 'We tirelessly work our way through challenges, failures, and adversity to achieve set goals. We do '\n + 'this because we understand that perseverance and passion — not intelligence — are the route for '\n + 'success.',\n ),\n },\n {\n idx: '06',\n title: t('Communication'),\n content: t(\n 'We talk clearly, respectfully and honestly. We treasure transparency over BS, so make things easy for '\n + 'everyone and just speak your mind.',\n ),\n },\n {\n idx: '07',\n title: t('Focus'),\n content: t(\n 'We mindfully choose continuous improvement over delayed perfection. This means we pragmatically '\n + 'prioritize tasks for maximum short-term output.',\n ),\n },\n ];\n\n const formattedSwitchValues = switchValues.map(value => (\n
\n \n
\n ));\n\n return (\n \n \n

The Switch Way

\n\n
\n {formattedSwitchValues}\n
\n
\n
\n );\n};\n\n\n/*\n * Exports\n */\nexport default SwitchWay;\n","/** @jsx jsx */\nimport React, {useContext, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {graphql, useStaticQuery} from 'gatsby';\nimport {GatsbyImage, getImage} from 'gatsby-plugin-image';\n\nimport {jsx} from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {Trans} from 'gatsby-plugin-react-i18next';\n\nimport {ScreenSizeContext} from '../../../helpers/context';\nimport {breakpoints, colors, ContentContainer} from '../../../styles/theme';\nimport {Hero, Highlighted} from '../../common/Typography';\n\n\n/*\n * Constants\n */\nconst mdBreakpoint = parseInt(breakpoints.md.replace('px', ''), 10);\nexport const IGSlugsQuery = graphql`\n query {\n allStrapiInstagramPost(limit: 8, sort: {fields: createdAt, order: DESC}) {\n nodes {\n image {\n localFile {\n childImageSharp {\n gatsbyImageData(\n placeholder: BLURRED\n width: 350\n )\n }\n }\n }\n }\n }\n }\n`;\n\n\n\n/*\n * Private Elements\n */\nconst StyledWhatWeHaveBeenDoing = styled.div`\n overflow-x: hidden;\n padding-bottom: 20px;\n\n ${ContentContainer} {\n ${Hero} {\n &.title {\n margin: 100px auto 50px;\n width: fit-content;\n text-align: center;\n }\n }\n }\n\n @media (min-width: ${breakpoints.md}) {\n ${ContentContainer} {\n ${Hero} {\n &.title {\n margin: 180px auto 120px;\n }\n }\n }\n }\n`;\n\nconst StyledInstagramCard = styled.div`\n box-shadow: -6px 12px 15px 0 ${colors.shadowGrey};\n`;\n\nconst InstagramCard = ({post, innerRef = null}) => (\n \n \n \n);\n\nInstagramCard.propTypes = {\n post: PropTypes.object.isRequired,\n innerRef: PropTypes.object,\n};\n\nInstagramCard.defaultProps = {\n innerRef: null,\n};\n\nconst StyledMobileIGPosts = styled.div`\n display: flex;\n flex-direction: column;\n\n .column {\n display: flex;\n flex-direction: row;\n justify-content: center;\n flex-grow: 1;\n \n &.middle {\n width: calc(100% + 50px);\n margin-left: -25px;\n\n .posts {\n display: flex;\n flex-direction: row;\n width: 125%;\n flex-shrink: 0;\n\n .instagram-card {\n width: 50%;\n }\n }\n }\n\n .instagram-card {\n margin: 10px 5px;\n flex-basis: 0;\n flex-grow: 1;\n }\n }\n`;\n\nconst MobileIGPosts = ({posts}) => (\n \n
\n \n \n
\n
\n
\n \n \n \n
\n
\n
\n \n \n
\n
\n);\n\nMobileIGPosts.propTypes = {\n posts: PropTypes.arrayOf(PropTypes.object.isRequired).isRequired,\n};\n\nconst StyledDesktopIGPosts = styled.div`\n display: flex;\n flex-direction: row;\n padding-left: 25px;\n padding-right: 25px;\n\n .column {\n display: flex;\n flex-direction: column;\n margin: 0 5px 0;\n flex-basis: 0;\n flex-grow: 1;\n\n .instagram-card,\n .spacer {\n margin-bottom: 15px;\n }\n }\n\n @media (min-width: ${breakpoints.lg}) {\n padding-left: 65px;\n padding-right: 65px;\n\n .column {\n margin: 0 10px 0;\n\n .instagram-card,\n .spacer {\n margin-bottom: 30px;\n }\n }\n }\n`;\n\nconst DesktopIGPosts = ({posts}) => {\n const igCardRef = useRef(null);\n const [css, setCss] = useState({});\n\n const imgCardHeight = igCardRef.current?.offsetHeight;\n useEffect(() => {\n setCss({\n // eslint-disable-next-line i18next/no-literal-string\n '.spacer': {\n height: `${igCardRef.current.offsetHeight / 2}px`,\n },\n });\n }, [imgCardHeight]);\n\n return (\n \n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n \n );\n};\n\nDesktopIGPosts.propTypes = {\n posts: PropTypes.arrayOf(PropTypes.object.isRequired).isRequired,\n};\n\n\n/*\n * Public Elements\n */\nconst WhatWeHaveBeenDoing = () => {\n const instagramPosts = useStaticQuery(IGSlugsQuery);\n const screenSize = useContext(ScreenSizeContext);\n\n const InstagramPostsElement = screenSize.width < mdBreakpoint ? MobileIGPosts : DesktopIGPosts;\n\n return (\n \n \n What we've been doing 👋🏼:\n\n \n \n \n );\n};\n\n\n/*\n * Exports\n */\nexport default WhatWeHaveBeenDoing;\n","import React, {useContext} from 'react';\nimport PropTypes from 'prop-types';\nimport {graphql} from 'gatsby';\n\nimport {useTranslation} from 'gatsby-plugin-react-i18next';\n\nimport {ContrastContext} from '../../../helpers/context';\nimport SEO from '../../../components/common/SEO';\nimport EmployeeTestimonies from '../../../components/about/careers/EmployeeTestimonies';\nimport HeroHeader from '../../../components/about/careers/HeroHeader';\nimport Perks from '../../../components/about/careers/Perks';\nimport SwitchWay from '../../../components/about/careers/SwitchWay';\nimport WhatWeHaveBeenDoing from '../../../components/about/careers/WhatWeHaveBeenDoing';\n\n\n/*\n * Public Elements\n */\nconst CareersPage = ({data}) => {\n const setContrast = useContext(ContrastContext);\n setContrast(false);\n const {t} = useTranslation();\n\n const normalizedEmployeeTestimonies = data.allStrapiEmployeeTestimony.edges.map(testimony => testimony.node);\n\n return (\n <>\n \n\n \n\n \n\n {normalizedEmployeeTestimonies.length > 0 && (\n \n )}\n\n \n\n \n \n );\n};\n\nCareersPage.propTypes = {\n data: PropTypes.object.isRequired,\n};\n\n\n/*\n * Exports\n */\nexport default CareersPage;\nexport const query = graphql`\n query($language: String!) {\n allStrapiEmployeeTestimony(filter: {language: {eq: $language}}) {\n edges {\n node {\n title\n content\n employee_name\n employee_title\n employee_photo {\n localFile {\n childImageSharp {\n gatsbyImageData(\n placeholder: BLURRED\n layout: FIXED\n width: 70\n )\n }\n }\n }\n }\n }\n }\n }\n`;\n","export default \"data:image/png;base64,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\""],"sourceRoot":""}