It has no consumer yet, and that is deliberate rather than unfinished. Intl's English names differ from the canonical names in library/data/countries.json for 42 of 242 countries -- "Antigua & Barbuda" vs "Antigua and Barbuda", "Cape Verde" vs "Cabo Verde", "Hong Kong SAR China" vs "Hong Kong", "Myanmar (Burma)" vs "Myanmar". So it is not a drop-in replacement for a name already on screen. The regions surfaces prefer the API's localized label on purpose (region-dashboards.vue:370) and are measured against live doxa.life; swapping the source would change 42 English names and break clone parity. Which name is canonical is a product decision, not a refactor. Its real gap is the case where only an alpha-3 is in hand, or where a label arrives in English whatever the reader's locale. Recorded in the file because the failure mode is silent -- the wrong names still look like names. |
||
|---|---|---|
| .. | ||
| .gitkeep | ||
| apiBaseUrl.js | ||
| ClusterHelpers.js | ||
| colocation.js | ||
| countries-meta.js | ||
| countryName.js | ||
| DataSourceManager.js | ||
| embedBase.js | ||
| geoUtils.js | ||
| html.js | ||
| loadPinnedUmd.js | ||
| MSTClusteringUtil.js | ||
| NetworkClusteringUtil.js | ||
| README.md | ||
| viewportScrim.js | ||
library/utils/ — pure JS helpers
No Vue, no Pinia, no Mapbox. Anything reactive is a composable; anything stateful is a store.
| File | Purpose |
|---|---|
apiBaseUrl.js |
Resolves the API base URL at runtime (window.MAP_APP_API_URL / VITE_API_BASE_URL) |
embedBase.js |
Share/embed URL ladder — the built bundle derives its tree root from its own script url (profileConfig.shareUrl / embedBaseUrl / window.MAP_EMBED_BASE_URL override) so tree-relative <bundle>/<profile>/index.html links work on any host |
geoUtils.js |
Centroid, bounds, validation, GeoJSON helpers |
ClusterHelpers.js |
Shared helpers for the two clustering utilities below |
MSTClusteringUtil.js |
Minimum-spanning-tree clustering for affinity blocks |
NetworkClusteringUtil.js |
Network-line clustering — connect nearby pins with edges |
- No
import { ref } from 'vue'and noimport mapboxglin this folder — operate on plain[lng, lat]arrays. - Named exports (for tree-shaking), JSDoc on every export.
- Writing reactive logic or needing Mapbox APIs? That's a composable — move it to
../composables/.