{"version":3,"file":"sections-offices.bae95edcba7dff27fc4b.js","mappings":"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","sources":["webpack://adjusters/./src/scripts/common/ajax.js","webpack://adjusters/./src/scripts/common/util.js","webpack://adjusters/./src/scripts/react/offices/Context.js","webpack://adjusters/./src/scripts/react/offices/components/LocationZip.js","webpack://adjusters/./src/scripts/react/offices/components/LocationSelect.js","webpack://adjusters/./src/scripts/react/offices/components/icons.js","webpack://adjusters/./src/scripts/react/offices/components/LocationCard.js","webpack://adjusters/./src/scripts/react/offices/components/LocationList.js","webpack://adjusters/./src/scripts/react/offices/components/Spinner.js","webpack://adjusters/./src/scripts/react/offices/components/Sidebar.js","webpack://adjusters/./src/scripts/react/offices/components/Map.js","webpack://adjusters/./src/scripts/react/offices/components/LocationSearch.js","webpack://adjusters/./src/scripts/react/offices/components/App.js","webpack://adjusters/./src/sections/offices.js"],"sourcesContent":["import wretch from 'wretch'\n\nwretch.options({\n headers: { 'X-Requested-With': 'XMLHttpRequest' },\n})\n\nexport default wretch()\n","export const isTouchDevice = 'ontouchstart' in document.documentElement\n\nexport const isIos =\n /iPad|iPhone|iPod/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\n\nexport const createUrl = (base, formData = {}, append = false) => {\n let data = formData\n\n if (formData instanceof FormData === false) {\n data = new FormData()\n\n for (const [key, value] of Object.entries(formData)) {\n data.append(key, value)\n }\n }\n\n if (typeof base === 'object') {\n const baseUrl = new URL(base)\n\n if (append) {\n const params = baseUrl.searchParams\n\n for (const [key, value] of data) {\n params.set(key, value)\n }\n\n return baseUrl\n } else {\n const params = new URLSearchParams(data)\n\n return new URL(`${base}?${params}`)\n }\n }\n\n if (typeof base === 'string') {\n const params = new URLSearchParams(formData)\n const url = new URL(`${base}?${params}`)\n\n return url\n }\n}\n\nexport const geolocate = (success, error) => {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(success, error, { maximumAge: 0 })\n } else {\n return false\n }\n}\n\nexport const trackGoogleAnalytics = (event) => {\n if (window.dataLayer) {\n dataLayer.push(event)\n }\n}\n","import React from 'react'\n\nconst AppStateContext = React.createContext()\nconst AppDispatchContext = React.createContext()\n\nfunction appReducer(state, action) {\n switch (action.type) {\n case 'setLocations': {\n return {\n ...state,\n locations: action.payload,\n }\n }\n case 'setEndpoint': {\n return {\n ...state,\n endpoint: action.payload,\n }\n }\n case 'setSelectedLocation': {\n return {\n ...state,\n selectedLocation: action.payload,\n }\n }\n case 'setUserCoords': {\n return {\n ...state,\n userCoords: action.payload,\n }\n }\n case 'setUserZip': {\n return {\n ...state,\n userZip: action.payload,\n }\n }\n case 'setSidebarOpen': {\n return {\n ...state,\n sidebarOpen: action.payload,\n }\n }\n case 'setMapVisible': {\n return {\n ...state,\n mapVisible: action.payload,\n }\n }\n case 'setIsLoading': {\n return {\n ...state,\n isLoading: action.payload,\n }\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`)\n }\n }\n}\n\n/* eslint-disable-next-line react/prop-types */\nfunction AppProvider({ children }) {\n const [state, dispatch] = React.useReducer(appReducer, {\n locations: [],\n endpoint: null,\n selectedLocation: null,\n userCoords: null,\n userZip: '',\n sidebarOpen: true,\n mapVisible: window.matchMedia('(min-width: 768px)').matches,\n isLoading: false,\n })\n\n return (\n \n {children}\n \n )\n}\n\nfunction useAppState() {\n const context = React.useContext(AppStateContext)\n\n if (context === undefined) {\n throw new Error('useAppState must be used within a AppProvider')\n }\n\n return context\n}\n\nfunction useAppDispatch() {\n const context = React.useContext(AppDispatchContext)\n\n if (context === undefined) {\n throw new Error('useAppDispatch must be used within a AppProvider')\n }\n\n return context\n}\n\nexport { AppProvider, useAppState, useAppDispatch }\n","import { useState } from 'react'\nimport { useAppState, useAppDispatch } from '../Context'\nimport ajax from '@common/ajax'\n\nfunction LocationZip() {\n const [showError, setShowError] = useState(false)\n const dispatch = useAppDispatch()\n const { endpoint, userZip } = useAppState()\n\n const handleSubmit = async (e) => {\n e.preventDefault()\n\n setShowError(false)\n\n const zip = new FormData(e.target).get('zip')\n\n dispatch({ type: 'setIsLoading', payload: true })\n\n const res = await ajax.get(`${endpoint}locationsbyzip?zip=${zip}`).json()\n\n dispatch({ type: 'setIsLoading', payload: false })\n\n if (res.success) {\n dispatch({ type: 'setSelectedLocation', payload: null })\n dispatch({ type: 'setLocations', payload: res.locations })\n dispatch({ type: 'setUserCoords', payload: res.position })\n } else {\n setShowError(true)\n }\n }\n\n const handleClear = () => {\n setShowError(false)\n dispatch({ type: 'setUserZip', payload: '' })\n dispatch({ type: 'setUserCoords', payload: null })\n }\n\n return (\n
\n
\n {\n dispatch({ type: 'setUserZip', payload: e.target.value })\n }}\n />\n \n\n {userZip !== '' && (\n \n )}\n
\n\n {showError &&
Please enter a valid zip code
}\n
\n )\n}\n\nexport default LocationZip\n","import easydropdown from 'easydropdown-a11y'\nimport '@styles/components/dropdown.css'\nimport { useEffect, useRef } from 'react'\nimport { useAppState, useAppDispatch } from '../Context'\n\nfunction LocationSelect() {\n const dispatch = useAppDispatch()\n const { locations, selectedLocation } = useAppState()\n const ref = useRef()\n const eddRef = useRef()\n\n useEffect(() => {\n if (ref.current) {\n const edd = easydropdown(ref.current, {\n behavior: {\n openOnFocus: true,\n maxVisibleItems: 10,\n liveUpdates: true,\n useNativeUiOnMobile: false,\n },\n })\n\n eddRef.current = edd\n }\n\n return () => {\n eddRef.current.destroy()\n }\n }, [ref])\n\n const handleChange = (e) => {\n const selectedLocation = locations.find((x) => x.id === parseInt(e.target.value, 10))\n\n if (selectedLocation) {\n dispatch({ type: 'setSelectedLocation', payload: selectedLocation })\n }\n }\n\n return (\n
\n \n \n \n\n {locations.map((location) => (\n \n ))}\n \n \n )\n}\n\nexport default LocationSelect\n","export function IconPhone({ className }) {\n return (\n \n \n \n )\n}\n\nexport function IconEnvelope({ className }) {\n return (\n \n \n \n )\n}\n\nexport function IconMapPin({ className }) {\n return (\n \n \n \n \n )\n}\n\nexport const mapMarker = {\n url: 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDcgNjEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsdGVyPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2LjAzNCAxLjQ2OEExOS41ODYgMTkuNTg2IDAgMCAxIDIzLjUgMGExOS41ODYgMTkuNTg2IDAgMCAxIDcuNDY2IDEuNDY4YzIuMzY3Ljk3MyA0LjUxOCAyLjQgNi4zMyA0LjJhMTkuMzQzIDE5LjM0MyAwIDAgMSA0LjIyNiA2LjI4OEExOS4yNDIgMTkuMjQyIDAgMCAxIDQzIDE5LjM3NUM0MyAzNC4zMzIgMjMuNSA1MyAyMy41IDUzUzQgMzQuMzkxIDQgMTkuMzc0Yy0uMDAzLTIuNTQ1LjUtNS4wNjUgMS40NzgtNy40MTdhMTkuMzQzIDE5LjM0MyAwIDAgMSA0LjIyNi02LjI5IDE5LjQ4NSAxOS40ODUgMCAwIDEgNi4zMy00LjE5OVoiIGZpbGw9IiMwMDUyODgiLz48L2c+PHBhdGggZD0ibTIyLjMyNSAyMi4xOTcgMi45LjAwMiAyLjg5Ny0uMDAyLTEuNDQ2IDIuNDYtMS40NTEgMi40NS0xLjQ0Ny0yLjQ0Ny0xLjQ1My0yLjQ2M1pNMTYuNTI4IDIyLjE5N2wyLjkuMDAyIDIuODk3LS4wMDItMS40NDYgMi40Ni0xLjQ1MSAyLjQ1LTEuNDQ3LTIuNDQ3LTEuNDUzLTIuNDYzWiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Im0xMS4xNDYgMjIuMTk3IDIuODk4LjAwMiAyLjg5OC0uMDAyLTEuNDQ3IDIuNDYtMS40NSAyLjQ1LTEuNDQ3LTIuNDQ3LTEuNDUyLTIuNDYzWk0xOS40MjcgMTcuMjg3bDIuODk5LjAwMyAyLjg5OC0uMDAzLTEuNDQ3IDIuNDYtMS40NTEgMi40NS0xLjQ0Ny0yLjQ0Ni0xLjQ1Mi0yLjQ2NFoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJtMTQuMDQ0IDE3LjI4NyAyLjkuMDAzIDIuODk3LS4wMDMtMS40NDcgMi40Ni0xLjQ1IDIuNDUtMS40NDctMi40NDYtMS40NTMtMi40NjRaIiBmaWxsPSIjZmZmIi8+PHBhdGggZD0ibTE2LjUyOCAxMi43ODYgMi45LjAwMyAyLjg5Ny0uMDAzLTEuNDQ2IDIuNDYyLTEuNDUxIDIuNDQ4LTEuNDQ3LTIuNDQ2LTEuNDUzLTIuNDY0Wk0yNy45NTcgMTIuNzg2aC01LjYzMmw4LjQ0NyAxNC4zMjFoNS42MzFsLTguNDQ2LTE0LjMyMVoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJtMTkuNDI3IDcuODc2IDIuODk5LjAwMyAyLjg5OC0uMDAzLTEuNDQ3IDIuNDYxLTEuNDUxIDIuNDQ5LTEuNDQ3LTIuNDQ3LTEuNDUyLTIuNDYzWiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzYuOSAyNi40ODdjLjE2Ni4zODIuNTUuNjI3Ljk3LjYyLjI3MiAwIC41MzMtLjEwNy43MjQtLjI5OWExIDEgMCAwIDAgLjI5NC0uNzIgMS4wMjMgMS4wMjMgMCAwIDAtLjY0LS45NSAxLjA0NCAxLjA0NCAwIDAgMC0xLjEzMi4yMjhjLS4yOTYuMjk2LS4zOC43MzktLjIxNSAxLjEyWm0uMDktLjc4NWEuOTEyLjkxMiAwIDAgMSAuODgtLjUxNC44OS44OSAwIDAgMSAuODUzLjkuOS45IDAgMCAxLS41NzcuODM0LjkxOC45MTggMCAwIDEtLjk5Ny0uMjIyLjg5MS44OTEgMCAwIDEtLjE2LS45OThabS4zOTEtLjE3NWguNTMxYy4xNzYgMCAuMzQ1LjA4My4zNDUuMjY4YS4zMjUuMzI1IDAgMCAxLS4yMzcuMzEybC4xNy4yMzRjLjA2Ni4wOTIuMTQzLjE3Ny4yMjguMjUydi4wMjNoLS4xOTJjLS4wNjQgMC0uMTE5LS4wOS0uMjA1LS4yMzNhNC43MDYgNC43MDYgMCAwIDAtLjE1Ny0uMjQ3aC0uMTQ1di4yODdjMCAuMDYgMCAuMDkyLjAxNS4xMS4wMTcuMDIuMDU0LjAyNS4xMy4wMzR2LjA0M2gtLjQ4NXYtLjA0M2MuMDc2LS4wMDguMTEyLS4wMTIuMTMtLjAzMi4wMTUtLjAxOS4wMTUtLjA1LjAxNS0uMTEydi0uNzY3YzAtLjA3LS4wNjEtLjA3OS0uMTItLjA4OGEuODk2Ljg5NiAwIDAgMS0uMDI2LS4wMDRsLjAwMy0uMDM3Wm0uNDY5LjU1M2gtLjEzbC4wMDItLjQ5N2guMTIyYy4xMTcgMCAuMjEzLjA3Mi4yMTMuMjI4IDAgLjE1Ny0uMDYyLjI2OS0uMjA3LjI2OVoiIGZpbGw9IiNmZmYiLz48ZGVmcz48ZmlsdGVyIGlkPSJhIiB4PSIwIiB5PSIwIiB3aWR0aD0iNDciIGhlaWdodD0iNjEiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIgcmVzdWx0PSJoYXJkQWxwaGEiLz48ZmVPZmZzZXQgZHk9IjQiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIyIi8+PGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0ib3V0Ii8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjI1IDAiLz48ZmVCbGVuZCBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3dfMzBfNjM3NiIvPjxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvd18zMF82Mzc2IiByZXN1bHQ9InNoYXBlIi8+PC9maWx0ZXI+PC9kZWZzPjwvc3ZnPg==',\n scaledSize: {\n width: 47,\n height: 61,\n },\n anchor: {\n x: 23,\n y: 53,\n },\n}\n\nexport const userMarker = {\n url: 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDcgNjEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsdGVyPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2LjAzNCAxLjQ2OEExOS41ODYgMTkuNTg2IDAgMCAxIDIzLjUgMGExOS41ODYgMTkuNTg2IDAgMCAxIDcuNDY2IDEuNDY4YzIuMzY3Ljk3MyA0LjUxOCAyLjQgNi4zMyA0LjJhMTkuMzQzIDE5LjM0MyAwIDAgMSA0LjIyNiA2LjI4OEExOS4yNDIgMTkuMjQyIDAgMCAxIDQzIDE5LjM3NUM0MyAzNC4zMzIgMjMuNSA1MyAyMy41IDUzUzQgMzQuMzkxIDQgMTkuMzc0Yy0uMDAzLTIuNTQ1LjUtNS4wNjUgMS40NzgtNy40MTdhMTkuMzQzIDE5LjM0MyAwIDAgMSA0LjIyNi02LjI5IDE5LjQ4NSAxOS40ODUgMCAwIDEgNi4zMy00LjE5OVoiIGZpbGw9IiMwMTc5NzEiLz48L2c+PGRlZnM+PGZpbHRlciBpZD0iYSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ3IiBoZWlnaHQ9IjYxIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz48ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlQWxwaGEiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+PGZlT2Zmc2V0IGR5PSI0Ii8+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMiIvPjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9Im91dCIvPjxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4yNSAwIi8+PGZlQmxlbmQgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0iZWZmZWN0MV9kcm9wU2hhZG93XzcxNF84ODAxIi8+PGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9kcm9wU2hhZG93XzcxNF84ODAxIiByZXN1bHQ9InNoYXBlIi8+PC9maWx0ZXI+PC9kZWZzPjwvc3ZnPg==',\n scaledSize: {\n width: 47,\n height: 61,\n },\n anchor: {\n x: 23,\n y: 53,\n },\n}\n","import { useState, useEffect } from 'react'\nimport { useAppState } from '../Context'\nimport { IconPhone, IconEnvelope, IconMapPin } from './icons'\n\nfunction LocationCard({ className, location, asInfoWindow = false, onClick = null }) {\n const [isSelected, setIsSelected] = useState(false)\n const { selectedLocation } = useAppState()\n\n useEffect(() => {\n setIsSelected(selectedLocation === location)\n }, [selectedLocation])\n\n return (\n \n
\n {asInfoWindow ? (\n
{location.displayName}
\n ) : (\n \n {location.title}\n \n )}\n {location.address1}\n {location.address2 && `, ${location.address2}`}\n
\n {location.city}, {location.state} {location.zip}\n
\n \n View Office Page\n\n \n \n \n \n
\n
\n\n \n \n )\n}\n\nexport default LocationCard\n","import { useEffect, useRef } from 'react'\nimport { useAppState, useAppDispatch } from '../Context'\nimport LocationCard from './LocationCard'\n\nfunction LocationList() {\n const dispatch = useAppDispatch()\n const { locations, selectedLocation } = useAppState()\n const ref = useRef()\n\n const handleClick = (location) => {\n dispatch({ type: 'setSelectedLocation', payload: location })\n dispatch({ type: 'setMapVisible', payload: true })\n }\n\n useEffect(() => {\n if (ref.current && selectedLocation) {\n const el = ref.current.querySelector(`[data-id=\"${selectedLocation.id}\"]`)\n\n if (el) {\n ref.current.scrollTop = el.offsetTop - ref.current.offsetTop\n }\n }\n }, [ref, selectedLocation])\n\n useEffect(() => {\n if (ref.current) {\n ref.current.scrollTop = 0\n }\n }, [ref, locations])\n\n return (\n
\n {locations.map((location) => (\n handleClick(location)}\n />\n ))}\n
\n )\n}\n\nexport default LocationList\n","function Spinner() {\n return (\n
\n \n \n \n
\n )\n}\n\nexport default Spinner\n","import { useAppState, useAppDispatch } from '../Context'\nimport LocationZip from './LocationZip'\nimport LocationSelect from './LocationSelect'\nimport LocationList from './LocationList'\nimport Spinner from './Spinner'\n\nfunction Sidebar({ pageTitle, pageSubtitle }) {\n const dispatch = useAppDispatch()\n const { sidebarOpen, mapVisible, isLoading } = useAppState()\n\n const handleSidebarToggle = () => {\n dispatch({ type: 'setSidebarOpen', payload: !sidebarOpen })\n }\n\n const handleMapToggle = () => {\n dispatch({ type: 'setMapVisible', payload: !mapVisible })\n }\n\n return (\n \n )\n}\n\nexport default Sidebar\n","import React, { useState, useEffect } from 'react'\nimport { GoogleMap, Marker, InfoWindow, useJsApiLoader } from '@react-google-maps/api'\nimport { useAppState, useAppDispatch } from '../Context'\nimport { mapMarker, userMarker } from './icons'\nimport LocationCard from './LocationCard'\n\nconst mapOptions = {\n minZoom: 3,\n maxZoom: 15,\n fullscreenControl: false,\n mapTypeControl: false,\n streetViewControl: false,\n zoomControlOptions: {\n position: window.matchMedia('(min-width: 768px)').matches ? 8 : 9, // RIGHT_CENTER or RIGHT_BOTTOM\n },\n}\n\nfunction Map({ apiKey, initialCenter = null }) {\n const dispatch = useAppDispatch()\n const { locations, mapVisible, userCoords, selectedLocation } = useAppState()\n const [markers, setMarkers] = useState({})\n const [map, setMap] = useState()\n const { isLoaded, loadError } = useJsApiLoader({\n googleMapsApiKey: apiKey,\n })\n\n useEffect(() => {\n if (selectedLocation) {\n map.panTo(selectedLocation.position)\n map.setZoom(8)\n }\n }, [selectedLocation, map])\n\n useEffect(() => {\n if (userCoords && map) {\n map.panTo(userCoords)\n\n if (map.getZoom() < 8) {\n map.setZoom(8)\n }\n }\n }, [userCoords, map])\n\n const onLoad = React.useCallback(\n function callback(map) {\n if (!initialCenter) {\n const bounds = new window.google.maps.LatLngBounds()\n\n locations.forEach((location) => {\n bounds.extend(location.position)\n })\n\n map.fitBounds(bounds)\n }\n\n setMap(map)\n },\n [locations]\n )\n\n const onUnmount = React.useCallback(function callback() {\n setMap(null)\n }, [])\n\n const markerLoadHandler = (marker, location) => {\n return setMarkers((prevState) => {\n return { ...prevState, [location.id]: marker }\n })\n }\n\n const markerClickHandler = (_, location) => {\n if (selectedLocation === location) {\n setSelectedLocation(null)\n } else {\n setSelectedLocation(location)\n }\n }\n\n const markerMouseOverHandler = (_, location) => {\n const marker = markers[location.id]\n marker.setZIndex(10)\n }\n\n const markerMouseOutHandler = (_, location) => {\n const marker = markers[location.id]\n marker.setZIndex(1)\n }\n\n const setSelectedLocation = (location) => {\n dispatch({ type: 'setSelectedLocation', payload: location })\n }\n\n if (loadError) {\n return
Map cannot be loaded right now.
\n }\n\n return (\n
\n {isLoaded ? (\n \n {locations.map((location) => (\n markerLoadHandler(marker, location)}\n onClick={(event) => markerClickHandler(event, location)}\n onMouseOver={(event) => markerMouseOverHandler(event, location)}\n onMouseOut={(event) => markerMouseOutHandler(event, location)}\n />\n ))}\n\n {userCoords && (\n \n )}\n\n {selectedLocation && (\n setSelectedLocation(null)}\n >\n \n \n )}\n \n ) : (\n
Loading...
\n )}\n
\n )\n}\n\nexport default React.memo(Map)\n","import { useAppState, useAppDispatch } from '../Context'\nimport Downshift from 'downshift'\n\nfunction LocationSearch() {\n const dispatch = useAppDispatch()\n const { locations } = useAppState()\n\n const handleChange = (selection, downshift) => {\n if (selection) {\n downshift.clearSelection(() => {\n dispatch({ type: 'setSelectedLocation', payload: selection })\n })\n }\n }\n\n return (\n (item ? item.title : '')}>\n {({\n getInputProps,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n isOpen,\n inputValue,\n highlightedIndex,\n getRootProps,\n }) => (\n
\n \n
\n \n \n \n \n \n \n
\n {isOpen && (\n \n {locations\n .filter((item) => !inputValue || item.title.toLowerCase().includes(inputValue.toLowerCase()))\n .map((item, index) => (\n \n {item.title}\n \n ))}\n \n )}\n
\n )}\n
\n )\n}\n\nexport default LocationSearch\n","import { useEffect } from 'react'\nimport Cookies from 'js-cookie'\nimport { useAppDispatch } from '../Context'\nimport Sidebar from './Sidebar'\nimport Map from './Map'\nimport LocationSearch from './LocationSearch'\nimport { geolocate } from '@common/util'\nimport ajax from '@common/ajax'\n\nfunction App({ data }) {\n const dispatch = useAppDispatch()\n\n useEffect(() => {\n dispatch({ type: 'setLocations', payload: data.locations })\n dispatch({ type: 'setEndpoint', payload: data.endpoint })\n\n if (data.userCoords) {\n dispatch({ type: 'setUserCoords', payload: data.userCoords })\n }\n\n if (data.userZip) {\n dispatch({ type: 'setUserZip', payload: data.userZip })\n }\n\n document.getElementById('offices-app').classList.add('is-init')\n }, [])\n\n useEffect(() => {\n const attemptGeolocation = () => {\n geolocate(\n async (pos) => {\n dispatch({ type: 'setIsLoading', payload: true })\n\n const res = await ajax\n .get(`${data.endpoint}locationsbygeocode?lat=${pos.coords.latitude}&lng=${pos.coords.longitude}`)\n .json()\n\n if (res.success) {\n dispatch({ type: 'setSelectedLocation', payload: null })\n dispatch({ type: 'setLocations', payload: res.locations })\n dispatch({ type: 'setUserCoords', payload: res.position })\n dispatch({ type: 'setUserZip', payload: res.zip })\n\n Cookies.set(\n 'userlocation',\n JSON.stringify({\n lat: res.position.lat,\n lng: res.position.lng,\n zip: res.zip,\n }),\n { expires: 1 }\n )\n }\n\n dispatch({ type: 'setIsLoading', payload: false })\n },\n () => {\n dispatch({ type: 'setIsLoading', payload: false })\n }\n )\n }\n\n // Only attempt geolcation if the user doesn't already have a location cookie\n if (!Cookies.get('userlocation')) {\n attemptGeolocation()\n }\n }, [data.endpoint])\n\n return (\n
\n \n \n \n
\n )\n}\n\nexport default App\n","import { createRoot } from 'react-dom/client'\nimport App from '@react/offices/components/App'\nimport { AppProvider } from '@react/offices/Context'\n\nconst rootNode = document.getElementById('offices-app')\n\nconst data = JSON.parse(document.getElementById('offices-data').textContent)\n\nconst root = createRoot(rootNode)\n\nroot.render(\n \n \n \n)\n"],"names":["wretch","headers","isTouchDevice","document","documentElement","createUrl","test","navigator","platform","maxTouchPoints","base","formData","append","data","FormData","key","value","Object","entries","baseUrl","URL","params","searchParams","set","URLSearchParams","geolocate","success","error","geolocation","getCurrentPosition","maximumAge","trackGoogleAnalytics","event","window","dataLayer","push","AppStateContext","React","AppDispatchContext","appReducer","state","action","type","locations","payload","endpoint","selectedLocation","userCoords","userZip","sidebarOpen","mapVisible","isLoading","Error","AppProvider","children","dispatch","matchMedia","matches","Provider","useAppState","context","undefined","useAppDispatch","showError","setShowError","useState","onSubmit","async","e","preventDefault","zip","target","get","res","ajax","json","position","className","name","placeholder","onChange","onClick","viewBox","fill","d","ref","useRef","eddRef","useEffect","current","edd","easydropdown","behavior","openOnFocus","maxVisibleItems","liveUpdates","useNativeUiOnMobile","destroy","htmlFor","id","find","x","parseInt","map","location","title","IconPhone","IconEnvelope","IconMapPin","mapMarker","url","scaledSize","width","height","anchor","y","userMarker","asInfoWindow","isSelected","setIsSelected","displayName","address1","address2","city","href","detailsUrl","detailsUrlNewWindow","phone1","phone1Url","phone2","phone2Url","email","rel","directionsUrl","el","querySelector","scrollTop","offsetTop","handleClick","cx","cy","r","strokeWidth","pageTitle","pageSubtitle","mapOptions","minZoom","maxZoom","fullscreenControl","mapTypeControl","streetViewControl","zoomControlOptions","Map","apiKey","initialCenter","markers","setMarkers","setMap","isLoaded","loadError","useJsApiLoader","googleMapsApiKey","panTo","setZoom","getZoom","onLoad","bounds","google","maps","LatLngBounds","forEach","extend","fitBounds","onUnmount","setSelectedLocation","mapContainerClassName","options","zoom","zIndex","icon","marker","prevState","markerLoadHandler","_","markerClickHandler","onMouseOver","setZIndex","markerMouseOverHandler","onMouseOut","markerMouseOutHandler","animation","Animation","DROP","onCloseClick","selection","downshift","clearSelection","itemToString","item","getInputProps","getItemProps","getLabelProps","getMenuProps","getToggleButtonProps","isOpen","inputValue","highlightedIndex","getRootProps","suppressRefError","filter","toLowerCase","includes","index","getElementById","classList","add","Cookies","pos","coords","latitude","longitude","JSON","stringify","lat","lng","expires","rootNode","parse","textContent","createRoot","render"],"sourceRoot":""}