Re-sync doxa-maps-build: maplibre-capable pages + provider-aware demo

This commit is contained in:
doxa-maps 2026-09-16 03:05:53 +00:00
parent e0a83ff7fd
commit a82c0df6f6
25 changed files with 265 additions and 64 deletions

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"connectivity-list","dataSource":"pray-tools","instanceId":"cities-internet-connectivity-list","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"connectivity-list","dataSource":"pray-tools","instanceId":"cities-internet-connectivity-list","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("cities-internet-map"); var el = document.createElement("cities-internet-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"connectivity-map","dataSource":"pray-tools","instanceId":"cities-internet-connectivity-map","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"connectivity-map","dataSource":"pray-tools","instanceId":"cities-internet-connectivity-map","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("cities-internet-map"); var el = document.createElement("cities-internet-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"data-tables","dataSource":"pray-tools","instanceId":"cities-internet-data-tables","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"data-tables","dataSource":"pray-tools","instanceId":"cities-internet-data-tables","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("cities-internet-map"); var el = document.createElement("cities-internet-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"countries-map","dataSource":"pray-tools","instanceId":"country-posters-countries-map","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"countries-map","dataSource":"pray-tools","instanceId":"country-posters-countries-map","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("country-posters-map"); var el = document.createElement("country-posters-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"country-poster-wall","dataSource":"pray-tools","instanceId":"country-posters-country-poster-wall","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"country-poster-wall","dataSource":"pray-tools","instanceId":"country-posters-country-poster-wall","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("country-posters-map"); var el = document.createElement("country-posters-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

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> <script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <demo-map> custom element. --> <!-- Bundle IIFE — registers the <demo-map> custom element. -->
<script src="../demo-map.js" integrity="sha384-fHNJEJ1hvqeG9zn0s3CkvL85RqNCORSeS1oO0SQ8DMPGG/3Ijiqh0I102n0UPNCo" crossorigin="anonymous"></script> <script src="../demo-map.js" integrity="sha384-B+SyViDxVGRi34FHMkYac/xvZ43ATdtjC581+MYPyim2Z8wk+6uAWj7DNt6GA+C2" crossorigin="anonymous"></script>
<script> <script>
// Mapbox token resolution — the A3 ladder, in precedence order: // Mapbox token resolution — the A3 ladder, in precedence order:
@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"demo-map","dataSource":"pray-tools","instanceId":"demo-map-demo-map","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"demo-map","dataSource":"pray-tools","instanceId":"demo-map-demo-map","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("demo-map"); var el = document.createElement("demo-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -0,0 +1,124 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Demo map — MapLibre (token-free) · demo-map</title>
<link rel="icon" href="data:,">
<!-- MapLibre peer (token-free engine) loaded ONCE here; the custom element
uses window.maplibregl directly (same versions as @map/composables/useMapInstance). -->
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin />
<link href="https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js"></script>
<style>
/* BARE full-page map — no chrome. The custom element IS the page, so the
browser URL shares the map itself (design note: "Share shares THE MAP"). */
html, body { height: 100%; margin: 0; background: #0a0e15; }
#slot, demo-map { position: fixed; inset: 0; width: 100%; height: 100%; display: block; }
#status { position: fixed; inset: 0; z-index: 2; display: grid; place-items: center;
padding: 24px; text-align: center; color: #9aa7b8;
font: 13px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; }
#status.err { color: #f87171; }
</style>
</head>
<body>
<div id="slot"></div>
<div id="status">loading map…</div>
<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-B+SyViDxVGRi34FHMkYac/xvZ43ATdtjC581+MYPyim2Z8wk+6uAWj7DNt6GA+C2" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:
// 1. prop — a token hardcoded into this page's profile-config (config.tk)
// 2. ?tk= URL param — token carried in the shared link
// 3. baked token — opt-in literal token inlined at build time (build-config.token)
// A token from rungs 1-3 is used DIRECTLY (no network). Otherwise a token
// *endpoint* is resolved and fetched:
// 4. window.MAP_TOKEN_URL override 5. configured TOKEN_SRC URL 6. same-origin /api/maps/token
// TOKEN_SRC is treated as DATA, never eval'd: the literal "window.MAP_TOKEN_URL"
// means "read that global"; anything else is used as a URL — so both a global
// name and a plain URL are safe (no SyntaxError footgun).
(function () {
var slot = document.getElementById('slot');
var status = document.getElementById('status');
var BASE_CONFIG = {"assetsBase":"../../../../assets","profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = true;
var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token';
function fail(msg) { if (status) { status.className = 'err'; status.textContent = '⚠ ' + msg; } }
// No token anywhere on the ladder → ask ONCE, store locally, remount. No dead ends.
function askToken() {
if (!status) return;
status.className = 'err';
status.innerHTML = 'map needs a Mapbox token — ' +
'<input id="tkIn" type="password" placeholder="paste pk.… (stays in this browser)" ' +
'style="font:12px ui-monospace,monospace;padding:6px 8px;border-radius:6px;border:1px solid #223047;background:#0e1623;color:#eef2f7;width:min(320px,70vw)"> ' +
'<button id="tkGo" style="font:700 11px ui-monospace,monospace;padding:7px 12px;border-radius:999px;border:0;cursor:pointer;background:linear-gradient(90deg,#46d4ff,#b9a6f5);color:#0a0e15">use it</button>';
var go = document.getElementById('tkGo');
if (go) go.addEventListener('click', function () {
var v = (document.getElementById('tkIn').value || '').trim();
if (!v) return;
try { localStorage.setItem('MAPS_STAGING_TK', v); } catch (e) {}
mount(v);
});
}
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) {
if (!token && !TOKEN_FREE) { return askToken(); }
try {
var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("demo-map");
el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = '';
slot.appendChild(el);
done();
} catch (e) { fail(e && e.message ? e.message : String(e)); }
}
function qp(name) {
try { return new URLSearchParams(location.search).get(name) || ''; }
catch (e) { return ''; }
}
function extractToken(data) {
if (typeof data === 'string') return data.trim();
if (data && typeof data === 'object') return data.token || data.tk || data.accessToken || '';
return '';
}
// Rungs 1-3b: an actual token → mount directly, no fetch.
// 2b = localStorage: the paste-once store shared with the staging pages
// (MAPS_STAGING_TK) — paste a token ONCE anywhere in the tree, every page uses it.
var stored = '';
try { stored = localStorage.getItem('MAPS_STAGING_TK') || ''; } catch (e) {}
var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it.
var tokenUrl =
(window.MAP_TOKEN_URL) ||
(TOKEN_SRC && TOKEN_SRC !== 'window.MAP_TOKEN_URL' ? TOKEN_SRC : '') ||
DEFAULT_TOKEN_URL;
fetch(tokenUrl)
.then(function (r) {
var ct = r.headers.get('content-type') || '';
return ct.indexOf('json') !== -1 ? r.json() : r.text();
})
.then(function (data) { mount(extractToken(data)); })
.catch(function (e) {
fail('Token fetch failed from ' + tokenUrl + ' — set window.MAP_TOKEN_URL or pass ?tk=. (' + (e && e.message ? e.message : e) + ')');
});
})();
</script>
</body>
</html>

View file

@ -130,7 +130,7 @@ header.top .sub { margin-top: 3px; font: 12px/1.4 var(--sans); color: var(--mut)
<script>window.FORGE = {"mode":"built","scope":"bundle","manifestUrl":"../manifest.json","bundle":"demo-map","hrefBase":"../"}; <script>window.FORGE = {"mode":"built","scope":"bundle","manifestUrl":"../manifest.json","bundle":"demo-map","hrefBase":"../"};
/* file:// contract: manifest inlined at build — no fetch needed to render. */ /* file:// contract: manifest inlined at build — no fetch needed to render. */
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"bundle":"demo-map","scriptUrl":"./demo-map/demo-map.js","output":"doxa-maps/demo-map/demo-map.js","integrity":"sha384-fHNJEJ1hvqeG9zn0s3CkvL85RqNCORSeS1oO0SQ8DMPGG/3Ijiqh0I102n0UPNCo","elements":["demo-map"],"profiles":[{"profile":"demo-map","file":"demo-map.vue","description":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","element":"demo-map","iframeUrl":"./demo-map/demo-map/index.html","scriptUrl":"./demo-map/demo-map.js","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-fHNJEJ1hvqeG9zn0s3CkvL85RqNCORSeS1oO0SQ8DMPGG/3Ijiqh0I102n0UPNCo\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/demo-map>"},"bundle":"demo-map"}]}]};</script> window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"bundle":"demo-map","scriptUrl":"./demo-map/demo-map.js","output":"doxa-maps/demo-map/demo-map.js","integrity":"sha384-B+SyViDxVGRi34FHMkYac/xvZ43ATdtjC581+MYPyim2Z8wk+6uAWj7DNt6GA+C2","elements":["demo-map"],"profiles":[{"profile":"demo-map","file":"demo-map.vue","description":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","element":"demo-map","iframeUrl":"./demo-map/demo-map/index.html","scriptUrl":"./demo-map/demo-map.js","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-B+SyViDxVGRi34FHMkYac/xvZ43ATdtjC581+MYPyim2Z8wk+6uAWj7DNt6GA+C2\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/demo-map>"},"instances":[{"id":"maplibre","title":"Demo map — MapLibre (token-free)","apiBaseUrl":"","props":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"element":"demo-map","iframeUrl":"./demo-map/demo-map/maplibre/index.html","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/maplibre/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"demo-map"}]}]};</script>
<script>/** <script>/**
* staging-forge.js — the ONE-PAGE semantic staging environment (root + bundle pages). * staging-forge.js — the ONE-PAGE semantic staging environment (root + bundle pages).
* *

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"research-map","dataSource":"pray-tools","instanceId":"doxa-research-map-research-map","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"research-map","dataSource":"pray-tools","instanceId":"doxa-research-map-research-map","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("doxa-research-map"); var el = document.createElement("doxa-research-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"assetsBase":"../../../../assets","profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}],"qa":true}; var BASE_CONFIG = {"assetsBase":"../../../../assets","profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}],"qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("doxa-map"); var el = document.createElement("doxa-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"assetsBase":"../../../../assets","profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}],"qa":true}; var BASE_CONFIG = {"assetsBase":"../../../../assets","profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}],"qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("doxa-map"); var el = document.createElement("doxa-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"doxa-simple-map","dataSource":"pray-tools","instanceId":"doxa-simple-map-doxa-simple-map","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"doxa-simple-map","dataSource":"pray-tools","instanceId":"doxa-simple-map-doxa-simple-map","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("doxa-map"); var el = document.createElement("doxa-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"assetsBase":"../../../../assets","profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}],"qa":true}; var BASE_CONFIG = {"assetsBase":"../../../../assets","profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}],"qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("doxa-map"); var el = document.createElement("doxa-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"charts","dataSource":"pray-tools","instanceId":"gospel-resources-charts","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"charts","dataSource":"pray-tools","instanceId":"gospel-resources-charts","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("gospel-resources-map"); var el = document.createElement("gospel-resources-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"data-tables","dataSource":"pray-tools","instanceId":"gospel-resources-data-tables","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"data-tables","dataSource":"pray-tools","instanceId":"gospel-resources-data-tables","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("gospel-resources-map"); var el = document.createElement("gospel-resources-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"resources-list","dataSource":"pray-tools","instanceId":"gospel-resources-resources-list","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"resources-list","dataSource":"pray-tools","instanceId":"gospel-resources-resources-list","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("gospel-resources-map"); var el = document.createElement("gospel-resources-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"resources-map","dataSource":"pray-tools","instanceId":"gospel-resources-resources-map","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"resources-map","dataSource":"pray-tools","instanceId":"gospel-resources-resources-map","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("gospel-resources-map"); var el = document.createElement("gospel-resources-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

File diff suppressed because one or more lines are too long

View file

@ -91,7 +91,7 @@
"bundle": "demo-map", "bundle": "demo-map",
"scriptUrl": "./demo-map/demo-map.js", "scriptUrl": "./demo-map/demo-map.js",
"output": "doxa-maps/demo-map/demo-map.js", "output": "doxa-maps/demo-map/demo-map.js",
"integrity": "sha384-fHNJEJ1hvqeG9zn0s3CkvL85RqNCORSeS1oO0SQ8DMPGG/3Ijiqh0I102n0UPNCo", "integrity": "sha384-B+SyViDxVGRi34FHMkYac/xvZ43ATdtjC581+MYPyim2Z8wk+6uAWj7DNt6GA+C2",
"elements": [ "elements": [
"demo-map" "demo-map"
], ],
@ -105,8 +105,25 @@
"scriptUrl": "./demo-map/demo-map.js", "scriptUrl": "./demo-map/demo-map.js",
"embed": { "embed": {
"iframe": "<iframe src=\"./demo-map/demo-map/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>", "iframe": "<iframe src=\"./demo-map/demo-map/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-fHNJEJ1hvqeG9zn0s3CkvL85RqNCORSeS1oO0SQ8DMPGG/3Ijiqh0I102n0UPNCo\" crossorigin=\"anonymous\"></script>\n<demo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></demo-map>" "script": "<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-B+SyViDxVGRi34FHMkYac/xvZ43ATdtjC581+MYPyim2Z8wk+6uAWj7DNt6GA+C2\" crossorigin=\"anonymous\"></script>\n<demo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></demo-map>"
}, },
"instances": [
{
"id": "maplibre",
"title": "Demo map — MapLibre (token-free)",
"apiBaseUrl": "",
"props": {
"profile": "demo-map",
"provider": "maplibre",
"instanceId": "demo-maplibre"
},
"element": "demo-map",
"iframeUrl": "./demo-map/demo-map/maplibre/index.html",
"embed": {
"iframe": "<iframe src=\"./demo-map/demo-map/maplibre/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>"
}
}
],
"bundle": "demo-map" "bundle": "demo-map"
} }
] ]

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"poster-wall","dataSource":"pray-tools","instanceId":"my-upg-100-list-poster-wall","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"poster-wall","dataSource":"pray-tools","instanceId":"my-upg-100-list-poster-wall","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("my-upg-100-list-map"); var el = document.createElement("my-upg-100-list-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"upg-100-list","dataSource":"pray-tools","instanceId":"my-upg-100-list-upg-100-list","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"upg-100-list","dataSource":"pray-tools","instanceId":"my-upg-100-list-upg-100-list","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("my-upg-100-list-map"); var el = document.createElement("my-upg-100-list-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"research-dashboard","dataSource":"pray-tools","instanceId":"research-dashboard-research-dashboard","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"research-dashboard","dataSource":"pray-tools","instanceId":"research-dashboard-research-dashboard","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("research-dashboard-map"); var el = document.createElement("research-dashboard-map");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"template-map-a","dataSource":"pray-tools","instanceId":"template-bundle-template-map-a","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"template-map-a","dataSource":"pray-tools","instanceId":"template-bundle-template-map-a","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("template-bundle"); var el = document.createElement("template-bundle");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.

View file

@ -46,6 +46,8 @@
var slot = document.getElementById('slot'); var slot = document.getElementById('slot');
var status = document.getElementById('status'); var status = document.getElementById('status');
var BASE_CONFIG = {"profile":"template-map-b","dataSource":"pray-tools","instanceId":"template-bundle-template-map-b","assetsBase":"../../../assets","qa":true}; var BASE_CONFIG = {"profile":"template-map-b","dataSource":"pray-tools","instanceId":"template-bundle-template-map-b","assetsBase":"../../../assets","qa":true};
// MapLibre pages need NO token: the ladder below is skipped entirely.
var TOKEN_FREE = false;
var TOKEN_SRC = "/api/maps/token.json"; var TOKEN_SRC = "/api/maps/token.json";
var BAKED_TOKEN = ""; var BAKED_TOKEN = "";
var DEFAULT_TOKEN_URL = '/api/maps/token'; var DEFAULT_TOKEN_URL = '/api/maps/token';
@ -70,9 +72,9 @@
function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } } function done() { if (status && status.parentNode) { status.parentNode.removeChild(status); } }
function mount(token) { function mount(token) {
if (!token) { return askToken(); } if (!token && !TOKEN_FREE) { return askToken(); }
try { try {
var cfg = Object.assign({}, BASE_CONFIG, { tk: token }); var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
var el = document.createElement("template-bundle"); var el = document.createElement("template-bundle");
el.setAttribute('profile-config', JSON.stringify(cfg)); el.setAttribute('profile-config', JSON.stringify(cfg));
slot.innerHTML = ''; slot.innerHTML = '';
@ -100,6 +102,7 @@
var urlTk = qp('tk'); var urlTk = qp('tk');
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} } if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN; var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
if (TOKEN_FREE) { return mount(''); }
if (directToken) { return mount(directToken); } if (directToken) { return mount(directToken); }
// Rungs 4-6: resolve a token endpoint and fetch it. // Rungs 4-6: resolve a token endpoint and fetch it.