{"version":3,"sources":["webpack:///./src/components/common/OptInThankYouModal.js","webpack:///./src/components/common/Modal.module.css","webpack:///./src/components/common/ClapsButton.js","webpack:///./src/components/common/OptInPopup.js","webpack:///./src/components/common/HelloBar.js","webpack:///./src/views/DockingtonReports/DrOptInForm.tsx","webpack:///./src/templates/BlogCard.js","webpack:///./src/components/common/CheckboxButton.tsx","webpack:///./src/components/common/RadioGroup.tsx","webpack:///./src/templates/blocks/Example.js","webpack:///./src/components/common/AutoPlayInViewVideo.js","webpack:///./src/templates/blocks/index.js","webpack:///./src/templates/Blog.js","webpack:///./src/components/common/Modal.tsx","webpack:///./src/components/common/HelloBar.module.css","webpack:///./src/components/common/OptInThankYouModal.module.css","webpack:///./src/views/DockingtonReports/DrOptInForm.module.css","webpack:///./src/assets/images/dockington-reports-bar-graph.jpg","webpack:///./src/components/common/OptInForm.tsx","webpack:///./src/components/common/ClapsButton.module.css","webpack:///./src/assets/images/dockington-insiders.jpg"],"names":["OptInThankYouModal","isOpen","onClose","modalClassName","content","translate","contentLabel","className","image","src","insiders","alt","imageAlt","styles","body","title","text","map","part","processText","signature","greeting","sign","ps","module","exports","CLAPS_API","ClapsButton","props","sendUpdate","updateTimeout","undefined","prevClaps","state","claps","clapped","window","gtag","slug","setState","axios","post","then","res","status","data","catch","err","response","clap","clearTimeout","setTimeout","componentDidMount","this","componentWillUnmount","render","Button","clapsButton","onClick","width","height","viewBox","fill","xmlns","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","clapsCounterContainer","clapsCounter","toFixed","cn","clapsGiven","hide","Component","OptInPopup","handleScroll","document","html","documentElement","Math","max","scrollHeight","scrollY","innerHeight","showing","shown","localStorage","setItem","Date","getTime","toString","lastShow","getItem","parseInt","scrollListener","debounce","addEventListener","removeEventListener","componentWillReceiveProps","nextProps","children","Modal","closeBtnColor","withTranslate","HelloBar","showPopup","showThankYou","showTimeout","hellobar","hellobarContainer","textColumn","actionColumn","sm","actionButton","style","whiteSpace","closeColumn","icon","renderForm","onSubscribe","reports","require","signupFrom","OptInForm","signUpUrl","Row","Col","xs12","m6","column","disclaimer","align","leftColumn","imgContainer","img","submit","actionText","subscribe","loadingText","subscribing","BlogCard","blog","previous","Link","to","color","marginRight","marginLeft","fluid","authorIcon","author","readingTime","CheckboxButton","value","id","onChange","React","useState","selected","setSelected","ev","preventDefault","type","checked","htmlFor","RadioButton","label","name","onSelect","key","RadioGroup","options","inline","floor","random","onSubmit","opt","idx","Example","example","exampleIdx","size","case","piece","i","action","justify","Array","isArray","ai","solution","pi","AutoPlayInViewVideo","visiblePercent","isElementInViewport","videoRef","current","playing","pause","startTimer","play","showControls","createRef","el","rect","getBoundingClientRect","min","bottom","clientHeight","top","ref","playsInline","muted","loop","controls","onMouseEnter","onMouseLeave","boxSizing","maxWidth","list","commonProcessText","Text","TextWithIcon","BulletedList","item","marginTop","fontWeight","Section","element","BigTitle","SmallTitle","Disclaimer","NumberedList","List","items","marker","TextWithImage","s6","m7","m5","Examples","ex","ImageBlock","imgClassName","caption","images","find","textAlign","VideoBlock","videoClassName","video","videos","TitleWithIcon","Block","Blog","pagePath","locale","localePath","faqScript","qna","faqPage","JSON","stringify","qa","q","a","reduce","getFaqScript","SEO","description","snippet","keywords","path","meta","property","taglineImageOriginal","date","lastModified","ScrollToTopOnMount","NavBar","x12","m10","l8","taglineImage","taglineImageAlt","link","padding","borderRadius","success","button","encodeURIComponent","border","overflow","scrolling","frameborder","allowTransparency","allow","s5","m4","orderXs","orderS","previousBlog","hideXs","s2","nextBlog","matchLocale","DEFAULT_LOCALE","BlogContainer","location","pageContext","Layout","blogsJson","childImageSharp","original","ReactModal","contentClassName","onRequestClose","modal","closeTimeoutMS","modalImg","closeBtn","defaultOptInContext","values","sending","OptInContext","TextField","renderWithContext","context","fieldName","error","required","placeholder","Consumer","CompanyField","NameField","EmailField","SubmitButton","disabled","ErrorLabel","signup","update","trim","email","toLowerCase","companyName","company","replace","companyRequired","length","Object","assign","validateEmail","botSignup","signupData","getSignupData","getError","Provider"],"mappings":"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","file":"component---src-templates-blog-js-d0e7ea87de0e7785e719.js","sourcesContent":["import React from 'react'\n\nimport Modal from './Modal';\n\nimport processText from '../../views/processText';\nimport insiders from \"../../assets/images/dockington-insiders.jpg\";\n\nimport styles from \"./OptInThankYouModal.module.css\";\n\nconst OptInThankYouModal = function ({ isOpen, onClose, modalClassName, translate }) {\n const content = translate(\"blogs.subscribe.thankyou\");\n return (\n \n
\n

{content.title}

\n {content.text.map((part) => (\n

{processText(part)}

\n ))}\n

\n {content.signature.greeting}
\n {content.signature.sign}\n

\n

{content.ps}

\n
\n \n );\n}\n\nexport default OptInThankYouModal;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal\":\"Modal-module--modal--2lC8W\",\"modalOpen\":\"Modal-module--modal-open--5EzV-\",\"body\":\"Modal-module--body--2_AOH\",\"modalImg\":\"Modal-module--modalImg--3VUPt\",\"closeBtn\":\"Modal-module--closeBtn--22-SV\",\"content\":\"Modal-module--content--2q8pE\"};","import React, { Component } from 'react';\nimport axios from \"axios\";\n\nimport Button from './Button';\n\nimport styles from \"./ClapsButton.module.css\";\nimport { cn } from '../../util';\n\nconst CLAPS_API = \"https://europe-west2-dockington.cloudfunctions.net/claps\";\n\nconst getClapCount = function (claps) {\n if (claps < 1) {\n return 0;\n } else if (claps < 1000) {\n return claps;\n } else if (claps < 10000) {\n return (claps / 1000).toFixed(1) + \"k\";\n } else {\n return (claps / 1000).toFixed(0) + \"k\";\n }\n}\n\nclass ClapsButton extends Component {\n constructor(props) {\n super(props);\n this.state = {\n claps: -1,\n clapped: 0,\n };\n }\n\n componentDidMount() {\n axios.post(CLAPS_API, {\n slug: this.props.slug,\n })\n .then((res) => {\n if (res.status === 200 && typeof res.data.claps === \"number\") {\n this.setState({ claps: res.data.claps });\n } else {\n if (window.gtag) {\n window.gtag('event', \"get-claps-error\", {\n 'event_category' : 'claps',\n 'event_label' : `Get claps failed with response ${res.status} ${res.data.claps}`,\n });\n }\n this.setState({ claps: 0 });\n }\n })\n .catch((err) => {\n if (window.gtag) {\n window.gtag('event', \"get-claps-error\", {\n 'event_category' : 'claps',\n 'event_label' : `Get claps failed${err.response ? ` with response ${err.response.status}` : \"\"}`,\n });\n }\n this.setState({ claps: 0 });\n });\n }\n\n componentWillUnmount() {\n if (this.updateTimeout) {\n clearTimeout(this.updateTimeout);\n this.updateTimeout = undefined;\n if (this.state.clapped > 0) {\n this.sendUpdate();\n }\n }\n }\n\n sendUpdate = () => {\n this.updateTimeout = undefined;\n const prevClaps = this.state.claps > 0 ? this.state.claps : 0;\n const claps = this.state.clapped;\n if (window.gtag) {\n window.gtag('event', \"give-claps\", {\n 'event_category' : 'claps',\n 'event_label' : `Give ${claps} to blog ${this.props.slug}`,\n });\n }\n this.setState({ claps: prevClaps + claps, clapped: 0 });\n axios.post(CLAPS_API, {\n slug: this.props.slug,\n claps,\n })\n .then((res) => {\n if (res.status === 200 && typeof res.data.claps === \"number\") {\n this.setState({ claps: res.data.claps });\n } else {\n if (window.gtag) {\n window.gtag('event', \"give-claps-error\", {\n 'event_category' : 'claps',\n 'event_label' : `Give claps failed with response ${res.status} ${res.data.claps}`,\n });\n }\n }\n })\n .catch((err) => {\n if (window.gtag) {\n window.gtag('event', \"give-claps-error\", {\n 'event_category' : 'claps',\n 'event_label' : `Give claps failed${err.response ? ` with response ${err.response.status}` : \"\"}`,\n });\n }\n });\n }\n\n clap = () => {\n if (this.updateTimeout) {\n clearTimeout(this.updateTimeout);\n this.updateTimeout = undefined;\n }\n this.setState({ clapped: this.state.clapped + 1 });\n this.updateTimeout = setTimeout(this.sendUpdate, 1000);\n }\n\n render() { \n return (\n \n );\n }\n}\n \nexport default ClapsButton;\n","import React, { Component } from 'react';\n\nimport Modal from './Modal';\n\nimport withTranslate from '../translate';\nimport { debounce } from '../../util';\n\nconst OPTIN_LOCAL_KEY = \"dkt_opt\";\n\nclass OptInPopup extends Component {\n constructor(props) {\n super(props);\n this.state = {\n showing: false,\n shown: false,\n }\n }\n\n componentDidMount() {\n let lastShow = localStorage.getItem(OPTIN_LOCAL_KEY);\n // Don't show again if last time was less than 12 hours ago\n if (lastShow && new Date().getTime() - parseInt(lastShow, 10) < 1000 * 60 * 60 * 12) {\n this.setState({ shown: true });\n }\n this.scrollListener = debounce(this.handleScroll, 100);\n window.addEventListener('scroll', this.scrollListener);\n }\n\n componentWillUnmount() {\n window.removeEventListener('scroll', this.scrollListener);\n }\n\n componentWillReceiveProps(nextProps) {\n if (!this.state.shown && !this.props.isOpen && nextProps.isOpen) {\n localStorage.setItem(OPTIN_LOCAL_KEY, new Date().getTime().toString());\n this.setState({ shown: true });\n }\n }\n\n handleScroll = () => {\n const body = document.body;\n const html = document.documentElement;\n const height = Math.max(body.scrollHeight, html.scrollHeight);\n const scrollPercent = (window.scrollY + window.innerHeight) / height;\n if (scrollPercent > 0.78 && !this.state.showing && !this.state.shown) {\n localStorage.setItem(OPTIN_LOCAL_KEY, new Date().getTime().toString());\n this.setState({ showing: true, shown: true });\n }\n }\n\n render() {\n const { isOpen, onClose, children } = this.props;\n return (\n {\n if (window.gtag) {\n window.gtag('event', \"optin-signup-close\", {\n 'event_category' : 'optin-signup-form',\n 'event_label' : \"Close opt-in popup\"\n });\n }\n if (this.state.showing) {\n this.setState({ showing: false });\n }\n if (onClose) {\n onClose();\n }\n }}\n closeBtnColor=\"#bbb\"\n >\n {children}\n \n );\n }\n}\n \nexport default withTranslate(OptInPopup);\n","import React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Button from './Button';\n\nimport withTranslate from '../translate';\nimport { cn } from '../../util';\n\nimport styles from \"./HelloBar.module.css\";\nimport processText from '../../views/processText';\nimport OptInPopup from './OptInPopup';\nimport OptInThankYouModal from './OptInThankYouModal';\n\nclass HelloBar extends Component {\n constructor(props) {\n super(props);\n this.state = {\n showing: false,\n showPopup: false,\n showThankYou: false,\n };\n }\n componentDidMount() {\n this.showTimeout = setTimeout(() => {\n this.showTimeout = undefined;\n this.setState({ showing: true });\n }, 1500);\n }\n componentWillUnmount() {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = undefined;\n }\n }\n render() {\n const { translate } = this.props;\n return (\n
\n
\n
\n {processText(translate(\"hellobar.text\"))}\n
\n
\n \n
\n
\n
\n \n
\n {\n this.setState({ showPopup: false });\n }}\n >\n {this.props.renderForm({\n onSubscribe: () => {\n this.setState({ showPopup: false, showThankYou: true });\n },\n })}\n \n {\n this.setState({ showThankYou: false });\n }}\n translate={translate}\n />\n
\n );\n }\n}\n\nexport default withTranslate(HelloBar);\n","import * as React from 'react';\n\nimport OptInForm, { NameField, EmailField, SubmitButton, ErrorLabel } from '../../components/common/OptInForm';\nimport Row from '../../components/common/Row';\nimport Col from '../../components/common/Col';\n\nimport processText from '../processText';\nimport { cn } from '../../util';\nimport withTranslate from '../../components/translate';\n\nconst reports = require(\"../../assets/images/dockington-reports-bar-graph.jpg\");\nconst styles = require(\"./DrOptInForm.module.css\");\n\nexport interface DrOptInFormProps {\n content: {\n title: any,\n text: any,\n disclaimer: any,\n subscribe: any,\n subscribing: any,\n },\n signupFrom?: string,\n onSubscribe?: () => void,\n translate: (key: string) => string,\n}\n \nconst DrOptInForm: React.SFC = ({ content, signupFrom, onSubscribe, translate }) => {\n return (\n \n \n \n

\n
{processText(content.title)}
\n

\n {processText(content.text)}\n
\n {processText(content.disclaimer)}\n
\n \n \n
\n
\n \n
\n \n \n \n \n
\n {processText(content.disclaimer)}\n
\n
\n \n
\n \n );\n}\n \nexport default withTranslate(DrOptInForm);\n","import React from \"react\";\nimport Image from \"gatsby-image\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nimport Row from \"../components/common/Row\";\nimport Link from \"../components/common/Link\";\n\nimport \"./BlogCard.css\";\n\nconst BlogCard = function ({ blog, previous, translate }) {\n return (\n \n {previous ?\n
{translate(\"blogs.previous\")}
\n :\n
{translate(\"blogs.next\")}
\n }\n
\n \n
\n \n
\n \n
\n
\n
{blog.author}
\n
{blog.readingTime} min
\n
\n
\n

{blog.title}

\n
\n
\n \n );\n}\n\nexport default BlogCard;\n","import React from \"react\";\n\nimport \"./CheckboxButton.css\";\n\nexport interface CheckboxButtonProps {\n id: string,\n value?: boolean,\n onChange?: (value: boolean) => void,\n}\n\nconst CheckboxButton: React.FunctionComponent = function ({ value, id, onChange, children }) {\n const [ selected, setSelected ] = React.useState(!!value);\n const onClick = (ev: any) => {\n setSelected(!selected);\n if (onChange) {\n onChange(!selected);\n }\n ev.preventDefault();\n }\n return (\n
\n \n \n
\n )\n}\n\nexport default CheckboxButton;\n","import React from \"react\";\n\nimport \"./RadioGroup.css\";\n\nexport interface RadioGroupProps {\n options: {\n label: string,\n value: string,\n }[],\n inline?: boolean,\n value?: string,\n name?: string,\n onChange?: (idx: number) => void,\n}\n\nconst RadioButton: React.FunctionComponent = function ({ label, value, checked, name, onSelect }) {\n return (\n \n );\n}\n\nconst RadioGroup: React.FunctionComponent = function ({ options, inline, value, name, onChange }) {\n const [ selected, setSelected ] = React.useState(value);\n if (!name) { name = \"radio\" + Math.floor(Math.random() * 10000) }\n return (\n
(ev.preventDefault())}>\n {options.map((opt, idx) => (\n {\n if (opt.value !== selected) {\n setSelected(opt.value);\n if (onChange) {\n onChange(idx);\n }\n }\n }}\n />\n ))}\n \n );\n}\n\nexport default RadioGroup;\n","import React from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nimport Row from \"../../components/common/Row\";\nimport CheckboxButton from \"../../components/common/CheckboxButton\";\nimport RadioGroup from \"../../components/common/RadioGroup\";\n\nimport { processText } from \"../blocks\";\n\nimport \"./Example.css\";\n\nconst Example = function ({ blog, example, exampleIdx, className }) {\n return (\n
\n
\n {example.icon &&
\n \n
}\n

