One prop swaps the engine for every map, not just three
Some checks are pending
build-gate / build (push) Waiting to run

The switch existed and did not reach. resolveMapProvider has long read
profile-config.provider -> ?provider= -> window.MAP_PROVIDER, but
useMapInstance defaulted `provider` to the LITERAL 'mapbox', so the page
switch only reached a map whose bundle happened to pass provider through.
MEASURED: 3 of the 11 bundles that mount a map. The other 8 pinned Mapbox
whatever the page asked — it LOOKED global and was not.

The factory now resolves it when a caller leaves it unset, which moves the
decision to the one place every map already goes through. An explicit
caller still wins (prayer-walk-planner pins maplibre deliberately), and
with no switch set resolveMapProvider returns 'mapbox', so the default is
unchanged.

DashboardMapPanel collapsed anything that was not the literal 'maplibre' to
'mapbox', which outranked the page switch. But dashboard.config.js pins
Mapbox DELIBERATELY — the Driver's ruling for Mapbox Standard's native
starfield globe — so that default had to survive. Both hold by putting the
page switch BETWEEN the per-element config and the bundle default:
  1. profile-config.provider   this embed
  2. ?provider= / MAP_PROVIDER the page — "swap every map on this site"
  3. dashboard.config.js       this bundle's shipped default (Mapbox)

MEASURED across seven map leaves, default vs ?provider=maplibre, counting
requests to api.mapbox.com:
  doxa-simple-map          21 -> 4    engine swaps
  country-posters          24 -> 4    engine swaps
  research-dashboard       25 -> 4    engine swaps (was pinned)
  doxa-research-map        16 -> 4    engine swaps
  research-map-plus-grid   16 -> 0    fully keyless
  my-upg-100-list          19 -> 19   NOT swapped — see backlog
  regions-dashboard         4 ->  4   no map on that leaf

Simple Research reaches ZERO Mapbox requests, which is the case that
matters most: it is the one carrying the search bar, and the geocoder is
the quota risk (GeocoderComponent's maplibre path still geocodes through
Mapbox, so a keyless map with a search bar is not keyless).

Two gaps left, both filed rather than hidden: my-upg-100-list bypasses
useMapInstance entirely and cannot see the switch, and generated leaves
still preload mapbox-gl.js/.css + the geocoder from api.mapbox.com even
under maplibre (library downloads, no token, but still a CDN dependency —
the composite leaf proves 0 is reachable). The second belongs to the tree
verb, which is not mine to change.

22/22 bundles, 7/7 pre, 18/18 post, browser sweep of five StackLayout
consumers and all seven studio dashboards.
This commit is contained in:
doxa-maps-88655c70 2026-09-24 01:34:03 +00:00
parent 3bafe7cd55
commit b93b4cb984
31 changed files with 337 additions and 301 deletions

View file

