{"version":3,"sources":["webpack://grundium-ltd-website/./src/components/BookDemo.js","webpack://grundium-ltd-website/./src/components/BookForm.js","webpack://grundium-ltd-website/./src/components/LayoutGeneric.js","webpack://grundium-ltd-website/./src/components/testimonials/Testimonial.js","webpack://grundium-ltd-website/./src/pages/book.js"],"names":["props","title","text","cta","className","to","Modal","useState","modalText","setModalText","loading","setLoading","requestData","useLocation","href","pageName","getCookie","useReducer","state","newState","firstname","lastname","email","company","country","intended_use","formValue","setFormValue","commConsent","setCommConsent","setBusy","busy","spinner","undefined","handleChange","e","target","name","value","onSubmit","Object","keys","map","key","requestBody","JSON","stringify","fetch","method","headers","body","then","response","json","data","inlineMessage","link","errors","catch","error","message","preventDefault","classNames","id","htmlFor","type","required","onChange","rows","checked","isOpen","contentLabel","overlayClassName","onClick","dangerouslySetInnerHTML","__html","children","subtitle","fluid","image","testimonial","noBook","bookDemo","selected","buttonText","testimonials","useStaticQuery","allStrapiTestimonials","nodes","React","res","i","length","strapiId","getIndexByStrapiId","randomInteger","activeItem","setActiveItem","filter","item","index","src","quotesImg","alt","authorImage","childImageSharp","gatsbyImageData","authorName","authorCompany","authorPosition","BookADemo","page","content","SEO","description","source","linkTarget"],"mappings":"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","file":"component---src-pages-book-js-05eb1cce43eeadc40b91.js","sourcesContent":["import { Link } from \"gatsby\"\nimport React from \"react\"\n// import BookDemoButton from \"./BookDemoButton\"\n\nconst BookDemo = (props) => {\n\n const {title, text, cta} = props;\n\n return
\n
\n

{title || \"Book a live demo\"}

\n

\n {text || \"See the OCUS® portable digital microscope scanner in action – request your free personal online live demo now. A Grundium expert will contact you personally to schedule a suitable 30-minute demo time for you. In the demo we will answer all your questions about which Ocus® scanner fits your needs best, we will talk pricing, share stories about how others are using the scanners, and help you fast forward the digital pathology experience in your lab.\"}\n

\n {/* */}\n \n { cta || \"Book your demo\" }\n \n
\n
\n\n}\n\nexport default BookDemo\n","import React, { useReducer, useState } from \"react\"\nimport { useLocation } from '@reach/router';\nimport Modal from 'react-modal';\nimport classNames from \"classnames\";\nimport { Link } from \"gatsby\";\nimport { getCookie } from \"../utils/utils\";\nModal.setAppElement('#___gatsby');\n/**\n * Portal ID: 4258421\n * Form ID: 9239a020-b22c-42c9-895d-28d7413bf2f2\n * https://legacydocs.hubspot.com/docs/methods/forms/submit_form\n */\n\n const BookForm = (props) => {\n\n // let [modalIsOpen, setModalIsOpen] = useState(true);\n let [modalText, setModalText] = useState();\n let [loading, setLoading] = useState(false);\n\n const action = 'https://api.hsforms.com/submissions/v3/integration/submit/4258421/9239a020-b22c-42c9-895d-28d7413bf2f2';\n\n const location = useLocation();\n // Request JSON:\n var requestData = {\n \"fields\": [],\n \"context\": {\n \"pageUri\": location.href,\n \"pageName\": props.pageName,\n \"hutk\": getCookie(\"hubspotutk\")\n },\n \"legalConsentOptions\":{ // Include this object when GDPR options are enabled\n \"consent\":{\n \"consentToProcess\":true,\n \"text\":\"I agree to allow Grundium to store and process my personal data.\",\n \"communications\":[\n {\n \"value\":true,\n \"subscriptionTypeId\":999,\n \"text\":\"I agree to receive other communications from Grundium.\"\n }\n ]\n }\n }\n }\n\n const [formValue, setFormValue] = useReducer(\n (state, newState) => ({...state, ...newState}),\n {\n firstname: \"\",\n lastname: \"\",\n email: \"\",\n company: \"\",\n country: \"\",\n intended_use: \"\",\n }\n );\n let [commConsent, setCommConsent] = useState(false);\n // let [converted, setConverted] = React.useState(false);\n\n const setBusy = busy => {\n if (busy) {\n setLoading(true);\n setModalText({spinner:

Submitting request

})\n } else {\n setLoading(false);\n setModalText(undefined)\n }\n }\n\n // const countConversion = () => {\n // const demoBooked = sessionStorage.getItem(\"book-a-demo\");\n // // console.log(\"demoBooked\", demoBooked);\n // if (!demoBooked && !converted) {\n // // console.log(\"new conversion\");\n // sessionStorage.setItem(\"book-a-demo\", true);\n // setConverted(true);\n // }\n // }\n\n const handleSubmit = e => {\n requestData['fields'] = Object.keys(formValue).map(key => ({ name: key, value: formValue[key]}));\n requestData['legalConsentOptions']['consent']['communications'][0]['value'] = commConsent;\n \n // console.warn(requestData);\n\n const requestBody = JSON.stringify(requestData)\n setBusy(true);\n \n fetch(action, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: requestBody\n })\n .then(response => response.json())\n .then(data => {\n setBusy(false);\n // console.log(\"Response: \", data);\n if (data && data.inlineMessage) {\n data.link = {href: \"/\", text: \"Back to home page\"};\n setModalText(data);\n // countConversion();\n // console.warn(\"Success:\", data.inlineMessage);\n } \n else if (data && data.errors) {\n setModalText({\n inlineMessage: \"

