From 9b6de370a0b6cb95f46c29f5e1827f9c418ef6cf Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Fri, 17 Apr 2026 12:36:00 -0500 Subject: phase 1: scaffold D3/TopoJSON migration structure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Extract country prison data to assets/data/countries.js (ES module) - Add ISO numeric→alpha-3 lookup table for TopoJSON ID bridging - Download world-atlas countries-110m.json (TopoJSON, 108KB) - Create stub ES modules for map, charts, and UI layers - Replace ZingChart/jQuery script tags with single ES module entry point - Preserve original app.js as _app.js.bak for Phase 2+ reference --- assets/js/map/choropleth.js | 4 ++++ assets/js/map/tooltip.js | 3 +++ assets/js/map/zoom.js | 3 +++ 3 files changed, 10 insertions(+) create mode 100644 assets/js/map/choropleth.js create mode 100644 assets/js/map/tooltip.js create mode 100644 assets/js/map/zoom.js (limited to 'assets/js/map') diff --git a/assets/js/map/choropleth.js b/assets/js/map/choropleth.js new file mode 100644 index 0000000..e7d5d3d --- /dev/null +++ b/assets/js/map/choropleth.js @@ -0,0 +1,4 @@ +// Phase 2: choropleth map rendering, gradient coloring +export function initMap(container, countries, isoLookup) {} +export function applyGradient(metricKey) {} +export function setClickHandler(fn) {} diff --git a/assets/js/map/tooltip.js b/assets/js/map/tooltip.js new file mode 100644 index 0000000..c8f112a --- /dev/null +++ b/assets/js/map/tooltip.js @@ -0,0 +1,3 @@ +// Phase 3: hover tooltip +export function initTooltip() {} +export function attachTooltip(selection, getContent) {} diff --git a/assets/js/map/zoom.js b/assets/js/map/zoom.js new file mode 100644 index 0000000..aec278b --- /dev/null +++ b/assets/js/map/zoom.js @@ -0,0 +1,3 @@ +// Phase 3: zoom and pan behavior +export function initZoom(svg, mapGroup) {} +export function resetZoom(svg, zoomBehavior) {} -- cgit v1.2.3