{"version":3,"file":"js/857-23e450c637fb7f204e98.js","mappings":"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","sources":["webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/Participant/useParticipants.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/CTA/styles.module.scss?bff7","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/CTA/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/MoreCaseStudies/styles.module.scss?092e","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/MoreCaseStudies/CaseStudyLink.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/MoreCaseStudies/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/Footer/styles.module.scss?49d1","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/Footer/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/Participant/styles.module.scss?39ff","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/Participant/Image.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/Participant/ImageList.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/Participant/Participant.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/Participant/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/sections/Quote/styles.module.scss?e42d","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/sections/Quote/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/sections/Content/styles.module.scss?925b","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/sections/Content/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/sections/PictureSet/styles.module.scss?fd18","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/sections/PictureSet/index.tsx","webpack://realm_app/./app/javascript/svgs/designer.tsx","webpack://realm_app/./app/javascript/svgs/architect.tsx","webpack://realm_app/./app/javascript/svgs/contractor-3.tsx","webpack://realm_app/./app/javascript/svgs/bid-review.tsx","webpack://realm_app/./app/javascript/svgs/bid-negotiation.tsx","webpack://realm_app/./app/javascript/svgs/permitting.tsx","webpack://realm_app/./app/javascript/svgs/zoning.tsx","webpack://realm_app/./app/javascript/svgs/roi-analysis.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/sections/ServicesProvided/styles.module.scss?6180","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/sections/ServicesProvided/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/Article.module.scss?a952","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/Article.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/storySections/Title/styles.module.scss?a282","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/storySections/Title/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/storySections/Introduction/styles.module.scss?d000","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/storySections/Introduction/index.tsx","webpack://realm_app/./app/javascript/svgs/quote.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/StoryCTA/styles.module.scss?9886","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/components/StoryCTA/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/storySections/Quote/styles.module.scss?02c3","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/storySections/Quote/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/storySections/Content/styles.module.scss?fd84","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/storySections/Content/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/storySections/PictureSet/styles.module.scss?d33c","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/storySections/PictureSet/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/storySections/ServicesProvided/styles.module.scss?fffd","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/storySections/ServicesProvided/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/StoryHud.module.scss?5bc8","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/StoryHud.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/Story.module.scss?ebac","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/Story.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/styles.module.scss?c5da","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectCaseStudy/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Roundup/InstaStory/context.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/Roundup/InstaStory/styles.module.scss?02b8","webpack://realm_app/./app/javascript/pages/_serverRendered/Roundup/InstaStory/Progress.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Roundup/InstaStory/ProgressArray.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Roundup/InstaStory/Container.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Roundup/InstaStory/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Roundup/components/Section.tsx","webpack://realm_app/./app/javascript/svgs/flourish.tsx","webpack://realm_app/./app/javascript/utils/sentry.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/Roundup/styles.module.scss?fdfd"],"sourcesContent":["import React, { FC, PropsWithChildren } from 'react'\n\nimport { Participant } from '../../types'\nimport { useContext, createContext, useMemo, useCallback } from 'react'\n\ninterface IParticipantContext {\n customers: Array\n advisors: Array\n}\n\nexport const ParticipantContext = createContext({\n customers: [],\n advisors: [],\n})\n\nexport const ParticipantsManager: FC> = ({\n children,\n participants,\n}) => {children}\n\nexport default function useParticipants(): {\n customers: Array\n advisors: Array\n all: Array\n findParticipant: (identifier: string) => (Participant & { isCustomer: boolean }) | undefined\n} {\n const { advisors, customers } = useContext(ParticipantContext)\n\n const all = useMemo(() => [...customers, ...advisors], [customers, advisors])\n\n const handleFindParticipant = useCallback(\n (identifier: string) => {\n const found = all.find((participant) => participant.identifier == identifier)\n if (found) return { ...found, isCustomer: !!customers.find((c) => c.identifier == found.identifier) }\n },\n [all, customers]\n )\n\n return {\n customers,\n advisors,\n all,\n findParticipant: handleFindParticipant,\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"cta\":\"NVWE0ZCd0DUztOJAFuFH\",\"copy\":\"rGerUyQrUZUGgOomfDsj\",\"button\":\"wrlWZoP0ruWVfyEMrv6K\"};","import React, { FC, useCallback } from 'react'\n\nimport { track } from 'utils/analytics'\n\nimport { CallToAction } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport Button from 'components/NikhilButton'\n\nimport styles from './styles.module.scss'\n\n// This is the CTA that appears on the side for desktop (not in the footer)\n// See Footer for the one that appears there.\nconst CTA: FC = ({ copy, text, url, analytics_event, analytics_module }) => {\n const handleCtaClick = useCallback(async () => {\n await track('click cta', { cta: analytics_event, module: analytics_module, location: 'desktop-left-column' })\n\n if (!url) return\n\n if (url && url.target === '_blank') {\n window.open(url.url, '_blank')?.focus()\n } else {\n window.location.href = url?.url || ''\n }\n }, [url, analytics_event, analytics_module])\n\n return (\n
\n \n \n
\n )\n}\n\nexport default CTA\n","// extracted by mini-css-extract-plugin\nexport default {\"moreCaseStudies\":\"OizZrzpnteCbB3Nv3RWI\",\"caseStudyLink\":\"H_gZSYRnP1BuAOdhjH8f\",\"button\":\"IBSi_ltvDiRgoMYH2b1v\",\"info\":\"CmDylaBYY3mq0Pq2LHQo\",\"context\":\"k_BeSXCQZr9sNbwr3sgH\",\"title\":\"GbGcXbDuBG5SpAzJ4SPY\",\"deck\":\"g8Xe5W5ANPshP9Rze0Ov\"};","import React, { FC, useCallback } from 'react'\nimport cx from 'classnames'\n\nimport { track } from 'utils/analytics'\n\nimport { RelatedStudy } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport styles from './styles.module.scss'\n\ninterface Props extends RelatedStudy {\n className?: string\n}\n\nconst CaseStudyLink: FC = ({ className, main_image, study_title, deck, context, url }) => {\n const handleCtaClick = useCallback(async () => {\n await track('click cta', { cta: 'case-study', module: 'more-case-studies', location: 'desktop-right-column' })\n\n if (!url) return\n\n window.location.href = url || ''\n }, [url])\n\n const srcset = [\n { img: main_image.thumbnail_1x, size: '1x' },\n { img: main_image.thumbnail_1x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n return (\n
  • \n \n
  • \n )\n}\n\nexport default CaseStudyLink\n","import React, { FC } from 'react'\n\nimport { RelatedStudy } from '../../types'\n\nimport CaseStudyLink from './CaseStudyLink'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n studies: Array\n}\n\nconst CTA: FC = ({ studies }) => {\n // No studies? No render!\n if (studies.length == 0) return null\n\n return (\n
    \n

    {'More Case Studies'}

    \n
      \n {studies.map((study, i) => (\n \n ))}\n
    \n
    \n )\n}\n\nexport default CTA\n","// extracted by mini-css-extract-plugin\nexport default {\"footer\":\"FpMOOdEzGClBTbr7wVxz\",\"body\":\"Yf6cQB_oB0wM5pmOiZgx\",\"corset\":\"iceMwS55VlBuDIwLQ4nB\",\"copy\":\"hfPA0qEgLFETf4jNLJgG\",\"button\":\"vGJpbxwfA0VV5VzMjUXE\"};","import React, { FC, useCallback } from 'react'\nimport cx from 'classnames'\n\nimport { track } from 'utils/analytics'\n\nimport { CallToAction } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport Button from 'components/NikhilButton'\n\nimport styles from './styles.module.scss'\n\ninterface Props extends CallToAction {\n className?: string\n}\n\nconst Footer: FC = ({ className, copy, text, url, analytics_event, analytics_module }) => {\n const handleCtaClick = useCallback(async () => {\n await track('click cta', { cta: analytics_event, module: analytics_module, location: 'footer' })\n\n if (!url) return\n\n if (url && url.target === '_blank') {\n window.open(url.url, '_blank')?.focus()\n } else {\n window.location.href = url?.url || ''\n }\n }, [url, analytics_event, analytics_module])\n\n return (\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n )\n}\n\nexport default Footer\n","// extracted by mini-css-extract-plugin\nexport default {\"image\":\"r62LtTUzqywaGmeemdM_\",\"big\":\"_udf8FOimxMLlzz9as0b\",\"imageList\":\"qW0xRai70PmgesuVzfB7\",\"participant\":\"BB9ID8QiWyhBqRCUcGNY\",\"info\":\"Y7IUpsKDlySeUApUrelb\",\"title\":\"wMIcsBwOSlPOuNxgZoSw\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { Participant } from '../../types'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n participant: Participant\n big?: boolean\n}\n\nconst Image: FC = ({ className, participant, big }) => {\n const srcset = [\n { img: big ? participant.image.big_1x : participant.image, size: '1x' },\n { img: big ? participant.image.big_2x : participant.image?.image_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n return (\n \n )\n}\n\nexport default Image\n","import React, { FC, useMemo } from 'react'\nimport cx from 'classnames'\n\nimport { Participant } from '../../types'\nimport useParticipants from './useParticipants'\n\nimport Image from './Image'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n identifiers?: Array\n}\n\nconst ImageList: FC = ({ className, identifiers }) => {\n const { all, findParticipant } = useParticipants()\n\n const participants = useMemo(() => {\n if (typeof identifiers === 'undefined') return all\n return identifiers.map((identifier) => findParticipant(identifier)).filter((participant) => !!participant) as Array<\n Participant\n >\n }, [identifiers, findParticipant, all])\n\n return (\n
      \n {participants.map((participant) => (\n
    • \n \n
    • \n ))}\n
    \n )\n}\n\nexport default ImageList\n","import React, { FC, useMemo } from 'react'\nimport cx from 'classnames'\n\nimport { Participant } from '../../types'\nimport useParticipants from './useParticipants'\n\nimport Image from './Image'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n identifier: string\n}\n\nconst Participant: FC = ({ className, identifier }) => {\n const { findParticipant } = useParticipants()\n\n const participant = useMemo(() => findParticipant(identifier), [identifier, findParticipant])\n\n return (\n
    \n {participant ? : }\n
    \n {participant?.display_name}\n {participant?.display_title}\n
    \n
    \n )\n}\n\nexport default Participant\n","import Participant from './Participant'\nimport Image from './Image'\nimport ImageList from './Image'\n\nexport default Participant\n\nexport { Image, ImageList }\n","// extracted by mini-css-extract-plugin\nexport default {\"quote\":\"PxiQJ4szFexyBKUFjkgd\",\"text\":\"R7s9KbQiW9ffxfVJtoOn\",\"participant\":\"tPXjoqMA2995Osk7EByu\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { QuoteSlice } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport Participant from '../../components/Participant'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n\n slice: QuoteSlice\n}\n\nconst Quote: FC = ({ className, slice }) => {\n return (\n
    \n \n \n
    \n )\n}\n\nexport default Quote\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"rOlmovgqFq5Ljkkcer4E\",\"title\":\"GJstOO9naPF2xFFevfCH\",\"text\":\"uLARXTNKk2UUNJVHiHIj\",\"image\":\"QfnmtToNjXESnP6cJrvK\",\"desktop\":\"A4BwXMvbRAceJwKlDUd7\",\"mobile\":\"BXZCLeWvIv6TkkBtOXnd\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { ContentSlice } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n\n slice: ContentSlice\n}\n\nconst Content: FC = ({ className, slice }) => {\n return (\n
    \n \n {slice.items.map((item) => {\n const srcsetDesktop = [\n { img: item.image, size: '1x' },\n { img: item.image?.desktop_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n const srcsetMobile = [\n { img: item.image?.mobile_1x, size: '1x' },\n { img: item.image?.mobile_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n return (\n <>\n \n \n \n \n )\n })}\n
    \n )\n}\n\nexport default Content\n","// extracted by mini-css-extract-plugin\nexport default {\"pictureSet\":\"IrkV_CYkQQdYubmpZwvN\",\"title\":\"CJZ6OoXOh49Xc25FVrBQ\",\"images\":\"ysKCuiLrOVzSbeWkWPgX\",\"image\":\"TZSJVxV_fWH4xsKTvFrU\",\"triple\":\"_rH54i5jrEOGCcPJ1YzT\",\"quintuple\":\"Dh5b0ItpSzd_ecR3_ZhQ\",\"imgSlot\":\"l5xsOtfqkLFrMSIxTp0A\",\"quadruple\":\"oHyOi8tW1tKgD4CVpKuR\",\"desktop\":\"NH7k3wzoI8J7F9Dr8Rij\",\"mobile\":\"XDLOAiiZQpL0vabg3vkm\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { PictureSetSlice } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n\n slice: PictureSetSlice\n}\n\nconst PictureSet: FC = ({ className, slice }) => {\n // Don't let them use more than 5.\n // Filter out any that don't have a root image.\n const images = slice.items.filter((item) => item.image.url).slice(0, 5)\n\n // If there are no images, don't show this.\n if (images.length == 0) return null\n\n return (\n
    \n \n \n {images.map((item) => {\n const srcsetDesktop = [\n { img: item.image, size: '1x' },\n { img: item.image?.desktop_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n const srcsetMobile = [\n { img: item.image?.mobile_1x, size: '1x' },\n { img: item.image?.mobile_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n return (\n
    \n \n \n
    \n )\n })}\n \n
    \n )\n}\n\nexport default PictureSet\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n \n \n \n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n \n)\n\nexport default Svg\n","// extracted by mini-css-extract-plugin\nexport default {\"servicesProvided\":\"nqNLp019N3uWlH081URZ\",\"title\":\"yiaHf08oqoXDtvYPdump\",\"service\":\"Ss5IxJ5ZhOkAv_vxdkif\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { ServicesProvidedSlice } from '../../types'\n\nimport DesignerIcon from 'svgs/designer'\nimport ArchitectIcon from 'svgs/architect'\nimport StructuralEngineerIcon from 'svgs/contractor-2'\nimport ContractorIcon from 'svgs/contractor-3'\nimport BidReviewIcon from 'svgs/bid-review'\nimport BidNegotiationIcon from 'svgs/bid-negotiation'\nimport PermittingIcon from 'svgs/permitting'\nimport FinancingIcon from 'svgs/money'\nimport ZoningAnalysisIcon from 'svgs/zoning'\nimport PricingAndRoiAnalysisIcon from 'svgs/roi-analysis'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n\n slice: ServicesProvidedSlice\n}\n\nconst ServicesProvided: FC = ({ className, slice }) => {\n return (\n
    \n \n
      \n {slice.primary?.designer && (\n
    • \n \n {'Designer'}\n
    • \n )}\n {slice.primary?.architect && (\n
    • \n \n {'Architect'}\n
    • \n )}\n {slice.primary?.structural_engineer && (\n
    • \n \n {'Structural Engineer'}\n
    • \n )}\n {slice.primary?.contractor && (\n
    • \n \n {'Contractor'}\n
    • \n )}\n {slice.primary?.bid_review && (\n
    • \n \n {'Bid Review'}\n
    • \n )}\n {slice.primary?.bid_negotiation && (\n
    • \n \n {'Bid Negotiation'}\n
    • \n )}\n {slice.primary?.permitting && (\n
    • \n \n {'Permitting'}\n
    • \n )}\n {slice.primary?.financing && (\n
    • \n \n {'Financing'}\n
    • \n )}\n {slice.primary?.zoning_analysis && (\n
    • \n \n {'Zoning Analysis'}\n
    • \n )}\n {slice.primary?.pricing_and_roi_analysis && (\n
    • \n \n {'Pricing and ROI Analysis'}\n
    • \n )}\n
    \n
    \n )\n}\n\nexport default ServicesProvided\n","// extracted by mini-css-extract-plugin\nexport default {\"article\":\"rSzX3wrA27IPefFYm3IR\",\"context\":\"Kp_onRDKYuRKJW330lnt\",\"title\":\"d14oGkOXo1hIIBwhTnDz\",\"deckFrame\":\"gbKYBVI68Ysh95f3vAPD\",\"images\":\"Q6KDw75mU8FoRbhJspDE\",\"deck\":\"MTrR2mX2xSvB13AeFtg2\",\"desktop\":\"iHrAAtQBlyqpKHkkp86b\",\"mobile\":\"zWyOQ4FWhuH7uH7lRcZ9\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\nimport { RichTextBlock } from 'prismic-reactjs'\n\nimport { Image, Slice as SliceType } from './types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport ImageList from './components/Participant/ImageList'\n\nimport Quote from './sections/Quote'\nimport Content from './sections/Content'\nimport PictureSet from './sections/PictureSet'\nimport ServicesProvided from './sections/ServicesProvided'\n\nimport styles from './Article.module.scss'\n\nconst Slice: FC = (props) => {\n const { ...slice } = props\n\n if (['quote', 'content', 'picture_set', 'services_provided'].includes(slice.slice_type || '')) {\n return (\n <>\n {slice.slice_type === 'quote' ? (\n \n ) : slice.slice_type === 'content' ? (\n \n ) : slice.slice_type === 'picture_set' ? (\n \n ) : slice.slice_type === 'services_provided' ? (\n \n ) : null}\n \n )\n }\n return null\n}\n\ninterface Props {\n className?: string\n\n image: Image\n title: Array\n deck: Array\n context: Array\n\n slices: Array\n}\n\nconst Article: FC = ({ className, image, title, deck, context, slices }) => {\n const srcsetDesktop = [\n { img: image, size: '1x' },\n { img: image?.desktop_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n const srcsetMobile = [\n { img: image?.mobile_1x, size: '1x' },\n { img: image?.mobile_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n return (\n
    \n
    \n \n {image?.alt\n \n \n
    \n \n \n
    \n
    \n {slices.map((slice, i) => (\n \n ))}\n
    \n )\n}\n\nexport default Article\n","// extracted by mini-css-extract-plugin\nexport default {\"titlePage\":\"Va5awuMQ3bbvxbEI2cQD\",\"inner\":\"wcYQuy54YVk6xDzytgQU\",\"image\":\"ipBf0W7viEDHlzelIElb\",\"title\":\"DSHJq1nzxRYC2bQa0TMI\"};","import React, { FC } from 'react'\nimport { RichTextBlock } from 'prismic-reactjs'\n\nimport { MainImage, Padding } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n\n image: MainImage\n title: Array\n background: string\n padding: Padding\n}\nconst Section: FC = ({ image, title, background, padding }) => {\n const srcsetMobile = [\n { img: image?.story_1x, size: '1x' },\n { img: image?.story_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n const style: any = { backgroundColor: background }\n if (padding.top) style.paddingTop = padding.top\n if (padding.bottom) style.paddingBottom = padding.bottom\n if (padding.left) style.paddingLeft = padding.left\n if (padding.right) style.paddingRight = padding.right\n\n return (\n
    \n
    \n {image?.alt\n \n
    \n
    \n )\n}\n\nexport default Section\n","// extracted by mini-css-extract-plugin\nexport default {\"introPage\":\"DudaiqaCQjOhQZ6xR8Yg\",\"inner\":\"MaJ5wm_XsoQAhfFI3p06\",\"title\":\"kxiFQkmTCBqpAhuWz_ri\",\"image\":\"zq2AAVNYSOLUevSNwJ2Z\",\"name\":\"SYMamAoALojVwXaYjSRk\"};","import React, { FC } from 'react'\nimport { RichTextBlock } from 'prismic-reactjs'\n\nimport { StoryImage, Padding } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n\n image: StoryImage\n deck: Array\n deckEnd: Array\n background: string\n padding: Padding\n}\nconst Section: FC = ({ image, deck, deckEnd, background, padding }) => {\n const srcsetMobile = [\n { img: image, size: '1x' },\n { img: image?.image_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n const style: any = { backgroundColor: background }\n if (padding.top) style.paddingTop = padding.top\n if (padding.bottom) style.paddingBottom = padding.bottom\n if (padding.left) style.paddingLeft = padding.left\n if (padding.right) style.paddingRight = padding.right\n\n return (\n
    \n
    \n \n {image?.alt\n \n
    \n
    \n )\n}\n\nexport default Section\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n color?: string\n}\n\nconst Svg: FC = ({ className, color }) => (\n \n \n \n)\n\nexport default Svg\n","// extracted by mini-css-extract-plugin\nexport default {\"storyCta\":\"x2QkvS4h3DV3VAaoCuMg\"};","import React, { FC, useRef, useCallback, useMemo, MouseEvent, TouchEvent } from 'react'\nimport cx from 'classnames'\n\nimport { trackSync } from 'utils/analytics'\n\nimport { CallToAction } from '../../types'\n\nimport FlourishIcon from 'svgs/flourish'\n\nimport Button from 'components/Core/CoreButton'\n\nimport styles from './styles.module.scss'\n\ninterface Props extends CallToAction {\n className?: string\n}\n\n// Story CTA needs to handle mouseDown/Up specifically because the\n// storymode captures mousedown/up to allow navigation. Therefore\n// onClick will never be fired.\nconst StoryCTA: FC = ({ className, text, url, analytics_event, analytics_module }) => {\n const isDownOnRef = useRef(false)\n\n const handleMouseDown = useCallback(() => {\n isDownOnRef.current = true\n }, [])\n\n const handleMouseUp = useCallback(\n (event: MouseEvent | TouchEvent) => {\n if (isDownOnRef.current) {\n isDownOnRef.current = false\n event.preventDefault()\n event.stopPropagation()\n\n // Use track sync to ensure the tracking goes through before\n // we redirect them.\n // We can't use async await here because we need to stop the propagation\n // above.\n trackSync('click cta', { cta: analytics_event, module: analytics_module, location: 'desktop-left-column' })\n\n // If this is a screen in the mobile app, the webview is hooked on using\n // this variable. In this case, we will post to that instead of following\n // the CTA, so that the mobile app can do something different.\n const rnwv = (window as any).ReactNativeWebView\n if (rnwv) {\n rnwv.postMessage(`click_cta:${JSON.stringify(url)}`)\n } else {\n if (!url) return\n\n if (url && url.target === '_blank') {\n window.open(url.url, '_blank')?.focus()\n } else {\n window.location.href = url?.url || ''\n }\n }\n }\n },\n [url, analytics_event, analytics_module]\n )\n\n const showCta = useMemo(() => {\n if (!window) return false\n\n const params = new URLSearchParams(window.location.href)\n\n return params.has('show_cta')\n }, [])\n\n if (!showCta) return null\n\n return (\n }\n text={text || 'Get Started'}\n />\n )\n}\n\nexport default StoryCTA\n","// extracted by mini-css-extract-plugin\nexport default {\"quote\":\"TVWohBXfWSoSzjyyt849\",\"inner\":\"FdSNwUBhuu2pSGi04R2G\",\"text\":\"qLtBRx3mBjNJ8FxEDMPZ\",\"name\":\"Ai86RZL3BiI2CBURomMg\",\"imagry\":\"Mz8ooaeB2laVwiUccc2Q\",\"icon\":\"edrsH2Xa4062oY9yRK0a\",\"image\":\"KsOkv2b62VYYleZssVwa\",\"buffer\":\"kGZKazDZZ5s5gwHITCLr\",\"cta\":\"CCkf4qlw5o7lEwmE2DNJ\"};","import React, { FC, useMemo } from 'react'\nimport cx from 'classnames'\n\nimport { QuoteSlice, CallToAction, Padding } from '../../types'\n\nimport useParticipants from '../../components/Participant/useParticipants'\n\nimport QuoteIcon from 'svgs/quote'\n\nimport PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport Image from '../../components/Participant/Image'\nimport StoryCTA from '../../components/StoryCTA'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n\n slice: QuoteSlice\n callToAction: CallToAction\n\n padding: Padding\n}\n\nconst Quote: FC = ({ className, slice, callToAction, padding }) => {\n const { findParticipant } = useParticipants()\n\n const participant = findParticipant(slice.primary?.participant_identifier || '')\n\n let quote = slice.primary?.story_quoted_text\n if (!hasTextPresent(quote)) {\n quote = slice.primary?.quoted_text\n }\n\n const style: any = { backgroundColor: slice.primary?.story_background || '' }\n if (padding.top) style.paddingTop = padding.top\n if (padding.bottom) style.paddingBottom = padding.bottom\n if (padding.left) style.paddingLeft = padding.left\n if (padding.right) style.paddingRight = padding.right\n\n const textStyle = useMemo(() => {\n // 410 is the static space calculated from the css\n const space = `${padding.top || '0px'} - ${padding.bottom || '0px'}`\n // return { fontSize: `unquote(\"clamp(1rem, (100vh - 410px - ${space})/8, 1.875rem)\")` }\n return { fontSize: `clamp(1rem, (100vh - 525px - ${space})/8, 1.875rem)` }\n }, [padding])\n\n return (\n
    \n
    \n \n
    \n {`- ${participant?.display_name}`}\n {!participant?.isCustomer && `, ${participant?.display_title}`}\n
    \n
    \n \n {participant && }\n
    \n {callToAction?.url && (\n <>\n
    \n \n \n )}\n
    \n
    \n )\n}\n\nexport default Quote\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"s7FutyGAOQA5J2n6YwWj\",\"inner\":\"E8o3XX1Z2NuFz_e8uTxR\",\"text\":\"hboiD0KkDSCsPxMLdlXA\",\"image\":\"DSqvKlqaRwUDgN0mBKG2\",\"imageCaption\":\"BaGrh0Nrb7dPKtCJTdFU\",\"buffer\":\"h10qQGtohIdT5v4vLVwZ\",\"cta\":\"eYtUoxPHV7rClPH1Fz3t\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { ContentSlice, CallToAction, Padding } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport StoryCTA from '../../components/StoryCTA'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n\n slice: ContentSlice\n callToAction: CallToAction\n padding: Padding\n}\n\nconst Content: FC = ({ className, slice, callToAction, padding }) => {\n // Only show the first item in this mode.\n const item = slice.items[0]\n const srcset = [\n { img: item.image?.mobile_1x, size: '1x' },\n { img: item.image?.mobile_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n const style: any = { backgroundColor: slice.primary?.story_background || '' }\n if (padding.top) style.paddingTop = padding.top\n if (padding.bottom) style.paddingBottom = padding.bottom\n if (padding.left) style.paddingLeft = padding.left\n if (padding.right) style.paddingRight = padding.right\n\n return (\n
    \n
    \n \n \n \n {callToAction?.url && (\n <>\n
    \n \n \n )}\n
    \n
    \n )\n}\n\nexport default Content\n","// extracted by mini-css-extract-plugin\nexport default {\"pictureSet\":\"_yu9OueZg0JG5xj3MDlR\",\"fade\":\"mjZigfIDkWrdJLjRD0Qw\",\"inner\":\"Hyweo_b46qoek9NQMYul\",\"title\":\"uu0yJWuLlNaF9j5o3s7R\",\"cta\":\"p8Dfxpr4_Ynrxl0q8zcI\",\"image\":\"NyoXADBrPqx7sj0ruPFi\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { PictureSetSlice, CallToAction, Padding } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport StoryCTA from '../../components/StoryCTA'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n\n slice: PictureSetSlice\n callToAction: CallToAction\n padding: Padding\n}\n\nconst PictureSet: FC = ({ className, slice, callToAction, padding }) => {\n const srcset = [\n { img: slice.primary?.story_image, size: '1x' },\n { img: slice.primary?.story_image?.image_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n const style: any = {}\n if (padding.bottom) style.paddingBottom = padding.bottom\n if (padding.left) style.paddingLeft = padding.left\n if (padding.right) style.paddingRight = padding.right\n\n const fadeStyle: any = { height: `calc(8rem + ${padding.top || '0px'})` }\n\n return (\n
    \n
    \n
    \n \n {callToAction?.url && }\n
    \n \n
    \n )\n}\n\nexport default PictureSet\n","// extracted by mini-css-extract-plugin\nexport default {\"servicesProvided\":\"pxDbJNQw8bjnBmtFwjRD\",\"inner\":\"mtqB83Ftnburr4MPMnet\",\"title\":\"dNzfPu8p39Tl5MyUDnjl\",\"service\":\"CHR1TUGBu_OJ7AhYHkto\",\"buffer\":\"JMGSgGRxSjHVQOvqI6fK\",\"cta\":\"OjLSUHqKjpRt3_PDgFO2\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { ServicesProvidedSlice, CallToAction, Padding } from '../../types'\n\nimport DesignerIcon from 'svgs/designer'\nimport ArchitectIcon from 'svgs/architect'\nimport StructuralEngineerIcon from 'svgs/contractor-2'\nimport ContractorIcon from 'svgs/contractor-3'\nimport BidReviewIcon from 'svgs/bid-review'\nimport BidNegotiationIcon from 'svgs/bid-negotiation'\nimport PermittingIcon from 'svgs/permitting'\nimport FinancingIcon from 'svgs/money'\nimport ZoningAnalysisIcon from 'svgs/zoning'\nimport PricingAndRoiAnalysisIcon from 'svgs/roi-analysis'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport StoryCTA from '../../components/StoryCTA'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n\n slice: ServicesProvidedSlice\n callToAction: CallToAction\n padding: Padding\n}\n\nconst ServicesProvided: FC = ({ className, slice, callToAction, padding }) => {\n const style: any = { backgroundColor: slice.primary?.story_background || '' }\n if (padding.top) style.paddingTop = padding.top\n if (padding.bottom) style.paddingBottom = padding.bottom\n if (padding.left) style.paddingLeft = padding.left\n if (padding.right) style.paddingRight = padding.right\n\n return (\n
    \n
    \n \n
      \n {slice.primary?.designer && (\n
    • \n \n {'Designer'}\n
    • \n )}\n {slice.primary?.architect && (\n
    • \n \n {'Architect'}\n
    • \n )}\n {slice.primary?.structural_engineer && (\n
    • \n \n {'Structural Engineer'}\n
    • \n )}\n {slice.primary?.contractor && (\n
    • \n \n {'Contractor'}\n
    • \n )}\n {slice.primary?.bid_review && (\n
    • \n \n {'Bid Review'}\n
    • \n )}\n {slice.primary?.bid_negotiation && (\n
    • \n \n {'Bid Negotiation'}\n
    • \n )}\n {slice.primary?.permitting && (\n
    • \n \n {'Permitting'}\n
    • \n )}\n {slice.primary?.financing && (\n
    • \n \n {'Financing'}\n
    • \n )}\n {slice.primary?.zoning_analysis && (\n
    • \n \n {'Zoning Analysis'}\n
    • \n )}\n {slice.primary?.pricing_and_roi_analysis && (\n
    • \n \n {'Pricing and ROI Analysis'}\n
    • \n )}\n
    \n {callToAction?.url && (\n <>\n
    \n \n \n )}\n
    \n
    \n )\n}\n\nexport default ServicesProvided\n","// extracted by mini-css-extract-plugin\nexport default {\"storyHud\":\"aQayELOfJCotfgSkwcwz\",\"close\":\"dHy2A5UkrMUlU7IXk0YK\",\"agent\":\"M1GkZFQWztJe_dy0oxSs\",\"info\":\"k01NmSzhQJjOQfOnPCBi\",\"label\":\"ANXYosh4nkDuBcPkFvVg\",\"name\":\"iSEcILvx1MJ1Wee56kgO\",\"inverted\":\"gkuTQjfy_vDT5S1s14hd\"};","import React, { FC, useState, useCallback, MouseEvent, TouchEvent } from 'react'\nimport cx from 'classnames'\n\nimport { SectionI } from '../Roundup/InstaStory/types'\n\nimport Image from './components/Participant/Image'\nimport useParticipants from './components/Participant/useParticipants'\n\nimport CloseIcon from 'svgs/close'\n\nimport styles from './StoryHud.module.scss'\n\ninterface Props {\n onClose?: () => void\n section: SectionI\n}\n\nconst StoryHud: FC = ({ section, onClose }) => {\n const { advisors } = useParticipants()\n\n const [closed, setClosed] = useState(false)\n\n const handleMouseUp = useCallback(\n (event: MouseEvent | TouchEvent) => {\n event.stopPropagation()\n if (closed) return // prevents calling close twice\n onClose?.()\n setClosed(true)\n },\n [closed, onClose]\n )\n\n const advisor = advisors[0]\n\n return (\n
    \n \n {advisor && (\n
    \n
    \n {'Working with'}\n {advisor.display_name}\n
    \n \n
    \n )}\n
    \n )\n}\n\nexport default StoryHud\n","// extracted by mini-css-extract-plugin\nexport default {\"section\":\"_l7j0ZKEitbOjK4JmKAA\",\"progress\":\"y5BUwlU5mfcXhveMtRSh\"};","import React, { FC, ReactNode, useMemo, useCallback, useEffect, useState } from 'react'\nimport cx from 'classnames'\nimport { RichTextBlock } from 'prismic-reactjs'\n\nimport { prepareBoth } from 'utils/analyticsV2'\n\nimport {\n MainImage,\n StoryImage,\n PictureSetSlice,\n QuoteSlice,\n ContentSlice,\n // ServicesProvidedSlice,\n Slice as SliceType,\n Padding,\n CallToAction,\n} from './types'\n\nimport { SectionI } from '../Roundup/InstaStory/types'\nimport InstaStory from '../Roundup/InstaStory'\nimport Section from '../Roundup/components/Section'\n\nimport useParticipants from './components/Participant/useParticipants'\n\nimport Title from './storySections/Title'\nimport Introduction from './storySections/Introduction'\nimport Quote from './storySections/Quote'\nimport Content from './storySections/Content'\nimport PictureSet from './storySections/PictureSet'\nimport ServicesProvided from './storySections/ServicesProvided'\nimport Hud from './StoryHud'\n\nimport styles from './Story.module.scss'\n\nconst VALID_SLICE_TYPES = ['quote', 'content', 'picture_set', 'services_provided']\n\nconst [trackClick] = prepareBoth({ family: 'project-case-studies', screen: 'project-case-study' })\n\nconst StorySection: FC<{ section: { bgClass: string; slice: () => ReactNode } }> = ({ section }) => {\n return (\n
    \n {section.slice()}\n
    \n )\n}\n\nfunction showPictureSetSlice(slice: SliceType): boolean {\n // If it isn't a picture_set, then we have no claim to deny showing it.\n if (slice.slice_type == 'picture_set') {\n const pSlice = slice as unknown as PictureSetSlice\n // Don't show unless we have a story_image to show.\n if (!pSlice.primary?.story_image?.url) return false\n }\n return true\n}\n\ninterface Props {\n className?: string\n\n image: MainImage\n title: Array\n deck: Array\n deckEnd: Array\n context: Array\n\n introImage: StoryImage\n\n titleBackground: string\n introBackground: string\n\n slices: Array\n padding: Padding\n\n callToAction: CallToAction\n}\n\nconst Story: FC = ({\n image,\n title,\n deck,\n deckEnd,\n introImage,\n titleBackground,\n introBackground,\n slices,\n padding,\n callToAction,\n}) => {\n const { findParticipant } = useParticipants()\n const [currentIndex, setCurrentIndex] = useState(0)\n\n useEffect(() => {\n const rnwv = typeof window !== 'undefined' ? (window as any).ReactNativeWebView : null\n if (rnwv) {\n const customLog = (...args) => {\n rnwv.postMessage(`log:${args.join(', ')}`)\n }\n window.console.log = customLog\n window.console.info = customLog\n window.console.debug = customLog\n window.console.warn = customLog\n window.console.error = customLog\n }\n }, [])\n\n // Any images we want preloaded must be defined in here.\n useEffect(() => {\n const preloadImage = (img) => {\n // Create a new image object, just to get things loading.\n const image = new Image()\n image.src = img\n // Don't bother waiting for it to load.\n }\n\n // Toss the title image in; it is probably loaded but..\n preloadImage(image.story_1x.url)\n preloadImage(image.story_1x.url)\n\n // Load introduction images\n preloadImage(introImage.url)\n preloadImage(introImage.image_2x.url)\n\n // Process slice images\n slices.forEach((slice) => {\n // Only consider slices we care about\n if (!VALID_SLICE_TYPES.includes(slice.slice_type || '')) return\n\n if (slice.slice_type === 'quote') {\n const tSlice = slice as QuoteSlice\n if (tSlice.primary) {\n // Find the participant image.\n const participant = findParticipant(tSlice.primary.participant_identifier)\n if (participant) {\n preloadImage(participant.image.big_1x.url)\n preloadImage(participant.image.big_2x.url)\n }\n }\n } else if (slice.slice_type === 'content') {\n const tSlice = slice as ContentSlice\n tSlice.items.forEach((item) => {\n preloadImage(item.image.mobile_1x.url)\n preloadImage(item.image.mobile_2x.url)\n })\n } else if (slice.slice_type === 'picture_set') {\n const tSlice = slice as PictureSetSlice\n if (tSlice.primary) {\n preloadImage(tSlice.primary.story_image.url)\n preloadImage(tSlice.primary.story_image.image_2x.url)\n }\n } else if (slice.slice_type === 'services_provided') {\n // No images for this slice.\n }\n })\n }, [image, introImage, slices, findParticipant])\n\n const renderTitle = useCallback(\n function RenderTitle() {\n return \n },\n [image, title, titleBackground, padding]\n )\n const renderIntroduction = useCallback(\n function RenderIntroduction() {\n return (\n <Introduction image={introImage} deck={deck} deckEnd={deckEnd} background={introBackground} padding={padding} />\n )\n },\n [introImage, deck, deckEnd, introBackground, padding]\n )\n const renderSlice = useCallback(\n (slice) => {\n return function RenderSlice() {\n if (VALID_SLICE_TYPES.includes(slice.slice_type || '')) {\n return (\n <>\n {slice.slice_type === 'quote' ? (\n <Quote slice={slice} padding={padding} callToAction={callToAction} />\n ) : slice.slice_type === 'content' ? (\n <Content slice={slice} padding={padding} callToAction={callToAction} />\n ) : slice.slice_type === 'picture_set' ? (\n <PictureSet slice={slice} padding={padding} callToAction={callToAction} />\n ) : slice.slice_type === 'services_provided' ? (\n <ServicesProvided slice={slice} padding={padding} callToAction={callToAction} />\n ) : null}\n </>\n )\n }\n return null\n }\n },\n [padding, callToAction]\n )\n\n const sections = useMemo(() => {\n const sliceObjs = slices\n .map((slice, i) => {\n // We need to know beforehand what slices there are.\n // So now is the time to filter out any that shouldn't display.\n if (!showPictureSetSlice(slice)) return null\n\n return {\n content: StorySection,\n bgClass: '',\n invert: slice.slice_type != 'picture_set',\n key: `slice_${i}`,\n slice: renderSlice(slice),\n }\n })\n .filter((slice) => !!slice) as Array<SectionI>\n\n return [\n {\n content: StorySection,\n bgClass: '',\n invert: true,\n key: 'titleSection',\n slice: renderTitle,\n },\n {\n content: StorySection,\n bgClass: '',\n invert: true,\n key: 'introSection',\n slice: renderIntroduction,\n },\n ...sliceObjs,\n ]\n }, [renderTitle, renderIntroduction, renderSlice, slices])\n\n // Allow outside events to prompt certain actions.\n useEffect(() => {\n if (!window) return\n ;(window as any).CaseStudyStory = {\n back: () => setCurrentIndex((prev) => Math.max(0, prev - 1)),\n forward: () => setCurrentIndex((prev) => Math.min(sections.length - 1, prev + 1)),\n }\n }, [sections])\n\n const handleEnd = useCallback(async () => {\n const rnwv = (window as any).ReactNativeWebView\n if (!rnwv) return\n trackClick({ code: 'finish' })\n rnwv.postMessage('close')\n }, [])\n\n const handleClose = useCallback(() => {\n const rnwv = (window as any).ReactNativeWebView\n if (!rnwv) return\n trackClick({ code: 'close' })\n rnwv.postMessage('close')\n }, [])\n\n const handlePause = useCallback(\n (i: number) => {\n trackClick({ code: 'pause', section: (sections[i] as any).key })\n },\n [sections]\n )\n\n const handlePrevious = useCallback(\n (i: number) => {\n trackClick({ code: 'previous', section: (sections[i] as any).key })\n },\n [sections]\n )\n\n const handleSkip = useCallback(\n (i: number) => {\n trackClick({ code: 'skip', section: (sections[i] as any).key })\n },\n [sections]\n )\n\n const handleChange = useCallback((i: number) => {\n setCurrentIndex(i)\n }, [])\n\n const renderHud = useCallback(\n (section: SectionI) => {\n return <Hud section={section} onClose={handleClose} />\n },\n [handleClose]\n )\n\n return (\n <InstaStory\n sections={sections}\n hud={renderHud}\n progressClass={styles.progress}\n defaultInterval={6000}\n onAllSectionsEnd={handleEnd}\n onPause={handlePause}\n onPrevious={handlePrevious}\n onSkip={handleSkip}\n currentIndex={currentIndex}\n onChange={handleChange}\n padding={padding}\n />\n )\n}\n\nexport default Story\n","// extracted by mini-css-extract-plugin\nexport default {\"caseStudy\":\"PfI_qVKDglbnCptEuw_9\",\"header\":\"llP2z3L9NpRGPWGxMkvD\",\"logo\":\"XeAerWXNKDbkOELlWrpc\",\"body\":\"xMRwFKMicVIUtHTmz9mg\",\"ctaColumn\":\"qPT3vBhFy_vIUTXI0k2I\",\"moreStudiesColumn\":\"twaz3_dGi5fi8QF1ocap\",\"mainColumn\":\"_hIvRkPzi3W6eWfuV7HZ\",\"inAppView\":\"SOLUhJXa7JqltvlTYsQb\"};","import React, { FC, useEffect } from 'react'\nimport cx from 'classnames'\n\nimport { trackPage } from 'utils/analyticsV2'\n\nimport { ProjectCaseStudyData, Padding } from './types'\n\nimport Header from 'components/MarketingSite/Header'\n\nimport { ParticipantsManager } from './components/Participant/useParticipants'\nimport CTA from './components/CTA'\nimport MoreCaseStudies from './components/MoreCaseStudies'\nimport Footer from './components/Footer'\n\nimport Article from './Article'\nimport Story from './Story'\n\nimport styles from './styles.module.scss'\n\nconst ProjectCaseStudy: FC<{\n data: ProjectCaseStudyData\n inApp: boolean\n inAppStory: boolean\n loggedIn: boolean\n padding: Padding\n}> = ({\n data: {\n main_image,\n story_intro_image,\n study_title,\n deck,\n story_deck,\n story_deck_end,\n context,\n body,\n\n story_title_background,\n story_intro_background,\n\n call_to_action,\n\n customers,\n advisors,\n related_studies,\n download_app_link,\n },\n inApp,\n inAppStory,\n loggedIn,\n padding,\n}) => {\n useEffect(() => {\n trackPage('project_case_study')\n }, [])\n\n return (\n <ParticipantsManager participants={{ advisors: advisors, customers: customers }}>\n <div className={styles.caseStudy}>\n {inAppStory ? (\n <Story\n className={styles.mainColumn}\n image={main_image}\n introImage={story_intro_image}\n title={study_title}\n deck={story_deck}\n deckEnd={story_deck_end}\n context={context}\n titleBackground={story_title_background}\n introBackground={story_intro_background}\n slices={body}\n padding={padding}\n callToAction={call_to_action}\n />\n ) : (\n <>\n {!inApp && (\n <Header\n className={styles.header}\n logoClassName={styles.logo}\n showDownloadApp={download_app_link?.url}\n hideSignupButton\n hideSignInButton={loggedIn}\n />\n )}\n <div className={cx(styles.body, { [styles.inAppView]: inApp || inAppStory })}>\n <div className={cx(styles.ctaColumn, styles.desktop)}>\n <CTA {...call_to_action} />\n </div>\n <Article\n className={styles.mainColumn}\n image={main_image}\n title={study_title}\n deck={deck}\n context={context}\n slices={body}\n />\n <div className={cx(styles.moreStudiesColumn, styles.desktop)}>\n <MoreCaseStudies studies={related_studies} />\n </div>\n </div>\n <Footer {...call_to_action} />\n </>\n )}\n </div>\n </ParticipantsManager>\n )\n}\n\nexport default ProjectCaseStudy\n","import { createContext } from 'react'\nimport { GlobalContextI, SectionsContextI } from './types'\n\nexport const GlobalContext = createContext<GlobalContextI>({} as GlobalContextI)\n\nexport const SectionsContext = createContext<SectionsContextI>({\n sections: [],\n})\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Y2X7ztPGM7MZym6PTFcL\",\"hud\":\"pdbZrRISUVPAc5DzoUVR\",\"progressArr\":\"fPGfj4JtxDI1kSpGMgiB\",\"inner\":\"Tywodb5ivssEJ7XIEKo0\",\"invert\":\"mY3HlMjwVllvq2kOdqN8\",\"progress\":\"uawy5OmvwKRxa3nZ4HYT\",\"section\":\"vGgzeMNTMdatimV2lgZb\"};","import React, { FC, useMemo } from 'react'\nimport cx from 'classnames'\n\nimport styles from './styles.module.scss'\n\ninterface ProgressProps {\n active: number\n count: number\n pause: boolean\n width: number\n invert?: boolean\n}\n\nconst Progress: FC<ProgressProps> = ({ active, count, pause, width, invert }) => {\n const progressWrapperStyle = useMemo(() => {\n return {\n width: `${width * 100}%`,\n opacity: pause ? 0 : 1,\n }\n }, [width, pause])\n\n const progressStyle = useMemo(() => {\n switch (active) {\n case 2:\n return { width: '100%' }\n case 1:\n return { transform: `scaleX(${count / 100})` }\n default:\n return { width: 0 }\n }\n }, [active, count])\n\n return (\n <div className={cx(styles.progress, { [styles.invert]: invert })} style={progressWrapperStyle}>\n <div className={cx(styles.inner, { [styles.invert]: invert })} style={progressStyle} />\n </div>\n )\n}\n\nexport default Progress\n","import cx from 'classnames'\nimport { GlobalContext, SectionsContext } from './context'\nimport Progress from './Progress'\nimport { GlobalContextI, SectionsContextI } from './types'\nimport React, { FC, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport styles from './styles.module.scss'\n\ninterface ProgressArrayProps {\n className?: string\n currentId: number\n pause: boolean\n next: () => void\n\n invert?: boolean\n}\n\nconst ProgressArray: FC<ProgressArrayProps> = ({ className, currentId, next, pause, invert }) => {\n const [count, setCount] = useState<number>(0)\n const { defaultInterval, onSectionEnd, onSectionStart, onAllSectionsEnd } = useContext<GlobalContextI>(GlobalContext)\n const { sections } = useContext<SectionsContextI>(SectionsContext)\n\n const animationFrameId = useRef<number>()\n const countCopy = useRef<number>(count)\n const pauseCopy = useRef<boolean>(pause)\n const timestamp = useRef<number>()\n\n useEffect(() => {\n setCount(0)\n countCopy.current = 0\n }, [currentId, sections])\n\n useEffect(() => {\n pauseCopy.current = pause\n // When paused, we shouldn't proceed at all.\n // Our timestamp (which records the time since the last)\n // progress bar update) therefore needs to be reset when we exit\n // our paused state.\n if (!pause) timestamp.current = Date.now()\n }, [pause])\n\n const getCurrentInterval = useCallback(() => {\n if (typeof sections[currentId].duration === 'number') {\n return sections[currentId].duration as number\n }\n\n return defaultInterval\n }, [currentId, defaultInterval, sections])\n\n const sectionStartCallback = useCallback(() => {\n onSectionStart && onSectionStart(currentId, sections[currentId])\n }, [currentId, onSectionStart, sections])\n\n const sectionEndCallback = useCallback(() => {\n onSectionEnd && onSectionEnd(currentId, sections[currentId])\n }, [currentId, onSectionEnd, sections])\n\n const allSectionsEndCallback = useCallback(() => {\n onAllSectionsEnd && onAllSectionsEnd(currentId, sections)\n }, [currentId, onAllSectionsEnd, sections])\n\n const incrementCount = useCallback(() => {\n if (countCopy.current === 0) sectionStartCallback()\n if (pauseCopy.current) return\n setCount((count: number) => {\n const newTimestamp = Date.now()\n if (!timestamp.current) {\n timestamp.current = newTimestamp\n return count\n }\n const oldTimestamp = timestamp.current\n timestamp.current = newTimestamp\n const diff = newTimestamp - oldTimestamp\n const interval = getCurrentInterval()\n const newCount = Math.max(0, Math.min(100, count + 100 / (interval / diff)))\n countCopy.current = newCount\n return newCount\n })\n if (countCopy.current < 100) {\n animationFrameId.current = requestAnimationFrame(incrementCount)\n } else {\n sectionEndCallback()\n if (currentId === sections.length - 1) {\n allSectionsEndCallback()\n } else {\n // Avoid flashing the next progress bar as 'full' due to the render\n // delay in the use-effect intended to clear it, by clearing it now.\n setCount(0)\n countCopy.current = 0\n }\n if (animationFrameId.current) {\n cancelAnimationFrame(animationFrameId.current)\n }\n next()\n }\n }, [\n allSectionsEndCallback,\n currentId,\n getCurrentInterval,\n next,\n sectionEndCallback,\n sectionStartCallback,\n sections.length,\n ])\n\n useEffect(() => {\n if (!pause) {\n animationFrameId.current = requestAnimationFrame(incrementCount)\n }\n return () => {\n if (animationFrameId.current) {\n cancelAnimationFrame(animationFrameId.current)\n }\n }\n }, [currentId, incrementCount, pause])\n\n return (\n <div className={cx(styles.progressArr, className)}>\n {sections.map((_, i) => (\n <Progress\n key={i}\n count={count}\n width={1 / sections.length}\n active={i === currentId ? 1 : i < currentId ? 2 : 0}\n pause={pause}\n invert={invert}\n />\n ))}\n </div>\n )\n}\n\nexport default ProgressArray\n","import { GlobalContext, SectionsContext } from './context'\nimport ProgressArray from './ProgressArray'\nimport { GlobalContextI, SectionsContextI, SectionI, Padding } from './types'\nimport React, { FC, MouseEvent, TouchEvent, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react'\n\nimport styles from './styles.module.scss'\n\ninterface ContainerProps {\n isPaused: boolean\n hud?: (section: SectionI) => React.ReactNode\n progressClass?: string\n padding: Padding\n}\n\nconst Container: FC<ContainerProps> = ({ isPaused, hud, progressClass, padding }) => {\n const { loop, currentIndex, onPause, onPrevious, onSkip, onChange } = useContext<GlobalContextI>(GlobalContext)\n\n const [currentId, setCurrentId] = useState<number>(0)\n const [pause, setPause] = useState<boolean>(isPaused)\n\n const mousedownId = useRef<any>()\n const isMounted = useRef<boolean>(true)\n\n const { sections } = useContext<SectionsContextI>(SectionsContext)\n\n const setCurrentIdWrapper = useCallback((callback) => {\n setCurrentId(callback)\n }, [])\n\n useEffect(() => {\n if (onChange) onChange(currentId)\n }, [currentId, onChange])\n\n useEffect(() => {\n if (typeof currentIndex !== 'number') return\n\n if (currentIndex >= 0 && currentIndex < sections.length) {\n setCurrentIdWrapper(() => currentIndex)\n } else {\n console.error('index out of bounds', currentIndex)\n }\n }, [currentIndex, setCurrentIdWrapper, sections.length])\n\n useEffect(() => {\n if (typeof isPaused !== 'boolean') return\n setPause(isPaused)\n }, [isPaused])\n\n useEffect(() => {\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const previous = useCallback(() => {\n setCurrentIdWrapper((prev) => (prev > 0 ? prev - 1 : prev))\n }, [setCurrentIdWrapper])\n\n const next = useCallback(() => {\n if (!isMounted.current) return\n if (loop) {\n setCurrentIdWrapper((prev) => (prev + 1) % sections.length)\n } else {\n setCurrentIdWrapper((prev) => {\n if (prev < sections.length - 1) return prev + 1\n return prev\n })\n }\n }, [loop, sections.length, setCurrentIdWrapper])\n\n const handleMouseDown = useCallback(() => {\n mousedownId.current = setTimeout(() => {\n onPause?.(currentId)\n setPause(true)\n }, 200)\n }, [currentId, onPause])\n\n const handleMouseUp = useCallback(\n (event: MouseEvent<HTMLDivElement> | TouchEvent<HTMLDivElement>) => {\n event.preventDefault()\n mousedownId.current && clearTimeout(mousedownId.current)\n if (pause) {\n setPause(false)\n } else {\n const clientX =\n event.type === 'touchend' ? (event as TouchEvent).changedTouches[0].clientX : (event as MouseEvent).clientX\n if (clientX / window.innerWidth >= 0.5) {\n onSkip?.(currentId)\n next()\n } else {\n onPrevious?.(currentId)\n previous()\n }\n }\n },\n [currentId, next, onPrevious, onSkip, pause, previous]\n )\n\n const section = useMemo(() => {\n return sections[currentId]\n }, [currentId, sections])\n\n const style: any = {}\n if (padding.top) style.paddingTop = padding.top\n if (padding.left) style.paddingLeft = padding.left\n if (padding.right) style.paddingRight = padding.right\n\n return (\n <div\n className={styles.container}\n onTouchStart={handleMouseDown}\n onTouchEnd={handleMouseUp}\n onMouseDown={handleMouseDown}\n onMouseUp={handleMouseUp}\n role=\"presentation\"\n >\n <div className={styles.hud} style={style}>\n <ProgressArray\n className={progressClass}\n currentId={currentId}\n next={next}\n pause={pause}\n invert={section.invert}\n />\n {hud && hud(section)}\n </div>\n\n <div className={styles.section}>\n <section.content section={section} pause={pause} />\n </div>\n </div>\n )\n}\n\nexport default Container\n","import Container from './Container'\nimport { GlobalContext, SectionsContext } from './context'\nimport { SectionI, Padding } from './types'\nimport React, { FC, useEffect, useMemo, useState } from 'react'\n\nexport interface InstaStoryProps {\n currentIndex?: number\n defaultInterval?: number\n isPaused?: boolean\n loop?: boolean\n onAllSectionsEnd?: (index: number, sections: SectionI[]) => void\n onPause?: (index: number) => void\n onPrevious?: (index: number) => void\n onSectionEnd?: (index: number, section: SectionI) => void\n onSectionStart?: (index: number, section: SectionI) => void\n onSkip?: (index: number) => void\n onChange?: (index: number) => void\n sections: SectionI[]\n hud?: (section: SectionI) => React.ReactNode\n progressClass?: string\n padding?: Padding\n}\n\nconst InstaStory: FC<InstaStoryProps> = ({\n currentIndex,\n defaultInterval = 4000,\n isPaused,\n loop,\n onAllSectionsEnd,\n onPause,\n onPrevious,\n onSectionEnd,\n onSectionStart,\n onSkip,\n onChange,\n sections,\n hud,\n progressClass,\n padding,\n}) => {\n const context = useMemo(() => {\n return {\n currentIndex,\n defaultInterval,\n loop,\n onAllSectionsEnd,\n onPause,\n onPrevious,\n onSectionStart,\n onSectionEnd,\n onSkip,\n onChange,\n }\n }, [\n currentIndex,\n defaultInterval,\n loop,\n onAllSectionsEnd,\n onPause,\n onPrevious,\n onSectionStart,\n onSectionEnd,\n onSkip,\n onChange,\n ])\n\n const [innerSections, setInnerSections] = useState({ sections })\n\n useEffect(() => {\n setInnerSections({ sections })\n }, [sections])\n\n return (\n <GlobalContext.Provider value={context}>\n <SectionsContext.Provider value={innerSections}>\n <Container isPaused={isPaused || false} hud={hud} progressClass={progressClass} padding={padding || {}} />\n </SectionsContext.Provider>\n </GlobalContext.Provider>\n )\n}\n\nexport default InstaStory\n","import cx from 'classnames'\nimport React, { ForwardRefRenderFunction, PropsWithChildren, forwardRef } from 'react'\nimport styles from '../styles.module.scss'\n\ninterface SectionProps {\n className?: string\n webview: boolean\n}\n\nconst Section: ForwardRefRenderFunction<HTMLElement, PropsWithChildren<SectionProps>> = (\n { className, children, webview },\n ref\n) => {\n return (\n <section\n ref={ref}\n className={cx(\n 'tw:relative tw:w-full tw:font-sans-open-sans tw:flex tw:flex-col tw:items-center tw:overflow-hidden',\n className,\n {\n [styles.sectionInWebview]: webview,\n [styles.sectionInBrowser]: !webview,\n }\n )}\n >\n {children}\n </section>\n )\n}\n\nexport default forwardRef(Section)\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC<Props> = ({ className }) => (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.0004 1.94812L19.0832 2.03091V2.64749C19.0832 4.37087 19.3359 4.62361 21.0615 4.62578H21.6759L21.7587 4.70858V5.1465L21.6759 5.22929H21.0593C19.3359 5.22929 19.0854 5.48203 19.0832 7.20758V7.82199L19.0004 7.90478H18.5625L18.4797 7.82199V7.2054C18.4797 5.48203 18.227 5.22929 16.5014 5.22711H15.887L15.8042 5.14432V4.7064L15.887 4.62361H16.5036C18.227 4.62361 18.4775 4.37087 18.4797 2.64531V2.03091L18.5625 1.94812H19.0004Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M11.3691 3.4305H12.6328L12.8677 3.66547V5.43861C12.8677 10.4026 13.5983 11.1292 18.5662 11.1292L20.3354 11.1351L20.5704 11.3701V12.6338L20.3354 12.8688H18.5623C13.5983 12.8688 12.8717 13.5994 12.8717 18.5673L12.8658 20.3365L12.6308 20.5715H11.3671L11.1321 20.3365V18.5634C11.1321 13.5994 10.4015 12.8727 5.4336 12.8727L3.66441 12.8668L3.42944 12.6318V11.3681L3.66441 11.1332H5.43755C10.4015 11.1332 11.1282 10.4026 11.1282 5.43466L11.1341 3.6635L11.3691 3.42853V3.4305Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nexport default Svg\n","import * as Sentry from '@sentry/browser'\n\nif (process.env.ENABLE_SENTRY) {\n const release = `realm-app-${process.env.HEROKU_RELEASE_VERSION || 'dev'}`\n Sentry.init({\n dsn: process.env.SENTRY_DSN,\n release,\n allowUrls: [\n 'analytics.realmhome.com',\n 'bam.nr-data.net',\n 'cdn.mxpnl.com',\n 'connect.facebook.net',\n 'edge.fullstory.com',\n 'fast.wistia.com',\n 'googleads.g.doubleclick.net',\n 'js-agent.newrelic.com',\n 'js.intercomcdn.com',\n 'm.stripe.com',\n 'maps.googleapis.com',\n 's.pinimg.com',\n 'script.hotjar.com',\n 'widget.intercom.io',\n 'www.google-analytics.com',\n 'www.googleadservices.com',\n 'www.googletagmanager.com',\n ],\n ignoreErrors: [\n 'ResizeObserver loop limit exceeded',\n 'TypeError: cancelled',\n 'TypeError: Cancelled',\n 'TypeError: Illegal invocation',\n 'TypeError: Failed to fetch',\n 'TypeError: NetworkError when attempting to fetch resource.',\n ],\n })\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"sectionInWebview\":\"_lmj3BeuNPQcW8HhK27C\",\"sectionInBrowser\":\"DzcTjoAQSQuO8ECEnYas\",\"wavesBg\":\"Z5pdG_ncJS5L210876pO\",\"bg1\":\"VGp3_1THU52AutQBsrTB\",\"bg2\":\"Q3pYm9nkmOsWgEFyJY6_\",\"screenWelcomeTitle\":\"Z9UF73zcaTYnUFxIFlAD\",\"screenWelcomePic1\":\"DUBzh8ucjOOw3lkzWOMi\",\"screenWelcomePic2\":\"d40d2Amc6d1N9Qwtz316\",\"screenWelcomePic2Border\":\"nMn2rE6bcDGQVgxXg2X9\",\"screenHomesSoldContainer\":\"O9G_jjeMSPGXzODxgOqn\",\"screenHomesSoldGrid\":\"bXnwkaonbf0PkzRfWIFy\",\"screenHomesSoldHandle\":\"_PkQQLzsctfXb6iIhde5\",\"screenMarketTrendsGraphLine\":\"me9uGGU5X4y2fDlGf6VK\",\"screenMarketTrendsGraphLineAnimate\":\"R6i17tnedtoT8RFu5QgM\",\"dash\":\"HrQQW38DPdcpzbD30dPs\",\"screenProjectPriceTrendsLineAnimate\":\"ocAo6cGSkhxhWvfLtoIu\",\"screenPermitTimingPathAnimate\":\"GLgK3Qe7mGuhy5G80w3J\",\"screenMarketTrendsGraphPoint\":\"Uzw1M6JQJ62a49xMamwd\",\"screenMarketTrendsGraphPointAnimate\":\"W4EAch8YhhHOmI17jezS\",\"appear\":\"Sj6SfNRiWzcjcy8lXgBW\",\"screenMarketTrendsGraphFill\":\"VkLaNA1EmLiiG8WCkk8g\",\"screenMarketTrendsGraphFillAnimate\":\"WIBUpBywjb7dummWWCNX\",\"clip-path\":\"jWLJaejvplcNgVusOEit\",\"screenMarketTrendsGraphGrid\":\"GjY6l9KoaXsNreTv1Oa3\",\"screenValueRankTitle\":\"OLKonWAqmfq4tk5u68Wo\",\"screenValueRankLine\":\"YRjdp1JDgaMqgeeGhnSF\",\"screenValueRankSpacer\":\"A_8D39E53agntGwwIXb4\",\"screenYourProjectIcon\":\"R9Dqj3haNgrXimh13w4c\",\"screenGoodbyeSparkle\":\"xTX929lpD_WpoMSL8eP0\",\"screenGoodbyeSparkle1\":\"GevuFQAc0RFqhr4OQBtX\",\"screenGoodbyeSparkle2\":\"JP8zt3rud7BrGTe697hM\",\"screenGoodbyeSparkle3\":\"VgTqmsQaD5SHIuDqDN0u\",\"screenGoodbyeSparkle4\":\"L4iQhD71edrH0Doiiwwo\",\"screenGoodbyeSparkle5\":\"FT5th3lDmONe0A5ZoJ_G\",\"screenGoodbyeSparkle6\":\"f9lPv3ALvHToxKL9YTKg\",\"screenGoodbyeSparkle7\":\"zLPiFeTBZ0Yc2WgETmLN\",\"screenGoodbyeSparkle8\":\"i3UadKXdGA6gLtgN8uo1\",\"sparkle1\":\"JnU_YTXuJ2_U9Vmuls5U\",\"sparkle2\":\"wWAMu3W0OIMvUlJIh8Mn\",\"noUx\":\"lIkv00Y5nlnDWrU2GiOO\"};"],"names":["ParticipantContext","createContext","customers","advisors","ParticipantsManager","children","participants","Provider","value","useParticipants","useContext","all","useMemo","handleFindParticipant","useCallback","identifier","found","find","participant","isCustomer","c","findParticipant","copy","text","url","analytics_event","analytics_module","handleCtaClick","cta","module","location","target","window","open","focus","href","className","PresentRichText","render","type","onClick","main_image","study_title","deck","context","srcset","img","thumbnail_1x","size","filter","map","join","src","srcSet","alt","studies","length","study","i","key","big","image","big_1x","big_2x","image_2x","_a","identifiers","imageList","missing","info","name","display_name","title","display_title","slice","primary","quoted_text","participant_identifier","items","item","srcsetDesktop","desktop_2x","srcsetMobile","mobile_1x","mobile_2x","content","images","pictureSet","single","double","triple","quadruple","quintuple","imgSlot","desktop","mobile","width","height","viewBox","xmlns","id","maskUnits","x","y","fill","d","mask","fillRule","designer","architect","structural_engineer","contractor","bid_review","bid_negotiation","permitting","financing","zoning_analysis","pricing_and_roi_analysis","Slice","props","includes","slice_type","slices","article","lead","deckFrame","background","padding","story_1x","story_2x","style","backgroundColor","top","paddingTop","bottom","paddingBottom","left","paddingLeft","right","paddingRight","deckEnd","color","isDownOnRef","useRef","handleMouseDown","current","handleMouseUp","event","preventDefault","stopPropagation","rnwv","ReactNativeWebView","postMessage","JSON","stringify","URLSearchParams","has","onMouseDown","onTouchStart","onMouseUp","onTouchEnd","icon","callToAction","quote","story_quoted_text","story_background","textStyle","fontSize","story_icon","inner","story_content","imageCaption","story_image_caption","buffer","story_image","fadeStyle","section","onClose","closed","setClosed","useState","advisor","invert","VALID_SLICE_TYPES","trackClick","family","screen","StorySection","Section","webview","introImage","titleBackground","introBackground","currentIndex","setCurrentIndex","useEffect","customLog","args","console","log","debug","warn","error","preloadImage","Image","forEach","tSlice","renderTitle","Title","renderIntroduction","Introduction","renderSlice","sections","sliceObjs","showPictureSetSlice","bgClass","CaseStudyStory","back","prev","Math","max","forward","min","handleEnd","code","handleClose","handlePause","handlePrevious","handleSkip","handleChange","renderHud","InstaStory","hud","progressClass","defaultInterval","onAllSectionsEnd","onPause","onPrevious","onSkip","onChange","data","story_intro_image","story_deck","story_deck_end","body","story_title_background","story_intro_background","call_to_action","related_studies","download_app_link","inApp","inAppStory","loggedIn","caseStudy","mainColumn","Header","header","logoClassName","logo","showDownloadApp","hideSignupButton","hideSignInButton","inAppView","ctaColumn","moreStudiesColumn","MoreCaseStudies","GlobalContext","SectionsContext","active","count","pause","progressWrapperStyle","opacity","progressStyle","transform","currentId","next","setCount","onSectionEnd","onSectionStart","animationFrameId","countCopy","pauseCopy","timestamp","Date","now","getCurrentInterval","duration","sectionStartCallback","sectionEndCallback","allSectionsEndCallback","incrementCount","newTimestamp","oldTimestamp","diff","interval","newCount","requestAnimationFrame","cancelAnimationFrame","_","isPaused","loop","setCurrentId","setPause","mousedownId","isMounted","setCurrentIdWrapper","callback","previous","setTimeout","clearTimeout","changedTouches","clientX","innerWidth","role","innerSections","setInnerSections","forwardRef","ref","sectionInWebview","sectionInBrowser","release","dsn","allowUrls","ignoreErrors"],"sourceRoot":""}