\n {example.case ? `${example.case} - ` : \"\"}{example.title}\n

\n
\n {example.body && example.body.map((piece, i) => (\n

{processText(piece, i)}

\n ))}\n {example.action &&\n \n {Array.isArray(example.action) ?\n \n ({ value: `ex${exampleIdx}a${ai}`, label: action }))}\n onChange={(idx) => {\n if (window.gtag) {\n window.gtag('event', `blog-ex${exampleIdx}-action${idx}`, {\n 'event_category' : 'blog-ex-action',\n 'event_label' : `Blog ${blog.slug} example ${exampleIdx} action ${value}`\n });\n }\n }}\n />\n \n :\n {\n if (window.gtag) {\n window.gtag('event', `blog-ex${exampleIdx}-action`, {\n 'event_category' : 'blog-ex-action',\n 'event_label' : `Blog ${blog.slug} example ${exampleIdx} action ${value ? \"on\" : \"off\"}`\n });\n }\n }}>\n {example.action}\n \n }\n }\n {example.solution &&

\n \n \n \n {example.solution}\n

}\n {example.text && example.text.map((part, pi) => (\n

{processText(part)}

\n ))}\n
\n );\n};\n\nexport default Example;","import React, { Component } from 'react';\nimport { debounce } from '../../util';\n\nclass AutoPlayInViewVideo extends Component {\n constructor(props) {\n super(props);\n this.state = {\n playing: false,\n showControls: false,\n };\n this.videoRef = React.createRef();\n }\n componentDidMount() {\n this.scrollListener = debounce(this.handleScroll, 100);\n window.addEventListener('scroll', this.scrollListener);\n }\n componentWillUnmount() {\n window.removeEventListener('scroll', this.scrollListener);\n if (this.startTimer) {\n clearTimeout(this.startTimer);\n }\n }\n handleScroll = () => {\n let visiblePercent = this.isElementInViewport(this.videoRef.current);\n if (this.state.playing) {\n if (visiblePercent < 0.75) {\n this.setState({ playing: false }, () => {\n this.videoRef.current.pause();\n });\n }\n } else if (visiblePercent > 0.8 && !this.startTimer) {\n this.startTimer = setTimeout(() => {\n this.setState({ playing: true }, () => {\n this.startTimer = undefined;\n this.videoRef.current.play();\n });\n }, 800);\n }\n }\n isElementInViewport(el) {\n const rect = el.getBoundingClientRect();\n const visibleBottom = Math.max(0, Math.min(rect.bottom, (window.innerHeight || document.documentElement.clientHeight)));\n const visibleTop = Math.max(0, rect.top);\n const visibleHeight = visibleBottom - visibleTop;\n // Return visible percentage\n return visibleHeight / rect.height;\n }\n render() { \n return (\n \n );\n }\n}\n \nexport default AutoPlayInViewVideo;\n","import React from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport Image from \"gatsby-image\";\n\nimport Example from \"./Example\";\n\nimport commonProcessText from \"../../views/processText\";\nimport Col from \"../../components/common/Col\";\nimport Row from \"../../components/common/Row\";\nimport List from \"../../components/common/List\";\nimport AutoPlayInViewVideo from \"../../components/common/AutoPlayInViewVideo\";\n\nimport { cn } from \"../../util\";\n\nexport const processText = function (text, id) {\n if (Array.isArray(text)) {\n return text.map((piece, i) => processText(piece, id + `a${i}`));\n } else if (text && typeof text === \"object\") {\n if (text.list) {\n return (\n \n );\n }\n }\n return commonProcessText(text);\n};\n\nconst Text = function ({content, className}) {\n return (\n
\n {content.map((piece, i) => (\n

{processText(piece, i)}

\n ))}\n
\n );\n};\n\nconst TextWithIcon = function ({icon, content, className}) {\n return (\n
\n \n \n \n {processText(content)}\n
\n );\n};\n\nconst BulletedList = function ({content, id}) {\n return (\n
    \n {content.map((item, i) => (\n
  • {item.title && {item.title}}{processText(item.content ? item.content : item, i)}
  • \n ))}\n
\n );\n}\n\nconst Section = function ({ blog, content }) {\n return (\n
\n {\n content.map((element) => (\n \n ))\n }\n
\n );\n};\n\nconst BigTitle = function ({content}) {\n return (\n

{content}

\n );\n};\nconst SmallTitle = function ({content}) {\n return (\n

{processText(content)}

\n );\n};\n\nconst Disclaimer = function ({content}) {\n return (\n

{processText(content)}

\n );\n};\n\nconst NumberedList = function ({ content, className }) {\n return (\n ({\n marker: `${idx + 1}.`,\n text: processText(item),\n }))}\n />\n );\n};\n\nconst TextWithImage = function ({ title, image, content, className }) {\n return (\n \n \n {title &&

{title}

}\n {content.map((part, i) => (\n
{processText(part)}
\n ))}\n \n \n \n \n
\n )\n}\n\nconst Examples = function ({blog, title, content, className}) {\n return (\n
\n

{title}

\n
\n {content.map((ex, i) => (\n \n ))}\n
\n
\n );\n};\n\nconst ImageBlock = function ({ blog, content, className, imgClassName, caption }) {\n const img = blog.images.find((img) => (img.name === content));\n return (\n
\n \n {caption &&
\n {processText(caption)}\n
}\n
\n );\n};\n\nconst VideoBlock = function ({ blog, content, className, videoClassName }) {\n const video = blog.videos.find((video) => (video.name === content));\n return (\n
\n \n {video.src.map((src, idx) => (\n \n ))}\n \n
\n );\n};\n\nconst TitleWithIcon = function ({ icon, content }) {\n return (\n
\n {icon &&
\n \n
}\n

\n {processText(content)}\n

\n
\n );\n};\n\nconst Block = function (props) {\n const { type } = props;\n switch (type) {\n case \"h2\": return ();\n case \"h3\": return ();\n case \"text\": return ();\n case \"textWithIcon\": return ();\n case \"bulletedList\": return ();\n case \"examples\": return ();\n case \"section\": return (
);\n case \"disclaimer\": return ();\n case \"textWithImage\": return ();\n case \"list\": return ();\n case \"image\": return ();\n case \"video\": return ();\n case \"titleWithIcon\": return ();\n }\n};\n\nexport default Block;\n","import React from \"react\";\nimport { graphql } from \"gatsby\";\nimport Image from \"gatsby-image\";\n\nimport Layout from \"../components/Layout\";\nimport withTranslate from \"../components/translate\";\nimport SEO from \"../components/SEO\";\nimport ScrollToTopOnMount from \"../components/common/ScrollToTopOnMount\";\nimport NavBar from \"../components/common/NavBar\";\nimport Row from \"../components/common/Row\";\nimport Col from \"../components/common/Col\";\nimport Button from \"../components/common/Button\";\nimport Link from \"../components/common/Link\";\nimport ClapsButton from \"../components/common/ClapsButton\";\nimport HelloBar from \"../components/common/HelloBar\";\nimport DrOptInForm from \"../views/DockingtonReports/DrOptInForm\";\n\nimport BlogCard from \"./BlogCard\";\nimport Block from \"./blocks\";\n\nimport \"./Blog.css\";\nimport { DEFAULT_LOCALE } from \"../translations\";\n\nexport const query = graphql`\n query($slug: String!) {\n blogsJson(slug: {eq:$slug}) {\n taglineImage {\n childImageSharp {\n fluid(quality: 90) {\n ...GatsbyImageSharpFluid\n }\n original {\n src\n }\n }\n }\n taglineImageAlt {\n en\n it\n }\n authorIcon {\n childImageSharp {\n original {\n src\n }\n }\n }\n author\n date\n readingTime\n title {\n locale\n text\n }\n snippet {\n locale\n text\n }\n keywords {\n locale\n keywords\n }\n images {\n name\n image {\n childImageSharp {\n fluid(maxWidth: 1200, quality: 90) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n alt {\n en\n it\n }\n }\n videos {\n name\n src {\n src\n type\n }\n }\n }\n }\n`;\n\nconst getFaqScript = function (blog) {\n let qna = blog.faqPage;\n if (!qna || !Array.isArray(qna)) return undefined;\n return JSON.stringify({\n \"@context\": \"https://schema.org\",\n \"@type\": \"FAQPage\",\n \"mainEntity\": qna.map((qa) => ({\n \"@type\": \"Question\",\n \"name\": qa.q,\n \"acceptedAnswer\": {\n \"@type\": \"Answer\",\n \"text\": Array.isArray(qa.a) ? qa.a.reduce((text, a) => {\n return text + `

${a}

`;\n }, \"\") : qa.a,\n }\n }))\n }, null, 2);\n}\n\nconst Blog = withTranslate(({ pagePath, blog, translate, locale, localePath }) => {\n const faqScript = getFaqScript(blog);\n return (\n
\n \n \n {faqScript && }\n \n \n \n {(blog.hellobar !== false && (blog.hellobar || locale === \"it\")) &&\n (\n \n )}\n />\n }\n \n
\n \n \n

{blog.title}

\n
\n \n
\n \n \n {blog.author}{blog.readingTime} min\n
\n
\n
\n {Array.isArray(blog.body) &&\n blog.body.map((element, idx) => (\n \n ))\n }\n
\n {blog.action && \n
\n {blog.action.title &&

{blog.action.title}

}\n \n {\n if (window.gtag) {\n window.gtag('event', `blog-cta`, {\n 'event_category' : 'blog-cta',\n 'event_label' : `Blog CTA ${blog.slug}`\n });\n }\n }}>\n \n \n \n
\n
}\n\n
\n
\n {translate(\"blogs.share\")}\n
\n \n
\n \n
\n
\n \n
\n
\n
\n\n
\n

{translate(\"blogs.readmore\")}

\n \n \n {blog.previousBlog &&\n \n }\n \n \n \n {blog.nextBlog &&\n \n }\n \n \n
\n \n
\n
\n
\n );\n});\n\nconst matchLocale = function (locale) {\n if (!locale) {\n locale = DEFAULT_LOCALE;\n }\n return (item) => (item.locale === locale);\n}\n\nconst BlogContainer = function ({ location, data, pageContext: { pagePath, locale, slug, blog, previousBlog, nextBlog } }) {\n return (\n \n ({ name: img.name, image: img.image.childImageSharp.fluid, alt: img.alt[locale] })),\n videos: data.blogsJson.videos || [],\n previousBlog,\n nextBlog,\n }}\n />\n \n );\n}\n\nexport default BlogContainer;\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Button from './Button';\n\nimport { cn } from '../../util';\n\nimport styles from \"./Modal.module.css\";\n\nconst ReactModal = require('react-modal');\n\nexport interface ModalProps {\n contentLabel: string,\n isOpen: boolean,\n onClose: () => void,\n image?: {\n src: string,\n alt: string,\n },\n closeBtnColor?: string,\n className?: string,\n contentClassName?: string,\n}\n\nconst Modal: React.SFC = ({ contentLabel, isOpen, onClose, image, closeBtnColor, className, contentClassName, children }) => {\n return (\n \n
\n {image &&\n {image.alt}/\n }\n
\n {children}\n
\n \n
\n \n );\n}\n\nexport default Modal;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"hellobar\":\"HelloBar-module--hellobar--3ovzf\",\"hide\":\"HelloBar-module--hide--3tPGJ\",\"hellobarContainer\":\"HelloBar-module--hellobarContainer--11ew5\",\"textColumn\":\"HelloBar-module--textColumn--1OM1p\",\"actionButton\":\"HelloBar-module--actionButton--1ZXXg\",\"closeColumn\":\"HelloBar-module--closeColumn--22QBO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"body\":\"OptInThankYouModal-module--body--2G0Ty\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"body\":\"DrOptInForm-module--body--lYJxb\",\"closeBtn\":\"DrOptInForm-module--closeBtn--3rBcN\",\"column\":\"DrOptInForm-module--column--2U8gy\",\"title\":\"DrOptInForm-module--title--3EEMp\",\"disclaimer\":\"DrOptInForm-module--disclaimer--2Rtey\",\"imgContainer\":\"DrOptInForm-module--imgContainer--3oZIk\",\"img\":\"DrOptInForm-module--img--3jGIq\",\"submit\":\"DrOptInForm-module--submit--qkTPD\"};","module.exports = __webpack_public_path__ + \"static/dockington-reports-bar-graph-e49f3cb859326451f4471ff971cbff34.jpg\";","import * as React from 'react';\nimport axios from \"axios\";\n\nimport EditText from './EditText';\nimport Button from './Button';\n\nimport { validateEmail } from \"../../views/SignUpPage/SignUpForm\";\n\nconst MIN_COMPANY_LENGTH = 3;\n\nexport interface SignupData {\n company: string,\n companyName: string,\n name: string,\n email: string,\n}\n\nexport interface OptInFormProps {\n companyRequired?: boolean,\n translate: (key: string) => string,\n onSubscribe?: (responseBody: any) => void,\n signUpUrl: string,\n signupFrom?: string,\n getSignupData?: (data: SignupData) => any,\n error?: {\n [key: string]: string | undefined,\n company?: string,\n name?: string,\n email?: string,\n signup?: string,\n },\n}\n\nexport interface OptInFormState {\n company: string,\n name: string,\n email: string,\n sending: boolean,\n error?: {\n [key: string]: string | undefined,\n company?: string,\n name?: string,\n email?: string,\n signup?: string,\n },\n botSignup: boolean,\n}\n\ninterface OptInContextProps {\n values: {\n [field: string]: string,\n },\n error?: {\n [key: string]: string | undefined,\n },\n sending: boolean,\n onChange: (update: object) => void,\n translate: (key: string) => string,\n}\nconst defaultOptInContext: OptInContextProps = {\n values: {},\n sending: false,\n onChange: () => {},\n translate: (key) => key\n};\nconst OptInContext = React.createContext(defaultOptInContext);\n\nexport interface FieldProps {\n fieldName: \"company\" | \"name\" | \"email\",\n className?: string,\n style?: React.CSSProperties,\n}\nexport type NamedFieldProps = Omit;\n\nexport class TextField extends React.Component {\n renderWithContext = (context: OptInContextProps) => {\n const { fieldName, style, className } = this.props;\n const title = context.translate(`common.forms.placeholder.${fieldName}`);\n return (\n { context.onChange({ [fieldName]: value }); }}\n />\n );\n }\n render() {\n return (\n \n {this.renderWithContext}\n \n );\n }\n}\n\nexport const CompanyField: React.SFC = (props) => {\n return (\n \n );\n}\n\nexport const NameField: React.SFC = (props) => {\n return (\n \n );\n}\n\nexport const EmailField: React.SFC = (props) => {\n return (\n \n );\n}\n\nexport interface SubmitButtonProps {\n className?: string,\n style?: React.CSSProperties,\n actionText: string,\n loadingText: string,\n}\n\nexport const SubmitButton: React.SFC = ({ className, style, actionText, loadingText }) => {\n return (\n \n {(context) => (\n \n )}\n \n );\n}\n\nexport const ErrorLabel: React.SFC = () => {\n return (\n \n {(context) => {\n let err = context.error && context.error.signup ? context.error.signup : undefined;\n if (err) {\n return (\n
\n {context.error && context.error.signup}\n
\n );\n }\n return null;\n }}\n
\n );\n}\n\nclass OptInForm extends React.Component {\n constructor(props: OptInFormProps) {\n super(props);\n this.state = {\n company: \"\",\n name: \"\",\n email: \"\",\n sending: false,\n botSignup: false,\n }\n }\n\n onChange = (update: object) => {\n this.setState({ error: undefined, ...update });\n }\n\n onSubmit = (ev: any) => {\n ev.preventDefault();\n if (this.state.sending) return;\n\n let error;\n const name = this.state.name.trim();\n const email = this.state.email.trim().toLowerCase();\n const companyName = this.state.company.trim();\n const company = companyName.toLowerCase().replace(/[^a-z]/g, \"\");\n if (this.props.companyRequired) {\n if (!companyName) {\n error = Object.assign({}, error, { company: this.props.translate(\"common.forms.error.companyRequired\") });\n } else if (company.length < MIN_COMPANY_LENGTH) {\n error = Object.assign({}, error, { company: this.props.translate(\"common.forms.error.companyNameTooShort\") });\n }\n }\n if (!name) {\n error = Object.assign({}, error, { name: this.props.translate(\"common.forms.error.nameRequired\") });\n }\n if (!email) {\n error = Object.assign({}, error, { email: this.props.translate(\"common.forms.error.emailRequired\") });\n } else if (!validateEmail(email)) {\n error = Object.assign({}, error, { email: this.props.translate(\"common.forms.error.emailInvalid\") });\n }\n if (this.state.botSignup) {\n error = Object.assign({}, error, { signup: this.props.translate(\"common.forms.error.internal\") });\n }\n\n if (error) {\n this.setState({ error });\n } else {\n if ((window as any).gtag) {\n (window as any).gtag('event', \"optin-signup-accept\", {\n 'event_category' : 'optin-signup-form',\n 'event_label' : `Accept opt-in and sign up ${this.props.signupFrom || \"\"}`\n });\n }\n let signupData = {\n company,\n companyName,\n name,\n email,\n };\n if (this.props.getSignupData) {\n signupData = this.props.getSignupData(signupData);\n }\n this.setState({ sending: true });\n axios.post(this.props.signUpUrl, signupData)\n .then((res) => {\n if (res.status >= 200 && res.status < 300) {\n if (this.props.onSubscribe) {\n this.props.onSubscribe(res.data);\n }\n this.setState({ sending: false });\n } else {\n if ((window as any).gtag) {\n (window as any).gtag('event', \"optin-signup-error\", {\n 'event_category' : 'optin-signup-form',\n 'event_label' : \"Signup failed with response \" + res.status,\n });\n }\n this.setState({\n sending: false,\n error: Object.assign({}, this.state.error, { signup: this.props.translate(\"common.forms.error.internal\") }),\n });\n }\n })\n .catch((err) => {\n if ((window as any).gtag) {\n (window as any).gtag('event', \"optin-signup-error\", {\n 'event_category' : 'optin-signup-form',\n 'event_label' : \"Signup failed\" + (err.response ? ` with response ${err.response.status}` : \"\"),\n });\n }\n this.setState({\n sending: false,\n error: Object.assign({}, this.state.error, { signup: this.props.translate(\"common.forms.error.connection\") }),\n });\n });\n }\n }\n\n getError = (name: string) => {\n if (this.state.error && this.state.error[name]) {\n return this.state.error[name];\n } else if (this.props.error && this.props.error[name]) {\n return this.props.error[name];\n }\n return undefined;\n }\n\n render() {\n const { translate } = this.props;\n return (\n
\n \n {this.props.children}\n \n
\n );\n }\n}\n\nexport default OptInForm;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"clapsButton\":\"ClapsButton-module--clapsButton--2Qlie\",\"clapsCounterContainer\":\"ClapsButton-module--clapsCounterContainer--1_QbG\",\"clapsCounter\":\"ClapsButton-module--clapsCounter--3hdAy\",\"clapsGiven\":\"ClapsButton-module--clapsGiven--3uO1F\",\"hide\":\"ClapsButton-module--hide--3E4sV\",\"hideClapsGiven\":\"ClapsButton-module--hide-claps-given--2bqTB\"};","module.exports = __webpack_public_path__ + \"static/dockington-insiders-8c550a8226aeca4a6b1e23ac5d3fc892.jpg\";"],"sourceRoot":""}