@ -25,7 +25,7 @@
* onMounted(() => initializeMap())
*/
import { ref, shallowRef } from 'vue'
import { ref, shallowRef, inject } from 'vue'
import { useEdgeScrollAffordance } from './useEdgeScrollAffordance.js'
// ─── Engine registry (provider → CDN script + css + global) ──────────────────
@ -71,6 +71,7 @@ const OPENFREEMAP_STYLE = 'https://tiles.openfreemap.org/styles/liberty'
// Named styles: the 12-style pack. A profile-config style of 'ink' /
// 'midnight-glow' / … resolves per engine here; raw URLs pass through.
import { resolveNamedStyle, applyStylePaint } from '../styles/registry.js'
import { resolveMapProvider } from './useMapProvider.js'
/** The live engine global for a provider, or undefined if not yet loaded. */
function engineGlobal(provider) {
@ -228,8 +229,19 @@ export function useMapInstance({
// 'style.load') cannot do — see useMapTheme.bootConfig. Styles without imports ignore it;
// NOT forwarded to MapLibre. Default undefined → byte-for-byte the previous behaviour.
config = undefined,
// provider: 'mapbox' (default — unchanged) | 'maplibre'. Selects the GL engine.
provider = 'mapbox',
// provider: 'mapbox' (default) | 'maplibre'. Selects the GL engine.
//
// ★ LEFT UNSET, THE PAGE DECIDES — THAT IS WHAT MAKES ONE SWITCH FLIP EVERY MAP.
// This used to default to the LITERAL 'mapbox'. resolveMapProvider has long supported a
// page-level switch (profile-config.provider → ?provider= → window.MAP_PROVIDER), but a literal
// default meant the switch only reached a map whose bundle happened to pass `provider` through —
// MEASURED: 3 of the 11 bundles that mount a map. The other 8 silently pinned Mapbox no matter
// what the page asked for, which is the opposite of a switch: it LOOKED global and was not.
// Resolving here instead moves the decision to the one place every map already goes through, so
// a partner running thousands of embeds sets ONE value and the whole tree follows.
// An explicit caller still wins outright (prayer-walk-planner pins 'maplibre' deliberately), and
// with no page switch set resolveMapProvider returns 'mapbox' — so the default is unchanged.
provider = undefined,
center = [20, 10],
zoom = 2,
// minZoom: a profile may PIN a value (e.g. 0.5). It is treated as a LOWER
@ -274,6 +286,13 @@ export function useMapInstance({
// Holds the gray side-edge touch handlers so destroy() can remove them.
let _detachEdgeBorders = null
// Resolve the engine ONCE, here, so every branch below (script, style, controls) agrees.
// profile-config.provider is per-ELEMENT and outranks the page switch; inject() is only legal
// during setup(), which is where every caller invokes this — guarded so a non-setup caller
// degrades to the page switch instead of throwing.
let _pcForProvider = null
try { _pcForProvider = inject('profileConfig', null) } catch { /* called outside setup */ }
provider = provider || resolveMapProvider(_pcForProvider)
const isMaplibre = provider === 'maplibre'
async function initializeMap() {

View file

@ -8,6 +8,7 @@
*/
import { inject, ref, computed, onMounted, onBeforeUnmount, watch, unref } from 'vue'
import { useMapInstance } from '@map/composables/useMapInstance.js'
import { resolveMapProvider } from '@map/composables/useMapProvider.js'
import { useMapFly } from '@map/composables/useMapFly.js'
import { useShadowStyles } from '@map/composables/useShadowStyles.js'
// Table selection -> map camera. The table never touches the map: it commits to the bus,
@ -100,7 +101,23 @@ const mapContainer = ref(null)
// the exact failure the note on `style` below names: a setting silently ignored because it sat
// one level off is worse than no setting. `cfg.map.provider` is the spelling to prefer; the
// top-level one is kept working so nothing already using it breaks.
// ★ THREE LEVELS, MOST SPECIFIC FIRST — and the middle one is new.
// This used to be `cfg.provider === 'maplibre' ? 'maplibre' : 'mapbox'`, which collapsed every
// other answer to Mapbox and therefore silently OUTRANKED the page-level switch that the rest of
// the tree honours: a partner flipping one value watched this dashboard stay on Mapbox with no
// indication why. But dashboard.config.js pins provider:'mapbox' DELIBERATELY — the Driver's own
// 2026-09-23 ruling, for Mapbox Standard's native starfield globe — so that default must survive
// untouched. Both hold if the page switch sits BETWEEN the per-element config and the bundle's
// shipped preference:
// 1. profile-config.provider — this embed, decided by whoever mounted the element
// 2. ?provider= / window.MAP_PROVIDER — the page, i.e. "swap every map on this site"
// 3. dashboard.config.js — this bundle's shipped default (Mapbox, by the ruling above)
// With no switch set, resolveMapProvider returns 'mapbox' and step 2 cannot fire, so the shipped
// behaviour is byte-for-byte unchanged.
const mapProvider = computed(() => {
const fromElement = profileConfig?.value?.provider
if (fromElement === 'maplibre' || fromElement === 'mapbox') return fromElement
if (resolveMapProvider(null) === 'maplibre') return 'maplibre'
const p = cfg.map?.provider || cfg.provider
return p === 'maplibre' ? 'maplibre' : 'mapbox'
})

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <all-people-groups> custom element. -->
<script src="../all-people-groups.js" integrity="sha384-kA0eBlJou7ACf/ltIVUbQ+lUgGzf/9zcnOhFW9X8NUAIa/p08/Nci6e/8gOpyHvL" crossorigin="anonymous"></script>
<script src="../all-people-groups.js" integrity="sha384-p/GNZGy24Q6Fcx6en2niqH70w6pgh31gwGQk8BAxuMtLBqbXLl8eIkFeGN6QKHDq" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
<script src="../country-posters.js" integrity="sha384-+RETh7yg1k+E9ykNiSJXD/5mGu/X3jS2Mm7VSuFETAXJO6tF3g+GEFAHLfgIqsPF" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-XVF2t6ecN5IIl9qocMK2FRd96NhAhdT4iO6qth4CpAWjvnzZdh0RYrHpnjuYSxru" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
<script src="../country-posters.js" integrity="sha384-+RETh7yg1k+E9ykNiSJXD/5mGu/X3jS2Mm7VSuFETAXJO6tF3g+GEFAHLfgIqsPF" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-XVF2t6ecN5IIl9qocMK2FRd96NhAhdT4iO6qth4CpAWjvnzZdh0RYrHpnjuYSxru" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
<script src="../../dashboard-plus-grid.js" integrity="sha384-CN1XHLTg2xyx9Wb7P2Rt8EocslVA8l8FSBEGwhZDiM2ZAuG2jQeekl6yV5YPMiE9" crossorigin="anonymous"></script>
<script src="../../dashboard-plus-grid.js" integrity="sha384-Ba+P2cFNlunEDgs+vOBLJraFBOD+Pw7snZJYzWB1pNErHHapOPZj20/xyRa1omZ6" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
<script src="../dashboard-plus-grid.js" integrity="sha384-CN1XHLTg2xyx9Wb7P2Rt8EocslVA8l8FSBEGwhZDiM2ZAuG2jQeekl6yV5YPMiE9" crossorigin="anonymous"></script>
<script src="../dashboard-plus-grid.js" integrity="sha384-Ba+P2cFNlunEDgs+vOBLJraFBOD+Pw7snZJYzWB1pNErHHapOPZj20/xyRa1omZ6" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <demo-map> custom element. -->
<script src="../demo-map.js" integrity="sha384-GUI9OFnanl0z7Y1yrG7zk6n2//oZB/b8DBiAQ2rSvZIuykIn1pcEeDnkqeYd2c7x" crossorigin="anonymous"></script>
<script src="../demo-map.js" integrity="sha384-V2YEXG4I8H76LdmFUKxZexTh5LV+7uPhUsxWqvVcX1Lq8WNbwO/a/E3h7pOlMTMY" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -27,7 +27,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <demo-map> custom element. -->
<script src="../../demo-map.js" integrity="sha384-GUI9OFnanl0z7Y1yrG7zk6n2//oZB/b8DBiAQ2rSvZIuykIn1pcEeDnkqeYd2c7x" crossorigin="anonymous"></script>
<script src="../../demo-map.js" integrity="sha384-V2YEXG4I8H76LdmFUKxZexTh5LV+7uPhUsxWqvVcX1Lq8WNbwO/a/E3h7pOlMTMY" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-research-map> custom element. -->
<script src="../doxa-research-map.js" integrity="sha384-imdycy9jAtLAcSH8ZSgw8zGziiEZZokeTtqiQqcQpor5cWbcTSn2zQl0uYw5Qc1i" crossorigin="anonymous"></script>
<script src="../doxa-research-map.js" integrity="sha384-wPisP4Zwa8acLC/C/bg6n3TXcsmuL1ct2ovDvXtGUFuDiJWLB4zgXuzQMajKHeoV" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -27,7 +27,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-research-map> custom element. -->
<script src="../../doxa-research-map.js" integrity="sha384-imdycy9jAtLAcSH8ZSgw8zGziiEZZokeTtqiQqcQpor5cWbcTSn2zQl0uYw5Qc1i" crossorigin="anonymous"></script>
<script src="../../doxa-research-map.js" integrity="sha384-wPisP4Zwa8acLC/C/bg6n3TXcsmuL1ct2ovDvXtGUFuDiJWLB4zgXuzQMajKHeoV" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../../doxa-simple-map.js" integrity="sha384-XWErn8dseo+5tvGbA/WxtSDXZbYe9uqhI4oi6nwf5q4PTNs+G0FnIylTb+lccL4t" crossorigin="anonymous"></script>
<script src="../../doxa-simple-map.js" integrity="sha384-S0p0NMpR43h6c4L9RvWRr3GqaLSJ3x0q9wGHu2LSWYKY8E9aE/qglSto1L45Q3eC" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../../doxa-simple-map.js" integrity="sha384-XWErn8dseo+5tvGbA/WxtSDXZbYe9uqhI4oi6nwf5q4PTNs+G0FnIylTb+lccL4t" crossorigin="anonymous"></script>
<script src="../../doxa-simple-map.js" integrity="sha384-S0p0NMpR43h6c4L9RvWRr3GqaLSJ3x0q9wGHu2LSWYKY8E9aE/qglSto1L45Q3eC" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../doxa-simple-map.js" integrity="sha384-XWErn8dseo+5tvGbA/WxtSDXZbYe9uqhI4oi6nwf5q4PTNs+G0FnIylTb+lccL4t" crossorigin="anonymous"></script>
<script src="../doxa-simple-map.js" integrity="sha384-S0p0NMpR43h6c4L9RvWRr3GqaLSJ3x0q9wGHu2LSWYKY8E9aE/qglSto1L45Q3eC" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../../doxa-simple-map.js" integrity="sha384-XWErn8dseo+5tvGbA/WxtSDXZbYe9uqhI4oi6nwf5q4PTNs+G0FnIylTb+lccL4t" crossorigin="anonymous"></script>
<script src="../../doxa-simple-map.js" integrity="sha384-S0p0NMpR43h6c4L9RvWRr3GqaLSJ3x0q9wGHu2LSWYKY8E9aE/qglSto1L45Q3eC" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -9,7 +9,7 @@
"bundle": "all-people-groups",
"scriptUrl": "./all-people-groups/all-people-groups.js",
"output": "doxa-maps/all-people-groups/all-people-groups.js",
"integrity": "sha384-kA0eBlJou7ACf/ltIVUbQ+lUgGzf/9zcnOhFW9X8NUAIa/p08/Nci6e/8gOpyHvL",
"integrity": "sha384-p/GNZGy24Q6Fcx6en2niqH70w6pgh31gwGQk8BAxuMtLBqbXLl8eIkFeGN6QKHDq",
"elements": [
"all-people-groups"
],
@ -25,7 +25,7 @@
"scriptUrl": "./all-people-groups/all-people-groups.js",
"embed": {
"iframe": "<iframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-kA0eBlJou7ACf/ltIVUbQ+lUgGzf/9zcnOhFW9X8NUAIa/p08/Nci6e/8gOpyHvL\" crossorigin=\"anonymous\"></script>\n<all-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></all-people-groups>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-p/GNZGy24Q6Fcx6en2niqH70w6pgh31gwGQk8BAxuMtLBqbXLl8eIkFeGN6QKHDq\" crossorigin=\"anonymous\"></script>\n<all-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></all-people-groups>"
},
"bundle": "all-people-groups"
}
@ -154,7 +154,7 @@
"bundle": "country-posters",
"scriptUrl": "./country-posters/country-posters.js",
"output": "doxa-maps/country-posters/country-posters.js",
"integrity": "sha384-+RETh7yg1k+E9ykNiSJXD/5mGu/X3jS2Mm7VSuFETAXJO6tF3g+GEFAHLfgIqsPF",
"integrity": "sha384-XVF2t6ecN5IIl9qocMK2FRd96NhAhdT4iO6qth4CpAWjvnzZdh0RYrHpnjuYSxru",
"elements": [
"country-posters-map"
],
@ -170,7 +170,7 @@
"scriptUrl": "./country-posters/country-posters.js",
"embed": {
"iframe": "<iframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-+RETh7yg1k+E9ykNiSJXD/5mGu/X3jS2Mm7VSuFETAXJO6tF3g+GEFAHLfgIqsPF\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-XVF2t6ecN5IIl9qocMK2FRd96NhAhdT4iO6qth4CpAWjvnzZdh0RYrHpnjuYSxru\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
}
},
{
@ -184,7 +184,7 @@
"scriptUrl": "./country-posters/country-posters.js",
"embed": {
"iframe": "<iframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-+RETh7yg1k+E9ykNiSJXD/5mGu/X3jS2Mm7VSuFETAXJO6tF3g+GEFAHLfgIqsPF\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-XVF2t6ecN5IIl9qocMK2FRd96NhAhdT4iO6qth4CpAWjvnzZdh0RYrHpnjuYSxru\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
}
}
]
@ -193,7 +193,7 @@
"bundle": "dashboard-plus-grid",
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
"output": "doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js",
"integrity": "sha384-CN1XHLTg2xyx9Wb7P2Rt8EocslVA8l8FSBEGwhZDiM2ZAuG2jQeekl6yV5YPMiE9",
"integrity": "sha384-Ba+P2cFNlunEDgs+vOBLJraFBOD+Pw7snZJYzWB1pNErHHapOPZj20/xyRa1omZ6",
"elements": [
"dashboard-plus-grid"
],
@ -213,7 +213,7 @@
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
"embed": {
"iframe": "<iframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-CN1XHLTg2xyx9Wb7P2Rt8EocslVA8l8FSBEGwhZDiM2ZAuG2jQeekl6yV5YPMiE9\" crossorigin=\"anonymous\"></script>\n<dashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></dashboard-plus-grid>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-Ba+P2cFNlunEDgs+vOBLJraFBOD+Pw7snZJYzWB1pNErHHapOPZj20/xyRa1omZ6\" crossorigin=\"anonymous\"></script>\n<dashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></dashboard-plus-grid>"
},
"instances": [
{
@ -237,7 +237,7 @@
"bundle": "demo-map",
"scriptUrl": "./demo-map/demo-map.js",
"output": "doxa-maps/demo-map/demo-map.js",
"integrity": "sha384-GUI9OFnanl0z7Y1yrG7zk6n2//oZB/b8DBiAQ2rSvZIuykIn1pcEeDnkqeYd2c7x",
"integrity": "sha384-V2YEXG4I8H76LdmFUKxZexTh5LV+7uPhUsxWqvVcX1Lq8WNbwO/a/E3h7pOlMTMY",
"elements": [
"demo-map"
],
@ -253,7 +253,7 @@
"scriptUrl": "./demo-map/demo-map.js",
"embed": {
"iframe": "<iframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-GUI9OFnanl0z7Y1yrG7zk6n2//oZB/b8DBiAQ2rSvZIuykIn1pcEeDnkqeYd2c7x\" crossorigin=\"anonymous\"></script>\n<demo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></demo-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-V2YEXG4I8H76LdmFUKxZexTh5LV+7uPhUsxWqvVcX1Lq8WNbwO/a/E3h7pOlMTMY\" crossorigin=\"anonymous\"></script>\n<demo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></demo-map>"
},
"instances": [
{
@ -331,7 +331,7 @@
"bundle": "doxa-research-map",
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
"output": "doxa-maps/doxa-research-map/doxa-research-map.js",
"integrity": "sha384-imdycy9jAtLAcSH8ZSgw8zGziiEZZokeTtqiQqcQpor5cWbcTSn2zQl0uYw5Qc1i",
"integrity": "sha384-wPisP4Zwa8acLC/C/bg6n3TXcsmuL1ct2ovDvXtGUFuDiJWLB4zgXuzQMajKHeoV",
"elements": [
"doxa-research-map"
],
@ -347,7 +347,7 @@
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
"embed": {
"iframe": "<iframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-imdycy9jAtLAcSH8ZSgw8zGziiEZZokeTtqiQqcQpor5cWbcTSn2zQl0uYw5Qc1i\" crossorigin=\"anonymous\"></script>\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-wPisP4Zwa8acLC/C/bg6n3TXcsmuL1ct2ovDvXtGUFuDiJWLB4zgXuzQMajKHeoV\" crossorigin=\"anonymous\"></script>\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>"
},
"instances": [
{
@ -373,7 +373,7 @@
"bundle": "doxa-simple-map",
"scriptUrl": "./doxa-simple-map/doxa-simple-map.js",
"output": "doxa-maps/doxa-simple-map/doxa-simple-map.js",
"integrity": "sha384-XWErn8dseo+5tvGbA/WxtSDXZbYe9uqhI4oi6nwf5q4PTNs+G0FnIylTb+lccL4t",
"integrity": "sha384-S0p0NMpR43h6c4L9RvWRr3GqaLSJ3x0q9wGHu2LSWYKY8E9aE/qglSto1L45Q3eC",
"elements": [
"doxa-map",
"doxa-simple-map"
@ -390,7 +390,7 @@
"scriptUrl": "./doxa-simple-map/doxa-simple-map.js",
"embed": {
"iframe": "<iframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-XWErn8dseo+5tvGbA/WxtSDXZbYe9uqhI4oi6nwf5q4PTNs+G0FnIylTb+lccL4t\" crossorigin=\"anonymous\"></script>\n<doxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-S0p0NMpR43h6c4L9RvWRr3GqaLSJ3x0q9wGHu2LSWYKY8E9aE/qglSto1L45Q3eC\" crossorigin=\"anonymous\"></script>\n<doxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-map>"
},
"instances": [
{
@ -813,7 +813,7 @@
"bundle": "prayer-walk-planner",
"scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js",
"output": "doxa-maps/prayer-walk-planner/prayer-walk-planner.js",
"integrity": "sha384-OTTFfQpIOOhwH3QUT2Mg2GN32VxfytqbJz9E4jwV48oMXe2iDp+x9EAMr7CDEr2C",
"integrity": "sha384-7jWlo1ERAkJVmIj2zvbUfDXHANMfT5MolW1AV6ex76fxP0rll9PgtoK8CH876uYH",
"elements": [
"prayer-walk-planner"
],
@ -829,7 +829,7 @@
"scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js",
"embed": {
"iframe": "<iframe src=\"./prayer-walk-planner/prayer-walk-planner/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-OTTFfQpIOOhwH3QUT2Mg2GN32VxfytqbJz9E4jwV48oMXe2iDp+x9EAMr7CDEr2C\" crossorigin=\"anonymous\"></script>\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-7jWlo1ERAkJVmIj2zvbUfDXHANMfT5MolW1AV6ex76fxP0rll9PgtoK8CH876uYH\" crossorigin=\"anonymous\"></script>\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>"
}
}
]
@ -838,7 +838,7 @@
"bundle": "regions-dashboard",
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"output": "doxa-maps/regions-dashboard/regions-dashboard.js",
"integrity": "sha384-TsByiuoI9fzzdRROm6GocsQuBAYAJld4MuhMZlSLw0Y6Crnzqyoy8I+V15j8RTB9",
"integrity": "sha384-1kO4NXVmgGZNazhhoYUveT739kCaFlWrJOPBdQYVtpZnwV7ueGo0iRzg6y4Cgtik",
"elements": [
"regions-dashboard"
],
@ -858,7 +858,7 @@
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"embed": {
"iframe": "<iframe src=\"./regions-dashboard/region-dashboards/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TsByiuoI9fzzdRROm6GocsQuBAYAJld4MuhMZlSLw0Y6Crnzqyoy8I+V15j8RTB9\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-1kO4NXVmgGZNazhhoYUveT739kCaFlWrJOPBdQYVtpZnwV7ueGo0iRzg6y4Cgtik\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
}
},
{
@ -872,7 +872,7 @@
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"embed": {
"iframe": "<iframe src=\"./regions-dashboard/regions-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TsByiuoI9fzzdRROm6GocsQuBAYAJld4MuhMZlSLw0Y6Crnzqyoy8I+V15j8RTB9\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-1kO4NXVmgGZNazhhoYUveT739kCaFlWrJOPBdQYVtpZnwV7ueGo0iRzg6y4Cgtik\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
}
},
{
@ -886,7 +886,7 @@
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"embed": {
"iframe": "<iframe src=\"./regions-dashboard/regions-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TsByiuoI9fzzdRROm6GocsQuBAYAJld4MuhMZlSLw0Y6Crnzqyoy8I+V15j8RTB9\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-1kO4NXVmgGZNazhhoYUveT739kCaFlWrJOPBdQYVtpZnwV7ueGo0iRzg6y4Cgtik\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
}
}
]
@ -895,7 +895,7 @@
"bundle": "research-dashboard",
"scriptUrl": "./research-dashboard/research-dashboard.js",
"output": "doxa-maps/research-dashboard/research-dashboard.js",
"integrity": "sha384-scUJRvgpCrk64Y9KRuMg+p7xbsYaJnfxgkuOIy/s7k+j+Qzodj/kXIV3DLwGoPvO",
"integrity": "sha384-K8I36S+jJvwOmnJ4Zoulz8T+4fFF1X4hg2Pu8BCNkBjtbgK8eEmIhBsQi7KZQS9V",
"elements": [
"research-dashboard-map"
],
@ -911,7 +911,7 @@
"scriptUrl": "./research-dashboard/research-dashboard.js",
"embed": {
"iframe": "<iframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-scUJRvgpCrk64Y9KRuMg+p7xbsYaJnfxgkuOIy/s7k+j+Qzodj/kXIV3DLwGoPvO\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-dashboard-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-K8I36S+jJvwOmnJ4Zoulz8T+4fFF1X4hg2Pu8BCNkBjtbgK8eEmIhBsQi7KZQS9V\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-dashboard-map>"
},
"bundle": "research-dashboard"
}

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <prayer-walk-planner> custom element. -->
<script src="../prayer-walk-planner.js" integrity="sha384-OTTFfQpIOOhwH3QUT2Mg2GN32VxfytqbJz9E4jwV48oMXe2iDp+x9EAMr7CDEr2C" crossorigin="anonymous"></script>
<script src="../prayer-walk-planner.js" integrity="sha384-7jWlo1ERAkJVmIj2zvbUfDXHANMfT5MolW1AV6ex76fxP0rll9PgtoK8CH876uYH" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
<script src="../regions-dashboard.js" integrity="sha384-TsByiuoI9fzzdRROm6GocsQuBAYAJld4MuhMZlSLw0Y6Crnzqyoy8I+V15j8RTB9" crossorigin="anonymous"></script>
<script src="../regions-dashboard.js" integrity="sha384-1kO4NXVmgGZNazhhoYUveT739kCaFlWrJOPBdQYVtpZnwV7ueGo0iRzg6y4Cgtik" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
<script src="../regions-dashboard.js" integrity="sha384-TsByiuoI9fzzdRROm6GocsQuBAYAJld4MuhMZlSLw0Y6Crnzqyoy8I+V15j8RTB9" crossorigin="anonymous"></script>
<script src="../regions-dashboard.js" integrity="sha384-1kO4NXVmgGZNazhhoYUveT739kCaFlWrJOPBdQYVtpZnwV7ueGo0iRzg6y4Cgtik" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
<script src="../regions-dashboard.js" integrity="sha384-TsByiuoI9fzzdRROm6GocsQuBAYAJld4MuhMZlSLw0Y6Crnzqyoy8I+V15j8RTB9" crossorigin="anonymous"></script>
<script src="../regions-dashboard.js" integrity="sha384-1kO4NXVmgGZNazhhoYUveT739kCaFlWrJOPBdQYVtpZnwV7ueGo0iRzg6y4Cgtik" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <research-dashboard-map> custom element. -->
<script src="../research-dashboard.js" integrity="sha384-scUJRvgpCrk64Y9KRuMg+p7xbsYaJnfxgkuOIy/s7k+j+Qzodj/kXIV3DLwGoPvO" crossorigin="anonymous"></script>
<script src="../research-dashboard.js" integrity="sha384-K8I36S+jJvwOmnJ4Zoulz8T+4fFF1X4hg2Pu8BCNkBjtbgK8eEmIhBsQi7KZQS9V" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order: