{"version":3,"file":"LazyAddressPage.2600cf65f14060b9.prod.js","mappings":"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","sources":["webpack://aurora-new-frontend/./packages/common/packages/analytics/src/hook.ts","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/address/address.generated.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/address/components/buttons.tsx","webpack://aurora-new-frontend/./packages/common/packages/google-map/src/address-autocomplete/types.ts","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/address/components/left-content.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/address/components/right-content.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/address/address-page.tsx"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { Analytics, IAnalyticsProvider, useAppModule } from '@aurorasolar/common-module-loader';\n\nexport const useAnalyticsPageEvent: IAnalyticsProvider['page'] = (...props) => {\n const analytics = useAppModule(Analytics);\n useEffect(() => {\n analytics?.page(...props);\n }, [analytics, props]);\n};\n","// @ts-ignore: Ignore unused { * as Types } import\nimport * as Types from '@aurorasolar/graphql-client-schema';\n\nimport { gql } from '@apollo/client';\nimport * as Apollo from '@apollo/client';\nconst defaultOptions = {} as const;\nexport type SubmitLeadCaptureLocationMutationVariables = Types.Exact<{\n id: Types.Scalars['ID'];\n location: Types.SubmittedLeadCaptureLocation;\n}>;\n\n\nexport type SubmitLeadCaptureLocationMutation = { __typename: 'Mutation', submitLeadCaptureLocation: { __typename: 'LeadCaptureProject', id: string, address?: string | null | undefined, addressComponents?: { __typename: 'LeadCaptureAddressComponents', address: string, city?: string | null | undefined, state?: string | null | undefined, latitude: number, longitude: number, postalCode?: string | null | undefined, country?: string | null | undefined, street?: string | null | undefined, streetAddress?: string | null | undefined, streetNumber?: string | null | undefined } | null | undefined, location?: { __typename: 'LeadCaptureLocation', latitude: number, longitude: number, confirmed?: boolean | null | undefined, serviced?: boolean | null | undefined } | null | undefined } };\n\n\nexport const SubmitLeadCaptureLocationDocument = gql`\n mutation SubmitLeadCaptureLocation($id: ID!, $location: SubmittedLeadCaptureLocation!) @trace_info(traceInfo: {pod: leads}) {\n submitLeadCaptureLocation(id: $id, location: $location) {\n id\n address\n addressComponents {\n address\n city\n state\n latitude\n longitude\n postalCode\n country\n street\n streetAddress\n streetNumber\n }\n location {\n latitude\n longitude\n confirmed\n serviced\n }\n }\n}\n `;\nexport type SubmitLeadCaptureLocationMutationFn = Apollo.MutationFunction;\n\n/**\n * __useSubmitLeadCaptureLocationMutation__\n *\n * To run a mutation, you first call `useSubmitLeadCaptureLocationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useSubmitLeadCaptureLocationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [submitLeadCaptureLocationMutation, { data, loading, error }] = useSubmitLeadCaptureLocationMutation({\n * variables: {\n * id: // value for 'id'\n * location: // value for 'location'\n * },\n * });\n */\nexport function useSubmitLeadCaptureLocationMutation(baseOptions?: Apollo.MutationHookOptions) {\n const options = {...defaultOptions, ...baseOptions}\n return Apollo.useMutation(SubmitLeadCaptureLocationDocument, options);\n }\nexport type SubmitLeadCaptureLocationMutationHookResult = ReturnType;\nexport type SubmitLeadCaptureLocationMutationResult = Apollo.MutationResult;\nexport type SubmitLeadCaptureLocationMutationOptions = Apollo.BaseMutationOptions;","import { AuroraIcon, AuroraIconType } from '@aurorasolar/common-core/src/icon';\n\nimport { LCAIButton, LCAIButtonIntent } from '../../../typography';\n\nexport const NEXT_BUTTON_TEST_ID = 'next-button-test-id';\n\nconst BUTTON_TEXT = 'Next';\n\nexport interface ButtonsProps {\n handleAddressSave: () => void;\n hasAddress: boolean;\n}\n\nexport function Buttons({ handleAddressSave, hasAddress }: ButtonsProps) {\n return (\n \n \n {BUTTON_TEXT}\n \n );\n}\n","export enum AutocompleteRequestLocationType {\n address = 'address',\n administrative_area_level_1 = 'administrative_area_level_1',\n cities = '(cities)',\n establishment = 'establishment',\n postal_code = 'postal_code',\n regions = '(regions)',\n}\n\nexport interface FullAddress {\n address: string;\n city?: string;\n country?: string;\n county?: string;\n latitude: number;\n longitude: number;\n postalCode?: string;\n state?: string;\n street?: string;\n streetAddress?: string;\n streetNumber?: string;\n}\n\nexport type FilteredAddressComponents = Pick<\n FullAddress,\n | 'city'\n | 'country'\n | 'county'\n | 'postalCode'\n | 'state'\n | 'street'\n | 'streetAddress'\n | 'streetNumber'\n>;\n\nexport interface AddressComponent {\n // Snake case is required to match how the google API returns address components\n // {\n // \"long_name\" : \"\",\n // \"short_name\" : \"\",\n // \"types\" : []\n // },\n long_name: string;\n short_name: string;\n types: string[];\n}\n\nexport type FieldOptions = {\n [_ in keyof FilteredAddressComponents]?: { useLongName?: boolean };\n};\n","import styled from 'styled-components';\n\nimport {\n AddressAutocomplete,\n AutocompleteRequestLocationType,\n FullAddress,\n} from '@aurorasolar/common-google-map';\n\nimport { BoxWithMargin } from '../../../shared-components';\nimport { LCAIText } from '../../../typography';\nimport {\n HEADER_COLOR,\n INPUT_FOCUS_STYLE,\n INPUT_PLACEHOLDER_STYLE,\n INPUT_STYLE,\n} from '../../../utils/constants';\n\nexport enum Constants {\n ENTRY_HEADER = 'Where do you live?',\n ENTRY_PLACEHOLDER = 'Enter address',\n CONFIRMATION_HEADER = 'Is this your home?',\n}\n\nexport interface LeftContentProps {\n handleAddressSelect: (selectedAddress: FullAddress | null) => void;\n hasAddress: boolean;\n}\n\nexport function LeftContent({ handleAddressSelect, hasAddress }: LeftContentProps) {\n return (\n <>\n \n {hasAddress ? Constants.CONFIRMATION_HEADER : Constants.ENTRY_HEADER}\n \n \n \n \n \n );\n}\n\nconst AddressEntry = styled(AddressAutocomplete)`\n .bp3-input-group input.bp3-input {\n ${INPUT_STYLE}\n }\n\n .bp3-input-group input.bp3-input::placeholder {\n ${INPUT_PLACEHOLDER_STYLE}\n }\n\n .bp3-input-group input.bp3-input:focus {\n ${INPUT_FOCUS_STYLE}\n }\n`;\n","import { FullAddress } from '@aurorasolar/common-google-map';\n\nimport { CustomImageFragment } from '../../../lead-capture.generated';\nimport { Image, Map } from '../../../shared-components';\nimport { SourcePage } from '../../../utils/source-page';\n\nexport interface RightContentProps {\n address?: FullAddress;\n customImage?: CustomImageFragment | null;\n handleAddressChange: (center: google.maps.LatLng) => void;\n sourcePage: SourcePage;\n}\n\nexport function RightContent({\n address,\n customImage,\n handleAddressChange,\n sourcePage,\n}: RightContentProps) {\n return address ? (\n \n ) : (\n \n );\n}\n","import { useRef, useState } from 'react';\n\nimport { useAnalyticsPageEvent } from '@aurorasolar/common-analytics';\nimport { useDebouncedCallback } from '@aurorasolar/common-core/src/hooks';\nimport { FullAddress } from '@aurorasolar/common-google-map';\nimport {\n Analytics,\n AnalyticsEventTypes,\n AnalyticsPageTypes,\n AppRouterNavigation,\n useAppModule,\n} from '@aurorasolar/common-module-loader';\n\nimport { useRouteData } from '../../hooks';\nimport { AnimateView, SplitView, TopRail } from '../../shared-components';\nimport { DEBOUNCE_TIME, PROGRESS_VALUES } from '../../utils/constants';\nimport { SourcePage } from '../../utils/source-page';\nimport { useSubmitLeadCaptureLocationMutation } from './address.generated';\nimport { Buttons, LeftContent, RightContent } from './components';\n\nexport interface AddressPageProps {\n projectId: string;\n sourcePage: SourcePage;\n}\n\nexport const AddressPage = ({ projectId, sourcePage }: AddressPageProps) => {\n const navigation = useAppModule(AppRouterNavigation);\n const analytics = useAppModule(Analytics);\n\n const { customSettings, templateId } = useRouteData();\n\n const [submitLocation] = useSubmitLeadCaptureLocationMutation();\n\n const [address, updateAddress] = useState();\n const location = useRef({\n lat: 0,\n lng: 0,\n });\n\n useAnalyticsPageEvent(AnalyticsPageTypes.LeadCaptureAddress, {\n project_id: projectId,\n });\n\n const handleAddressChange = (center: google.maps.LatLng) => {\n location.current.lat = center.lat();\n location.current.lng = center.lng();\n\n if (\n address &&\n location.current.lat !== address.latitude &&\n location.current.lng !== address.longitude\n ) {\n analytics?.track(AnalyticsEventTypes.LeadCaptureChangedMapLocation);\n }\n };\n\n const handleAddressSelect = (selectedAddress: FullAddress | null) => {\n if (selectedAddress == null) return;\n\n const leadAddress = { ...selectedAddress };\n delete leadAddress.county;\n\n updateAddress(leadAddress);\n location.current.lat = leadAddress.latitude;\n location.current.lng = leadAddress.longitude;\n\n analytics?.track(AnalyticsEventTypes.LeadCaptureEnteredAddress);\n };\n\n const handleAddressSave = useDebouncedCallback(\n async () => {\n if (address == null) return;\n const { data } = await submitLocation({\n variables: {\n id: projectId,\n location: {\n address: address.address,\n addressComponents: address,\n confirmed: true,\n latitude: location.current.lat,\n longitude: location.current.lng,\n },\n },\n });\n\n const isServiced = data?.submitLeadCaptureLocation.location?.serviced;\n\n await analytics?.track(AnalyticsEventTypes.LeadCaptureConfirmedLocation, {\n project_id: projectId,\n });\n\n navigation?.navigate(`/projects/${projectId}/${isServiced ? 'utility' : 'drop/address'}`, {\n replace: true,\n });\n },\n [analytics, navigation, submitLocation, address, projectId],\n DEBOUNCE_TIME,\n );\n\n return (\n <>\n \n \n }\n hasProgressBar\n leftContent={\n \n }\n rightContent={\n \n }\n />\n \n \n );\n};\n\nexport default AddressPage;\n"],"names":["useAnalyticsPageEvent","props","analytics","useEffect","page","defaultOptions","SubmitLeadCaptureLocationDocument","Buttons","handleAddressSave","hasAddress","disabled","intent","PRIMARY_LIGHT","onClick","name","BTN_ARROW","AutocompleteRequestLocationType","Constants","LeftContent","handleAddressSelect","color","fontWeight","type","CONFIRMATION_HEADER","ENTRY_HEADER","AddressEntry","autoCompleteRequestLocationType","address","fieldOptions","state","useLongName","fill","onSelect","placeholder","ENTRY_PLACEHOLDER","RightContent","customImage","handleAddressChange","sourcePage","lat","latitude","lng","longitude","onAddressChange","AddressPage","projectId","navigation","customSettings","templateId","submitLocation","baseOptions","options","useSubmitLeadCaptureLocationMutation","updateAddress","useState","location","useRef","LeadCaptureAddress","project_id","async","data","variables","id","addressComponents","confirmed","current","isServiced","submitLeadCaptureLocation","serviced","track","LeadCaptureConfirmedLocation","navigate","replace","progressValue","ADDRESS","buttons","hasProgressBar","leftContent","selectedAddress","leadAddress","county","LeadCaptureEnteredAddress","rightContent","addressEntryPageImage","center","LeadCaptureChangedMapLocation"],"sourceRoot":""}