{"version":3,"file":"component---src-templates-content-elements-client-js-0adf810db6d8d3bd317f.js","mappings":"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","sources":["webpack://acu-gatsby/./src/components/callToAction/callToAction.js","webpack://acu-gatsby/./src/components/callToActionFeature/callToActionFeature.js","webpack://acu-gatsby/./src/components/headline/headline.js","webpack://acu-gatsby/./src/components/projectImage/projectImage.js","webpack://acu-gatsby/./src/components/quote/quote.js","webpack://acu-gatsby/./src/components/pullQuote/pullQuote.js","webpack://acu-gatsby/./src/components/reasonBenefitsFeature/reasonBenefitsFeature.js","webpack://acu-gatsby/./src/components/relatedProjects/relatedProjects.js","webpack://acu-gatsby/./src/components/serviceFocus/serviceFocus.js","webpack://acu-gatsby/./src/components/serviceFocusFeature/serviceFocusFeature.js","webpack://acu-gatsby/./src/components/splashImage/splashImage.js","webpack://acu-gatsby/./src/components/supportingImages/supportingImages.js","webpack://acu-gatsby/./src/components/valueProposition/valueProposition.js","webpack://acu-gatsby/./src/components/companyProfile/companyProfile.js","webpack://acu-gatsby/./src/templates/ContentElementsClient.js"],"sourcesContent":["import React, { Fragment, useEffect, useState } from 'react'\nimport { Link } from 'gatsby'\nimport PropTypes from 'prop-types'\nimport './callToAction.scss'\n\nconst CallToAction = ({ data=[], headline='', className='', color = 'yellow' }) => {\n let classList = ['call-to-action', color]\n if (className) {\n classList.push(className)\n }\n\n let [state, setState] = useState('loading')\n let [strippedText, setStrippedText] = useState('')\n if (data) {\n if (Array.isArray(data) && data.length === 1) {\n data = data[0]\n } else if (Array.isArray(data) && data.length === 0) {\n data = null\n }\n }\n useEffect(() => {\n if (data != null) {\n let t = document.createElement('div')\n t.innerHTML = data ? data.shortText : ''\n setStrippedText(t.innerText)\n setState('idle')\n }\n }, [data])\n\n if (state === 'idle') {\n if (data) {\n const renderLink = (data, content) => {\n let url = '#'\n if (data.externalUrl) {\n url = data.externalUrl\n return <a href={url}>{content}</a>\n } else if (data.internalPage && data.internalPage.length > 0) {\n url = `/${data.internalPage[0].url}`\n return <Link to={url}>{content}</Link>\n }\n return content\n }\n\n return (\n <section className={classList.join(' ')}>\n {renderLink(\n data,\n <button className={color} aria-label={strippedText}>\n <div className=\"text\">\n <div>{headline}</div>\n <span className=\"thick-underline\">{strippedText}</span>\n </div>\n </button>\n )}\n </section>\n )\n }\n }\n return <Fragment></Fragment>\n}\n\n// CallToAction.defaultProps = {\n// data: [],\n// headline: '',\n// className: '',\n// color: 'black'\n// }\n// TODO: data is sometimes an object and other times an array - both work but an error is thrown\nCallToAction.propTypes = {\n data: PropTypes.array,\n headline: PropTypes.string,\n className: PropTypes.string,\n color: PropTypes.string\n}\n\nexport default CallToAction\n","import React, { Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport CallToAction from '../callToAction'\n\nimport './callToActionFeature.scss'\n\nconst CallToActionFeature = ({ data=[] }) => {\n if (Array.isArray(data) && data.length === 1) {\n data = data[0]\n }\n if (data && data.callsToAction && data.callsToAction.length > 0) {\n return (\n <section className=\"call-to-action-feature\">\n <CallToAction\n data={data.callsToAction}\n headline={data.headline}\n color=\"yellow\"\n />\n </section>\n )\n }\n return <Fragment></Fragment>\n}\n\n// CallToActionFeature.defaultProps = {\n// data: []\n// }\n\nCallToActionFeature.propTypes = {\n data: PropTypes.array\n}\n\nexport default CallToActionFeature\n","import React, { Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport './headline.scss'\n\nconst Headline = ({ headline='', description='', subgrid = false }) => {\n if (headline !== '' || description !== '') {\n return (\n <Fragment>\n <h2\n className={`subheading mb-dy-lg ${subgrid ? 'sub' : ''} ${\n description ? 'half' : ''\n }`}\n >\n — {headline}\n </h2>\n {description ? (\n <div\n className=\"description mb-dy-lg\"\n dangerouslySetInnerHTML={{ __html: description }}\n ></div>\n ) : (\n <Fragment />\n )}\n </Fragment>\n )\n }\n return <Fragment></Fragment>\n}\n\nHeadline.propTypes = {\n headline: PropTypes.string,\n description: PropTypes.string\n}\n\nexport default Headline\n","import React, { Fragment } from 'react'\nimport { Link } from 'gatsby'\nimport PropTypes from 'prop-types'\n\nimport { FluidImage } from '../../services/images'\nimport Button from '../button'\n\nimport './projectImage.scss'\n\nconst RenderLink = ({ data, children, className }) => {\n if (data && data.length > 0) {\n return <Link to={`/${data[0].url}`} className={className}>{children}</Link>\n }\n return <Fragment></Fragment>\n}\n\nconst ProjectImage = ({\n image=[],\n name='',\n description='',\n page=[],\n relatedProject = false,\n clickableContainer = false\n}) => {\n let options = {}\n if (relatedProject) {\n options = {\n size: {\n width: 900,\n height: 900\n }\n }\n }\n return (\n <Fragment>\n <FluidImage src={image} alt={name} options={options} />\n <div className=\"text\">\n {clickableContainer ? (<RenderLink data={page}><div className=\"clickable-layer\"></div></RenderLink>) : ('')}\n <h2 className=\"fit thick-underline\">\n <RenderLink data={page}>{name}</RenderLink>\n </h2>\n <div\n className=\"description mb-sm\"\n dangerouslySetInnerHTML={{ __html: description }}\n key={Math.random() + '-' + name}\n ></div>\n <RenderLink data={page} className=\"link\">\n <Button\n title=\"Learn More\"\n types={['right-arrow', 'dark', 'rotate', 'pseudo-button']}\n />\n </RenderLink>\n </div>\n </Fragment>\n )\n}\n\nProjectImage.propTypes = {\n image: PropTypes.array,\n name: PropTypes.string,\n description: PropTypes.string,\n page: PropTypes.array\n}\n\nexport default ProjectImage\n","import React from 'react'\nimport './quotes.scss'\n\nexport const TopQuote = ({ fill = '#fff' }) => {\n return (\n <svg viewBox=\"0 0 71.02 64.2\" className=\"quote top\">\n <path\n d=\"M205.2,898.6v30.61a33.17,33.17,0,0,1-1.9,12.39,32.42,32.42,0,0,1-26.5,21.2V949.6q7.6-2.6,10.4-7.7a25.61,25.61,0,0,0,2.8-12.5H176.8V898.6Zm42.6,0v30.61a33.17,33.17,0,0,1-1.9,12.39,32.42,32.42,0,0,1-26.5,21.2V949.6q7.6-2.6,10.4-7.7a25.61,25.61,0,0,0,2.8-12.5H219.4V898.6Z\"\n transform=\"translate(-176.8 -905)\"\n style={{ fill: fill }}\n />\n </svg>\n )\n}\n\nexport const BottomQuote = ({ fill = '#fff' }) => {\n return (\n <svg viewBox=\"0 0 71.02 64.2\" className=\"quote bottom\">\n <path\n d=\"M 42.62,67.8 V 37.2 a 33,33 0 0 1 1.9,-12.4 32.24,32.24 0 0 1 5.9,-10.2 32.73,32.73 0 0 1 20.6,-11 v 13.2 q -7.6,2.61 -10.4,7.7 A 25.66,25.66 0 0 0 57.82,37 h 13.2 v 30.8 z m -42.6,0 V 37.2 a 33,33 0 0 1 1.9,-12.4 32.24,32.24 0 0 1 5.9,-10.2 32.73,32.73 0 0 1 20.6,-11 v 13.2 q -7.6,2.61 -10.4,7.7 A 25.66,25.66 0 0 0 15.2,37 h 13.2 v 30.8 z\"\n style={{ fill: fill }}\n />\n </svg>\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { TopQuote, BottomQuote } from '../quote'\n\nimport './pullQuote.scss'\n\nconst getOrganizationName = data => {\n if (data.companyOrganization && data.companyOrganization.length > 0) {\n if (data.companyOrganization[0] && data.companyOrganization[0].name) {\n return `, ${data.companyOrganization[0].name}`\n }\n }\n}\n\nconst getColor = elem => {\n let color = window\n .getComputedStyle(elem, null)\n .getPropertyValue('background-color')\n if (color === 'rgba(0, 0, 0, 0)') {\n return '#fff'\n }\n return color\n}\n\nconst PullQuote = ({ data=[] }) => {\n let [topQuoteColor, setTopQuoteColor] = useState('#fff')\n let [bottomQuoteColor, setBottomQuoteColor] = useState('#fff')\n\n useEffect(() => {\n let quote = document.querySelector('.pull-quote')\n if (quote) {\n let topColor = getColor(quote.previousElementSibling)\n let bottomColor = getColor(quote.nextElementSibling)\n setTopQuoteColor(topColor)\n setBottomQuoteColor(bottomColor)\n }\n }, [])\n return data.map((data, idx) => {\n return (\n <section className=\"pull-quote mb-dy-lg\" key={`pull-quote-${idx}`}>\n <TopQuote fill={topQuoteColor} />\n <div className=\"divider\"></div>\n <div\n className=\"quote-text\"\n dangerouslySetInnerHTML={{ __html: data.quote }}\n ></div>\n <div className=\"divider\"></div>\n <div className=\"attribute\">\n {(data.attributedTo || []).map((name, idx) => {\n return (\n <span key={`pq-${idx}`}>\n {name.firstName} {name.lastName} {getOrganizationName(name)}\n </span>\n )\n })}\n </div>\n <BottomQuote fill={bottomQuoteColor} />\n </section>\n )\n })\n}\n\nPullQuote.propTypes = {\n data: PropTypes.array\n}\n\nexport default PullQuote\n","import React, { Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport BallList from '../ballList'\n\nimport './reasonBenefitsFeature.scss'\n\nconst ReasonBenefitsFeature = ({ data=[], color='', last=false }) => {\n let classList = [\n 'reason-benefits-feature',\n 'interior',\n 'grid',\n !last ? 'mb-dy-lg' : 'mb-dy-none',\n 'pt-lg'\n ]\n if (color) {\n classList.push(color)\n }\n return data.map((data, idx) => {\n if (data.reasonsBenefits && data.reasonsBenefits.length > 0) {\n return (\n <section className={classList.join(' ')} key={`rb-${idx}`}>\n <h2 className=\"subheading sm-mb-md\">— {data.headline}</h2>\n <BallList data={data.reasonsBenefits} />\n </section>\n )\n }\n return <Fragment key={idx}></Fragment>\n })\n}\n\n// ReasonBenefitsFeature.defaultProps = {\n// data: [],\n// color: ''\n// }\n\nReasonBenefitsFeature.propTypes = {\n data: PropTypes.array,\n color: PropTypes.string\n}\n\nexport default ReasonBenefitsFeature\n","import React, { useRef, useEffect, useState } from 'react'\nimport { useStaticQuery, graphql } from 'gatsby'\nimport Utils from '../../services/utils'\nimport Headline from '../headline'\nimport ProjectImage from '../projectImage'\n\nimport './relatedProjects.scss'\n\nconst RelatedProjects = ({ company }) => {\n let current = useRef()\n let scroller = useRef()\n let { acu } = useStaticQuery(graphql`\n query {\n acu {\n queryCompanyContents(top: 100) {\n flatData {\n name\n shortDescription\n clientType\n portfolioImage {\n fileName\n }\n companyImage {\n fileName\n }\n clientIndustry\n projectType\n page {\n flatData {\n url\n }\n }\n }\n }\n }\n }\n `)\n\n const getRelatedCompanies = () => {\n let sourceRelatedCompanies = acu.queryCompanyContents\n .filter(c => {\n c = c.flatData\n return (\n c.name !== company[0]?.name &&\n c.companyImage?.length > 0 &&\n c.clientType?.length > 0 &&\n c.clientType?.includes('Client')\n )\n })\n .sort((a, b) => {\n return 0.5 - Math.random()\n })\n .slice(0, 6)\n return sourceRelatedCompanies\n }\n\n const [relatedCompanies, setRelatedCompanies] = useState(getRelatedCompanies())\n\n useEffect(() => {\n current.current.innerText = 1\n scroller.current.addEventListener('scroll', () => {\n let index = Math.round(\n (scroller.current.scrollLeft / scroller.current.scrollWidth) *\n relatedCompanies.length\n )\n current.current.innerText = index + 1\n })\n }, [relatedCompanies])\n return (\n <section className=\"related-projects grid full-bleed mb-dy-lg\">\n <Headline headline=\"More Projects\" />\n <div className=\"display-none sm-display-block talign-center pb-sm grid-element arrows\">\n <span className=\"fa fa-arrow-left mr-sm\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 97.2 91.2\"\n width=\"20\"\n >\n <polygon points=\"0 52.7 69.9 52.7 41.5 81.1 51.5 91.2 87.1 55.7 87.1 55.7 97.2 45.6 97.1 45.6 97.2 45.6 87.1 35.5 87.1 35.5 51.5 0 41.5 10.1 69.8 38.4 0 38.4 0 52.7\" />\n </svg>\n </span>{' '}\n <span id=\"outof\" ref={current}></span> / {relatedCompanies.length}\n <span className=\"fa fa-arrow-right ml-sm\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 97.2 91.2\"\n width=\"20\"\n >\n <polygon points=\"0 52.7 69.9 52.7 41.5 81.1 51.5 91.2 87.1 55.7 87.1 55.7 97.2 45.6 97.1 45.6 97.2 45.6 87.1 35.5 87.1 35.5 51.5 0 41.5 10.1 69.8 38.4 0 38.4 0 52.7\" />\n </svg>\n </span>\n </div>\n <section className=\"related-projects-list grid-element\" ref={scroller}>\n {relatedCompanies && Array.isArray(relatedCompanies) && (\n <>\n {relatedCompanies.map((company, idx) => {\n company = Utils.removeFlatData(company.flatData)\n return (\n <div\n className=\"related-project featured-project\"\n key={`related-project-${company.name}`}\n >\n <ProjectImage\n image={company.companyImage}\n name={company.name}\n description={company.shortDescription}\n page={company.page}\n relatedProject={true}\n />\n </div>\n )\n })}\n </>\n )}\n\n </section>\n </section>\n )\n}\n\nexport default RelatedProjects\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport CallToActionFeature from '../callToActionFeature/callToActionFeature'\nimport { FluidImage } from '../../services/images'\n\nimport './serviceFocus.scss'\n\nconst ServiceFocus = ({ data={} }) => {\n let image\n if (data.supportImage) {\n image = (\n <FluidImage\n src={data.supportImage}\n alt={data.supportImage.slug}\n options={{\n objectFit: 'contain',\n size: {\n width: 800,\n height: 500\n }\n }}\n />\n )\n } else if (data.featuredImage) {\n image = (\n <FluidImage\n src={data.featuredImage}\n alt={data.featuredImage.slug}\n options={{\n objectFit: 'contain',\n size: {\n width: 800,\n height: 500\n }\n }}\n />\n )\n }\n return (\n <section className=\"service-focus grid mb-dy-lg\">\n <div className=\"block image-block\">{image}</div>\n\n <div className=\"block text-block\">\n <h4 className=\"my-n\">{data.subhead}</h4>\n <h3 className=\"mt-n\">{data.headline}</h3>\n <div\n className=\"detail\"\n dangerouslySetInnerHTML={{\n __html: data.leadInText || data.leadInContent\n }}\n ></div>\n {data?.callToActionFeature &&\n <div className=\"cta-feature mt-md\">\n <CallToActionFeature data={data.callToActionFeature} />\n </div>\n }\n </div>\n </section>\n )\n}\n// ServiceFocus.defaultProps = {\n// data: {}\n// }\n\nServiceFocus.propTypes = {\n data: PropTypes.object\n}\n\nexport default ServiceFocus\n","import React, { Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport ServiceFocus from '../serviceFocus'\nimport Headline from '../headline'\n\nimport './serviceFocusFeature.scss'\n\nconst render = (data,idx) => {\n let children = data.serviceFoci ? data.serviceFoci : data.projects\n if (children && children.length > 0) {\n return (\n <section className=\"service-focus-feature grid interior mb-dy-lg\" key={idx}>\n <Headline headline={data.headline} />\n\n <section className=\"services grid\">\n {children.map((project, idx) => {\n return <ServiceFocus data={project} key={`sf-${idx}`} />\n })}\n </section>\n </section>\n )\n }\n return <Fragment></Fragment>\n}\n\nconst ServiceFocusFeature = ({ data=[] }) => {\n if (Array.isArray(data)) {\n return data.map((data, idx) => render(data, idx))\n }\n return render(data)\n}\n\nServiceFocusFeature.propTypes = {\n data: PropTypes.array\n}\n\nexport default ServiceFocusFeature\n","import React, { Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport utils from '../../services/utils'\nimport { FluidImage } from '../../services/images'\nimport './splashImage.scss'\n\nconst SplashImage = ({ data=[] }) => {\n return data.map((data, idx) => {\n if (data) {\n let url = utils.getURL(data, 'fileName')\n let isVideo = false\n if (url.includes('.mp4')) {\n isVideo = true\n }\n return (\n <section\n className={`splash-image mb-dy-lg ${isVideo ? 'auto-height' : ''}`}\n key={`splash-${idx}`}\n >\n <FluidImage src={data} alt={data.metaDescription} />\n </section>\n )\n }\n return <Fragment key={idx}></Fragment>\n })\n}\n\nSplashImage.propTypes = {\n data: PropTypes.array\n}\n\nexport default SplashImage\n","import React, { Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport { FluidImage } from '../../services/images'\nimport './supportingImages.scss'\n\nconst SupportingImages = ({ data=[], full }) => {\n if (data.length > 0) {\n return (\n <section className={`supporting-images mb-dy-lg ${full && 'full-width'}`}>\n {data.map((img, idx) => {\n return (\n <div className=\"image-holder\" key={idx}>\n <FluidImage src={img} alt=\"\" />\n </div>\n )\n })}\n </section>\n )\n }\n return <Fragment />\n}\n\nSupportingImages.propTypes = {\n data: PropTypes.array\n}\n\nexport default SupportingImages\n","import React, { Fragment } from 'react'\nimport { Link } from 'gatsby'\nimport PropTypes from 'prop-types'\nimport Button from '../button'\nimport './valueProposition.scss'\n\nconst ValueProposition = ({ data=[], headline='', subhead='', showCTA=false }) => {\n if (Array.isArray(data) && data.length === 1) {\n data = data[0]\n }\n return (\n <Fragment>\n <div className=\"banner-subheading mb-dy-lg\">\n <h1 className=\"type\">\n {headline}\n <span>— {subhead}</span>\n </h1>\n </div>\n <section className=\"value-proposition mb-dy-lg\">\n <div dangerouslySetInnerHTML={{ __html: data.valueProp }}></div>\n {showCTA && (\n <div className=\"mx-auto mt-md display-table\">\n <Link to=\"/contact-us\">\n <Button title=\"Contact Us Today\" types={['cta', 'pseudo-button']} />\n </Link>\n </div>\n )}\n </section>\n </Fragment>\n )\n}\n\n// ValueProposition.defaultProps = {\n// data: [],\n// headline: '',\n// subhead: '',\n// showCTA: false\n// }\n\nValueProposition.propTypes = {\n data: PropTypes.array,\n headline: PropTypes.string,\n subhead: PropTypes.string,\n showCTA: PropTypes.bool\n}\n\nexport default ValueProposition\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Headline from '../headline'\n\nimport './companyProfile.scss'\n\nconst CompanyProfile = ({ data=[] }) => {\n return data.map((data, idx) => {\n return (\n <section className=\"company-profile grid mb-dy-lg\" key={`company-${idx}`}>\n <Headline headline={data.name} description={data.backgroundHistory} />\n </section>\n )\n })\n}\n\nCompanyProfile.propTypes = {\n data: PropTypes.array\n}\n\nexport default CompanyProfile\n","import React, { Fragment } from 'react'\nimport { graphql } from 'gatsby'\nimport Utils from '../services/utils'\n\nimport Layout from '../components/layout'\nimport ValueProposition from '../components/valueProposition'\nimport SupportingImages from '../components/supportingImages'\nimport SplashImage from '../components/splashImage'\nimport PullQuote from '../components/pullQuote'\nimport CallToActionFeature from '../components/callToActionFeature'\nimport ReasonBenefitsFeature from '../components/reasonBenefitsFeature'\nimport ServiceFocusFeature from '../components/serviceFocusFeature'\nimport CompanyProfile from '../components/companyProfile'\nimport RelatedProjects from '../components/relatedProjects'\n\nconst ContentElementsClient = ({ data, pageContext }) => {\n if (data && data.acu) {\n let content = Utils.removeFlatData(\n data.acu.findContentElementsClientContent.flatData || {}\n )\n return (\n <Layout meta={pageContext.metaData}>\n <section className=\"content-elements-client grid body\">\n <ValueProposition\n data={content.valueProposition || []}\n headline={content.headline}\n subhead={content.subhead}\n />\n\n <SplashImage data={content.splashImage} />\n\n <CompanyProfile data={content.company || []} />\n \n <PullQuote data={content.pullQuote || []} />\n\n <ServiceFocusFeature data={content.projectListing || []} />\n\n <ReasonBenefitsFeature data={content.reasonBenefitFeature || []} />\n\n {content.supportingImages && (\n <SupportingImages data={content.supportingImages || []} full={true} />\n )}\n\n <RelatedProjects company={content.company || []} />\n\n <CallToActionFeature data={content.ctaFeature || []} />\n </section>\n </Layout>\n )\n }\n return <Fragment></Fragment>\n}\n\nexport const ContentElementsClientQuery = graphql`\n query ClientQuery($id: String!) {\n acu {\n findContentElementsClientContent(id: $id) {\n flatData {\n company {\n ...Company\n }\n contentItemName\n ctaFeature {\n ...CtaFeature\n }\n headline\n projectListing {\n ...ProjectListing\n }\n pullQuote {\n ...PullQuote\n }\n reasonBenefitFeature {\n ...ReasonBenefitFeature\n }\n splashImage {\n ...Asset\n }\n subhead\n supportingImages {\n ...Asset\n }\n valueProposition {\n ...ValueProposition\n }\n }\n }\n }\n }\n`\n\nexport default ContentElementsClient\n"],"names":["_ref","data","headline","className","color","classList","push","state","setState","useState","strippedText","setStrippedText","Array","isArray","length","useEffect","t","document","createElement","innerHTML","shortText","innerText","renderLink","content","url","externalUrl","React","href","internalPage","Link","to","join","Fragment","callsToAction","CallToAction","description","subgrid","dangerouslySetInnerHTML","__html","RenderLink","children","_ref2","image","name","page","relatedProject","clickableContainer","options","size","width","height","FluidImage","src","alt","key","Math","random","Button","title","types","TopQuote","fill","viewBox","d","transform","style","BottomQuote","getColor","elem","window","getComputedStyle","getPropertyValue","topQuoteColor","setTopQuoteColor","bottomQuoteColor","setBottomQuoteColor","quote","querySelector","topColor","previousElementSibling","bottomColor","nextElementSibling","map","idx","attributedTo","firstName","lastName","companyOrganization","getOrganizationName","last","reasonsBenefits","BallList","company","current","useRef","scroller","acu","useStaticQuery","relatedCompanies","setRelatedCompanies","queryCompanyContents","filter","c","_company$","_c$companyImage","_c$clientType","_c$clientType2","flatData","companyImage","clientType","includes","sort","a","b","slice","addEventListener","index","round","scrollLeft","scrollWidth","Headline","xmlns","points","id","ref","Utils","removeFlatData","ProjectImage","shortDescription","supportImage","slug","objectFit","featuredImage","subhead","leadInText","leadInContent","callToActionFeature","CallToActionFeature","render","serviceFoci","projects","project","ServiceFocus","isVideo","utils","getURL","metaDescription","full","img","showCTA","valueProp","backgroundHistory","pageContext","findContentElementsClientContent","Layout","meta","metaData","ValueProposition","valueProposition","SplashImage","splashImage","CompanyProfile","PullQuote","pullQuote","ServiceFocusFeature","projectListing","ReasonBenefitsFeature","reasonBenefitFeature","supportingImages","SupportingImages","RelatedProjects","ctaFeature"],"sourceRoot":""}