{"version":3,"sources":["webpack:///./src/pages/partners.en.js","webpack:///./src/components/Pages/Partners/styled.js","webpack:///./src/components/Pages/Partners/helpers.js","webpack:///./src/components/Pages/Partners/index.js","webpack:///./src/components/global/Feature/styled.js","webpack:///./src/components/global/Feature/index.js"],"names":["PartnersComponent","data","rest","translatedData","useTranslated","pageContext","path","location","pathname","lng","langKey","hasContainer","showOurCustomers","showWantToKnowMore","metatags","strapiPartners","href","Background","styled","div","props","src","ContentContainer","FormContainer","RichText","Anchor","getText","values","firstName","lastName","businessEmail","companyName","phoneNumber","country","interest","trim","initialValues","Partners","useState","errors","setErrors","isLoading","setIsLoading","setValues","successFormSubmission","setSuccessFormSubmission","errorFormSubmission","setErrorFormSubmission","handleOnChange","name","value","prevValues","event","a","preventDefault","validatePartnersForm","foundErrors","isValid","sleep","postSlackMessage","error","background","publicURL","Container","narrow","padding","white","marginBottom","title","description","ButtonLink","label","button","primary","Feature","feature","hasBoxShadow","gutter","xs","id","md","text","dangerouslySetInnerHTML","__html","marked","onSubmit","sm","FormInput","form","placeholder","onChange","LastName","BusinessEmail","type","options","TextArea","Message","success_message","Button","width","submitButton","error_message","height","style","display","alt","FeaturesContainer","css","Icon","img","bold","center","margin","marginbottomonsmall","map","key","length","icon","sidenote","defaultProps"],"mappings":"8KAmCeA,UAxBW,SAAC,GAAuB,IAArBC,EAAoB,EAApBA,KAASC,EAAW,wBACrCC,EAAmBC,YAAcH,EAAMC,EAAKG,aAA5CF,eAER,OACI,kBAAC,IAAD,CACIG,KAAMJ,EAAKK,SAASC,SACpBC,IAAKP,EAAKG,YAAYK,QACtBC,cAAc,EACdC,kBAAkB,EAClBC,oBAAoB,EACpBC,SAAUX,EAAeY,eAAeD,SACxCE,KAAK,cAEL,kBAAC,IAAD,CAAUf,KAAME,EAAeY,eAAgBN,IAAKP,EAAKG,YAAYK,a,uJCtBpEO,EAAaC,IAAOC,IAAV,yEAAGD,CAAH,4KACD,SAAAE,GAAK,OAAIA,EAAMC,OAgBxBC,EAAmBJ,IAAOC,IAAV,+EAAGD,CAAH,oBAIhBK,EAAgBL,IAAOC,IAAV,4EAAGD,CAAH,mFAMbM,EAAWN,IAAOC,IAAV,uEAAGD,CAAH,gKAgBRO,EAASP,IAAOC,IAAV,qEAAGD,CAAH,kB,wHC7CZ,SAASQ,EAAQC,GACpB,MAAM,4CAGKA,EAAOC,UAHlB,kBAIUD,EAAOE,SAJjB,uBAKeF,EAAOG,cALtB,qBAMaH,EAAOI,YANpB,qBAOaJ,EAAOK,YAPpB,gBAQQL,EAAOM,QARf,OASFN,EAAOO,SAASC,OAAhB,cAAuCR,EAAOO,SAA9C,IAA4D,IAT1D,SCmBJ,IAAME,EAAgB,CAClBR,UAAW,GACXC,SAAU,GACVC,cAAe,GACfC,YAAa,GACbC,YAAa,GACbC,QAAS,GACTC,SAAU,IA+OCG,IA5OE,SAAC,GAAmB,IAAjBpC,EAAgB,EAAhBA,KAAMQ,EAAU,EAAVA,IACtB,EAA4B6B,mBAAS,IAA9BC,EAAP,KAAeC,EAAf,KACA,EAAkCF,oBAAS,GAApCG,EAAP,KAAkBC,EAAlB,KACA,EAA4BJ,mBAASF,GAA9BT,EAAP,KAAegB,EAAf,KAEA,EAA0DL,oBAAS,GAA5DM,EAAP,KAA8BC,EAA9B,KACA,EAAsDP,oBAAS,GAAxDQ,EAAP,KAA4BC,EAA5B,KAEA,SAASC,EAAeC,EAAMC,GAC1BP,GAAU,SAAAQ,GAAU,8BAAUA,IAAV,MAAuBF,GAAOC,EAA9B,OATQ,4CAYhC,WAAwCE,GAAxC,qBAAAC,EAAA,yDACID,EAAME,iBADV,EAE6CC,YAAqB5B,GAA9C6B,EAFpB,EAEYjB,OAAqBkB,EAFjC,EAEiCA,QAE7BjB,EAAUgB,IAENC,EANR,wBAOQf,GAAa,GAPrB,SAQcgB,YAAM,KARpB,uBAUgCC,YAAiBjC,EAAQC,IAVzD,kBAUgBiC,OAOJlB,GAAa,GACbK,GAAuB,KALvBL,GAAa,GACbC,EAAUP,GACVS,GAAyB,IAfrC,6CAZgC,sBAmChC,OACI,oCACI,kBAAC5B,EAAD,CAAYI,IAAKpB,EAAK4D,WAAWC,WAC7B,kBAACC,EAAA,EAAD,CAAWC,QAAM,EAACC,QAAQ,gBACtB,kBAAC,IAAD,CAAUC,OAAK,EAACC,aAAa,QACxBlE,EAAKmE,OAEV,kBAAC,IAAD,CAAWF,OAAK,EAACC,aAAa,QACzBlE,EAAKoE,aAEV,kBAACC,EAAA,EAAD,CACIC,MAAOtE,EAAKuE,OAAOD,MACnBvD,KAAMf,EAAKuE,OAAOxD,KAClBP,IAAKA,EACLgE,QAAS,MAIrB,kBAACV,EAAA,EAAD,CAAWC,QAAM,GACb,kBAACU,EAAA,EAAD,CAASzE,KAAMA,EAAK0E,QAASC,cAAc,KAE/C,kBAACb,EAAA,EAAD,CAAWC,QAAM,GACb,kBAAC1C,EAAD,KACI,kBAAC,MAAD,CAAKuD,OAAQ,IACT,kBAAC,MAAD,CAAKC,GAAI,IACL,kBAACrD,EAAD,CAAQsD,GAAG,iBAEf,kBAAC,MAAD,CAAKD,GAAI,GAAIE,GAAI,GACZ/E,EAAKgF,KACF,kBAACzD,EAAD,CACI0D,wBAAyB,CACrBC,OAAQC,IAAOnF,EAAKgF,SAG5B,MAGR,kBAAC,MAAD,CAAKH,GAAI,GAAIE,GAAI,GACb,kBAACzD,EAAD,KACI,0BAAM8D,SA1EF,6CA2EA,kBAAC,MAAD,CAAKR,OAAQ,IACT,kBAAC,MAAD,CAAKC,GAAI,GAAIQ,GAAI,GACb,kBAACC,EAAA,EAAD,CACIhB,MAAOtE,EAAKuF,KAAK5D,UAAU2C,MAC3BQ,GAAG,aACH9B,KAAK,YACLwC,YAAaxF,EAAKuF,KAAK5D,UAAU6D,YACjCC,SAAU1C,EACVE,MAAOvB,EAAOC,UACdgC,MAAOrB,EAAOX,aAGtB,kBAAC,MAAD,CAAKkD,GAAI,GAAIQ,GAAI,GACb,kBAACC,EAAA,EAAD,CACIhB,MAAOtE,EAAKuF,KAAKG,SAASpB,MAC1BQ,GAAG,YACH9B,KAAK,WACLwC,YAAaxF,EAAKuF,KAAKG,SAASF,YAChCC,SAAU1C,EACVY,MAAOrB,EAAOV,SACdqB,MAAOvB,EAAOE,aAI1B,kBAAC0D,EAAA,EAAD,CACIhB,MAAOtE,EAAKuF,KAAKI,cAAcrB,MAC/BQ,GAAG,iBACH9B,KAAK,gBACLwC,YAAaxF,EAAKuF,KAAKI,cAAcH,YACrCC,SAAU1C,EACVY,MAAOrB,EAAOT,cACdoB,MAAOvB,EAAOG,gBAElB,kBAACyD,EAAA,EAAD,CACIhB,MAAOtE,EAAKuF,KAAKzD,YAAYwC,MAC7BQ,GAAG,eACH9B,KAAK,cACLwC,YAAaxF,EAAKuF,KAAKzD,YAAY0D,YACnC7B,MAAOrB,EAAOR,YACd2D,SAAU1C,EACVE,MAAOvB,EAAOI,cAElB,kBAACwD,EAAA,EAAD,CACIhB,MAAOtE,EAAKuF,KAAKxD,YAAYuC,MAC7BQ,GAAG,eACH9B,KAAK,cACLwC,YAAaxF,EAAKuF,KAAKxD,YAAYyD,YACnCC,SAAU1C,EACVY,MAAOrB,EAAOP,YACdkB,MAAOvB,EAAOK,YACd6D,KAAK,WAET,kBAACN,EAAA,EAAD,CACIhB,MAAOtE,EAAKuF,KAAKvD,QAAQsC,MACzBkB,YAAaxF,EAAKuF,KAAKvD,QAAQwD,YAC/BvC,MAAOvB,EAAOM,QACdgB,KAAK,UACL8B,GAAG,UACHe,QAAS7F,EAAKuF,KAAKvD,QAAQN,OAC3BiC,MAAOrB,EAAON,QACdyD,SAAU1C,EACV6C,KAAK,SAET,kBAACE,EAAA,EAAD,CACIxB,MAAOtE,EAAKuF,KAAKtD,SAASqC,MAC1BQ,GAAG,WACH9B,KAAK,WACLwC,YAAaxF,EAAKuF,KAAKtD,SAASuD,YAChCC,SAAU1C,EACVE,MAAOvB,EAAOO,WAGjBU,EACG,kBAACoD,EAAA,EAAD,CAASH,KAAK,UAAUZ,KAAMhF,EAAKuF,KAAKS,kBAExC,kBAACC,EAAA,EAAD,CACIC,MAAM,OACNN,KAAK,SACLpD,UAAWA,EACX8B,MAAOtE,EAAKuF,KAAKY,aAAa7B,QAKrCzB,GACG,kBAACkD,EAAA,EAAD,CAASH,KAAK,QAAQZ,KAAMhF,EAAKuF,KAAKa,gBAIzCzD,GACG,yBACI0D,OAAO,IACPH,MAAM,IACNI,MAAO,CAAEC,QAAS,QAClBC,IAAI,iBACJpF,IAAI,2F,mFCtMnC0C,EAAY7C,IAAOC,IAAV,oEAAGD,CAAH,qIAcTwF,EAAoBxF,IAAOC,IAAV,4EAAGD,CAAH,mDAExB,qBAAG0D,aAEK+B,YADM,gEAKNA,YALM,oGAsBPC,EAAO1F,IAAO2F,IAAV,+DAAG3F,CAAH,uC,YClCXwD,EAAU,SAAC,GAA4B,IAA1BzE,EAAyB,EAAzBA,KAAM2E,EAAmB,EAAnBA,aACrB,OACI,kBAACb,EAAD,KACI,kBAAC2C,EAAD,CAAmB9B,aAAcA,GAC7B,kBAAC,IAAD,CAAUT,aAAcS,EAAe,OAAS,QAAS3E,EAAKmE,OAC9D,kBAAC,IAAD,CAAW0C,MAAI,EAACC,QAAM,EAACC,OAAO,YAAYC,oBAAoB,QACzDhH,EAAKoE,aAEV,kBAAC,MAAD,CAAKQ,OAAQ,IACR5E,EAAK0E,QAAQuC,KAAI,SAAAvC,GAAO,OACrB,kBAAC,MAAD,CACIwC,IAAKxC,EAAQI,GACbD,GAAI,GACJQ,GAAI,EACJN,GAAI,GAAK/E,EAAK0E,QAAQyC,QAAW,EAAI,EAAI,GAExCzC,EAAQ0C,KACL,kBAACT,EAAD,CAAMvF,IAAKsD,EAAQ0C,KAAKvD,UAAW2C,IAAI,iBACvC,KACJ,kBAAC,IAAD,CAAWK,MAAI,EAACC,QAAM,EAACE,oBAAoB,QACtCtC,EAAQN,mBAM5BpE,EAAKqH,SAAW,kBAAC,IAAD,CAAWP,QAAM,GAAE9G,EAAKqH,UAAwB,OAK7E5C,EAAQ6C,aAAe,CACnB3C,cAAc,GAoBHF","file":"component---src-pages-partners-en-js-0cc766eb3059724d571e.js","sourcesContent":["import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { graphql } from 'gatsby';\r\n\r\n// components\r\nimport Layout from '../components/Layout';\r\nimport Partners from '../components/Pages/Partners';\r\n\r\n// hooks\r\nimport useTranslated from '../hooks/useTranslated';\r\n\r\nconst PartnersComponent = ({ data, ...rest }) => {\r\n const { translatedData } = useTranslated(data, rest.pageContext);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nPartnersComponent.propTypes = {\r\n data: PropTypes.shape({\r\n strapiPartners: PropTypes.shape({}).isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default PartnersComponent;\r\n\r\nexport const query = graphql`\r\n query PartnersEn {\r\n strapiPartners {\r\n metatags {\r\n description_de\r\n description_en\r\n title_de\r\n title_en\r\n }\r\n background {\r\n publicURL\r\n }\r\n button {\r\n label_en\r\n label_de\r\n href\r\n }\r\n description_en\r\n description_de\r\n feature {\r\n feature {\r\n id\r\n icon {\r\n publicURL\r\n }\r\n description_de\r\n description_en\r\n }\r\n title_de\r\n title_en\r\n }\r\n form {\r\n BusinessEmail {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n }\r\n LastName {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n }\r\n companyName {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n }\r\n country {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n values {\r\n value\r\n label_en\r\n label_de\r\n }\r\n }\r\n firstName {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n }\r\n interest {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n }\r\n phoneNumber {\r\n label_en\r\n label_de\r\n placeholder_en\r\n placeholder_de\r\n }\r\n submitButton {\r\n label_en\r\n label_de\r\n }\r\n success_message_en\r\n success_message_de\r\n error_message_en\r\n error_message_de\r\n }\r\n text_en\r\n text_de\r\n title_en\r\n title_de\r\n }\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const Background = styled.div`\r\n background: url(${props => props.src});\r\n padding: 200px 0;\r\n background-size: cover;\r\n\r\n margin-bottom: 30px;\r\n\r\n @media all and (max-width: 768px) {\r\n margin-bottom: 28px;\r\n padding: 3em 0;\r\n\r\n p {\r\n margin-bottom: 24px;\r\n }\r\n }\r\n`;\r\n\r\nexport const ContentContainer = styled.div`\r\n margin: 80px 0;\r\n`;\r\n\r\nexport const FormContainer = styled.div`\r\n box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.1);\r\n border-radius: 10px;\r\n padding: 24px 16px;\r\n`;\r\n\r\nexport const RichText = styled.div`\r\n p {\r\n margin-bottom: 32px;\r\n color: rgba(0, 0, 0, 0.64);\r\n line-height: 32px;\r\n\r\n strong {\r\n color: inherit;\r\n }\r\n @media all and (max-width: 768px) {\r\n font-size: 0.875rem;\r\n line-height: 24px;\r\n }\r\n }\r\n`;\r\n\r\nexport const Anchor = styled.div`\r\n height: 60px;\r\n`;\r\n","export function getText(values) {\r\n return `\r\n*New partner request:*\r\n\r\nFirst name: *${values.firstName}*\r\nLast name: *${values.lastName}*\r\nBusiness email: *${values.businessEmail}*\r\nCompany name: *${values.companyName}*\r\nPhone number: *${values.phoneNumber}*\r\nCountry: *${values.country}*\r\n${values.interest.trim() ? `Business: *${values.interest}*` : ''}\r\n `;\r\n}\r\n","import PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport { Col, Row } from 'react-simple-flex-grid';\r\nimport marked from 'marked';\r\n\r\nimport Message from '../../global/Message';\r\nimport { Background, ContentContainer, FormContainer, RichText, Anchor } from './styled';\r\nimport FormInput from '../../global/FormInput';\r\nimport Button from '../../global/Button';\r\nimport ButtonLink from '../../global/ButtonLink';\r\nimport Container from '../../global/Container';\r\nimport TextArea from '../../global/TextArea';\r\nimport { Heading1, Paragraph } from '../../global/Typography';\r\nimport Feature from '../../global/Feature';\r\n\r\nimport { validatePartnersForm } from '../../../utils/validators';\r\nimport { postSlackMessage } from '../../../utils/slack';\r\nimport { sleep } from '../../../utils/helpers';\r\nimport { getText } from './helpers';\r\n\r\nconst initialValues = {\r\n firstName: '',\r\n lastName: '',\r\n businessEmail: '',\r\n companyName: '',\r\n phoneNumber: '',\r\n country: '',\r\n interest: '',\r\n};\r\n\r\nconst Partners = ({ data, lng }) => {\r\n const [errors, setErrors] = useState({});\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [values, setValues] = useState(initialValues);\r\n\r\n const [successFormSubmission, setSuccessFormSubmission] = useState(false);\r\n const [errorFormSubmission, setErrorFormSubmission] = useState(false);\r\n\r\n function handleOnChange(name, value) {\r\n setValues(prevValues => ({ ...prevValues, [name]: value }));\r\n }\r\n\r\n async function handlePartnersFormSubmit(event) {\r\n event.preventDefault();\r\n const { errors: foundErrors, isValid } = validatePartnersForm(values);\r\n\r\n setErrors(foundErrors);\r\n\r\n if (isValid) {\r\n setIsLoading(true);\r\n await sleep(500); // await a bit so button has a chance to show a spinner for better UX\r\n\r\n const { error } = await postSlackMessage(getText(values));\r\n\r\n if (!error) {\r\n setIsLoading(false);\r\n setValues(initialValues);\r\n setSuccessFormSubmission(true);\r\n } else {\r\n setIsLoading(false);\r\n setErrorFormSubmission(true);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {data.title}\r\n \r\n \r\n {data.description}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data.text ? (\r\n \r\n ) : null}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n >\r\n );\r\n};\r\n\r\nPartners.propTypes = {\r\n data: PropTypes.shape({\r\n form: PropTypes.shape({\r\n success_message: PropTypes.string,\r\n error_message: PropTypes.string,\r\n submitButton: PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n interest: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n country: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n values: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n }).isRequired,\r\n companyName: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n phoneNumber: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n BusinessEmail: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n LastName: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n firstName: PropTypes.shape({\r\n placeholder: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n }).isRequired,\r\n text: PropTypes.string.isRequired,\r\n description: PropTypes.string.isRequired,\r\n background: PropTypes.shape({\r\n publicURL: PropTypes.string.isRequired,\r\n }).isRequired,\r\n title: PropTypes.string.isRequired,\r\n button: PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n href: PropTypes.string.isRequired,\r\n }).isRequired,\r\n feature: PropTypes.shape({}).isRequired,\r\n }).isRequired,\r\n lng: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Partners;\r\n","import styled, { css } from 'styled-components';\r\n\r\nexport const Container = styled.div`\r\n border-radius: 10px;\r\n margin-bottom: 70px;\r\n background: white;\r\n\r\n p {\r\n margin-top: 24px;\r\n }\r\n\r\n @media all and (max-width: 768px) {\r\n margin-bottom: 28px;\r\n }\r\n`;\r\n\r\nexport const FeaturesContainer = styled.div`\r\n border-radius: 10px;\r\n ${({ hasBoxShadow }) =>\r\n hasBoxShadow\r\n ? css`\r\n box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.1);\r\n padding: 40px 16px;\r\n `\r\n : css`\r\n padding: 40px 0px;\r\n\r\n h3 {\r\n font-size: 2.5rem;\r\n\r\n @media all and (max-width: 768px) {\r\n font-size: 1.125rem;\r\n }\r\n }\r\n `}\r\n\r\n h3 {\r\n text-align: center;\r\n }\r\n`;\r\n\r\nexport const Icon = styled.img`\r\n display: block;\r\n margin: 0 auto 20px;\r\n`;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Row } from 'react-simple-flex-grid';\r\n\r\nimport { Container, FeaturesContainer, Icon } from './styled';\r\nimport { Heading3, Paragraph } from '../Typography';\r\n\r\nconst Feature = ({ data, hasBoxShadow }) => {\r\n return (\r\n \r\n \r\n {data.title}\r\n \r\n {data.description}\r\n \r\n \r\n {data.feature.map(feature => (\r\n \r\n {feature.icon ? (\r\n \r\n ) : null}\r\n \r\n {feature.description}\r\n \r\n \r\n ))}\r\n
\r\n \r\n {data.sidenote ? {data.sidenote} : null}\r\n \r\n );\r\n};\r\n\r\nFeature.defaultProps = {\r\n hasBoxShadow: true,\r\n};\r\n\r\nFeature.propTypes = {\r\n data: PropTypes.shape({\r\n feature: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n icon: PropTypes.shape({\r\n publicURL: PropTypes.string.isRequired,\r\n }).isRequired,\r\n description: PropTypes.string.isRequired,\r\n })\r\n ).isRequired,\r\n title: PropTypes.string,\r\n description: PropTypes.string,\r\n sidenote: PropTypes.string,\r\n }).isRequired,\r\n hasBoxShadow: PropTypes.bool,\r\n};\r\n\r\nexport default Feature;\r\n"],"sourceRoot":""}