{ "version": 3, "sources": ["../../node_modules/@googlemaps/js-api-loader/node_modules/fast-deep-equal/index.js", "../../node_modules/@googlemaps/js-api-loader/src/index.ts", "../../src/js/map.ts"], "sourcesContent": ["'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n", null, "import { Loader } from '@googlemaps/js-api-loader'\n\ntype AdvancedMarkerView = google.maps.marker.AdvancedMarkerView\n\ndeclare global {\n\tinterface Window {\n\t\t_avnMapData: {\n\t\t\tstates: State[]\n\t\t\tlocations: Location[]\n\t\t}\n\t}\n}\n\ntype State = {\n\tcode: string\n\tposition: google.maps.LatLngLiteral\n}\n\ntype Location = {\n\tname: string\n\ttype: string\n\tposition: google.maps.LatLngLiteral\n\tcode: string\n}\n\ntype LocationMarker = {\n\tmarker: AdvancedMarkerView\n\tlocation: Location\n}\n\ntype StateMarker = {\n\tmarker: AdvancedMarkerView\n\tstate: State\n}\n\nconst mapEl = document.getElementById('map')\nif (mapEl) {\n\tconst loader = new Loader({\n\t\tapiKey: 'AIzaSyDR4WWv0JRi-RrfqxpMsJPOIdT-0cSb3o0&',\n\t\tversion: 'beta',\n\t\tlibraries: ['marker'],\n\t})\n\n\tloader.load().then((google) => main(google, mapEl))\n}\n\nasync function main(google: typeof globalThis.google, mapEl: HTMLElement) {\n\tconst { AdvancedMarkerView } = google.maps.marker\n\n\tconst { states, locations } = window._avnMapData\n\n\t// const collisionBehavior =\n\t// \tgoogle.maps.CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY\n\n\tconst map = new google.maps.Map(mapEl, {\n\t\tzoom: 3,\n\t\tcenter: {\n\t\t\tlat: 31.35543,\n\t\t\tlng: 2.60372,\n\t\t},\n\t\tmapId: 'ae34ec08c6ca9c09',\n\t\tstreetViewControl: false,\n\t\tmapTypeControl: false,\n\t\tfullscreenControl: false,\n\t\tdisableDefaultUI: true,\n\t})\n\n\tconst locationMarkers = locations.map((location): LocationMarker => {\n\t\tconst content = buildLocationContent(location)\n\n\t\tconst marker = new AdvancedMarkerView({\n\t\t\tmap,\n\t\t\tcontent,\n\t\t\tposition: location.position,\n\t\t\ttitle: location.name,\n\t\t\t// collisionBehavior,\n\t\t})\n\n\t\tmarker.element!.classList.add('marker', 'location', location.type)\n\n\t\treturn { location, marker }\n\t})\n\n\tconst usClients = locationMarkers.filter(isClientInUnitedStates)\n\n\tconst stateMarkers: StateMarker[] = states.flatMap((state) => {\n\t\tconst stateClients = usClients.filter(\n\t\t\t(client) => client.location.code === state.code\n\t\t)\n\n\t\tif (stateClients.length === 0) return []\n\n\t\tconst content = buildStateContent(state, stateClients.length)\n\n\t\tconst marker = new AdvancedMarkerView({\n\t\t\tmap,\n\t\t\tcontent,\n\t\t\tposition: state.position,\n\t\t\ttitle: state.code,\n\t\t\t// collisionBehavior,\n\t\t})\n\n\t\tmarker.element!.classList.add('marker', 'state')\n\n\t\treturn { state, marker }\n\t})\n\n\tgoogle.maps.event.addListener(map, 'zoom_changed', () => {\n\t\tconst zoomLevel = map.getZoom() ?? 2\n\n\t\tif (zoomLevel >= 6.2) {\n\t\t\tstateMarkers.forEach(({ marker }) => hideMarker(marker))\n\t\t\tusClients.forEach(({ marker }) => showMarker(marker))\n\t\t} else {\n\t\t\tstateMarkers.forEach(({ marker }) => showMarker(marker))\n\t\t\tusClients.forEach(({ marker }) => hideMarker(marker))\n\t\t}\n\t})\n\n\t// Manually picked these because they work pretty good\n\tmap.fitBounds({ north: 50, west: -124, south: -18, east: 153 })\n\n\t// window._dbg = { map, locationMarkers }\n}\n\nconst iconHTML = `
\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t
`\n\nfunction buildLocationContent(location: Location) {\n\tconst content = document.createElement('div')\n\n\tcontent.innerHTML = `\n\t\t${iconHTML}\n\t\t
\n\t\t\t

${location.name}

\n\t\t
\n\t`\n\n\treturn content\n}\n\nfunction buildStateContent(state: State, clientCount: number) {\n\tconst content = document.createElement('div')\n\n\tcontent.innerHTML = `\n\t\t${iconHTML}\n\t\t
\n\t\t\t

${clientCount === 1 ? 'One client' : clientCount + ' clients'} in ${\n\t\tstate.code\n\t}

\n\t\t
\n\t`\n\n\treturn content\n}\n\n// Clients in the US have a state code\nfunction isClientInUnitedStates({ location }: LocationMarker) {\n\treturn Boolean(location.code)\n}\n\nfunction hideMarker(marker: AdvancedMarkerView) {\n\tmarker.element!.classList.add('hidden')\n}\n\nfunction showMarker(marker: AdvancedMarkerView) {\n\tmarker.element!.classList.remove('hidden')\n}\n"], "mappings": "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", "names": ["fastDeepEqual", "equal", "a", "b", "length", "i", "keys", "key", "DEFAULT_ID", "LoaderStatus", "Loader", "apiKey", "authReferrerPolicy", "channel", "client", "id", "language", "libraries", "mapIds", "nonce", "region", "retries", "url", "version", "isEqual", "script", "resolve", "reject", "err", "fn", "delay", "cb", "mapEl", "Loader", "google", "main", "__async", "AdvancedMarkerView", "states", "locations", "map", "usClients", "location", "content", "buildLocationContent", "marker", "isClientInUnitedStates", "stateMarkers", "state", "stateClients", "client", "buildStateContent", "_a", "hideMarker", "showMarker", "iconHTML", "clientCount"] }