{"version":3,"file":"map.js","sources":["../../src/map.js"],"sourcesContent":["/*\nRender a map based on a query or table view by fetching its GeoJSON representation\n*/\n\nasync function render() {\n\tconsole.debug(\"Rendering GeoJSON map\");\n\t// window.datasette.leaflet.JAVASCRIPT_URL\n\tconst L = await import(window.datasette.leaflet.JAVASCRIPT_URL);\n\n\t// simplestyle\n\tawait import(\"leaflet-simplestyle\");\n\n\tconst geojson = await fetch(geojsonURL(window.location)).then(r => r.json());\n\n\tconst parent = document.querySelector(\".table-wrapper\");\n\tconst container = document.createElement(\"DIV\");\n\n\tObject.assign(container, {\n\t\tid: \"map\",\n\t});\n\n\tparent.insertBefore(container, parent.firstElementChild);\n\n\tconst map = createMap(L, container);\n\tconst layer = L.geoJSON(geojson, { useSimpleStyle: true, useMakiMarkers: true })\n\t\t.addTo(map)\n\t\t.bindPopup(popup);\n\tconst bounds = layer.getBounds();\n\n\tmap.fitBounds(bounds);\n\n\t// make debugging easier\n\twindow.map = map;\n}\n\nfunction createMap(L, container) {\n\tconst map = L.map(container);\n\n\tL.tileLayer(window.TILE_LAYER, window.TILE_LAYER_OPTIONS).addTo(map);\n\n\treturn map;\n}\n\nfunction geojsonURL(location) {\n\tconst url = new URL(location);\n\turl.pathname = url.pathname + \".geojson\";\n\treturn url;\n}\n\nfunction popup(layer) {\n\tconst { properties } = layer.feature;\n\tconst items = Object.entries(properties).map(\n\t\t([key, value]) => `\n
${key}
\n
${format(value)}
`\n\t);\n\n\treturn `
${items.join(\"\")}
`;\n}\n\nfunction format(value) {\n\tswitch (typeof value) {\n\t\tcase \"number\":\n\t\t\treturn value.toLocaleString();\n\n\t\tcase \"string\":\n\t\t\treturn value;\n\n\t\tdefault:\n\t\t\treturn String(value);\n\t}\n}\n\nwindow.addEventListener(\"load\", render);\n"],"names":[],"mappings":"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"}