There was an error submitting the form

Double check required fields and try again.\",\n });\n // console.warn(\"Error:\", data.message);\n }\n \n })\n .catch(error => {\n setBusy(false);\n setModalText({message: \"

Something went wrong

There was an error submitting the form, please try again later.\"})\n error(\"Error submitting the form\", error)\n });\n\n e.preventDefault();\n };\n\n const handleChange = e => setFormValue({ [e.target.name]: e.target.value });\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
\n\n
\n

\n Grundium is committed to protecting and respecting your privacy, and we’ll only use your personal information to administer your account and to provide the products and services you requested from us. From time to time, we would like to contact you about our products and services, as well as other content that may be of interest to you. If you consent to us contacting you for this purpose, please tick below:\n

\n \n
\n
\n setCommConsent(!commConsent)}/>\n \n
\n
\n \n

You can unsubscribe from these communications at any time. For more information on how to unsubscribe, our privacy practices, and how we are committed to protecting and respecting your privacy, \n please review our Privacy Policy.

\n\n

By clicking submit, you consent to allow Grundium to store and process the personal information submitted above to provide you the content requested.

\n
\n
\n \n
\n
\n \n
\n\n {\n modalText && modalText.spinner && modalText.spinner\n }\n {\n modalText && modalText.message && (\n
\n

{modalText.message}

\n {\n modalText.link && {modalText.link.text}\n }\n {\n !modalText.link && setModalText(undefined)}\n >CLOSE\n }\n
\n )\n }\n {\n modalText && modalText.inlineMessage && (\n
\n

\n {\n modalText.link && {modalText.link.text}\n }\n {\n !modalText.link && setModalText(undefined)}\n >CLOSE\n }\n \n \n
\n )\n }\n
\n \n
\n );\n }\n\n export default BookForm","import React from \"react\"\nimport { BgImage } from \"gbimage-bridge\"\n// import \"../css/main.css\"\nimport TopMenu from \"./TopMenu\"\nimport Testimonial from \"../components/testimonials/Testimonial\"\nimport BookDemo from \"./BookDemo\"\nimport Footer from \"./Footer\"\n// import CookieConsent from \"./cookie-consent/CookieConsent\"\n\n\nconst LayoutGeneric = ({ children, title, subtitle, image:fluid, testimonial, noBook, bookDemo }) => {\n return (\n
\n \n {/*
*/}\n \n
\n\n
\n\n
\n
\n
\n
\n

{ title }

\n
\n

{ subtitle }

\n
\n
\n
\n
\n\n
\n
\n
\n {children}\n
\n
\n
\n \n\n {\n !noBook &&
\n
\n
\n \n
\n
\n \n
\n }\n\n { \n noBook &&
\n \n \n
\n }\n \n
\n
\n
\n )\n}\n\nexport default LayoutGeneric\n","import \"./testimonials.css\"\nimport React from \"react\"\n// import Image from \"gatsby-image\"\nimport quotesImg from \"../../assets/img/quotes.svg\"\nimport { BgImage } from \"gbimage-bridge\"\n// import { Link } from \"gatsby\"\nimport { graphql, useStaticQuery } from \"gatsby\"\n// import SocialLinks from \"../constants/socialLinks\"\n// ...GatsbyImageSharpFluid\nimport classNames from \"classnames\";\nimport { IoIosArrowBack } from \"react-icons/io\"\nimport { randomInteger } from \"../../utils/utils\"\n\nconst Testimonial = (props) => {\n const {\n allStrapiTestimonials: { nodes: testimonials },\n } = useStaticQuery(graphql`\n {\n allStrapiTestimonials {\n nodes {\n id\n strapiId\n text\n authorName\n authorImage {\n childImageSharp {\n gatsbyImageData(\n width: 400\n layout: CONSTRAINED\n placeholder: BLURRED\n )\n }\n }\n authorPosition\n authorCompany\n authorCompanyUrl\n }\n }\n }\n `)\n\n let [activeItem, setActiveItem] = React.useState(getIndexByStrapiId(props.selected) || randomInteger(0, testimonials.length-1));\n\n function getIndexByStrapiId(id) {\n let res = 0;\n for (let i=0; i\n\n {testimonials.filter((item, index)=> index === activeItem).map((testimonial)=>{\n return (\n
\n {/* \n */}\n
\n
\n
\"Quotes\"/
\n {testimonial.text}\n
\n
\n \n \n
\n
\n — \n {testimonial.authorName}\n
\n
\n {testimonial.authorCompany}\n  \n
{testimonial.authorPosition}\n
\n
\n
\n
\n
\n );\n })}\n \n \n \n );\n\n}\n\nexport default Testimonial\n","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport ReactMarkdown from \"react-markdown\"\nimport LayoutGeneric from \"../components/LayoutGeneric\"\nimport Seo from \"../components/Seo\";\nimport BookForm from \"../components/BookForm\"\n\nexport default function BookADemo({data}) {\n\n // console.log(data);\n const { image, title, subtitle, content, SEO} = data.page;\n\n return (\n \n \n \n
\n \n
\n
\n );\n}\n\nexport const query = graphql`\n {\n page: strapiPages(slug: { eq: \"book-a-demo\" }) {\n content\n image {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n SEO {\n title\n description\n }\n slug\n subtitle\n title\n id\n }\n }\n`\n"],"sourceRoot":""}