{"version":3,"file":"static/chunks/5676-81309b47a9df6c6c.js","mappings":"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","sources":["webpack://_N_E/?d23c","webpack://_N_E/./app/[locale]/(leads-forms)/_components/SecondaryHeading.tsx","webpack://_N_E/./app/[locale]/(leads-forms)/_components/LocationSidebar.tsx","webpack://_N_E/./app/[locale]/(leads-forms)/location-form/_components/LocationFormPage.tsx","webpack://_N_E/./app/[locale]/(leads-forms)/location-form/_components/types.ts","webpack://_N_E/./app/[locale]/(leads-forms)/location-form/_components/utils.ts","webpack://_N_E/./components/typography/SecondaryHeading.tsx","webpack://_N_E/./lib/countries.ts","webpack://_N_E/./lib/leads/leads.ts","webpack://_N_E/./models/Countries.enum.ts","webpack://_N_E/./models/location-utils.ts","webpack://_N_E/./utils/calendly.ts","webpack://_N_E/./utils/object-utils.ts"],"sourcesContent":["import(/* webpackMode: \"eager\", webpackExports: [\"LocationFormPage\"] */ \"/codebuild/output/src3395698585/src/website/app/[locale]/(leads-forms)/location-form/_components/LocationFormPage.tsx\");\n","import H2 from '@/components/typography/SecondaryHeading';\n\nimport clsx from 'clsx';\n\ntype HeadingProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport default function SecondaryHeading({\n children,\n className,\n}: HeadingProps) {\n return (\n

{children}

\n );\n}\n","import { useTranslations } from 'next-intl';\n\nimport { ClickablePhoneNumber } from '@/components/ClickablePhoneNumber';\nimport { HorizontalDivider } from '@/components/HorizontalDivider';\nimport { Link } from '@/components/Link';\nimport { useUserLocalization } from '@/hooks/useUserLocalization';\nimport { LocationPhases } from '@/lib/locations/dto';\nimport { getPhoneApplicationForm } from '@/models/location-utils';\nimport { MEMBER_PORTAL_LOGIN_URL } from '@/utils/constants';\n\nimport SecondaryHeading from './SecondaryHeading';\n\ntype SidebarProps = {\n location?: {\n phone: string | null;\n phase: LocationPhases;\n country: string;\n };\n};\n\nexport default function LocationSidebar({ location }: SidebarProps) {\n const t = useTranslations('location-sidebar');\n const { country } = useUserLocalization();\n const phone = getPhoneApplicationForm({\n location,\n country,\n });\n return (\n
\n
\n {t('call.title')}\n

\n {t.rich('call.description', {\n important: (chunks) => (\n \n ),\n phone,\n })}\n

\n
\n \n
\n {t('member.title')}\n

\n {t.rich('member.description', {\n link: (chunks) => (\n \n {chunks}\n \n ),\n })}\n

\n
\n \n
\n {t('checkout.title')}\n

\n {t.rich('checkout.description', {\n link: (chunks) => (\n \n {chunks}\n \n ),\n })}\n

\n
\n
\n );\n}\n","'use client';\n\nimport { useTranslations } from 'next-intl';\nimport dynamic from 'next/dynamic';\nimport { useSearchParams } from 'next/navigation';\nimport { useEffect, useState } from 'react';\n\nimport { LocationLeadResponse } from '@/app/api/leads/locations/types';\nimport {\n AsideContainer,\n MainContainer,\n} from '@/components/page-with-aside-layout';\nimport PrimaryHeading from '@/components/typography/PrimaryHeading';\nimport { useRouter } from '@/hooks/useRouter';\nimport { ScreenSize, useScreenSize } from '@/hooks/useScreenSize';\nimport { useToastError } from '@/hooks/useToastError';\nimport { usePathname } from '@/i18n/navigation';\nimport { FormTypes } from '@/lib/forms/types';\nimport {\n createLocationApplicationLeadDto,\n isCalendlyPreLoadable,\n} from '@/lib/leads/leads';\nimport {\n LocationDto,\n LocationPhases,\n SimpleLocationDto,\n} from '@/lib/locations/dto';\nimport * as gtm from '@/utils/gtm';\nimport { HttpMethods, tryFetchToJson } from '@/utils/http-request';\nimport { shallowEqual } from '@/utils/object-utils';\nimport {\n getAllParamsFromSearchParams,\n stringifyUrl,\n} from '@/utils/stringify-url';\n\nimport LocationSidebar from '../../_components/LocationSidebar';\nimport {\n ApplicationFormData,\n LocationFormActions,\n LocationFormSteps,\n TourType,\n} from './types';\nimport { getAction, getAvailableTourTypes, getDefaultTourType } from './utils';\n\nimport clsx from 'clsx';\n\nconst CalendlyModal = dynamic(() => import('@/components/CalendlyModal'), {\n ssr: false,\n});\nconst ApplicationForm = dynamic(() => import('./ApplicationForm'), {\n ssr: false,\n});\nconst CalendlyForm = dynamic(() => import('./CalendlyForm'), { ssr: false });\nconst Success = dynamic(() => import('./Success').then((mod) => mod.Success), {\n ssr: false,\n});\n\nexport type LocationFormPageProps = {\n location?: LocationDto;\n allLocations?: SimpleLocationDto[];\n};\n\nexport function LocationFormPage({\n location,\n allLocations,\n}: LocationFormPageProps) {\n const t = useTranslations('location-form');\n const { showToast, hideToast } = useToastError();\n const router = useRouter();\n const pathname = usePathname();\n const widthWindow = useScreenSize();\n const searchParams = useSearchParams();\n\n const [action, setAction] = useState(\n location ? getAction(location) : LocationFormActions.General\n );\n const [currentStep, setCurrentStep] = useState(LocationFormSteps.Application);\n const [selectedLocation, setSelectedLocation] = useState<\n SimpleLocationDto | LocationDto | null\n >(location ?? null);\n const [form, setForm] = useState();\n const [isLoading, setIsLoading] = useState(false);\n const availableTourTypes =\n selectedLocation && getAvailableTourTypes(selectedLocation);\n const [selectedTourType, setSelectedTourType] = useState(\n getDefaultTourType(availableTourTypes, action)\n );\n const calendlyLink = availableTourTypes?.find(\n (tour) => tour.type === selectedTourType\n )?.calendlyLink;\n const canLoadCalendly = !!selectedLocation && !!form && !!calendlyLink;\n\n const [isCalendlySkipped, setIsCalendlySkipped] = useState(false);\n const [showCalendlyModal, setShowCalendlyModal] = useState(false);\n\n const showSuccessStep =\n currentStep === LocationFormSteps.Success && !!selectedLocation && !!form;\n\n const titleForm = location\n ? t(`${action}.title`, {\n locationName: location.name,\n })\n : t('general.title');\n\n const descriptionForm =\n selectedTourType == TourType.IN_PERSON &&\n location?.salesOfficeAddress != null &&\n currentStep !== LocationFormSteps.Application\n ? t('description-sales-office-open', {\n address: location?.salesOfficeAddress,\n })\n : t(`${action}.description`);\n\n const handleSubmitApplicationForm = async (form: ApplicationFormData) => {\n setIsLoading(true);\n\n await tryFetchToJson({\n fetchParams: {\n input: '/api/leads/locations',\n init: {\n method: HttpMethods.Post,\n body: JSON.stringify(createLocationApplicationLeadDto(form)),\n },\n },\n onSuccess: (response) => {\n setIsLoading(false);\n hideToast();\n gtm.pushEvent('formSubmissionSuccess');\n\n if (\n response.isFlaggedAsBot ||\n selectedLocation?.phase === LocationPhases.Signed ||\n !calendlyLink\n ) {\n goToSuccessPage(form);\n return;\n }\n window.scroll(0, 0);\n\n if (widthWindow > ScreenSize.MD) {\n setCurrentStep(LocationFormSteps.Calendly);\n } else {\n setShowCalendlyModal(true);\n }\n },\n onFunctionalError: () => showToast(),\n onTechnicalError: () => showToast(),\n });\n };\n\n const goToSuccessPage = (form: ApplicationFormData) => {\n setCurrentStep(LocationFormSteps.Success);\n\n if (showCalendlyModal) {\n setShowCalendlyModal(false);\n }\n\n window.scroll(0, 0);\n\n gtm.pushEvent('form_process_complete', {\n form_type: FormTypes.LOCATION_APPLICATION,\n customer_email: form.email,\n customer_first_name: form.firstName,\n customer_last_name: form.lastName,\n });\n };\n\n const handleCloseCalendlyModal = (form: ApplicationFormData) => {\n setIsCalendlySkipped(true);\n goToSuccessPage(form);\n };\n\n useEffect(() => {\n const updateQueryParams = () => {\n if (!location && selectedLocation?.slug) {\n const allParams = getAllParamsFromSearchParams(searchParams);\n const newUrl = stringifyUrl(pathname, {\n ...allParams,\n loc: selectedLocation?.slug,\n });\n router.replace(newUrl);\n }\n };\n\n const newAction = selectedLocation\n ? getAction(selectedLocation)\n : LocationFormActions.General;\n setAction(newAction);\n setSelectedTourType(getDefaultTourType(availableTourTypes, newAction));\n\n updateQueryParams();\n }, [selectedLocation]);\n\n useEffect(() => {\n setIsCalendlySkipped(!canLoadCalendly);\n }, [canLoadCalendly]);\n\n const handleLocationChange = (sfId: string) => {\n const selectedLoc = allLocations?.find((x) => x.sfId === sfId);\n if (!selectedLoc) return;\n setSelectedLocation(selectedLoc);\n };\n\n const handleFormChange = (formChanged: ApplicationFormData) => {\n if (\n isCalendlyPreLoadable(formChanged) &&\n (!form || !shallowEqual(form, formChanged))\n ) {\n setForm(formChanged);\n }\n };\n\n return (\n <>\n \n {currentStep !== LocationFormSteps.Success && (\n <>\n \n {titleForm}\n \n

{descriptionForm}

\n \n )}\n\n {currentStep === LocationFormSteps.Application && (\n \n )}\n\n {widthWindow > ScreenSize.MD && canLoadCalendly && (\n \n goToSuccessPage(form)}\n company={form.company}\n email={form.email}\n firstName={form.firstName}\n lastName={form.lastName}\n phone={form.phone}\n />\n \n )}\n {widthWindow <= ScreenSize.MD && canLoadCalendly && (\n handleCloseCalendlyModal(form)}\n onSubmit={() => goToSuccessPage(form)}\n />\n )}\n\n {showSuccessStep && (\n \n )}\n
\n \n \n \n \n );\n}\n","import * as yup from 'yup';\n\nimport { PHONE_REGEXP, STRONG_EMAIL_REGEXP } from '@/utils/constants';\n\nexport enum LocationFormSteps {\n Application = 'application',\n Calendly = 'calendly',\n Success = 'success',\n}\n\nexport enum TourType {\n IN_PERSON = 'in-person',\n VIRTUAL = 'virtual',\n}\n\n// values tied to translation keys\nexport enum LocationFormActions {\n General = 'general',\n GetNotified = 'get-notified',\n ScheduleCall = 'schedule-call',\n GetStarted = 'get-started',\n}\n\nexport type CalendlyLinkByTour = {\n type: TourType;\n calendlyLink: string;\n};\n\nexport const applicationFormSchema = yup\n .object({\n firstName: yup.string().trim().required('firstname-required'),\n lastName: yup.string().trim().required('lastname-required'),\n email: yup\n .string()\n .trim()\n .required('email-required')\n .email('email-invalid')\n .matches(STRONG_EMAIL_REGEXP, 'email-invalid'),\n phone: yup\n .string()\n .trim()\n .required('telephone-required')\n .matches(PHONE_REGEXP, 'telephone-invalid'),\n company: yup.string().trim().required('company-required'),\n teamSize: yup.string().required('teamSize-required'),\n referenceCode: yup.string(),\n comments: yup.string(),\n location: yup.string(),\n industry: yup.string().required('industry-required'),\n textMessageOptIn: yup.boolean(),\n })\n .required();\n\nexport type ApplicationFormData = yup.InferType;\n","import { LocationDto, LocationPhases } from '@/lib/locations/dto';\nimport { LocationCalendlyLinksDto } from '@/lib/locations/dto/location-calendly-links.dto';\nimport { adaptCalendlyLink } from '@/utils/calendly';\n\nimport { CalendlyLinkByTour, LocationFormActions, TourType } from './types';\n\ntype getActionProps = {\n phase: LocationPhases;\n isEarlyInPersonTourEnabled: boolean;\n calendlyLinks: LocationCalendlyLinksDto;\n};\n\nexport function getAction({\n phase,\n isEarlyInPersonTourEnabled,\n calendlyLinks,\n}: getActionProps): LocationFormActions {\n const isLaunchLocationWithoutEarlyInPersonTourAvailable =\n phase === LocationPhases.Launch &&\n (!isEarlyInPersonTourEnabled || !calendlyLinks.inPersonTour);\n\n if (isLaunchLocationWithoutEarlyInPersonTourAvailable) {\n return LocationFormActions.ScheduleCall;\n }\n\n if (phase === LocationPhases.Signed) {\n return LocationFormActions.GetNotified;\n }\n\n return LocationFormActions.GetStarted;\n}\n\nexport function getCalendlyLinkByTourType(\n location: {\n calendlyLinks: LocationDto['calendlyLinks'];\n },\n tourType: TourType\n) {\n return tourType === TourType.VIRTUAL\n ? location.calendlyLinks.phoneCall\n : location.calendlyLinks.inPersonTour;\n}\n\nexport function getAvailableTourTypes(location: {\n calendlyLinks: LocationDto['calendlyLinks'];\n}): CalendlyLinkByTour[] {\n return Object.values(TourType)\n .map(\n (type) =>\n ({\n type,\n calendlyLink: adaptCalendlyLink(\n getCalendlyLinkByTourType(location, type)\n ),\n } as CalendlyLinkByTour)\n )\n .filter(({ calendlyLink }) => !!calendlyLink);\n}\n\nconst ACTIONS_ENABLING_PHYSICAL_TOUR = [\n LocationFormActions.GetStarted,\n LocationFormActions.General,\n];\n\nexport function getDefaultTourType(\n availableTourTypes: CalendlyLinkByTour[] | null,\n action: LocationFormActions\n) {\n if (\n ACTIONS_ENABLING_PHYSICAL_TOUR.includes(action) &&\n availableTourTypes?.some(({ type }) => type === TourType.IN_PERSON)\n ) {\n return TourType.IN_PERSON;\n }\n return TourType.VIRTUAL;\n}\n\nexport function canSelectTourType(action: LocationFormActions) {\n return action === LocationFormActions.GetStarted;\n}\n","import { tiemposFont } from '@/theme/tiemposFont';\n\nimport clsx from 'clsx';\n\ntype SecondaryHeadingProps = React.ComponentPropsWithoutRef<'h2'> & {\n fontFamilyClassName?: string;\n isBigger?: boolean;\n};\n\nexport default function SecondaryHeading({\n fontFamilyClassName,\n children,\n className,\n isBigger = false,\n ...divProps\n}: SecondaryHeadingProps) {\n return (\n \n {children}\n \n );\n}\n","export const EU_COUNTRIES = [\n 'AT', // Austria\n 'BE', // Belgium\n 'BG', // Bulgaria\n 'HR', // Croatia\n 'CY', // Cyprus\n 'CZ', // Czechia\n 'DK', // Denmark\n 'EE', // Estonia\n 'FI', // Finland\n 'FR', // France\n 'DE', // Germany\n 'GR', // Greece\n 'HU', // Hungary\n 'IE', // Ireland\n 'IT', // Italy\n 'LV', // Latvia\n 'LT', // Lithuania\n 'LU', // Luxembourg\n 'MT', // Malta\n 'NL', // Netherlands\n 'PL', // Poland\n 'PT', // Portugal\n 'RO', // Romania\n 'SK', // Slovakia\n 'SI', // Slovenia\n 'ES', // Spain\n 'SE', // Sweden\n];\n\nexport const UK = 'GB';\nexport const US = 'US';\nexport const CA = 'CA';\n","import { BrokerFormData } from '@/app/[locale]/(leads-forms)/brokers/inquiry/_components/types';\nimport { LandlordFormData } from '@/app/[locale]/(leads-forms)/landlords/inquiry/_components/types';\nimport { ApplicationFormData } from '@/app/[locale]/(leads-forms)/location-form/_components/types';\nimport { MeetingEventSpaceInquiryFormData } from '@/app/[locale]/(leads-forms)/meeting-event-space-inquiry/_components/types';\nimport {\n COOKIE_KEY_MKTO_REFERRER,\n getCookieByKey,\n getTrackingCookies,\n} from '@/utils/cookies';\nimport { getLastIndustriousUrl } from '@/utils/routes';\n\nimport { formNames } from '../forms/types';\nimport { SimpleIndustriousLocationSearchDto } from '../locations/dto/simple-location-search.dto';\nimport {\n BrokerApplicationLeadDto,\n LandlordApplicationLeadDto,\n LocationApplicationLeadDto,\n MeetingEventSpaceInquiryLeadDto,\n} from './dto';\nimport { WithTrackingDto } from './dto/withTracking.dto';\n\nexport const LANDLORD_INQUIRY_CAMPAIGN_ID = '18580';\nexport const BROKER_INQUIRY_CAMPAIGN_ID = '18573';\n\nexport function createLandlordLeadDto({\n address,\n ...otherFields\n}: LandlordFormData): WithTrackingDto {\n return {\n formName: formNames.LANDLORD,\n marketocampaignID: LANDLORD_INQUIRY_CAMPAIGN_ID,\n buildingAddress: address,\n ...otherFields,\n ...getTracking(),\n };\n}\n\nexport function createMeetingLeadDto(\n form: MeetingEventSpaceInquiryFormData\n): WithTrackingDto {\n return {\n formName: formNames.MEETING_SPACE_REQUEST,\n ...form,\n ...getTracking(),\n };\n}\n\nexport function createLocationApplicationLeadDto({\n phone,\n ...otherFields\n}: ApplicationFormData): WithTrackingDto {\n return {\n formName: formNames.LOCATION_APPLICATION,\n telephone: phone,\n ...otherFields,\n ...getTracking(),\n };\n}\n\nexport function createBrokerLeadDto({\n phone,\n ...otherFields\n}: BrokerFormData): WithTrackingDto {\n return {\n formName: formNames.BROKER,\n marketocampaignID: BROKER_INQUIRY_CAMPAIGN_ID,\n telephone: phone,\n ...otherFields,\n ...getTracking(),\n };\n}\n\nexport function getTracking(): WithTrackingDto {\n const {\n marketoCookie,\n hubspotutk,\n utmCampaign,\n utmContent,\n utmMedium,\n utmSource,\n utmTerm,\n indChannel,\n indKpi,\n indAdGroup,\n indAdCampaign,\n indLs,\n indAud,\n gclid,\n } = getTrackingCookies();\n\n return {\n lastIndustriousUrl: getLastIndustriousUrl(),\n lastExternalUrl: getCookieByKey(COOKIE_KEY_MKTO_REFERRER) ?? null, // to remove after marketo is removed\n gclid: gclid ?? null,\n utms: {\n campaign: utmCampaign ?? null,\n source: utmSource ?? null,\n medium: utmMedium ?? null,\n content: utmContent ?? null,\n term: utmTerm ?? null,\n },\n marketoCookie: marketoCookie ?? null,\n hubspotutk: hubspotutk ?? null,\n channel: indChannel ?? null,\n kpi: indKpi ?? null,\n adGroup: indAdGroup ?? null,\n adCampaign: indAdCampaign ?? null,\n ls: indLs ?? null,\n aud: indAud ?? null,\n };\n}\n\nexport function isCalendlyPreLoadable(form: {\n firstName: string;\n lastName: string;\n email: string;\n company: string;\n phone: string;\n location?: SimpleIndustriousLocationSearchDto | string;\n}): boolean {\n return !!(\n form.company &&\n form.email &&\n form.firstName &&\n form.lastName &&\n form.location &&\n form.phone\n );\n}\n","export enum Countries {\n Belgium = 'Belgium',\n Canada = 'Canada',\n France = 'France',\n UnitedStates = 'United States',\n UnitedKingdom = 'United Kingdom',\n}\n","import { UK } from '@/lib/countries';\nimport {\n LocationDto,\n LocationManagerDto,\n LocationPhases,\n LocationPriceFormat,\n LocationPricesDto,\n LocationProductName,\n ManagerRoles,\n} from '@/lib/locations/dto';\nimport { LocationCalendlyLinksDto } from '@/lib/locations/dto/location-calendly-links.dto';\nimport {\n DEFAULT_CURRENCY_ISO_CODE,\n FR_GENERIC_NUMBER,\n UK_GENERIC_APPLICATION_NUMBER,\n US_GENERIC_APPLICATION_NUMBER,\n US_GENERIC_NUMBER,\n} from '@/utils/constants';\n\nimport { Countries } from './Countries.enum';\nimport { Products } from './Products.enum';\n\nconst PRODUCT_SUITES_IMG = '/public-s3/images/product_suites_new.webp';\nconst PRODUCT_VIRTUAL_IMG = '/public-s3/images/product_virtual_new.webp';\nexport const OFFICE_WINDOW_IMG = '/public-s3/images/window-office.webp';\nexport const OFFICE_INTERIOR_IMG = '/public-s3/images/interior-office.webp';\n\nexport const GOOGLE_SEARCH_API = 'https://www.google.com/maps/search/?api=1';\n\nexport enum LocationPrimaryCtaTypes {\n GetNotified = 'get-notified',\n ScheduleCall = 'schedule-call',\n GetStarted = 'get-started',\n BookTour = 'book-tour',\n}\n\ntype getLocationPrimaryCtaTypeProps = {\n phase: LocationPhases;\n isEarlyInPersonTourEnabled: boolean;\n calendlyLinks: LocationCalendlyLinksDto;\n};\n\nexport function getLocationPrimaryCtaType({\n phase,\n isEarlyInPersonTourEnabled,\n calendlyLinks,\n}: getLocationPrimaryCtaTypeProps): LocationPrimaryCtaTypes {\n const isLaunchLocationWithoutEarlyInPersonTourAvailable =\n phase === LocationPhases.Launch &&\n (!isEarlyInPersonTourEnabled || !calendlyLinks.inPersonTour);\n\n if (phase === LocationPhases.Signed) {\n return LocationPrimaryCtaTypes.GetNotified;\n }\n if (isLaunchLocationWithoutEarlyInPersonTourAvailable) {\n return LocationPrimaryCtaTypes.ScheduleCall;\n }\n\n return LocationPrimaryCtaTypes.BookTour;\n}\n\nexport function getGoogleMapsDirectionUrlFromString(query: string) {\n return `${GOOGLE_SEARCH_API}&query=${encodeURI(query)}`;\n}\n\nexport function getGoogleMapsDirectionUrl(props: {\n city: string;\n address: string;\n brandName: string | null;\n name: string;\n state: string;\n zipCode: string;\n}) {\n const { brandName, name, address, city, state, zipCode } = props;\n\n return `${GOOGLE_SEARCH_API}&query=${encodeURI(\n `${brandName || name} ${address} ${city} ${state} ${zipCode}`\n )}`;\n}\n\nexport function sortMemberExperienceTeam(\n a: LocationManagerDto,\n b: LocationManagerDto\n): number {\n if (a.role === b.role) {\n return a.name.localeCompare(b.name);\n }\n if (a.role !== ManagerRoles.MemberExperienceManager) {\n return 1;\n }\n return -1;\n}\n\nexport function getFormattedAddressByCountry({\n country,\n address,\n address2,\n city,\n state,\n zipCode,\n}: {\n country: Countries;\n address: string;\n address2: string | null;\n city: string;\n state: string;\n zipCode?: string;\n}) {\n const firstPart = `${address}${address2 ? ` ${address2}` : ''}`;\n\n switch (country) {\n case Countries.Belgium:\n case Countries.France:\n return {\n addressLine1: firstPart,\n addressLine2: `${zipCode} ${city}, ${country}`,\n };\n case Countries.Canada:\n return {\n addressLine1: firstPart,\n addressLine2: `${city}, ${state} ${zipCode}, ${country}`,\n };\n case Countries.UnitedKingdom:\n return {\n addressLine1: firstPart,\n addressLine2: `${city} ${zipCode}, ${country}`,\n };\n default:\n return {\n addressLine1: firstPart,\n addressLine2: `${city}, ${state} ${zipCode}`,\n };\n }\n}\n\nexport function getGenericPhoneNumberByCountry(country: string) {\n switch (country) {\n case Countries.France:\n return FR_GENERIC_NUMBER;\n case Countries.UnitedKingdom:\n return UK_GENERIC_APPLICATION_NUMBER;\n default:\n return US_GENERIC_NUMBER;\n }\n}\n\nexport function getPhoneApplicationForm({\n location,\n country,\n}: {\n location:\n | {\n phone: string | null;\n phase: LocationPhases;\n country: string;\n }\n | undefined;\n country: string;\n}) {\n if (!location) {\n return country === UK\n ? UK_GENERIC_APPLICATION_NUMBER\n : US_GENERIC_APPLICATION_NUMBER;\n }\n\n if ([LocationPhases.Signed, LocationPhases.Launch].includes(location.phase)) {\n return getGenericPhoneNumberByCountry(location.country);\n }\n\n if (location.phone) {\n return location.phone;\n }\n\n return US_GENERIC_NUMBER;\n}\n\nexport function getLocationAreaSalesLeadPhone({\n locationManagers,\n country,\n}: {\n locationManagers: LocationManagerDto[];\n country: Countries;\n}): string {\n const areaSalesLead = locationManagers.find(\n (manager) => manager.role === ManagerRoles.AreaSalesLead\n );\n\n if (areaSalesLead && areaSalesLead.phone) {\n return areaSalesLead.phone;\n }\n\n if (country === Countries.UnitedKingdom) {\n return UK_GENERIC_APPLICATION_NUMBER;\n }\n\n return US_GENERIC_APPLICATION_NUMBER;\n}\n\nexport function createEmptyLocationPrices(): LocationPricesDto {\n return {\n currencyIsoCode: DEFAULT_CURRENCY_ISO_CODE,\n priceFormat: LocationPriceFormat.CheapestOffice,\n lowestPrices: {\n dedicatedOffice: null,\n suites: null,\n access: null,\n virtual: null,\n meetingRoom: {\n price: 0,\n },\n coworkingDayPass: null,\n coworking: {},\n office: {},\n },\n };\n}\n\nexport function getLocationFullName(props: {\n name: string;\n brandName: string | null;\n}) {\n const { name, brandName } = props;\n\n if (brandName && !name.includes(brandName)) {\n return `${brandName} ${name}`;\n }\n\n return name;\n}\n\nconst displayRoles = [\n ManagerRoles.MemberExperienceAssociate,\n ManagerRoles.MemberExperienceManager,\n];\n\nexport type VisibleLocationManager = LocationManagerDto & {\n avatarUrl: string;\n role:\n | ManagerRoles.MemberExperienceManager\n | ManagerRoles.MemberExperienceAssociate\n | ManagerRoles.TechnicalAudioVisualManager\n | ManagerRoles.ConferenceServicesManager;\n};\n\nexport function getVisibleManagers(\n managers: LocationManagerDto[]\n): VisibleLocationManager[] {\n return managers\n .filter((manager) => !!manager.avatarUrl)\n .filter((manager): manager is VisibleLocationManager =>\n displayRoles.includes(manager.role)\n );\n}\n\nexport function getProductPageLink(productName: LocationProductName) {\n switch (productName) {\n case 'dedicatedOffice':\n return '/solutions/offices';\n case 'meetingRoom':\n return '/solutions/conference-and-meeting-rooms';\n case 'access':\n return '/solutions/coworking-membership';\n case 'coworkingDayPass':\n return '/solutions/coworking-day-pass';\n default:\n return `/solutions/${productName}`;\n }\n}\n\nexport function getProductImage(product: Products.Suite | Products.Virtual) {\n switch (product) {\n case 'virtual':\n return PRODUCT_VIRTUAL_IMG;\n default:\n return PRODUCT_SUITES_IMG;\n }\n}\n\nexport function getSearchNearByLocationsUrl(location: LocationDto) {\n const {\n city,\n geolocalization: { lat, lng },\n } = location;\n return `/locations?center=${lng},${lat}&query=${encodeURI(city)}&zoom=10`;\n}\n","import { LocationCalendlyLinksDto } from '@/lib/locations/dto/location-calendly-links.dto';\nimport { LocationPhases } from '@/lib/locations/dto/location-phases.enum';\n\nimport { getTrackingCookies } from './cookies';\n\nexport function createUtmCalendly(\n utms: Pick<\n ReturnType,\n 'utmCampaign' | 'utmContent' | 'utmMedium' | 'utmSource' | 'utmTerm'\n >\n) {\n const { utmCampaign, utmContent, utmMedium, utmSource, utmTerm } = utms;\n\n return {\n utmCampaign,\n utmContent,\n utmMedium,\n utmSource,\n utmTerm,\n };\n}\n\nexport function createPrefillCalendly(props: {\n company?: string;\n firstName?: string;\n email?: string;\n lastName?: string;\n phone?: string;\n}) {\n const { email, firstName, lastName, company, phone } = props;\n\n return {\n email,\n firstName,\n lastName,\n customAnswers: {\n a1: company,\n a2: phone,\n },\n };\n}\n\nexport function getAppropiateCalendlyLink(props: {\n calendlyLinks: LocationCalendlyLinksDto;\n phase: LocationPhases;\n}) {\n const { calendlyLinks, phase } = props;\n\n if (phase === LocationPhases.Open) {\n return adaptCalendlyLink(calendlyLinks.inPersonTour);\n }\n\n return adaptCalendlyLink(calendlyLinks.phoneCall);\n}\n\nexport function adaptCalendlyLink(link: string | null) {\n if (!isUrlValid(link)) {\n return null;\n }\n if (link.includes('https://')) {\n return link;\n }\n return `https://${link}`;\n}\n\nfunction isUrlValid(str: string | null): str is string {\n if (str == null) return false;\n const pattern = new RegExp(\n '^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR IP (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', // fragment locator\n 'i'\n );\n return pattern.test(str);\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function shallowEqual(object1: any, object2: any) {\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n if (object1[key] !== object2[key]) {\n return false;\n }\n }\n\n return true;\n}\n"],"names":["Promise","resolve","then","__webpack_require__","bind","SecondaryHeading","param","children","className","jsx_runtime","jsx","H2","clsx","LocationSidebar","location","t","useTranslations","country","useUserLocalization","phone","getPhoneApplicationForm","jsxs","div","section","p","data-testid","rich","important","ClickablePhoneNumber","phoneNumber","chunks","HorizontalDivider","link","Link","href","MEMBER_PORTAL_LOGIN_URL","rel","target","CalendlyModal","dynamic","all","e","ssr","ApplicationForm","CalendlyForm","Success","mod","LocationFormPage","availableTourTypes","allLocations","showToast","hideToast","useToastError","router","useRouter","pathname","usePathname","widthWindow","useScreenSize","searchParams","useSearchParams","action","setAction","useState","getAction","LocationFormActions","General","currentStep","setCurrentStep","LocationFormSteps","Application","selectedLocation","setSelectedLocation","form","setForm","isLoading","setIsLoading","getAvailableTourTypes","selectedTourType","setSelectedTourType","getDefaultTourType","calendlyLink","find","tour","type","canLoadCalendly","isCalendlySkipped","setIsCalendlySkipped","showCalendlyModal","setShowCalendlyModal","showSuccessStep","titleForm","concat","locationName","name","descriptionForm","TourType","IN_PERSON","salesOfficeAddress","address","handleSubmitApplicationForm","tryFetchToJson","fetchParams","input","init","method","HttpMethods","Post","body","JSON","stringify","createLocationApplicationLeadDto","onSuccess","gtm","response","isFlaggedAsBot","phase","LocationPhases","Signed","goToSuccessPage","window","scroll","ScreenSize","MD","Calendly","onFunctionalError","onTechnicalError","form_type","FormTypes","LOCATION_APPLICATION","customer_email","email","customer_first_name","firstName","customer_last_name","lastName","handleCloseCalendlyModal","useEffect","newAction","updateQueryParams","slug","allParams","getAllParamsFromSearchParams","newUrl","stringifyUrl","loc","replace","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","Fragment","MainContainer","PrimaryHeading","showLocationSelection","onTourTypeChange","onSubmit","onLocationChange","selectedLoc","x","sfId","onChange","isCalendlyPreLoadable","formChanged","shallowEqual","company","opened","onClose","locationPhase","tourType","AsideContainer","applicationFormSchema","yup","trim","required","matches","STRONG_EMAIL_REGEXP","PHONE_REGEXP","teamSize","referenceCode","comments","industry","textMessageOptIn","isEarlyInPersonTourEnabled","calendlyLinks","Launch","inPersonTour","GetNotified","GetStarted","ScheduleCall","Object","values","map","adaptCalendlyLink","VIRTUAL","phoneCall","filter","ACTIONS_ENABLING_PHYSICAL_TOUR","includes","some","canSelectTourType","fontFamilyClassName","isBigger","divProps","h2","tiemposFont","EU_COUNTRIES","UK","US","CA","createLandlordLeadDto","otherFields","formName","formNames","LANDLORD","marketocampaignID","buildingAddress","getTracking","createMeetingLeadDto","MEETING_SPACE_REQUEST","telephone","createBrokerLeadDto","BROKER","getCookieByKey","marketoCookie","hubspotutk","utmCampaign","utmContent","utmMedium","utmSource","utmTerm","indChannel","indKpi","indAdGroup","indAdCampaign","indLs","indAud","gclid","getTrackingCookies","lastIndustriousUrl","getLastIndustriousUrl","lastExternalUrl","COOKIE_KEY_MKTO_REFERRER","utms","campaign","source","medium","content","term","channel","kpi","adGroup","adCampaign","ls","aud","Countries","LocationPrimaryCtaTypes","OFFICE_WINDOW_IMG","OFFICE_INTERIOR_IMG","GOOGLE_SEARCH_API","getLocationPrimaryCtaType","isLaunchLocationWithoutEarlyInPersonTourAvailable","getGoogleMapsDirectionUrlFromString","query","encodeURI","getGoogleMapsDirectionUrl","props","brandName","city","state","zipCode","sortMemberExperienceTeam","a","b","role","localeCompare","ManagerRoles","MemberExperienceManager","getFormattedAddressByCountry","address2","firstPart","Belgium","France","addressLine1","addressLine2","Canada","UnitedKingdom","getGenericPhoneNumberByCountry","FR_GENERIC_NUMBER","UK_GENERIC_APPLICATION_NUMBER","US_GENERIC_NUMBER","US_GENERIC_APPLICATION_NUMBER","getLocationAreaSalesLeadPhone","locationManagers","areaSalesLead","manager","AreaSalesLead","getProductPageLink","productName","MemberExperienceAssociate","createUtmCalendly","createPrefillCalendly","customAnswers","a1","a2","getAppropiateCalendlyLink","Open","pattern","test","object1","object2","keys1","keys","keys2","length","key"],"sourceRoot":""}