{"version":3,"file":"LazyProfileReviewPage.b0c7fef06c4122a4.prod.js","mappings":"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","sources":["webpack://aurora-new-frontend/./packages/lead-capture/src/hooks/close-lcai-with-redirect/close-lcai-with-redirect.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/hooks/close-lcai-with-redirect/redirect-url-replacer.ts","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/profile-review/components/left-content.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/profile-review/profile-review-page.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/utils/image-matcher.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/shared-components/image.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/utils/text-constants.tsx"],"sourcesContent":["import { useDebouncedCallback } from '@aurorasolar/common-core/src/hooks';\nimport {\n Analytics,\n AnalyticsEventTypes,\n AppRouterNavigation,\n useAppModule,\n} from '@aurorasolar/common-module-loader';\n\nimport { sendExitMessage } from '../../message/message';\nimport { DEBOUNCE_TIME } from '../../utils/constants';\nimport { redirectUrlReplacer } from './redirect-url-replacer';\n\ninterface CloseLcaiWithRedirectProps {\n projectId: string;\n redirectUrl?: string | null;\n sourcePage: string;\n templateId: string;\n}\n\nexport const useCloseLcaiWithRedirect = ({\n projectId,\n redirectUrl,\n sourcePage,\n templateId,\n}: CloseLcaiWithRedirectProps) => {\n const analytics = useAppModule(Analytics);\n const navigation = useAppModule(AppRouterNavigation);\n\n return useDebouncedCallback(\n async () => {\n await analytics?.track(AnalyticsEventTypes.LeadCaptureExitedWidget, {\n project_id: projectId,\n source_page: sourcePage,\n });\n\n sendExitMessage(redirectUrlReplacer({ projectId, redirectUrl }));\n navigation?.navigate(`/${templateId}`, { replace: true });\n },\n [analytics, navigation, templateId, projectId, sourcePage, redirectUrl],\n DEBOUNCE_TIME,\n );\n};\n","interface RedirectUrlReplacerArgs {\n projectId: string;\n redirectUrl?: string | null;\n}\n\nexport const redirectUrlReplacer = ({ redirectUrl, projectId }: RedirectUrlReplacerArgs) => {\n if (!redirectUrl) {\n return undefined;\n }\n\n const REPLACEMENT_MATCHER = {\n [ReplacementStrings.LEAD_ID]: projectId,\n };\n\n let replacedString = redirectUrl;\n\n Object.values(ReplacementStrings).forEach((replacement) => {\n replacedString = replacedString?.replace(\n new RegExp(`\\\\${replacement}`, 'g'),\n REPLACEMENT_MATCHER[replacement],\n );\n });\n\n return replacedString;\n};\n\nexport enum ReplacementStrings {\n LEAD_ID = '$LEAD_ID',\n}\n","import { BoxWithMargin } from '../../../shared-components';\nimport { LCAIText } from '../../../typography';\nimport { HEADER_COLOR, PARAGRAPH_COLOR } from '../../../utils/constants';\nimport { TEXT } from '../../../utils/text-constants';\n\nexport interface LeftContentProps {\n customHeader?: string | null;\n customSubheader?: string | null;\n}\n\nexport function LeftContent({ customHeader, customSubheader }: LeftContentProps) {\n return (\n <>\n \n {customHeader || TEXT.profileReview.primaryHeader}\n \n \n \n {customSubheader || TEXT.profileReview.subheader}\n \n \n >\n );\n}\n","import { useEffect } from 'react';\n\nimport { Analytics, AnalyticsPageTypes, useAppModule } from '@aurorasolar/common-module-loader';\n\nimport { useCloseLcaiWithRedirect, useRouteData } from '../../hooks';\nimport { AnimateView, Image, SplitView, TopRail } from '../../shared-components';\nimport { LCAIButton, LCAIButtonIntent } from '../../typography/lcai-button/lcai-button';\nimport { SourcePage } from '../../utils/source-page';\nimport { TEXT } from '../../utils/text-constants';\nimport { LeftContent } from './components';\n\nexport interface ProfileReviewPageProps {\n projectId: string;\n sourcePage: SourcePage;\n}\n\nexport function ProfileReviewPage({ projectId, sourcePage }: ProfileReviewPageProps) {\n const analytics = useAppModule(Analytics);\n\n const { customSettings, templateId } = useRouteData();\n const closeLCAIWithRedirect = useCloseLcaiWithRedirect({\n projectId,\n redirectUrl: customSettings?.endFlowRedirectUrl,\n sourcePage,\n templateId,\n });\n\n useEffect(() => {\n analytics?.page(AnalyticsPageTypes.LeadCaptureProfileReview, {\n project_id: projectId,\n });\n }, [analytics, projectId]);\n\n return (\n <>\n \n \n \n {customSettings?.endFlowButtonPrimary || TEXT.common.endFlowButton}\n \n }\n leftContent={\n \n }\n rightContent={\n \n }\n />\n \n >\n );\n}\n\nexport default ProfileReviewPage;\n","import { SourcePage } from './source-page';\n\nexport interface LCAIImage {\n alt: string;\n name: string;\n position?: string;\n}\n\nexport const IMAGES = {\n AddressImage: { alt: 'View of earth from space', name: 'location' },\n BillUploadImage: {\n alt: 'Bungalow with solar panels with lots of shrubs and two trees in the foreground',\n name: 'bill-upload',\n position: '0% 90%',\n },\n ComingSoonImage: {\n alt: 'Women in kitchen with wood shelves containing dishes',\n name: 'coming-soon',\n },\n DropOffImage: {\n alt: \"Bird's-eye view of a neighborhood at sunrise showing roofs with and without solar\",\n name: 'drop-off',\n },\n LandingImage: {\n alt: 'Patio scene with solar home in background',\n name: 'how-it-works',\n position: 'center 30%',\n },\n ProfileReviewImage: {\n alt: 'An older couple reviewing their solar needs with a solar expert',\n name: 'profile-review',\n position: '60% 10%',\n },\n QuoteImage: {\n alt: 'Yellow brick house with solar panels with greenery in foreground',\n name: 'get-in-touch',\n },\n ThankYouImage: {\n alt: 'Open french doors to balcony containing potted plants with trees in the distance',\n name: 'thank-you',\n },\n UtilityImage: {\n alt: 'String of electric lights hanging between trees',\n name: 'savings',\n position: 'center 75%',\n },\n};\n\nconst MAPPED_IMAGES = {\n [SourcePage.ADDRESS]: IMAGES.AddressImage,\n [SourcePage.ADDRESS_DROP]: IMAGES.DropOffImage,\n [SourcePage.BILL_UPLOAD]: IMAGES.BillUploadImage,\n [SourcePage.ERROR]: IMAGES.ComingSoonImage,\n [SourcePage.GENERIC_DROP]: IMAGES.DropOffImage,\n [SourcePage.LANDING]: IMAGES.LandingImage,\n [SourcePage.OWNERSHIP_DROP]: IMAGES.ComingSoonImage,\n [SourcePage.QUOTE]: IMAGES.QuoteImage,\n [SourcePage.THANK_YOU]: IMAGES.ThankYouImage,\n [SourcePage.UTILITY]: IMAGES.UtilityImage,\n};\n\nexport function ImageMatcher(sourcePage: SourcePage): LCAIImage {\n return MAPPED_IMAGES[sourcePage];\n}\n","import styled from 'styled-components';\n\nimport { S3_IMAGE_LOCATION } from '../utils/constants';\nimport { ImageMatcher } from '../utils/image-matcher';\nimport { SourcePage } from '../utils/source-page';\n\nimport { CustomImageFragment } from '../lead-capture.generated';\n\nconst DEFAULT_POSITION = 'center';\n\nexport interface ImageProps {\n customImage?: CustomImageFragment | null;\n alt?: string;\n children?: JSX.Element;\n name?: string;\n position?: string;\n sourcePage?: SourcePage;\n}\n\nexport const Image = ({\n alt,\n children,\n customImage,\n name,\n position = DEFAULT_POSITION,\n sourcePage,\n}: ImageProps) => {\n const matchedImage = sourcePage && ImageMatcher(sourcePage);\n\n const webpSrc = `${S3_IMAGE_LOCATION + (matchedImage?.name || name)}.webp`;\n const jpgSrc = `${S3_IMAGE_LOCATION + (matchedImage?.name || name)}.jpg`;\n\n const url = (customImage?.isActive && customImage?.url) || webpSrc;\n const fallbackUrl = (customImage?.isActive && customImage?.fallbackUrl) || jpgSrc;\n const altText = (customImage?.isActive && customImage?.altText) || matchedImage?.alt || alt;\n const positionAttr = (!customImage?.isActive && matchedImage?.position) || position;\n\n return (\n \n \n \n \n \n {children}\n \n );\n};\n\nconst ImageContainer = styled.div`\n position: relative;\n height: 100%;\n`;\n\nconst Img = styled.img`\n object-fit: cover;\n height: 100%;\n width: 100%;\n`;\n","export interface Tip {\n message: string;\n primaryHeader: string;\n}\n\nexport interface LCAIText {\n alternatePrimaryButtonText?: string;\n endFlowButton?: string;\n primaryHeader?: string;\n placeholder?: string;\n secondaryHeader?: string;\n subheader?: string;\n disclaimer?: string;\n primaryButtonText?: string;\n tips?: Tip[];\n}\n\nexport const TEXT: Record = {\n common: {\n endFlowButton: 'Done',\n },\n error: {\n alternatePrimaryButtonText: 'Contact us',\n primaryHeader: 'Automated estimates are coming soon to your area.',\n subheader: \"Our solar experts will design a system that's perfect for your home.\",\n },\n landing: {\n primaryHeader: 'See solar on your home in minutes.',\n subheader:\n 'Bring solar to life on your home and learn how much you could save with solar in just a few simple steps.',\n },\n profileComplete: {\n primaryButtonText: 'Estimate your savings',\n primaryHeader: \"Thanks, now let's add solar to your home!\",\n subheader:\n 'Our advanced simulation engine is ready to build your home in 3D, automatically place solar panels, and estimate how much energy your house can generate every year.',\n },\n profileReview: {\n primaryHeader: 'Thank you, your profile is being reviewed.',\n subheader: 'If your home is a good fit for solar, a solar expert will reach out to you soon.',\n },\n progress: {\n tips: [\n {\n message:\n \"Solar panels save you money while you own the home, then add value when you're ready to sell. Homes with solar sell for 4.1% more on average than homes without.\",\n primaryHeader: 'Invest in your future',\n },\n {\n message:\n \"Solar is a clean, renewable source of energy that reduces your home's carbon footprint. A typical solar installation can reduce a home's CO2 impact by 6 tons per year.\",\n primaryHeader: 'Help build a better tomorrow',\n },\n {\n message:\n 'Pairing battery storage with solar panels helps ensure your home stays running even during outages, keeping your lights on and your food fresh.',\n primaryHeader: 'Power when you need it most',\n },\n {\n message:\n \"Air conditioning is the largest single contributor to most home's electricity bills. Going solar can help reduce high bills during hot summer months.\",\n primaryHeader: 'Take control over high bills',\n },\n {\n message:\n 'While electricity prices have increased 15% in the last decade, the cost of solar has decreased over 60%.',\n primaryHeader: \"There's never been a better time to go solar\",\n },\n ],\n },\n quote: {\n disclaimer:\n 'By checking the box, I am providing my electronic signature authorizing the company to contact me by email, text, or phone, including an automated technology, at the phone number or email provided above. This consent is not a required condition of purchase.',\n },\n results: {\n primaryButtonText: 'Get a more accurate quote',\n primaryHeader: 'With solar you could save',\n secondaryHeader: \"Here's how solar adds up for your home\",\n },\n};\n"],"names":["useCloseLcaiWithRedirect","projectId","redirectUrl","sourcePage","templateId","analytics","navigation","async","track","LeadCaptureExitedWidget","project_id","source_page","navigate","replace","redirectUrlReplacer","REPLACEMENT_MATCHER","ReplacementStrings","LEAD_ID","replacedString","Object","values","forEach","replacement","RegExp","LeftContent","customHeader","customSubheader","color","fontWeight","type","profileReview","primaryHeader","subheader","ProfileReviewPage","customSettings","closeLCAIWithRedirect","endFlowRedirectUrl","useEffect","page","LeadCaptureProfileReview","buttons","intent","PRIMARY_LIGHT","onClick","endFlowButtonPrimary","common","endFlowButton","leftContent","profileReviewPageHeader","profileReviewPageSubHeader","rightContent","alt","customImage","profileReviewPageImage","name","position","IMAGES","AddressImage","BillUploadImage","ComingSoonImage","DropOffImage","LandingImage","ProfileReviewImage","QuoteImage","ThankYouImage","UtilityImage","MAPPED_IMAGES","ADDRESS","ADDRESS_DROP","BILL_UPLOAD","ERROR","GENERIC_DROP","LANDING","OWNERSHIP_DROP","QUOTE","THANK_YOU","UTILITY","Image","children","matchedImage","ImageMatcher","webpSrc","jpgSrc","url","isActive","fallbackUrl","altText","positionAttr","ImageContainer","srcSet","Img","src","style","objectPosition","div","img","TEXT","error","alternatePrimaryButtonText","landing","profileComplete","primaryButtonText","progress","tips","message","quote","disclaimer","results","secondaryHeader"],"sourceRoot":""}