{"version":3,"file":"static/chunks/9418-95a427920df9e4d5.js","mappings":"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","sources":["webpack://_N_E/./components/search/constants.ts","webpack://_N_E/./app/[locale]/(search)/_components/useSearchData.tsx","webpack://_N_E/./components/Carousel/constants.ts","webpack://_N_E/./components/Carousel/useScrollHandlers.tsx","webpack://_N_E/./components/SkeletonLoader.tsx","webpack://_N_E/./components/map/TilesCarousel.tsx","webpack://_N_E/./components/search/CardListWrapper.tsx","webpack://_N_E/./components/search/ListCounter.tsx","webpack://_N_E/./components/search/SearchModal/FiltersTitle.tsx","webpack://_N_E/./components/search/SearchModal/SearchModal.tsx","webpack://_N_E/./components/search/SearchNoResults.tsx","webpack://_N_E/./hooks/useAppearOnScroll.tsx","webpack://_N_E/./hooks/useCameraOptionsFromRoute.tsx","webpack://_N_E/./hooks/useSupplier.tsx","webpack://_N_E/./public/icons/alertIcon.svg","webpack://_N_E/./components/ToastError.tsx","webpack://_N_E/./hooks/useToastError.tsx","webpack://_N_E/./hooks/useUserLocalization.tsx","webpack://_N_E/./lib/geolocation.ts","webpack://_N_E/./models/StringBool.enum.ts","webpack://_N_E/./node_modules/lodash.debounce/index.js","webpack://_N_E/./public/icons/placeIcon.svg"],"sourcesContent":["export const MAX_DISTANCE_IN_METERS = 100_000;\nexport const MIN_FETCH_DURATION_IN_MS = 500;\nexport const DEBOUNCE_DURATION_IN_MS = 50;\n","import { useLocale, useTranslations } from 'next-intl';\nimport { useContext, useEffect, useRef, useState } from 'react';\n\nimport { Bounds } from '@/components/map/types';\nimport {\n DEBOUNCE_DURATION_IN_MS,\n MAX_DISTANCE_IN_METERS,\n MIN_FETCH_DURATION_IN_MS,\n} from '@/components/search/constants';\nimport { useLatLng } from '@/components/search/useLatLng';\nimport useSearchPageParams from '@/components/search/useSearchPageParams';\nimport { createLocalizationQueryParams } from '@/components/search/utils';\nimport { APPEAR_ON_SCROLL_CLASS } from '@/hooks/useAppearOnScroll';\nimport { useDebounce } from '@/hooks/useDebounce';\nimport { OnMoveEndProps, OnZoomChangeProps } from '@/hooks/useMap';\nimport { useWebGL } from '@/hooks/useWebGL';\nimport { SearchDayPassesLocationsProps } from '@/lib/coworking-day-pass/coworking-day-pass-api';\nimport { SimpleLocationSearchDto } from '@/lib/locations/dto/simple-location-search.dto';\nimport { FetchAllLocationsProps } from '@/lib/locations/location-api';\nimport { SimpleMeetingRoomDto } from '@/lib/meeting-rooms/dto/simple-meeting-room.dto';\nimport { SearchMeetingRoomsProps } from '@/lib/meeting-rooms/meeting-room-api';\nimport { fetchWithMinDuration } from '@/lib/promises';\nimport {\n DEFAULT_MAP_SEARCH_ZOOM,\n ZOOM_OUT_TO_BROADEN_MAP_SEARCH,\n} from '@/utils/constants';\n\nimport SearchContext from './SearchContext';\n\nexport enum SearchModalType {\n LocationDateRange = 'location-date-range',\n LocationDateTime = 'location-date-time',\n Filters = 'filters',\n PrivateOfficeFilters = 'private-office-filters',\n}\n\ntype Data = SimpleMeetingRoomDto | SimpleLocationSearchDto;\ntype Params =\n | SearchDayPassesLocationsProps\n | FetchAllLocationsProps\n | SearchMeetingRoomsProps;\n\ntype SearchDataProps = {\n getDatas: (params: P) => Promise;\n};\n\nexport default function useSearchData({\n getDatas,\n}: SearchDataProps) {\n const t = useTranslations('search');\n const locale = useLocale();\n\n const { isSearchLoading, onLatLngChange, onIsSearchLoadingChange } =\n useContext(SearchContext);\n\n const { updateQuery, queryParams } = useSearchPageParams();\n const { isWebGLSupported } = useWebGL();\n const { latLng } = useLatLng();\n\n const cardListRef = useRef(null);\n\n const [searchItems, setSearchItems] = useState([]);\n const [isDataLoading, setIsDataLoading] = useState(true);\n const [searchItemsToTrack, setSearchItemsToTrack] = useState([]);\n const [bounds, setBounds] = useState();\n\n const isLoading =\n isDataLoading || isSearchLoading || isWebGLSupported === undefined;\n\n const fetchData = async (params: P) => {\n setIsDataLoading(true);\n onIsSearchLoadingChange(true);\n\n const data = await fetchWithMinDuration(\n getDatas(params),\n MIN_FETCH_DURATION_IN_MS\n );\n setSearchItems(data);\n\n setIsDataLoading(false);\n onIsSearchLoadingChange(false);\n };\n\n const debouncedFetchData = useDebounce(fetchData, DEBOUNCE_DURATION_IN_MS);\n\n const handleScroll = useDebounce(\n () => {\n const arr: T[] = [];\n document.querySelectorAll(`.${APPEAR_ON_SCROLL_CLASS}`).forEach((x) => {\n const slug = x.getAttribute('data-slug');\n const item = searchItems.find((y) => y.slug === slug);\n if (item) {\n arr.push(item);\n }\n });\n setSearchItemsToTrack(arr);\n },\n 500,\n [searchItems]\n );\n\n useEffect(() => {\n if (\n searchItems.length === 0 &&\n queryParams.query !== t('map-area') &&\n !isLoading\n ) {\n updateQuery({\n bounds: undefined,\n zoom: ZOOM_OUT_TO_BROADEN_MAP_SEARCH.toString(),\n });\n }\n }, [searchItems, queryParams.query, isLoading]);\n\n useEffect(() => {\n if (isWebGLSupported === false) {\n debouncedFetchData({\n locale,\n nearTo: {\n latitude: latLng.lat,\n longitude: latLng.lng,\n maxDistance: MAX_DISTANCE_IN_METERS,\n },\n } as P);\n }\n }, [latLng, isWebGLSupported]);\n\n useEffect(() => {\n handleScroll();\n\n cardListRef.current?.addEventListener('scroll', handleScroll);\n return () => {\n cardListRef.current?.removeEventListener('scroll', handleScroll);\n };\n }, [searchItems]);\n\n const handleZoomChange = ({ bounds, visibleSlugs }: OnZoomChangeProps) => {\n setBounds(bounds);\n setSearchItems((datas) =>\n datas.filter((x) => visibleSlugs.includes(x.slug))\n );\n };\n\n const handleMoveEnd = ({\n bounds,\n center,\n zoom,\n shouldNotUpdateQueryParams,\n }: OnMoveEndProps) => {\n setBounds(bounds);\n onLatLngChange(center);\n if (!shouldNotUpdateQueryParams) {\n const query = createLocalizationQueryParams(\n {\n center: [center.lng, center.lat],\n zoom: zoom || DEFAULT_MAP_SEARCH_ZOOM,\n },\n t('map-area')\n );\n updateQuery(query);\n }\n };\n\n return {\n cardListRef,\n isWebGLSupported,\n isLoading,\n searchItems,\n searchItemsToTrack,\n bounds,\n handleZoomChange,\n handleMoveEnd,\n handleIdle: setBounds,\n debouncedFetchData,\n };\n}\n","export const MIN_TOUCH_SCROLL_SIZE = 5;\nexport const DEBOUNCE_TIME = 200;\n","import { useState } from 'react';\n\nimport { MIN_TOUCH_SCROLL_SIZE } from './constants';\n\ntype useScrollHandlersProps = {\n canGoNext: boolean;\n canGoPrev: boolean;\n goNext: () => void;\n goPrev: () => void;\n};\n\nexport function useScrollHandlers(props: useScrollHandlersProps) {\n const { canGoNext, canGoPrev, goNext, goPrev } = props;\n const [touchPosition, setTouchPosition] = useState(null);\n\n const handleTouchStart = (e: React.TouchEvent) => {\n const touchDown = e.touches[0].clientX;\n setTouchPosition(touchDown);\n };\n\n const handleTouchMove = (e: React.TouchEvent) => {\n const touchDown = touchPosition;\n\n if (touchDown === null) {\n return;\n }\n\n const currentTouch = e.touches[0].clientX;\n const diff = touchDown - currentTouch;\n\n if (diff > MIN_TOUCH_SCROLL_SIZE && canGoNext) {\n goNext();\n }\n\n if (diff < -MIN_TOUCH_SCROLL_SIZE && canGoPrev) {\n goPrev();\n }\n\n setTouchPosition(null);\n };\n\n return { handleTouchStart, handleTouchMove };\n}\n","import clsx from 'clsx';\n\ntype SkeletonLoaderProps = {\n dataTestId?: string;\n className?: string;\n};\n\nexport function SkeletonLoader({ dataTestId, className }: SkeletonLoaderProps) {\n return (\n \n );\n}\n","import { ReactNode, useEffect, useState } from 'react';\n\nimport { useScrollHandlers } from '../Carousel/useScrollHandlers';\n\nexport function TilesCarousel({\n children,\n}: {\n children: ReactNode | ReactNode[];\n}) {\n const [activeIndex, setActiveIndex] = useState(0);\n const [widthTile, setWidthTile] = useState(0);\n const canGoNext = Array.isArray(children)\n ? activeIndex < children.length - 1\n : false;\n const canGoPrev = activeIndex > 0;\n\n const handlePrevButtonClicked = () => {\n setActiveIndex((prevState) => prevState - 1);\n };\n\n const handleNextButtonClicked = () => {\n setActiveIndex((prevState) => prevState + 1);\n };\n\n useEffect(() => {\n if (window?.innerWidth) {\n setWidthTile(window.innerWidth - 40);\n }\n }, [window.innerWidth]);\n\n useEffect(() => {\n setActiveIndex(0);\n }, [children]);\n\n const { handleTouchMove, handleTouchStart } = useScrollHandlers({\n canGoNext,\n canGoPrev,\n goNext: handleNextButtonClicked,\n goPrev: handlePrevButtonClicked,\n });\n\n return (\n \n \n {children}\n \n \n );\n}\n\nexport function TilesCarouselItem({ children }: { children: ReactNode }) {\n return (\n
\n {children}\n
\n );\n}\n","import { forwardRef } from 'react';\n\nimport clsx from 'clsx';\n\ntype CardListWrapperProps = {\n withMap: boolean;\n} & React.ComponentPropsWithoutRef<'div'>;\n\nconst CardListWrapper = forwardRef(\n ({ children, withMap, className, ...divProps }, ref) => {\n return (\n \n {children}\n \n );\n }\n);\n\nCardListWrapper.displayName = 'CardListWrapper';\n\nexport default CardListWrapper;\n","import clsx from 'clsx';\n\nexport default function ListCounter({\n className,\n ...otherProps\n}: React.ComponentPropsWithoutRef<'p'>) {\n return (\n \n );\n}\n","export default function FilterTitle({ children }: { children: string }) {\n return

{children}

;\n}\n","import * as Dialog from '@radix-ui/react-dialog';\nimport { useTranslations } from 'next-intl';\nimport Image from 'next/image';\n\nimport { TertiaryButton } from '@/components/buttons';\nimport closeIcon from '@/public/icons/closeIcon.svg';\n\ntype SearchModalProps = {\n isOpen: boolean;\n onOpenChange: () => void;\n onClose: () => void;\n children: React.ReactNode;\n title: string;\n onClear: () => void;\n onApply: () => void;\n};\n\nexport function SearchModal({\n isOpen,\n onOpenChange,\n onClose,\n children,\n title,\n onClear,\n onApply,\n}: SearchModalProps) {\n const t = useTranslations('general');\n\n return (\n \n \n \n \n
\n \n \"close\n \n

{title}

\n
\n
{children}
\n
\n \n {t('clear')}\n \n \n {t('apply')}\n \n
\n
\n
\n
\n
\n );\n}\n","import { useTranslations } from 'next-intl';\n\nimport { SecondaryLinkButton } from '@/components/buttons/SecondaryLinkButton';\n\ntype SearchNoResults = {\n hasFilters?: boolean;\n noResultsWithFiltersMessage?: string;\n};\n\nexport default function SearchNoResults({\n hasFilters,\n noResultsWithFiltersMessage,\n}: SearchNoResults) {\n const t = useTranslations('search');\n\n return (\n
\n

\n {noResultsWithFiltersMessage !== null && hasFilters\n ? noResultsWithFiltersMessage\n : t(hasFilters ? 'no-results-with-filters' : 'no-results')}\n

\n
\n

{t('learn-more-network')}

\n \n {t('contact-us')}\n \n
\n
\n );\n}\n","import { RefObject, useEffect } from 'react';\n\nexport const APPEAR_ON_SCROLL_CLASS = 'appear-on-scroll';\n\nfunction useAppearOnScroll(\n observableRef: RefObject\n) {\n useEffect(() => {\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n entry.target.classList.add(APPEAR_ON_SCROLL_CLASS);\n } else {\n entry.target.classList.remove(APPEAR_ON_SCROLL_CLASS);\n }\n });\n },\n {\n threshold: 0.5,\n }\n );\n\n if (observableRef.current) {\n observer.observe(observableRef.current);\n }\n\n return () => {\n observer.disconnect();\n };\n }, [observableRef]);\n}\n\nexport default useAppearOnScroll;\n","import { ReadonlyURLSearchParams, useSearchParams } from 'next/navigation';\nimport { useEffect, useState } from 'react';\n\nimport { CameraMapOptions } from '@/components/map/types';\nimport { decodeQueryParamAsString } from '@/utils/stringify-url';\n\nexport default function useCameraOptionsFromRoute() {\n const searchParams = useSearchParams();\n const [cameraOptions, setCameraOptions] = useState();\n\n useEffect(() => {\n if (searchParams?.get('center')) {\n // the user is looking for a specific place from the search input\n setCameraOptions(createCameraOptionsFromQuery(searchParams));\n }\n }, [searchParams]);\n\n return cameraOptions;\n}\n\nfunction createCameraOptionsFromQuery(\n searchParams: ReadonlyURLSearchParams | null\n): CameraMapOptions {\n return {\n center: splitCoordsFromQueryString(searchParams?.get('center') as string),\n zoom: +(searchParams?.get('zoom') as string),\n ...(searchParams?.get('bounds')\n ? {\n bounds: splitCoordsFromQueryString(\n searchParams?.get('bounds') as string\n ),\n }\n : {}),\n };\n}\n\nfunction splitCoordsFromQueryString(\n value?: string | string[]\n): [number, number] {\n return decodeQueryParamAsString(value)\n .split(',')\n .map((coord) => +coord) as [number, number];\n}\n","import { useSearchParams } from 'next/navigation';\n\nimport { Supplier } from '@/utils/constants';\nimport { getAllParamsFromSearchParams } from '@/utils/stringify-url';\n\nexport function useSupplier() {\n const searchParams = useSearchParams();\n const allParams = getAllParamsFromSearchParams(searchParams);\n\n const supplier = allParams.supplier ? allParams.supplier : null;\n const isNuveenSupplier =\n supplier?.toLowerCase() === Supplier.NUVEEN.toLowerCase();\n\n return {\n isNuveenSupplier,\n supplier,\n };\n}\n","export default {\"src\":\"/_next/static/media/alertIcon.11bdd267.svg\",\"height\":28,\"width\":28,\"blurWidth\":0,\"blurHeight\":0};","import { useTranslations } from 'next-intl';\nimport Image from 'next/image';\n\nimport alertIcon from '@/public/icons/alertIcon.svg';\n\nexport default function ToastError({ msg }: { msg?: string }) {\n const t = useTranslations('toast-error');\n\n return (\n \n
\n \n {msg || t('description')}\n
\n\n {!msg && (\n window.location.reload()}\n >\n {t('refresh')}\n \n )}\n \n );\n}\n","'use client';\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport ReactDOM from 'react-dom';\n\nimport ToastError from '@/components/ToastError';\nimport { usePathname } from '@/i18n/navigation';\nimport { SECOND_IN_MS } from '@/utils/date-utils';\n\nconst TOAST_DISPLAY_DURATION_IN_MS = 5 * SECOND_IN_MS;\n\nconst ToastContainer = ({ msg }: { msg?: string }) => {\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n return () => setMounted(false);\n }, []);\n\n return mounted\n ? ReactDOM.createPortal(, document.body)\n : null;\n};\n\ntype ToastContextType = {\n showToast: (msg?: string) => void;\n showToastTemporary: (msg?: string) => void;\n hideToast: () => void;\n};\n\nconst ToastContext = React.createContext({\n showToast: () => null,\n showToastTemporary: () => null,\n hideToast: () => null,\n});\n\nconst ToastProvider = ({ children }: { children: React.ReactNode }) => {\n const [isDisplayed, setIsDisplayed] = useState(false);\n const [msg, setMsg] = useState();\n const pathname = usePathname();\n\n useEffect(() => {\n hideToast();\n }, [pathname]);\n\n const showToast = useCallback(\n (msg?: string) => {\n setIsDisplayed(true);\n setMsg(msg);\n },\n [setIsDisplayed]\n );\n\n const showToastTemporary = useCallback(\n (msg?: string) => {\n showToast(msg);\n setTimeout(() => {\n hideToast();\n }, TOAST_DISPLAY_DURATION_IN_MS);\n },\n [setIsDisplayed]\n );\n\n const hideToast = useCallback(() => {\n setIsDisplayed(false);\n setMsg(undefined);\n }, [setIsDisplayed]);\n\n const contextValue = useMemo(\n () => ({\n showToast,\n hideToast,\n showToastTemporary,\n }),\n [showToast, hideToast]\n );\n\n return (\n \n {isDisplayed && }\n {children}\n \n );\n};\n\nconst useToastError = (): ToastContextType => {\n return useContext(ToastContext);\n};\n\nexport { ToastContext, useToastError };\nexport default ToastProvider;\n","'use client';\n\nimport { useEffect, useState } from 'react';\n\nimport {\n DEFAULT_USER_GEOLOCALIZATION,\n getDefaultLatLng,\n getLocalizationFromIPAddress,\n} from '@/lib/geolocation';\nimport { LatLng } from '@/models/LatLng';\nimport { DEFAULT_COUNTRY } from '@/utils/constants';\n\nconst USER_GEOLOC_STORAGE_KEY = 'user-geoloc';\n\nexport type UserGeoLoc = {\n city: string;\n region: string;\n country: string;\n lnglat: LatLng;\n};\n\nexport function useUserLocalization({\n onUserLocalizationChange,\n}: {\n onUserLocalizationChange?: (userGeoLoc: UserGeoLoc) => void;\n} = {}) {\n const [userLocalization, setUserLocalization] = useState(\n DEFAULT_USER_GEOLOCALIZATION\n );\n const [isLocalizationFromDevice, setIsLocalizationFromDevice] =\n useState(false);\n const [isDeviceLocalizationDenied, setIsDeviceLocalizationDenied] =\n useState(false);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n const userGeoLocStorage = window.sessionStorage.getItem(\n USER_GEOLOC_STORAGE_KEY\n );\n\n if (userGeoLocStorage != null) {\n const userGeoLoc = JSON.parse(userGeoLocStorage);\n\n onUserLocalizationChange?.(userGeoLoc);\n\n setUserLocalization(userGeoLoc);\n setIsLoading(false);\n return;\n }\n\n const getGeoloc = async () => {\n await getLocalizationFromIPAddress((result) => {\n onUserLocalizationChange?.(result);\n\n setUserLocalization(result);\n window.sessionStorage.setItem(\n USER_GEOLOC_STORAGE_KEY,\n JSON.stringify(result)\n );\n });\n setIsLoading(false);\n };\n\n getGeoloc();\n }\n }, []);\n\n const getDeviceLocalization = () => {\n setIsLoading(true);\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n (position) => {\n const nextUserLocalization = {\n city: userLocalization.city,\n region: userLocalization.region,\n country: userLocalization.country,\n lnglat: {\n lat: position.coords.latitude,\n lng: position.coords.longitude,\n },\n };\n\n onUserLocalizationChange?.(nextUserLocalization);\n\n setUserLocalization(nextUserLocalization);\n setIsLocalizationFromDevice(true);\n setIsLoading(false);\n },\n () => {\n setIsDeviceLocalizationDenied(true);\n setIsLoading(false);\n }\n );\n } else {\n setIsDeviceLocalizationDenied(true);\n setIsLoading(false);\n }\n };\n\n return {\n isLoading,\n isLocalizationFromDevice,\n isDeviceLocalizationDenied,\n city: userLocalization.city,\n region: userLocalization.region,\n country: userLocalization.country,\n lnglat: userLocalization.lnglat,\n getDeviceLocalization,\n };\n}\n","import { UserGeoLoc } from '@/hooks/useUserLocalization';\nimport { LatLng } from '@/models/LatLng';\nimport {\n CALIFORNIA_REGION,\n CANADA_COUNTRY_CODE,\n DEFAULT_COUNTRY,\n EUROPE_COUNTRIES_CODES,\n US_COUNTRY_CODE,\n} from '@/utils/constants';\nimport { tryFetchToJson } from '@/utils/http-request';\n\nconst DEFAULT_LAT_NY = 40.6976637;\nconst DEFAULT_LNG_NY = -74.1197637;\n\nexport function getDefaultLatLng(): LatLng {\n return { lng: DEFAULT_LNG_NY, lat: DEFAULT_LAT_NY };\n}\n\nexport const DEFAULT_USER_GEOLOCALIZATION: UserGeoLoc = {\n city: '',\n region: '',\n country: DEFAULT_COUNTRY,\n lnglat: getDefaultLatLng(),\n};\n\nexport async function getLocalizationFromIPAddress(\n callbackFn: (params: {\n city: string;\n region: string;\n country: string;\n lnglat: LatLng;\n }) => void\n) {\n const ipinfosUser = await tryFetchToJson<{\n loc: string;\n city: string;\n region: string;\n country: string;\n }>({\n fetchParams: { input: '/api/user-geolocation' },\n onFunctionalError: () => {\n callbackFn(DEFAULT_USER_GEOLOCALIZATION);\n },\n onTechnicalError: () => {\n callbackFn(DEFAULT_USER_GEOLOCALIZATION);\n },\n });\n\n if (ipinfosUser == null) return;\n\n return callbackFn({\n city: ipinfosUser.city,\n region: ipinfosUser.region,\n country: ipinfosUser.country,\n lnglat: getLatLngFromString(ipinfosUser.loc),\n });\n}\n\nexport function getLatLngFromString(coords: string): LatLng {\n const [lat, lng] = coords.split(',').map((x) => +x);\n\n return {\n lat,\n lng,\n };\n}\n\nexport function isEuropeCountry(country: string) {\n return EUROPE_COUNTRIES_CODES.includes(country.toLowerCase());\n}\n\nexport function isCanada(country: string) {\n return country.toLowerCase() === CANADA_COUNTRY_CODE.toLowerCase();\n}\n\nexport function isCalifornia(params: { region: string; country: string }) {\n const { region, country } = params;\n return (\n region.toLowerCase() === CALIFORNIA_REGION.toLowerCase() &&\n country.toLowerCase() === US_COUNTRY_CODE.toLowerCase()\n );\n}\n","export enum StringBool {\n True = 'true',\n False = 'false',\n}\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","export default {\"src\":\"/_next/static/media/placeIcon.16069419.svg\",\"height\":20,\"width\":20,\"blurWidth\":0,\"blurHeight\":0};"],"names":["SearchModalType","useSearchData","param","getDatas","t","useTranslations","locale","useLocale","isSearchLoading","onLatLngChange","onIsSearchLoadingChange","useContext","SearchContext","updateQuery","queryParams","useSearchPageParams","isWebGLSupported","useWebGL","latLng","useLatLng","cardListRef","useRef","searchItems","setSearchItems","useState","isDataLoading","setIsDataLoading","searchItemsToTrack","setSearchItemsToTrack","bounds","setBounds","isLoading","undefined","fetchData","params","fetchWithMinDuration","debouncedFetchData","useDebounce","handleScroll","arr","document","querySelectorAll","concat","APPEAR_ON_SCROLL_CLASS","forEach","slug","x","getAttribute","item","find","y","push","useEffect","length","query","zoom","ZOOM_OUT_TO_BROADEN_MAP_SEARCH","toString","nearTo","latitude","lat","longitude","lng","maxDistance","current","addEventListener","removeEventListener","handleZoomChange","visibleSlugs","datas","filter","includes","handleMoveEnd","center","shouldNotUpdateQueryParams","createLocalizationQueryParams","DEFAULT_MAP_SEARCH_ZOOM","handleIdle","MIN_TOUCH_SCROLL_SIZE","DEBOUNCE_TIME","useScrollHandlers","props","canGoNext","canGoPrev","goNext","goPrev","touchPosition","setTouchPosition","handleTouchStart","e","touches","clientX","handleTouchMove","touchDown","diff","SkeletonLoader","dataTestId","className","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","div","clsx","datatest-id","TilesCarousel","children","activeIndex","setActiveIndex","widthTile","setWidthTile","Array","isArray","window","innerWidth","prevState","style","width","transform","onTouchStart","onTouchMove","TilesCarouselItem","CardListWrapper","forwardRef","ref","withMap","divProps","data-testid","displayName","__webpack_exports__","Z","ListCounter","otherProps","p","FilterTitle","h3","SearchModal","isOpen","onOpenChange","onClose","title","onClear","onApply","Dialog","modal","open","jsxs","button","onClick","Image","src","closeIcon","alt","aria-hidden","h2","TertiaryButton","sm","SearchNoResults","hasFilters","noResultsWithFiltersMessage","SecondaryLinkButton","href","observableRef","observer","IntersectionObserver","entries","entry","isIntersecting","target","classList","add","remove","threshold","observe","disconnect","useCameraOptionsFromRoute","searchParams","useSearchParams","cameraOptions","setCameraOptions","get","splitCoordsFromQueryString","value","decodeQueryParamAsString","split","map","coord","useSupplier","allParams","getAllParamsFromSearchParams","supplier","isNuveenSupplier","toLowerCase","Supplier","NUVEEN","alertIcon","ToastError","msg","jsx_runtime","location","reload","TOAST_DISPLAY_DURATION_IN_MS","SECOND_IN_MS","ToastContainer","mounted","setMounted","ReactDOM","body","ToastContext","React","showToast","showToastTemporary","hideToast","useToastError","hooks_useToastError","isDisplayed","setIsDisplayed","setMsg","pathname","usePathname","useCallback","setTimeout","contextValue","useMemo","Provider","USER_GEOLOC_STORAGE_KEY","useUserLocalization","onUserLocalizationChange","arguments","userLocalization","setUserLocalization","DEFAULT_USER_GEOLOCALIZATION","isLocalizationFromDevice","setIsLocalizationFromDevice","isDeviceLocalizationDenied","setIsDeviceLocalizationDenied","setIsLoading","userGeoLocStorage","sessionStorage","getItem","userGeoLoc","JSON","parse","getGeoloc","getLocalizationFromIPAddress","result","setItem","stringify","city","region","country","lnglat","getDeviceLocalization","navigator","geolocation","getCurrentPosition","nextUserLocalization","position","coords","getDefaultLatLng","DEFAULT_COUNTRY","callbackFn","ipinfosUser","tryFetchToJson","fetchParams","input","onFunctionalError","onTechnicalError","getLatLngFromString","loc","StringBool","NAN","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","__webpack_require__","g","Object","freeSelf","self","root","Function","objectToString","objectProto","prototype","nativeMax","Math","max","nativeMin","min","now","Date","isObject","type","toNumber","isObjectLike","call","other","valueOf","replace","isBinary","test","slice","module","exports","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","apply","shouldInvoke","timeSinceLastCall","timeSinceLastInvoke","timerExpired","trailingEdge","debounced","isInvoking","cancel","clearTimeout","flush"],"sourceRoot":""}