Merge main: rebuild what the incoming source requires
This commit is contained in:
commit
6cb61caa62
72 changed files with 1025 additions and 436 deletions
|
|
@ -35,6 +35,10 @@ const PORT = Number(process.env.PORT || 5399)
|
|||
const BASE = process.env.BASE_URL || ('http://127.0.0.1:' + PORT)
|
||||
const LOCALES = (process.env.LOCALES || 'ar,zh,ru,hi').split(',')
|
||||
const LEAVES = ['resources-map', 'resources-list', 'data-tables', 'charts']
|
||||
/* The eight values the links table's Type column actually carries. Listed so the positive arm
|
||||
asks about the enumerated column and nothing else; it is checked against the data below. */
|
||||
const TYPE_VALUES = new Set(['Scripture', 'Film', 'Audio Scripture', 'Bible video',
|
||||
'Discipleship training', 'Bible Stories', 'Gospel presentation', 'Gospel audio'])
|
||||
|
||||
let srv = null
|
||||
if (!process.env.BASE_URL) srv = serveReaped(resolve(REPO, 'public'), PORT)
|
||||
|
|
@ -48,6 +52,7 @@ try {
|
|||
browser = await chromium.launch()
|
||||
const en = Object.fromEntries(flat(cat('en')))
|
||||
const leaks = []
|
||||
const unmeasured = []
|
||||
let compared = 0
|
||||
|
||||
for (const leaf of LEAVES) {
|
||||
|
|
@ -77,26 +82,95 @@ try {
|
|||
* leak is a label that EQUALS the English value when a different translated value
|
||||
* exists. That is the same population a translated key is supposed to reach, and a
|
||||
* language name can no longer impersonate one. */
|
||||
/* ═══ THE ROOT'S dir IS THE LOCALE, NOT A PROSE DECLARATION — fourth correction ═════
|
||||
* The rule above ("English prose declares itself with dir=ltr") is right about the
|
||||
* PROSE and wrong about the ROOT, and that made this gate blind in every left-to-right
|
||||
* locale it was pointed at.
|
||||
*
|
||||
* The embedded-RTL fix sets direction on the plugin's OWN root element, as it should —
|
||||
* dir="rtl" under ar, dir="ltr" under zh, ru, hi and en. So under ar the root was not
|
||||
* prose and the walk ran normally; under every other locale the root itself matched the
|
||||
* prose test and the ENTIRE leaf was skipped as declared-English.
|
||||
* MEASURED on data-tables: identical DOM in both locales — 1,359 elements walked, 589
|
||||
* carrying their own text. Under ar, 1 element sat in a prose subtree. Under zh, all
|
||||
* 1,359 did, and the gate collected nothing.
|
||||
*
|
||||
* It then reported that silence as "rendered no labels at all", which reads as a product
|
||||
* failure. It is not: the zh leaf renders correctly, Chinese title and all — confirmed by
|
||||
* screenshot. This gate could only ever see Arabic, and said nothing about it.
|
||||
*
|
||||
* Prose is always marked INSIDE the leaf (a <p class="gm-note">, a caveat <div>, an
|
||||
* explanatory <span>); the root carries the locale's base direction and nothing else. So
|
||||
* dir is honoured below the root and ignored on it. */
|
||||
const labels = await page.evaluate(() => {
|
||||
const sr = document.querySelector('gospel-resources-map')?.shadowRoot
|
||||
if (!sr) return []
|
||||
const out = new Set()
|
||||
const walk = (node, inProse) => {
|
||||
/* ═══ A TABLE CELL IS DATA, NOT CHROME — fifth correction ════════════════════════
|
||||
* This gate's own heading says it reads the CHROME. Table cells are the data, and
|
||||
* judging them produced two false findings that were each a real English string
|
||||
* sitting exactly where it belongs:
|
||||
* · Source cells hold ORGANISATION names — "JESUS Film", "Faith Comes By Hearing",
|
||||
* "Door43". Proper nouns; translating them would be the defect.
|
||||
* · Scope cells describe what a resource CONTAINS, and one of the 114 distinct
|
||||
* values is the words "Full Bible". Most of the rest are already in the target
|
||||
* language ("27 parts, Matta to Lwaḥi"), which is what a scope column should be.
|
||||
* Whole-label equality was supposed to stop data impersonating a label, and it stops
|
||||
* a label impersonating a WORD, which is a different thing. A cell whose entire text
|
||||
* equals an English term is indistinguishable from chrome by text alone — so the
|
||||
* boundary has to be structural, and the DOM already draws it.
|
||||
* The enumerated Type column is still covered, by the positive arm below: it is the
|
||||
* one cell column that carries catalogue labels rather than data. */
|
||||
const walk = (node, inProse, depth) => {
|
||||
for (const child of node.childNodes) {
|
||||
if (child.nodeType !== 1) continue
|
||||
if (child.tagName === 'STYLE' || child.tagName === 'SCRIPT') continue
|
||||
const prose = inProse || (child.getAttribute && child.getAttribute('dir') === 'ltr')
|
||||
if (child.classList && child.classList.contains('tabulator-cell')) continue
|
||||
const declares = depth > 0 && child.getAttribute && child.getAttribute('dir') === 'ltr'
|
||||
const prose = inProse || declares
|
||||
const own = [...child.childNodes].filter((n) => n.nodeType === 3)
|
||||
.map((n) => n.textContent.trim()).filter(Boolean).join(' ').trim()
|
||||
if (own && !prose) out.add(own)
|
||||
walk(child, prose)
|
||||
walk(child, prose, depth + 1)
|
||||
}
|
||||
}
|
||||
walk(sr, false)
|
||||
walk(sr, false, 0)
|
||||
return [...out]
|
||||
})
|
||||
/* ═══ THE TYPE COLUMN, THE ONE CELL COLUMN THAT CARRIES CATALOGUE LABELS ═════════
|
||||
* Cells are excluded from the chrome walk above, so Type needs its own arm — it is the
|
||||
* only column whose values are labels the catalogue translates rather than data.
|
||||
*
|
||||
* ⚠ ASKED THE OTHER WAY ROUND FIRST, AND THAT WAS WRONG. Requiring every translated
|
||||
* type to be PRESENT failed on res.gospelAudio in all four locales: 1,027 rows carry
|
||||
* "Gospel audio" and none of them was on the first page of fifty. The gate was reporting
|
||||
* pagination as a translation defect.
|
||||
* So it asks the answerable question instead — no cell may equal one of the eight
|
||||
* ENUMERATED type strings when a translation exists. A type that is off-screen is
|
||||
* silent, which is correct; a type that is on-screen and English fails.
|
||||
* Restricted to those eight, which is what makes it safe next to the columns that
|
||||
* legitimately hold English: "JESUS Film" and "Full Bible" are a Source name and a Scope
|
||||
* description, and neither is one of the eight. */
|
||||
const typeCells = await page.evaluate(() => {
|
||||
const sr = document.querySelector('gospel-resources-map')?.shadowRoot
|
||||
if (!sr) return []
|
||||
return [...new Set([...sr.querySelectorAll('.tabulator-cell')].map((c) => c.textContent.trim()))]
|
||||
})
|
||||
if (leaf === 'data-tables') {
|
||||
if (!typeCells.length) unmeasured.push(leaf + ' ' + lc + ': no table cells rendered')
|
||||
const seen = new Set(typeCells)
|
||||
for (const [k, e] of Object.entries(en)) {
|
||||
if (!k.startsWith('res.') || !TYPE_VALUES.has(e)) continue
|
||||
const t = loc[k]
|
||||
if (!t || t === e) continue
|
||||
if (seen.has(e)) leaks.push(leaf + ' ' + lc + ' ' + k + ': the Type column still reads English "' + e + '"')
|
||||
}
|
||||
}
|
||||
await page.close()
|
||||
if (!labels.length) { leaks.push(leaf + ' ' + lc + ': rendered no labels at all'); continue }
|
||||
/* Silence is NOT MEASURED, never a leak: it means this gate could not see the leaf, which
|
||||
is a different thing from the leaf being wrong. Reporting it as a leak is what sent me
|
||||
looking for a rendering bug that did not exist. */
|
||||
if (!labels.length) { unmeasured.push(leaf + ' ' + lc + ': the walk collected no labels'); continue }
|
||||
const labelSet = new Set(labels)
|
||||
for (const [key, e] of Object.entries(en)) {
|
||||
const t = loc[key]
|
||||
|
|
@ -108,6 +182,12 @@ try {
|
|||
}
|
||||
|
||||
console.log(' compared ' + compared + ' key/locale pair(s) across ' + LEAVES.length + ' leaves and ' + LOCALES.length + ' locales')
|
||||
/* Reported before the verdict and separately from it: a leaf this gate could not read is not
|
||||
a leaf that passed, and the two must never be added together. */
|
||||
if (unmeasured.length) {
|
||||
console.error('GOSPEL-ENGLISH-LEAKS: NOT MEASURED — ' + unmeasured.length + ' leaf/locale pair(s):')
|
||||
for (const u of unmeasured) console.error(' ' + u)
|
||||
}
|
||||
if (leaks.length) {
|
||||
/* exitCode, NOT process.exit(). process.exit() terminates before pending stdout/stderr
|
||||
writes flush, and this gate proved it on itself: its first real run returned 1 with
|
||||
|
|
@ -116,8 +196,13 @@ try {
|
|||
console.error('GOSPEL-ENGLISH-LEAKS: FAIL — ' + leaks.length + ' translated key(s) rendering in English:')
|
||||
for (const l of leaks.slice(0, 12)) console.error(' ' + l)
|
||||
process.exitCode = 1
|
||||
} else if (unmeasured.length) {
|
||||
console.error('GOSPEL-ENGLISH-LEAKS: NOT MEASURED — no leak found, but ' + unmeasured.length +
|
||||
' pair(s) were never read, so this is not a pass.')
|
||||
process.exitCode = 2
|
||||
} else {
|
||||
console.log('GOSPEL-ENGLISH-LEAKS: PASS — every key with a translation renders in it.')
|
||||
console.log('GOSPEL-ENGLISH-LEAKS: PASS — every key with a translation renders in it, ' +
|
||||
'across ' + LEAVES.length + ' leaves and ' + LOCALES.length + ' locales.')
|
||||
}
|
||||
} finally {
|
||||
await browser?.close()
|
||||
|
|
|
|||
|
|
@ -38,7 +38,15 @@ import { fileURLToPath } from 'node:url'
|
|||
const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..')
|
||||
const PORT = Number(process.env.RTL_SHAPE_PORT || 5393)
|
||||
const POISON = process.argv.includes('--poison')
|
||||
const LEAF = 'doxa-maps/gospel-resources/resources-map/index.html'
|
||||
// ⚠ PARAMETERISED, not forked. dx-shepherd routed this gate to the other RAW-map owners
|
||||
// (cities-internet, key-cities, upg-100-list, RegionCountryMap) — copying it would give each of
|
||||
// them their own drifting copy of the pan-first logic and the poison arm, which are the two parts
|
||||
// that took corrections to get right. The leaf is the only thing that differs.
|
||||
// node internal/check-gospel-rtl-shaping.mjs [--poison] [--leaf doxa-maps/<bundle>/<profile>/index.html]
|
||||
const leafArg = process.argv.indexOf('--leaf')
|
||||
const LEAF = (leafArg > -1 && process.argv[leafArg + 1])
|
||||
|| process.env.RTL_SHAPE_LEAF
|
||||
|| 'doxa-maps/gospel-resources/resources-map/index.html'
|
||||
/* Arabia: the densest concentration of rendered Arabic on the basemap. */
|
||||
const RTL_VIEW = { center: [39.2, 24.5], zoom: 5 }
|
||||
|
||||
|
|
|
|||
|
|
@ -126,9 +126,27 @@ for (const t of TARGETS) {
|
|||
// EXCLUDED BY THE COUNT, NOT BY THE CLASS: a rail row that reports a tally is
|
||||
// enumerating data. Excluding .fr-lbl wholesale would also blind this to the rail's
|
||||
// own section headings, which ARE chrome and SHOULD be caught.
|
||||
const isFacetValue = /\bfr-(lbl|cnt|bar|sw)\b/.test(cls)
|
||||
&& !!child.parentElement?.querySelector?.('.fr-cnt')
|
||||
const skip = excluded || isData || isFacetValue
|
||||
// ⚠ AND THE SAME SHAPE APPEARS IN THE CHART LEGEND AND THE BAR LABELS — the third
|
||||
// false finding, which is why this is now a RULE rather than a third special case.
|
||||
// Tracing the gate's own walk (rather than re-scanning the page, which kept showing
|
||||
// me the facet hits I had already excluded) found the survivors in .rd-lt inside
|
||||
// .rd-li and .rd-bl inside .rd-bar. DashboardChartsRail.vue renders
|
||||
// `<span class="rd-lt">{{ s.key }}</span><b>{{ s.value }}</b>` over chart.geometry:
|
||||
// a DATA KEY beside its VALUE, exactly like the facet rail's label beside its count.
|
||||
//
|
||||
// THE GENERAL RULE: an element whose own text sits beside a sibling rendering a
|
||||
// NUMBER is enumerating data, not naming the UI. A legend entry, a facet row and a
|
||||
// bar label are all the same thing wearing different class names, and chasing them
|
||||
// one class at a time is how I got this wrong three times.
|
||||
// Section headings and column titles have no numeric sibling, so they stay in scope.
|
||||
const numericSibling = (() => {
|
||||
const sibs = child.parentElement ? [...child.parentElement.children] : []
|
||||
return sibs.some((s) => s !== child
|
||||
&& /^[\d,.\s%]+$/.test((s.textContent || '').trim())
|
||||
&& (s.textContent || '').trim().length > 0)
|
||||
})()
|
||||
const isEnumeratedValue = numericSibling
|
||||
const skip = excluded || isData || isEnumeratedValue
|
||||
|| (child.getAttribute && child.getAttribute('dir') === 'ltr')
|
||||
const own = [...child.childNodes].filter((n) => n.nodeType === 3)
|
||||
.map((n) => n.textContent.trim()).filter(Boolean).join(' ').trim()
|
||||
|
|
|
|||
155
internal/check-raw-map-rtl-shaping.mjs
Normal file
155
internal/check-raw-map-rtl-shaping.mjs
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
#!/usr/bin/env node
|
||||
/**
|
||||
* check-raw-map-rtl-shaping — the RAW maps (built with `new gl.Map`, not useMapInstance) must
|
||||
* shape Arabic, Hebrew and Persian place names.
|
||||
*
|
||||
* gospel's check-gospel-rtl-shaping.mjs (b9dd5545) established the method on resources-map; this
|
||||
* is the same gate for the other raw maps: cities-internet/connectivity-map (both engines) and
|
||||
* key-cities/cities-map (Mapbox-only; gated, so it has no leaf page and is mounted on a
|
||||
* same-origin host page). Read that file's header for the full reasoning; the load-bearing parts:
|
||||
*
|
||||
* - WHY IT MATTERS TO EVERYONE: these maps do not localise basemap labels, so each place is drawn
|
||||
* in its OWN script. Over the Middle East most labels are Arabic/Persian/Hebrew for EVERY
|
||||
* viewer in every UI language. Unshaped = disconnected glyphs in the wrong order.
|
||||
* - IT PANS FIRST: the shaper registers lazily and reads 'deferred' at a world view. Only after
|
||||
* RTL labels are really on screen does 'loaded' mean they went through the shaper. No RTL label
|
||||
* on screen is NOT MEASURED, never PASS.
|
||||
* - ONE property definition per engine global does both the map hook and the poison: two
|
||||
* addInitScript defineProperty calls on one global silently replace each other.
|
||||
*
|
||||
* WHY THE FIX HAS TO BE IN THE MAP, NOT THE ENTRY: bundle entries used to call setRTLTextPlugin at
|
||||
* load time, which only worked because every leaf <head> preloaded mapbox-gl.js. The engine is now
|
||||
* injected lazily (ensureEngineScript), after the entry has run, so the call has to follow the
|
||||
* engine global and precede `new gl.Map`: installRtlTextPlugin(gl) from library/maps/rtl-text.js.
|
||||
*
|
||||
* --poison neuters setRTLTextPlugin in the page (the real pre-fix state) and must be caught on
|
||||
* every measured row. Exit: 0 pass · 1 fail · 2 not measured.
|
||||
*/
|
||||
import { chromium } from 'playwright'
|
||||
import { serveReaped } from './_serve-reaped.mjs'
|
||||
import { TREE_NAME } from './_tree-name.mjs'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import { resolve, dirname } from 'node:path'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
|
||||
const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..')
|
||||
const PORT = Number(process.env.RTL_RAW_PORT || 5394)
|
||||
const POISON = process.argv.includes('--poison')
|
||||
const TK = process.env.MAPBOX_TOKEN || JSON.parse(readFileSync(resolve(ROOT, 'vite.doxa-maps-build-config.json'), 'utf8')).token || ''
|
||||
const BASE = `http://127.0.0.1:${PORT}/${TREE_NAME}`
|
||||
/* Arabia: the densest concentration of rendered Arabic on the basemap. */
|
||||
const RTL_VIEW = { center: [39.2, 24.5], zoom: 5 }
|
||||
|
||||
const HOST_PATH = `${TREE_NAME}/key-cities/__rtl-host.html`
|
||||
const TARGETS = [
|
||||
...['mapbox', 'maplibre'].map((provider) => ({
|
||||
name: 'cities-internet', provider,
|
||||
url: `${BASE}/cities-internet/connectivity-map/index.html?provider=${provider}&lang=ar` + (provider === 'mapbox' ? `&tk=${TK}` : ''),
|
||||
})),
|
||||
{ name: 'key-cities', provider: 'mapbox', url: `http://127.0.0.1:${PORT}/${HOST_PATH}`, host: true },
|
||||
]
|
||||
const HOST_HTML = `<!DOCTYPE html><html lang="ar"><head><meta charset="utf-8"></head><body style="margin:0">
|
||||
<script src="/${TREE_NAME}/key-cities/key-cities.js"></script>
|
||||
<key-cities-map profile-config='{"profile":"cities-map","tk":"${TK}","lang":"ar"}' style="display:block;height:800px"></key-cities-map>
|
||||
</body></html>`
|
||||
|
||||
const srv = serveReaped(resolve(ROOT, 'public'), PORT)
|
||||
await new Promise((r) => setTimeout(r, 2500))
|
||||
const browser = await chromium.launch({
|
||||
args: ['--use-gl=angle', '--use-angle=swiftshader', '--enable-unsafe-swiftshader'],
|
||||
})
|
||||
|
||||
const INSTALL = (poison) => {
|
||||
const define = (name) => {
|
||||
let v
|
||||
Object.defineProperty(window, name, {
|
||||
configurable: true,
|
||||
get: () => v,
|
||||
set: (g) => {
|
||||
v = g
|
||||
if (!g) return
|
||||
if (poison && g.setRTLTextPlugin) g.setRTLTextPlugin = () => {}
|
||||
if (g.Map && !g.__hooked) {
|
||||
g.__hooked = true
|
||||
const Orig = g.Map
|
||||
g.Map = function (...a) { const m = new Orig(...a); window.__MAP = m; return m }
|
||||
g.Map.prototype = Orig.prototype
|
||||
Object.setPrototypeOf(g.Map, Orig)
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
define('mapboxgl'); define('maplibregl')
|
||||
}
|
||||
|
||||
const results = []
|
||||
for (const t of TARGETS) {
|
||||
const page = await browser.newPage({ viewport: { width: 1280, height: 800 } })
|
||||
await page.addInitScript(INSTALL, POISON)
|
||||
if (t.host) await page.route(/__rtl-host\.html/, (r) => r.fulfill({ contentType: 'text/html', body: HOST_HTML }))
|
||||
let r
|
||||
try {
|
||||
await page.goto(t.url, { waitUntil: 'networkidle', timeout: 90000 })
|
||||
await page.waitForTimeout(8000)
|
||||
r = await page.evaluate(async (view) => {
|
||||
const m = window.__MAP
|
||||
if (!m) return { err: 'the page never constructed a map' }
|
||||
const sleep = (ms) => new Promise((res) => setTimeout(res, ms))
|
||||
// Wait for the style before moving: an unloaded style answers ZERO features.
|
||||
for (let i = 0; i < 60 && !m.isStyleLoaded(); i++) await sleep(500)
|
||||
m.jumpTo(view)
|
||||
await new Promise((res) => { m.once('idle', res); setTimeout(res, 15000) })
|
||||
let names = []
|
||||
for (let i = 0; i < 30; i++) {
|
||||
names = m.queryRenderedFeatures()
|
||||
.filter((f) => f.layer && f.layer.type === 'symbol')
|
||||
.map((f) => String((f.properties && (f.properties.name || f.properties.name_en)) || ''))
|
||||
.filter(Boolean)
|
||||
if (names.some((n) => /[-ۿݐ-ݿ-]/.test(n))) break
|
||||
await sleep(1000)
|
||||
}
|
||||
// the engine that built THIS map, not whichever global happens to exist
|
||||
const g = (window.maplibregl && m instanceof window.maplibregl.Map) ? window.maplibregl : window.mapboxgl
|
||||
return {
|
||||
rtl: names.filter((n) => /[-ۿݐ-ݿ-]/.test(n)),
|
||||
symbols: names.length,
|
||||
status: g && g.getRTLTextPluginStatus ? g.getRTLTextPluginStatus() : 'NO STATUS API',
|
||||
}
|
||||
}, RTL_VIEW)
|
||||
} catch (e) {
|
||||
r = { err: String(e.message).slice(0, 90) }
|
||||
}
|
||||
await page.close()
|
||||
results.push({ ...t, ...r })
|
||||
}
|
||||
await browser.close()
|
||||
srv.stop()
|
||||
|
||||
let bad = 0, unmeasured = 0
|
||||
for (const r of results) {
|
||||
const tag = `${r.name} ${r.provider}`
|
||||
if (r.err) { console.error(` ${tag}: NOT MEASURED — ${r.err}`); unmeasured++; continue }
|
||||
if (!r.rtl.length) {
|
||||
console.error(` ${tag}: NOT MEASURED — no RTL label rendered at the test view (${r.symbols} symbols); the gate cannot see the defect here.`)
|
||||
unmeasured++; continue
|
||||
}
|
||||
const sample = r.rtl.slice(0, 3).join(', ')
|
||||
if (r.status !== 'loaded') {
|
||||
console.error(` ${tag}: FAIL — ${r.rtl.length} RTL labels on screen (${sample}) but the shaper is '${r.status}'. These labels are drawn unshaped.`)
|
||||
bad++; continue
|
||||
}
|
||||
console.log(` ok ${tag} — ${r.rtl.length}/${r.symbols} rendered labels are RTL (${sample}), shaper loaded`)
|
||||
}
|
||||
const measured = results.length - unmeasured
|
||||
if (POISON) {
|
||||
if (unmeasured) { console.error(`RAW-RTL --poison: NOT MEASURED — ${unmeasured} row(s) had nothing to judge, so the self-test proves nothing for them.`); process.exitCode = 2 }
|
||||
else if (bad === measured) { console.log(`RAW-RTL --poison: ${bad}/${measured} rows caught with the plugin neutered.`); console.log('RAW-RTL: SELF-TEST PASS — the check fails as designed.') }
|
||||
else { console.error('RAW-RTL: SELF-TEST FAIL — a neutered shaper still passed.'); process.exitCode = 1 }
|
||||
} else if (bad) {
|
||||
console.error(`RAW-RTL: FAIL — ${bad} of ${results.length} row(s) draw RTL place names unshaped.`)
|
||||
console.error(' Fix: installRtlTextPlugin(gl) from library/maps/rtl-text.js, right after the engine global')
|
||||
console.error(' resolves and BEFORE new gl.Map.')
|
||||
process.exitCode = 1
|
||||
} else if (unmeasured) {
|
||||
console.error(`RAW-RTL: NOT MEASURED — ${unmeasured} of ${results.length} row(s) could not be judged.`); process.exitCode = 2
|
||||
} else console.log(`RAW-RTL: PASS — cities-internet (both engines) and key-cities shape RTL place names.`)
|
||||
|
|
@ -33,6 +33,7 @@
|
|||
|
||||
import { ref, readonly } from 'vue';
|
||||
import { computeLayout } from './usePosterLayout.js';
|
||||
import { engineFor } from '../useMapProvider.js';
|
||||
|
||||
const MAX_SINGLE_CANVAS = 4096; // WebGL safe ceiling for most hardware
|
||||
const TILE_PX = 2048; // tile size for stitch path
|
||||
|
|
@ -370,7 +371,7 @@ async function _spawnHiddenMap(sourceMap, w, h, opts = {}) {
|
|||
// eslint-disable-next-line no-undef
|
||||
const W = (typeof window !== 'undefined' ? window : {});
|
||||
const isMaplibre = !!W.maplibregl && sourceMap instanceof W.maplibregl.Map;
|
||||
const gl = isMaplibre ? W.maplibregl : W.mapboxgl;
|
||||
const gl = engineFor(sourceMap); // the one per-instance helper (useMapProvider.js)
|
||||
if (!gl) throw new Error('useMapPoster: ' + (isMaplibre ? 'maplibregl' : 'mapboxgl') + ' global not found');
|
||||
|
||||
const styleObj = sourceMap.getStyle();
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
// Import Vue functions from NPM package
|
||||
import { ref, inject } from 'vue';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { engineFor } from './useMapProvider.js';
|
||||
|
||||
/**
|
||||
* useMapEvents composable - manages Mapbox layer event handlers
|
||||
|
|
@ -245,7 +246,7 @@ export function useMapEvents(options = {}) {
|
|||
}
|
||||
|
||||
// Fallback: show popup (for non-prayer legend types)
|
||||
new mapboxgl.Popup({
|
||||
new (engineFor(map).Popup)({
|
||||
maxWidth: '320px',
|
||||
className: 'people-group-popup'
|
||||
})
|
||||
|
|
@ -290,7 +291,7 @@ export function useMapEvents(options = {}) {
|
|||
if (e.features && e.features.length > 0) {
|
||||
const properties = e.features[0].properties;
|
||||
|
||||
new mapboxgl.Popup()
|
||||
new (engineFor(map).Popup)()
|
||||
.setLngLat(e.lngLat)
|
||||
.setHTML(generateRegionPopupContent(properties))
|
||||
.addTo(map);
|
||||
|
|
|
|||
|
|
@ -61,6 +61,28 @@ export function isMapboxMap(map) {
|
|||
return typeof window !== 'undefined' && !!window.mapboxgl && map instanceof window.mapboxgl.Map
|
||||
}
|
||||
|
||||
/**
|
||||
* The engine namespace that built THIS map: window.maplibregl or window.mapboxgl. Use it for
|
||||
* everything constructed alongside a map (Marker, Popup, a second Map, controls) instead of
|
||||
* the bare `mapboxgl` global.
|
||||
*
|
||||
* ★ WHY. Every generated leaf <head> used to load mapbox-gl.js statically, whatever the provider,
|
||||
* so a bare `new mapboxgl.Popup()` always found a global, even on a MapLibre map (where it
|
||||
* built a MAPBOX popup and attached it to a MapLibre map). Removing that static peer (a visitor-IP
|
||||
* leak to api.mapbox.com under MapLibre) turns each of those into a ReferenceError on the first
|
||||
* pin select or click, and the poster's hidden map into 'mapboxgl global not found'.
|
||||
* Asking the MAP which engine it is removes the dependency on what else the page loaded.
|
||||
* @param {object} map the live map instance
|
||||
* @returns {object|undefined} the engine namespace, or undefined when neither is loaded
|
||||
*/
|
||||
export function engineFor(map) {
|
||||
if (typeof window === 'undefined') return undefined
|
||||
const ml = window.maplibregl, mb = window.mapboxgl
|
||||
if (ml && ml.Map && map instanceof ml.Map) return ml
|
||||
if (mb && mb.Map && map instanceof mb.Map) return mb
|
||||
return mb || ml
|
||||
}
|
||||
|
||||
/** Mapbox-Standard-only lighting paint props, per engine. MapLibre rejects layers whose
|
||||
* paint carries unknown properties (the whole layer is dropped → invisible pins), so
|
||||
* spread this instead of writing '<kind>-emissive-strength' literally.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
// floats an animated "GO" location pin above it with a pulsing light glow.
|
||||
|
||||
import { watch, inject } from 'vue';
|
||||
import { emissivePaint, isMapboxMap } from './useMapProvider.js';
|
||||
import { emissivePaint, isMapboxMap, engineFor } from './useMapProvider.js';
|
||||
|
||||
// ─────────────────────────────────────────────
|
||||
// Constants
|
||||
|
|
@ -151,7 +151,8 @@ export function useSelectedPin(options = {}) {
|
|||
// anchor:'bottom' pins the marker's bottom edge to the lat/lng.
|
||||
// After the wrapper resize to match the SVG (43px), the bottom edge
|
||||
// IS the pin's tip — no offset compensation needed.
|
||||
_marker = new mapboxgl.Marker({
|
||||
// engineFor, not the bare `mapboxgl` global: under MapLibre there may be no Mapbox global
|
||||
_marker = new (engineFor(map).Marker)({
|
||||
element : _markerEl,
|
||||
anchor : 'bottom',
|
||||
offset : [0, 0]
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "عرض للإنجيل",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "تدريب على التلمذة",
|
||||
"jesusFilm": "فيلم يسوع"
|
||||
"jesusFilm": "فيلم يسوع",
|
||||
"audioScripture": "الكتاب المقدس الصوتي",
|
||||
"bibleStoriesPlain": "قصص الكتاب المقدس"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "لا شيء",
|
||||
|
|
@ -151,5 +153,21 @@
|
|||
"Gospel presentation": "عرض للإنجيل",
|
||||
"Countries": "البلدان",
|
||||
"People groups": "الشعوب"
|
||||
},
|
||||
"charts": {
|
||||
"scriptureAny": "الكتاب المقدس (أي نوع)",
|
||||
"fullBible": "الكتاب المقدس كاملاً",
|
||||
"newTestament": "العهد الجديد",
|
||||
"filmAny": "الفيلم (أي نوع)",
|
||||
"nothingInPools": "لا شيء في المصادر التي جرى البحث فيها",
|
||||
"nothingInPoolsLower": "لا شيء في المصادر التي جرى البحث فيها",
|
||||
"noResourceInPools": "لم يُعثر على أي مورد في المصادر التي جرى البحث فيها",
|
||||
"aResourceFound": "وُجد مورد",
|
||||
"tabCoverage": "تغطية الموارد",
|
||||
"tabGap": "أكبر الفجوات",
|
||||
"keyScripture": "الكتاب المقدس",
|
||||
"keyFilmStories": "الفيلم / القصص",
|
||||
"keyAudioEtc": "صوتيات / عرض / تدريب",
|
||||
"unresolvedCode": "رمز خارج ISO 639-3 — غير محسوم، لم يُقَس"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@
|
|||
"sections": {
|
||||
"within": "ضمن {selection}",
|
||||
"allData": "كل بيانات DOXA"
|
||||
}
|
||||
},
|
||||
"upg100Placeholder": "ابحث عن شعب أو قائمة UPG-100 أو منطقة…"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Evangeliums-Darstellung",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Jüngerschaftstraining",
|
||||
"jesusFilm": "JESUS Film"
|
||||
"jesusFilm": "JESUS Film",
|
||||
"audioScripture": "Audio-Bibeltext",
|
||||
"bibleStoriesPlain": "Bibelgeschichten"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "nichts gefunden",
|
||||
|
|
@ -151,5 +153,21 @@
|
|||
"Gospel presentation": "Evangeliums-Darstellung",
|
||||
"Countries": "Länder",
|
||||
"People groups": "Volksgruppen"
|
||||
},
|
||||
"charts": {
|
||||
"scriptureAny": "Bibeltext (beliebig)",
|
||||
"fullBible": "Vollbibel",
|
||||
"newTestament": "Neues Testament",
|
||||
"filmAny": "Film (beliebig)",
|
||||
"nothingInPools": "Nichts in den geprüften Quellen gefunden",
|
||||
"nothingInPoolsLower": "nichts in den geprüften Quellen gefunden",
|
||||
"noResourceInPools": "keine Ressource in den geprüften Quellen gefunden",
|
||||
"aResourceFound": "eine Ressource gefunden",
|
||||
"tabCoverage": "Ressourcenabdeckung",
|
||||
"tabGap": "Größte Lücken",
|
||||
"keyScripture": "Bibeltext",
|
||||
"keyFilmStories": "Film / Geschichten",
|
||||
"keyAudioEtc": "Audio / Präsentation / Schulung",
|
||||
"unresolvedCode": "Code außerhalb ISO 639-3 — ungeklärt, nicht gemessen"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@
|
|||
"languageKind": "Sprache",
|
||||
"dialect": "Dialekt",
|
||||
"religionKind": "Religion"
|
||||
}
|
||||
},
|
||||
"upg100Placeholder": "Volksgruppe, UPG-100-Liste oder Region suchen…"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Gospel presentation",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Discipleship training",
|
||||
"jesusFilm": "JESUS Film"
|
||||
"jesusFilm": "JESUS Film",
|
||||
"audioScripture": "Audio Scripture",
|
||||
"bibleStoriesPlain": "Bible Stories"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "none found",
|
||||
|
|
@ -151,5 +153,21 @@
|
|||
"Gospel presentation": "Gospel presentation",
|
||||
"Countries": "Countries",
|
||||
"People groups": "People groups"
|
||||
},
|
||||
"charts": {
|
||||
"scriptureAny": "Scripture (any)",
|
||||
"fullBible": "Full Bible",
|
||||
"newTestament": "New Testament",
|
||||
"filmAny": "Film (any)",
|
||||
"nothingInPools": "Nothing found in pools checked",
|
||||
"nothingInPoolsLower": "nothing found in pools checked",
|
||||
"noResourceInPools": "no resource found in pools checked",
|
||||
"aResourceFound": "a resource found",
|
||||
"tabCoverage": "Resource coverage",
|
||||
"tabGap": "Largest gaps",
|
||||
"keyScripture": "scripture",
|
||||
"keyFilmStories": "film / stories",
|
||||
"keyAudioEtc": "audio / presentation / training",
|
||||
"unresolvedCode": "code outside ISO 639-3 — unresolved, not measured"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@
|
|||
"sections": {
|
||||
"within": "Within {selection}",
|
||||
"allData": "All DOXA Data"
|
||||
}
|
||||
},
|
||||
"upg100Placeholder": "Search people group, UPG-100 list, or region…"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Presentación del evangelio",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Formación de discipulado",
|
||||
"jesusFilm": "Película JESÚS"
|
||||
"jesusFilm": "Película JESÚS",
|
||||
"audioScripture": "Escrituras en audio",
|
||||
"bibleStoriesPlain": "Historias bíblicas"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "nada encontrado",
|
||||
|
|
@ -151,5 +153,21 @@
|
|||
"Gospel presentation": "Presentación del evangelio",
|
||||
"Countries": "Países",
|
||||
"People groups": "Pueblos"
|
||||
},
|
||||
"charts": {
|
||||
"scriptureAny": "Escrituras (cualquiera)",
|
||||
"fullBible": "Biblia completa",
|
||||
"newTestament": "Nuevo Testamento",
|
||||
"filmAny": "Película (cualquiera)",
|
||||
"nothingInPools": "No se encontró nada en las fuentes consultadas",
|
||||
"nothingInPoolsLower": "no se encontró nada en las fuentes consultadas",
|
||||
"noResourceInPools": "no se encontró ningún recurso en las fuentes consultadas",
|
||||
"aResourceFound": "se encontró un recurso",
|
||||
"tabCoverage": "Cobertura de recursos",
|
||||
"tabGap": "Mayores brechas",
|
||||
"keyScripture": "escrituras",
|
||||
"keyFilmStories": "película / historias",
|
||||
"keyAudioEtc": "audio / presentación / formación",
|
||||
"unresolvedCode": "código fuera de ISO 639-3 — sin resolver, no medido"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@
|
|||
"sections": {
|
||||
"within": "Dentro de {selection}",
|
||||
"allData": "Todos los datos DOXA"
|
||||
}
|
||||
},
|
||||
"upg100Placeholder": "Buscar pueblo, lista UPG-100 o región…"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Présentation de l'Évangile",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Formation au discipulat",
|
||||
"jesusFilm": "Film JÉSUS"
|
||||
"jesusFilm": "Film JÉSUS",
|
||||
"audioScripture": "Écritures en audio",
|
||||
"bibleStoriesPlain": "Histoires bibliques"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "rien trouvé",
|
||||
|
|
@ -151,5 +153,21 @@
|
|||
"Gospel presentation": "Présentation de l'Évangile",
|
||||
"Countries": "Pays",
|
||||
"People groups": "Peuples"
|
||||
},
|
||||
"charts": {
|
||||
"scriptureAny": "Écritures (toutes)",
|
||||
"fullBible": "Bible complète",
|
||||
"newTestament": "Nouveau Testament",
|
||||
"filmAny": "Film (tous)",
|
||||
"nothingInPools": "Rien trouvé dans les sources consultées",
|
||||
"nothingInPoolsLower": "rien trouvé dans les sources consultées",
|
||||
"noResourceInPools": "aucune ressource trouvée dans les sources consultées",
|
||||
"aResourceFound": "une ressource trouvée",
|
||||
"tabCoverage": "Couverture des ressources",
|
||||
"tabGap": "Plus grands écarts",
|
||||
"keyScripture": "écritures",
|
||||
"keyFilmStories": "film / histoires",
|
||||
"keyAudioEtc": "audio / présentation / formation",
|
||||
"unresolvedCode": "code hors ISO 639-3 — non résolu, non mesuré"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@
|
|||
"sections": {
|
||||
"within": "Dans {selection}",
|
||||
"allData": "Toutes les données DOXA"
|
||||
}
|
||||
},
|
||||
"upg100Placeholder": "Rechercher un peuple, une liste UPG-100 ou une région…"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "सुसमाचार प्रस्तुति",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "शिष्यत्व प्रशिक्षण",
|
||||
"jesusFilm": "यीशु फ़िल्म"
|
||||
"jesusFilm": "यीशु फ़िल्म",
|
||||
"audioScripture": "ऑडियो पवित्र शास्त्र",
|
||||
"bibleStoriesPlain": "बाइबल की कहानियाँ"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "कुछ नहीं मिला",
|
||||
|
|
@ -151,5 +153,21 @@
|
|||
"Gospel presentation": "सुसमाचार प्रस्तुति",
|
||||
"Countries": "देश",
|
||||
"People groups": "जनसमूह"
|
||||
},
|
||||
"charts": {
|
||||
"scriptureAny": "पवित्र शास्त्र (कोई भी)",
|
||||
"fullBible": "पूरी बाइबल",
|
||||
"newTestament": "नया नियम",
|
||||
"filmAny": "फ़िल्म (कोई भी)",
|
||||
"nothingInPools": "जाँचे गए स्रोतों में कुछ नहीं मिला",
|
||||
"nothingInPoolsLower": "जाँचे गए स्रोतों में कुछ नहीं मिला",
|
||||
"noResourceInPools": "जाँचे गए स्रोतों में कोई संसाधन नहीं मिला",
|
||||
"aResourceFound": "एक संसाधन मिला",
|
||||
"tabCoverage": "संसाधन कवरेज",
|
||||
"tabGap": "सबसे बड़े अंतराल",
|
||||
"keyScripture": "पवित्र शास्त्र",
|
||||
"keyFilmStories": "फ़िल्म / कहानियाँ",
|
||||
"keyAudioEtc": "ऑडियो / प्रस्तुति / प्रशिक्षण",
|
||||
"unresolvedCode": "ISO 639-3 से बाहर कोड — अनसुलझा, मापा नहीं गया"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@
|
|||
"languageKind": "भाषा",
|
||||
"dialect": "बोली",
|
||||
"religionKind": "धर्म"
|
||||
}
|
||||
},
|
||||
"upg100Placeholder": "जनसमूह, UPG-100 सूची या क्षेत्र खोजें…"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Presentazione del Vangelo",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Formazione al discepolato",
|
||||
"jesusFilm": "Film GESÙ"
|
||||
"jesusFilm": "Film GESÙ",
|
||||
"audioScripture": "Scritture in audio",
|
||||
"bibleStoriesPlain": "Storie bibliche"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "nulla trovato",
|
||||
|
|
@ -151,5 +153,21 @@
|
|||
"Gospel presentation": "Presentazione del Vangelo",
|
||||
"Countries": "Paesi",
|
||||
"People groups": "Popoli"
|
||||
},
|
||||
"charts": {
|
||||
"scriptureAny": "Scritture (qualsiasi)",
|
||||
"fullBible": "Bibbia completa",
|
||||
"newTestament": "Nuovo Testamento",
|
||||
"filmAny": "Film (qualsiasi)",
|
||||
"nothingInPools": "Nulla trovato nelle fonti controllate",
|
||||
"nothingInPoolsLower": "nulla trovato nelle fonti controllate",
|
||||
"noResourceInPools": "nessuna risorsa trovata nelle fonti controllate",
|
||||
"aResourceFound": "una risorsa trovata",
|
||||
"tabCoverage": "Copertura delle risorse",
|
||||
"tabGap": "Lacune maggiori",
|
||||
"keyScripture": "scritture",
|
||||
"keyFilmStories": "film / storie",
|
||||
"keyAudioEtc": "audio / presentazione / formazione",
|
||||
"unresolvedCode": "codice fuori ISO 639-3 — non risolto, non misurato"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@
|
|||
"languageKind": "Lingua",
|
||||
"dialect": "Dialetto",
|
||||
"religionKind": "Religione"
|
||||
}
|
||||
},
|
||||
"upg100Placeholder": "Cerca popolo, elenco UPG-100 o regione…"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Apresentação do evangelho",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Treinamento de discipulado",
|
||||
"jesusFilm": "Filme JESUS"
|
||||
"jesusFilm": "Filme JESUS",
|
||||
"audioScripture": "Escrituras em áudio",
|
||||
"bibleStoriesPlain": "Histórias bíblicas"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "nada encontrado",
|
||||
|
|
@ -151,5 +153,21 @@
|
|||
"Gospel presentation": "Apresentação do evangelho",
|
||||
"Countries": "Países",
|
||||
"People groups": "Povos"
|
||||
},
|
||||
"charts": {
|
||||
"scriptureAny": "Escrituras (qualquer)",
|
||||
"fullBible": "Bíblia completa",
|
||||
"newTestament": "Novo Testamento",
|
||||
"filmAny": "Filme (qualquer)",
|
||||
"nothingInPools": "Nada encontrado nas fontes consultadas",
|
||||
"nothingInPoolsLower": "nada encontrado nas fontes consultadas",
|
||||
"noResourceInPools": "nenhum recurso encontrado nas fontes consultadas",
|
||||
"aResourceFound": "um recurso encontrado",
|
||||
"tabCoverage": "Cobertura de recursos",
|
||||
"tabGap": "Maiores lacunas",
|
||||
"keyScripture": "escrituras",
|
||||
"keyFilmStories": "filme / histórias",
|
||||
"keyAudioEtc": "áudio / apresentação / treinamento",
|
||||
"unresolvedCode": "código fora da ISO 639-3 — não resolvido, não medido"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@
|
|||
"sections": {
|
||||
"within": "Dentro de {selection}",
|
||||
"allData": "Todos os dados DOXA"
|
||||
}
|
||||
},
|
||||
"upg100Placeholder": "Procurar povo, lista UPG-100 ou região…"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Prezentarea Evangheliei",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Instruire în ucenicie",
|
||||
"jesusFilm": "Filmul ISUS"
|
||||
"jesusFilm": "Filmul ISUS",
|
||||
"audioScripture": "Scripturi audio",
|
||||
"bibleStoriesPlain": "Povestiri biblice"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "nimic găsit",
|
||||
|
|
@ -151,5 +153,21 @@
|
|||
"Gospel presentation": "Prezentarea Evangheliei",
|
||||
"Countries": "Țări",
|
||||
"People groups": "Popoare"
|
||||
},
|
||||
"charts": {
|
||||
"scriptureAny": "Scripturi (oricare)",
|
||||
"fullBible": "Biblia completă",
|
||||
"newTestament": "Noul Testament",
|
||||
"filmAny": "Film (oricare)",
|
||||
"nothingInPools": "Nimic găsit în sursele verificate",
|
||||
"nothingInPoolsLower": "nimic găsit în sursele verificate",
|
||||
"noResourceInPools": "nicio resursă găsită în sursele verificate",
|
||||
"aResourceFound": "o resursă găsită",
|
||||
"tabCoverage": "Acoperirea resurselor",
|
||||
"tabGap": "Cele mai mari lacune",
|
||||
"keyScripture": "scripturi",
|
||||
"keyFilmStories": "film / povestiri",
|
||||
"keyAudioEtc": "audio / prezentare / instruire",
|
||||
"unresolvedCode": "cod în afara ISO 639-3 — nerezolvat, nemăsurat"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@
|
|||
"languageKind": "Limbă",
|
||||
"dialect": "Dialect",
|
||||
"religionKind": "Religie"
|
||||
}
|
||||
},
|
||||
"upg100Placeholder": "Caută popor, listă UPG-100 sau regiune…"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Изложение Евангелия",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Обучение ученичеству",
|
||||
"jesusFilm": "Фильм «Иисус»"
|
||||
"jesusFilm": "Фильм «Иисус»",
|
||||
"audioScripture": "Аудио с Писанием",
|
||||
"bibleStoriesPlain": "Библейские истории"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "ничего не найдено",
|
||||
|
|
@ -151,5 +153,21 @@
|
|||
"Gospel presentation": "Изложение Евангелия",
|
||||
"Countries": "Страны",
|
||||
"People groups": "Народы"
|
||||
},
|
||||
"charts": {
|
||||
"scriptureAny": "Писание (любое)",
|
||||
"fullBible": "Полная Библия",
|
||||
"newTestament": "Новый Завет",
|
||||
"filmAny": "Фильм (любой)",
|
||||
"nothingInPools": "Ничего не найдено в проверенных источниках",
|
||||
"nothingInPoolsLower": "ничего не найдено в проверенных источниках",
|
||||
"noResourceInPools": "ни одного ресурса не найдено в проверенных источниках",
|
||||
"aResourceFound": "ресурс найден",
|
||||
"tabCoverage": "Охват ресурсами",
|
||||
"tabGap": "Наибольшие пробелы",
|
||||
"keyScripture": "писание",
|
||||
"keyFilmStories": "фильм / истории",
|
||||
"keyAudioEtc": "аудио / презентация / обучение",
|
||||
"unresolvedCode": "код вне ISO 639-3 — не определён, не измерен"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@
|
|||
"sections": {
|
||||
"within": "В пределах {selection}",
|
||||
"allData": "Все данные DOXA"
|
||||
}
|
||||
},
|
||||
"upg100Placeholder": "Поиск народа, списка UPG-100 или региона…"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "福音简介",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "门徒训练",
|
||||
"jesusFilm": "《耶稣传》"
|
||||
"jesusFilm": "《耶稣传》",
|
||||
"audioScripture": "音频圣经",
|
||||
"bibleStoriesPlain": "圣经故事"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "一无所获",
|
||||
|
|
@ -151,5 +153,21 @@
|
|||
"Gospel presentation": "福音简介",
|
||||
"Countries": "国家",
|
||||
"People groups": "族群"
|
||||
},
|
||||
"charts": {
|
||||
"scriptureAny": "圣经(任意)",
|
||||
"fullBible": "全本圣经",
|
||||
"newTestament": "新约",
|
||||
"filmAny": "影片(任意)",
|
||||
"nothingInPools": "在已检索的资源库中一无所获",
|
||||
"nothingInPoolsLower": "在已检索的资源库中一无所获",
|
||||
"noResourceInPools": "在已检索的资源库中未找到资源",
|
||||
"aResourceFound": "找到资源",
|
||||
"tabCoverage": "资源覆盖",
|
||||
"tabGap": "最大缺口",
|
||||
"keyScripture": "圣经",
|
||||
"keyFilmStories": "影片 / 故事",
|
||||
"keyAudioEtc": "音频 / 简介 / 训练",
|
||||
"unresolvedCode": "ISO 639-3 之外的代码 — 未确定,未测量"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@
|
|||
"languageKind": "语言",
|
||||
"dialect": "方言",
|
||||
"religionKind": "宗教"
|
||||
}
|
||||
},
|
||||
"upg100Placeholder": "搜索民族、UPG-100 名单或区域…"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,6 +134,8 @@
|
|||
"check:quoted-scripts": "node internal/check-quoted-scripts.mjs",
|
||||
"check:rtl-shaping": "node internal/check-gospel-rtl-shaping.mjs",
|
||||
"check:rtl-shaping:poison": "node internal/check-gospel-rtl-shaping.mjs --poison",
|
||||
"check:rtl-raw": "node internal/check-raw-map-rtl-shaping.mjs",
|
||||
"check:rtl-raw:poison": "node internal/check-raw-map-rtl-shaping.mjs --poison",
|
||||
"check:scrim-viewport": "node internal/check-scrim-covers-viewport.mjs",
|
||||
"check:scrim-viewport:self-test": "node internal/check-scrim-covers-viewport.mjs --self-test",
|
||||
"check:script-flags": "node internal/check-script-flags-reachable.mjs",
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ import { resolveAssetsBase } from '@map/utils/embedBase.js'
|
|||
import { resolveMapProvider } from '@map/composables/useMapProvider.js'
|
||||
import { ensureEngineScript, engineGlobal, ensureEngineCSS, engineStylesheetUrl } from '@map/composables/useMapInstance.js'
|
||||
import { resolveNamedStyle } from '@map/styles/registry.js'
|
||||
import { installRtlTextPlugin } from '@map/maps/rtl-text.js'
|
||||
// People-group dots open the SAME detail panel as Prayer Progress (doxa-simple-map): the
|
||||
// shared store selection, the shared GO-pin highlight, and the shared legend wrappers
|
||||
// that host PeopleGroupDetail on desktop and in the phone sheet.
|
||||
|
|
@ -278,6 +279,11 @@ onMounted(async () => {
|
|||
const gl = engineGlobal(ciProvider) || window.mapboxgl
|
||||
if (unmounted) return
|
||||
if (!gl || !mapEl.value) { err.value = 'map engine not loaded'; return }
|
||||
// RTL SHAPING, before the first map exists. This raw map does not go through useMapInstance
|
||||
// (which installs it), and the basemap draws each place in its OWN script: over the Middle East
|
||||
// most labels are Arabic, Persian or Hebrew for EVERY viewer. An entry-time call cannot do this,
|
||||
// because the engine is injected lazily, after the bundle has run.
|
||||
installRtlTextPlugin(gl)
|
||||
try {
|
||||
// The dots are a second layer, not a precondition: if the list fails, the map still shades.
|
||||
const groupsLoaded = loadGroups().catch((e) => { console.warn('[connectivity-map] people groups:', e?.message || e) })
|
||||
|
|
|
|||
|
|
@ -279,30 +279,30 @@ const C = {
|
|||
const coverage = computed(() => {
|
||||
if (!nLang.value) return []
|
||||
return [
|
||||
{ label: 'Scripture (any)', value: count((l) => l.scripture), color: C.scripture,
|
||||
{ label: tr('gospel.charts.scriptureAny'), value: count((l) => l.scripture), color: C.scripture,
|
||||
note: 'a published text translation — eBible.org, PNG.Bible or Faith Comes By Hearing' },
|
||||
{ label: '· Full Bible', value: count((l) => l.fullBible), color: C.scripture },
|
||||
{ label: '· New Testament', value: count((l) => l.nt), color: C.scripture },
|
||||
{ label: 'Film (any)', value: count((l) => l.film), color: C.film,
|
||||
{ label: '· ' + tr('gospel.charts.fullBible'), value: count((l) => l.fullBible), color: C.scripture },
|
||||
{ label: '· ' + tr('gospel.charts.newTestament'), value: count((l) => l.nt), color: C.scripture },
|
||||
{ label: tr('gospel.charts.filmAny'), value: count((l) => l.film), color: C.film,
|
||||
note: 'Arclight / JESUS Film Project' },
|
||||
{ label: '· JESUS Film', value: count((l) => l.jesusFilm), color: C.film },
|
||||
{ label: 'Open Bible Stories', value: count((l) => l.obs), color: C.film,
|
||||
{ label: '· ' + tr('gospel.res.jesusFilm'), value: count((l) => l.jesusFilm), color: C.film },
|
||||
{ label: tr('gospel.res.bibleStories'), value: count((l) => l.obs), color: C.film,
|
||||
unknown: !hasField('has_open_bible_stories'),
|
||||
unknownText: 'not measured — this build of the table has no Open Bible Stories field' },
|
||||
// NOT a zero bar. Zero known values across every language means the pool was never
|
||||
// queried, and the chart has to say that rather than draw an empty bar.
|
||||
{ label: 'Audio', unknown: !hasField('has_audio') || count((l) => l.audioKnown) === 0,
|
||||
{ label: tr('gospel.res.audio'), unknown: !hasField('has_audio') || count((l) => l.audioKnown) === 0,
|
||||
value: count((l) => l.audioKnown), color: C.found,
|
||||
unknownText: `unknown for all ${fmt(nLang.value)} — no audio pool has been searched` },
|
||||
// The GRN caveat moved to a note: audio IS measured now, and saying it is unknown
|
||||
// would be the stale-caveat mistake this bundle keeps finding.
|
||||
{ label: 'Bible video', value: count((l) => l.bibleVideo), color: C.film,
|
||||
{ label: tr('gospel.res.bibleVideo'), value: count((l) => l.bibleVideo), color: C.film,
|
||||
note: 'Faith Comes By Hearing — Bible narrative video, NOT the JESUS Film' },
|
||||
{ label: 'Gospel presentation', value: count((l) => l.tract), color: C.found,
|
||||
{ label: tr('gospel.res.gospelPresentation'), value: count((l) => l.tract), color: C.found,
|
||||
note: 'Cru / GodTools tracts on knowgod.com' },
|
||||
{ label: 'Discipleship training', value: count((l) => l.training), color: C.found,
|
||||
{ label: tr('gospel.res.training'), value: count((l) => l.training), color: C.found,
|
||||
note: 'Zume Training' },
|
||||
{ label: 'Nothing found in pools checked', value: count((l) => l.none), color: C.none,
|
||||
{ label: tr('gospel.charts.nothingInPools'), value: count((l) => l.none), color: C.none,
|
||||
note: 'not proven absent' },
|
||||
]
|
||||
})
|
||||
|
|
@ -361,19 +361,23 @@ const byCountry = computed(() => {
|
|||
.map((e) => ({
|
||||
label: e.country,
|
||||
segments: [
|
||||
{ label: 'nothing found', value: e.none, color: C.none },
|
||||
{ label: 'a resource found', value: e.total - e.none, color: C.found },
|
||||
{ label: tr('gospel.legend.tier0'), value: e.none, color: C.none },
|
||||
{ label: tr('gospel.charts.aResourceFound'), value: e.total - e.none, color: C.found },
|
||||
],
|
||||
note: `${e.none} of ${e.total} languages with nothing found in the pools checked`,
|
||||
meta: e,
|
||||
}))
|
||||
})
|
||||
|
||||
const TABS = [
|
||||
{ id: 'coverage', label: 'Resource coverage' },
|
||||
{ id: 'gap', label: 'Largest gaps' },
|
||||
{ id: 'countries', label: 'By country' },
|
||||
]
|
||||
/* COMPUTED, NOT A CONST. These labels come from the catalogue now, and a plain array is
|
||||
evaluated once at setup — the tab strip would keep whichever language the leaf first
|
||||
rendered in and never follow a locale change. The legend arrays in the template are
|
||||
re-evaluated on render, so only this one had to move. */
|
||||
const TABS = computed(() => [
|
||||
{ id: 'coverage', label: tr('gospel.charts.tabCoverage') },
|
||||
{ id: 'gap', label: tr('gospel.charts.tabGap') },
|
||||
{ id: 'countries', label: tr('gospel.tabs.countries') },
|
||||
])
|
||||
const active = ref('coverage')
|
||||
|
||||
// Clicking a bar is the drill-down seam: today it surfaces the row's own record, so a
|
||||
|
|
@ -458,12 +462,12 @@ useShadowStyles(
|
|||
unit="languages where the resource was found in the pools checked"
|
||||
:max="nLang"
|
||||
:legend="[
|
||||
{ label: 'scripture', color: C.scripture },
|
||||
{ label: 'film / stories', color: C.film },
|
||||
{ label: tr('gospel.charts.keyScripture'), color: C.scripture },
|
||||
{ label: tr('gospel.charts.keyFilmStories'), color: C.film },
|
||||
// Audio, gospel presentations and training are drawn in this green and the legend
|
||||
// never named it, so three of the eleven bars had no key at all.
|
||||
{ label: 'audio / presentation / training', color: C.found },
|
||||
{ label: 'nothing found', color: C.none },
|
||||
{ label: tr('gospel.charts.keyAudioEtc'), color: C.found },
|
||||
{ label: tr('gospel.legend.tier0'), color: C.none },
|
||||
]"
|
||||
:caveats="poolCaveats"
|
||||
@bar-click="onPick"
|
||||
|
|
@ -477,8 +481,8 @@ useShadowStyles(
|
|||
:subtitle="`The ${TOP_N} languages with no scripture and no film in the pools checked, ranked by the population of the people groups who speak them.`"
|
||||
unit="people in the people groups whose PRIMARY language this is — not speakers of the language"
|
||||
:legend="[
|
||||
{ label: 'no resource found in pools checked', color: C.none },
|
||||
{ label: 'code outside ISO 639-3 — unresolved, not measured', color: C.unresolved },
|
||||
{ label: tr('gospel.charts.noResourceInPools'), color: C.none },
|
||||
{ label: tr('gospel.charts.unresolvedCode'), color: C.unresolved },
|
||||
]"
|
||||
:caveats="[
|
||||
...poolCaveats,
|
||||
|
|
@ -495,8 +499,8 @@ useShadowStyles(
|
|||
:subtitle="`The ${TOP_N} countries with the most languages that have nothing found. Bar length is every language present in that country.`"
|
||||
unit="languages present in the country (a cross-border language counts in each)"
|
||||
:legend="[
|
||||
{ label: 'nothing found in pools checked', color: C.none },
|
||||
{ label: 'a resource found', color: C.found },
|
||||
{ label: tr('gospel.charts.nothingInPoolsLower'), color: C.none },
|
||||
{ label: tr('gospel.charts.aResourceFound'), color: C.found },
|
||||
]"
|
||||
:caveats="[
|
||||
...poolCaveats,
|
||||
|
|
|
|||
|
|
@ -153,6 +153,41 @@ const rawTable = computed(() => cache.value[current.value?.file] || null)
|
|||
const FILTERABLE = new Set(['doxa', 'links', 'nothing'])
|
||||
const table = computed(() => {
|
||||
const t = rawTable.value
|
||||
/**
|
||||
* ═══ THE COLUMN HEADINGS WERE TRANSLATED AND THE CELLS UNDER THEM WERE NOT ═══════════════
|
||||
*
|
||||
* "Type" is an ENUMERATED LABEL, not free data: every cell in it is one of eight fixed
|
||||
* values that the catalogue already translates into all eleven locales. Translating the
|
||||
* heading and leaving the column beneath it in English is the worst of both — it reads as
|
||||
* a translation that gave up halfway.
|
||||
*
|
||||
* DERIVED FROM THE CATALOGUE, NOT LISTED HERE. The map is built from EN_MESSAGES.gospel.res,
|
||||
* so a resource type added there is translated the moment it lands. A hand-written list of
|
||||
* the eight values is the same shape as the bug the surfaces gate exists for: it would be
|
||||
* one entry short the first time a ninth type appeared, and nothing would fail.
|
||||
*
|
||||
* ONLY the Type column, and only on an EXACT match. The Source column next to it holds
|
||||
* organisation names — Faith Comes By Hearing, eBible.org, Door43 — which are proper nouns
|
||||
* and stay as they are, the same decision already taken for "Open Bible Stories".
|
||||
*/
|
||||
const resValues = new Map()
|
||||
for (const [key, english] of Object.entries(EN_MESSAGES.gospel?.res || {})) {
|
||||
if (typeof english !== 'string') continue
|
||||
const v = tr('gospel.res.' + key)
|
||||
if (v && v !== 'gospel.res.' + key && v !== english) resValues.set(english, v)
|
||||
}
|
||||
const localiseValues = (tbl, rows) => {
|
||||
const typed = (tbl.columns || []).filter((c) => c.field === 'type').map((c) => c.field)
|
||||
if (!typed.length || !resValues.size) return rows
|
||||
return rows.map((r) => {
|
||||
let out = r
|
||||
for (const f of typed) {
|
||||
const hit = resValues.get(r[f])
|
||||
if (hit) out = { ...out, [f]: hit }
|
||||
}
|
||||
return out
|
||||
})
|
||||
}
|
||||
const localise = (tbl) => ({
|
||||
...tbl,
|
||||
columns: (tbl.columns || []).map((c) => {
|
||||
|
|
@ -160,6 +195,7 @@ const table = computed(() => {
|
|||
const v = tr(k)
|
||||
return v && v !== k ? { ...c, title: v } : c
|
||||
}),
|
||||
rows: localiseValues(tbl, tbl.rows || []),
|
||||
})
|
||||
if (!t || !hasFilter.value || !FILTERABLE.has(current.value?.id)) return t ? localise(t) : t
|
||||
const rows = (t.rows || []).filter((r) => {
|
||||
|
|
@ -207,7 +243,10 @@ const table = computed(() => {
|
|||
const v = tr(k)
|
||||
return v && v !== k ? { ...c, title: v } : c
|
||||
})
|
||||
return { ...t, meta: { ...t.meta, title }, columns, rows }
|
||||
/* THE FILTERED VIEW IS A SECOND PATH and it has to localise too. It builds its own columns
|
||||
and rows instead of calling localise(), so a fix applied only there leaks the moment a
|
||||
pin or a country is clicked — the state a mobiliser is actually in. */
|
||||
return { ...t, meta: { ...t.meta, title }, columns, rows: localiseValues(t, rows) }
|
||||
})
|
||||
const filterCount = computed(() => (table.value?.rows || []).length)
|
||||
const totalCount = computed(() => (rawTable.value?.rows || []).length)
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ import { labelFont } from '@map/maps/label-font.js'
|
|||
import { computed, inject, ref, shallowRef, markRaw, onMounted, onBeforeUnmount } from 'vue'
|
||||
import { useShadowStyles } from '@map/composables/useShadowStyles.js'
|
||||
import { addMapAttribution } from '@map/composables/useMapAttribution'
|
||||
import { ensureEngineScript, engineGlobal } from '@map/composables/useMapInstance.js'
|
||||
import { installRtlTextPlugin } from '@map/maps/rtl-text.js'
|
||||
import { resolveAssetsBase } from '@map/utils/embedBase.js'
|
||||
|
||||
const profileConfig = inject('profileConfig', ref(null))
|
||||
|
|
@ -131,8 +133,14 @@ function paint(map) {
|
|||
}
|
||||
|
||||
onMounted(async () => {
|
||||
const gl = window.mapboxgl
|
||||
// Load the engine rather than assume the page did: leaf <head>s no longer preload mapbox-gl.js
|
||||
// (it leaked every visitor's IP to Mapbox under provider=maplibre). This map is Mapbox-only.
|
||||
try { await ensureEngineScript('mapbox') } catch (_) {}
|
||||
const gl = engineGlobal('mapbox')
|
||||
if (!gl || !mapEl.value) { err.value = 'mapbox-gl not loaded'; return }
|
||||
// RTL SHAPING before the map exists: a raw map is not covered by useMapInstance's install, and
|
||||
// the Mapbox basemap draws Middle-East places in Arabic/Persian/Hebrew script for every viewer.
|
||||
installRtlTextPlugin(gl)
|
||||
try {
|
||||
await load()
|
||||
const map = new gl.Map({
|
||||
|
|
|
|||
|
|
@ -72,6 +72,10 @@ import ThemeToggleButton from '@map/components/map-controls/ThemeToggleButton.vu
|
|||
import GeocoderComponent from '@map/components/map-controls/GeocoderComponent.vue'
|
||||
import { resolveMapProvider } from '@map/composables/useMapProvider.js'
|
||||
import { ensureEngineScript, engineGlobal, engineStylesheetUrl } from '@map/composables/useMapInstance.js'
|
||||
// Shapes Arabic / Persian / Hebrew BASEMAP labels. A raw map inherits nothing from the bundle
|
||||
// entry, so this profile has to install it itself — see the call site below for why the entry's
|
||||
// registration only ever worked by accident.
|
||||
import { installRtlTextPlugin } from '@map/maps/rtl-text.js'
|
||||
import { resolveNamedStyle } from '@map/styles/registry.js'
|
||||
// Named imports: only the list arrays ship in the bundle; the file's bookkeeping fields stay out.
|
||||
import { lists as clusterLists, asia_lists as clusterAsiaLists, uncovered_lists as clusterUncoveredLists } from './data/clusters.json'
|
||||
|
|
@ -335,8 +339,7 @@ const LEGEND_TABS = [
|
|||
// should meet the lists first and reach for Region only to sort them.
|
||||
const LEGEND_DEFAULT_TAB = 1
|
||||
|
||||
const geocoderContext = 'people-groups'
|
||||
const geocoderPlaceholder = 'Search people group, zone, or territory…'
|
||||
const geocoderContext = 'people-groups'
|
||||
let searchIndex = [] // [{ label, kind, target, _hay }] (gate handle)
|
||||
const SEARCH_LIMIT = 8
|
||||
|
||||
|
|
@ -370,6 +373,17 @@ const { locale: packetLocale, t } = useI18n()
|
|||
// COMPUTED, not a constant: a locale change must move it. A `const` captured at setup would keep
|
||||
// the mounting language forever, which is the subtler half of the same bug.
|
||||
const LEGEND_TITLE = computed(() => t('legend.title.upg100List'))
|
||||
// ★ THE SEARCH PLACEHOLDER WAS THE LAST ENGLISH STRING ON THE ARABIC SCREEN. repo's ?lang=ar
|
||||
// screenshot was clean except for this one hardcoded literal.
|
||||
// ⚠ A computed, and declared HERE rather than beside geocoderContext, because t() is not
|
||||
// initialised until line 359 — a const at 339 would capture the fallback and never re-evaluate
|
||||
// when the locale changes.
|
||||
// NO NEW TERMINOLOGY: composed from wording this product already ships and has already approved —
|
||||
// search.kinds.peopleGroup for the group, tabs.upg100Zone for what this plugin calls a "zone"
|
||||
// (its legend names them "UPG-100 Lists" / "قوائم UPG-100" / "UPG-100 名单"), and
|
||||
// search.kinds.region for the territory. That is why this could be translated and the UUPGs
|
||||
// column header could not: there, no source existed for the acronym.
|
||||
const geocoderPlaceholder = computed(() => t('search.upg100Placeholder'))
|
||||
const DEAF_COUNT = 123
|
||||
|
||||
// Shadow-root CSS. (No backticks inside this string — a stray backtick closes the
|
||||
|
|
@ -1576,6 +1590,23 @@ onMounted(async () => {
|
|||
// Load the engine the PROVIDER selects, not the one this file used to assume.
|
||||
try { await ensureEngineScript(upgProvider) } catch (_) { /* fall through to the !gl notice below */ }
|
||||
const gl = engineGlobal(upgProvider) || window.mapboxgl
|
||||
// ★ SHAPE RTL BASEMAP LABELS — HERE, not in index.js, and not after the map exists.
|
||||
// This profile builds its map RAW (`new gl.Map` below) instead of going through
|
||||
// useMapInstance, so it inherits none of the entry's side effects. It appeared to work only
|
||||
// because the leaf head PRELOADED the Mapbox peer, which made an entry-time registration land
|
||||
// in time; studio is removing that preload, and with the engine injected lazily an index.js
|
||||
// call runs before `gl` exists and does nothing at all.
|
||||
//
|
||||
// ⚠ IT IS NOT A UI-LANGUAGE FEATURE, which is why it matters more than it looks. A basemap
|
||||
// draws each place in its OWN script, so over the Middle East, Iran and Israel MOST labels are
|
||||
// Arabic, Persian or Hebrew for EVERY viewer in EVERY UI language. Unshaped, they render
|
||||
// reversed — a WRONG NAME for exactly the groups this map is about — and it fails silently:
|
||||
// no error, no warning, just mirrored text that reads as a font problem to anyone who does not
|
||||
// know the script. Arab World and Persian-Median are both in scope here.
|
||||
//
|
||||
// Idempotent: Mapbox throws if the plugin is set twice in a session and the helper swallows it,
|
||||
// so this is safe alongside any other caller on the same page.
|
||||
if (gl) installRtlTextPlugin(gl)
|
||||
const token = mapboxToken?.value || profileConfig?.value?.tk || ''
|
||||
// Degraded exits: keep the terse telemetry in `status`, put the human-readable
|
||||
// notice in the MAP CELL, and still enrich the legend with live population data
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
import { ref, watch, onMounted, onBeforeUnmount, computed, inject } from 'vue'
|
||||
import { ensureGeocoder, GEOCODER } from '../utils/pplrData.js'
|
||||
import { resolveMapProvider } from '@map/composables/useMapProvider.js'
|
||||
import { ensureEngineScript, engineGlobal } from '@map/composables/useMapInstance.js'
|
||||
import { useInstance } from '../composables/usePplrInstance.js'
|
||||
|
||||
const props = defineProps({
|
||||
|
|
@ -155,7 +156,7 @@ function setup() {
|
|||
render: renderSuggestion,
|
||||
})
|
||||
} else {
|
||||
if (!window.MapboxGeocoder || !window.mapboxgl) {
|
||||
if (!window.MapboxGeocoder || !engineGlobal('mapbox')) {
|
||||
console.warn('[MapboxGeocoder] mapbox-gl-geocoder or mapbox-gl not on window — check CDN <script> tags')
|
||||
return
|
||||
}
|
||||
|
|
@ -164,7 +165,7 @@ function setup() {
|
|||
}
|
||||
geocoder = new window.MapboxGeocoder({
|
||||
accessToken: props.mapboxToken,
|
||||
mapboxgl: window.mapboxgl,
|
||||
mapboxgl: engineGlobal('mapbox'),
|
||||
placeholder: props.placeholder,
|
||||
localGeocoder: buildLocalGeocoder(),
|
||||
localGeocoderOnly: false,
|
||||
|
|
@ -252,7 +253,10 @@ function onGlobalKey(e) {
|
|||
|
||||
onMounted(() => {
|
||||
// setup() swallows its own errors; a failed script load leaves the map working without search.
|
||||
ensureGeocoder(provider).then(setup, (e) => console.warn('[MapboxGeocoder]', e.message))
|
||||
// The ENGINE first, then its geocoder: the Mapbox path hands mapboxgl to the geocoder, and it
|
||||
// used to find it only because every leaf <head> preloaded mapbox-gl.js. ensureEngineScript is
|
||||
// a no-op when the map already loaded it.
|
||||
ensureEngineScript(provider).then(() => ensureGeocoder(provider)).then(setup, (e) => console.warn('[MapboxGeocoder]', e.message))
|
||||
document.addEventListener('keydown', onGlobalKey)
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
|
|
|
|||
|
|
@ -60,13 +60,8 @@ export function ensureGeocoder(provider = 'mapbox') {
|
|||
|
||||
// The engine namespace that built THIS map (Popup, Marker, NavigationControl…). The views were
|
||||
// written against the Mapbox global; under provider=maplibre that global does not exist and a
|
||||
// `new mapboxgl.Popup` throws on the first pin click.
|
||||
export function glFor(map) {
|
||||
if (typeof window === 'undefined') return undefined
|
||||
const ml = window.maplibregl
|
||||
if (ml && map && ml.Map && map instanceof ml.Map) return ml
|
||||
return window.mapboxgl || ml
|
||||
}
|
||||
// `new mapboxgl.Popup` throws on the first pin click. Now the library's engineFor (one copy).
|
||||
export { engineFor as glFor } from '@map/composables/useMapProvider.js'
|
||||
|
||||
// Verification handle (the gospel-resources __grState contract): what the ACTIVE view's map
|
||||
// actually did, so a check can assert "loaded" rather than inferring it from missing requests.
|
||||
|
|
|
|||
54
public/doxa-maps/cities-internet/cities-internet.js
generated
54
public/doxa-maps/cities-internet/cities-internet.js
generated
File diff suppressed because one or more lines are too long
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
|
||||
<script src="../cities-internet.js" integrity="sha384-pGwAlE/HlDchxMolwOKt/SaASlcd53/lqXzCGWEf30HHiH8evPJC+cMBoLI9fmQr" crossorigin="anonymous"></script>
|
||||
<script src="../cities-internet.js" integrity="sha384-AbREfdDrihkPw7LojNDUYzWDm1KluyleaTv3FsGi31ZCcE5jdYc6yqML6eykz6zb" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
|
||||
<script src="../cities-internet.js" integrity="sha384-pGwAlE/HlDchxMolwOKt/SaASlcd53/lqXzCGWEf30HHiH8evPJC+cMBoLI9fmQr" crossorigin="anonymous"></script>
|
||||
<script src="../cities-internet.js" integrity="sha384-AbREfdDrihkPw7LojNDUYzWDm1KluyleaTv3FsGi31ZCcE5jdYc6yqML6eykz6zb" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
|
||||
<script src="../cities-internet.js" integrity="sha384-pGwAlE/HlDchxMolwOKt/SaASlcd53/lqXzCGWEf30HHiH8evPJC+cMBoLI9fmQr" crossorigin="anonymous"></script>
|
||||
<script src="../cities-internet.js" integrity="sha384-AbREfdDrihkPw7LojNDUYzWDm1KluyleaTv3FsGi31ZCcE5jdYc6yqML6eykz6zb" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -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-G6u1nOz/I1DWzNU5Rgh32LEQEcp7lhRs+3JBmbVwPG17+FtZUcEjTz8ZKPnUaou9" crossorigin="anonymous"></script>
|
||||
<script src="../country-posters.js" integrity="sha384-BsZewNf7114rVNUG5E8SutbHIMNkrsXOyQmjWJvyDanYoEPOWnuWq0snZg0JJEz6" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -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-G6u1nOz/I1DWzNU5Rgh32LEQEcp7lhRs+3JBmbVwPG17+FtZUcEjTz8ZKPnUaou9" crossorigin="anonymous"></script>
|
||||
<script src="../country-posters.js" integrity="sha384-BsZewNf7114rVNUG5E8SutbHIMNkrsXOyQmjWJvyDanYoEPOWnuWq0snZg0JJEz6" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,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-G6u1nOz/I1DWzNU5Rgh32LEQEcp7lhRs+3JBmbVwPG17+FtZUcEjTz8ZKPnUaou9" crossorigin="anonymous"></script>
|
||||
<script src="../country-posters.js" integrity="sha384-BsZewNf7114rVNUG5E8SutbHIMNkrsXOyQmjWJvyDanYoEPOWnuWq0snZg0JJEz6" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
98
public/doxa-maps/country-posters/country-posters.js
generated
98
public/doxa-maps/country-posters/country-posters.js
generated
File diff suppressed because one or more lines are too long
44
public/doxa-maps/demo-map/demo-map.js
generated
44
public/doxa-maps/demo-map/demo-map.js
generated
File diff suppressed because one or more lines are too long
2
public/doxa-maps/demo-map/demo-map/index.html
generated
2
public/doxa-maps/demo-map/demo-map/index.html
generated
|
|
@ -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-h1553zNZpllxRlMAzN3V4rNxui8rNkCgUkb3x/cnl9/eDr3NI8KidPJ7CKXgPoFL" crossorigin="anonymous"></script>
|
||||
<script src="../demo-map.js" integrity="sha384-4S2EX1ghqh1rC/tTUhRSP12TwwNuMdyHplZuDrKTmpjpdtqWx0D8SMoytz290CfA" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -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-h1553zNZpllxRlMAzN3V4rNxui8rNkCgUkb3x/cnl9/eDr3NI8KidPJ7CKXgPoFL" crossorigin="anonymous"></script>
|
||||
<script src="../../demo-map.js" integrity="sha384-4S2EX1ghqh1rC/tTUhRSP12TwwNuMdyHplZuDrKTmpjpdtqWx0D8SMoytz290CfA" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
52
public/doxa-maps/doxa-maps-spa/manifest.json
generated
52
public/doxa-maps/doxa-maps-spa/manifest.json
generated
|
|
@ -105,7 +105,7 @@
|
|||
"bundle": "cities-internet",
|
||||
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||
"output": "doxa-maps/cities-internet/cities-internet.js",
|
||||
"integrity": "sha384-pGwAlE/HlDchxMolwOKt/SaASlcd53/lqXzCGWEf30HHiH8evPJC+cMBoLI9fmQr",
|
||||
"integrity": "sha384-AbREfdDrihkPw7LojNDUYzWDm1KluyleaTv3FsGi31ZCcE5jdYc6yqML6eykz6zb",
|
||||
"elements": [
|
||||
"cities-internet-map"
|
||||
],
|
||||
|
|
@ -121,7 +121,7 @@
|
|||
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./cities-internet/connectivity-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=\"./cities-internet/cities-internet.js\" integrity=\"sha384-pGwAlE/HlDchxMolwOKt/SaASlcd53/lqXzCGWEf30HHiH8evPJC+cMBoLI9fmQr\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-AbREfdDrihkPw7LojNDUYzWDm1KluyleaTv3FsGi31ZCcE5jdYc6yqML6eykz6zb\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -135,7 +135,7 @@
|
|||
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-pGwAlE/HlDchxMolwOKt/SaASlcd53/lqXzCGWEf30HHiH8evPJC+cMBoLI9fmQr\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-AbREfdDrihkPw7LojNDUYzWDm1KluyleaTv3FsGi31ZCcE5jdYc6yqML6eykz6zb\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -149,7 +149,7 @@
|
|||
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./cities-internet/data-tables/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=\"./cities-internet/cities-internet.js\" integrity=\"sha384-pGwAlE/HlDchxMolwOKt/SaASlcd53/lqXzCGWEf30HHiH8evPJC+cMBoLI9fmQr\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-AbREfdDrihkPw7LojNDUYzWDm1KluyleaTv3FsGi31ZCcE5jdYc6yqML6eykz6zb\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -158,7 +158,7 @@
|
|||
"bundle": "country-posters",
|
||||
"scriptUrl": "./country-posters/country-posters.js",
|
||||
"output": "doxa-maps/country-posters/country-posters.js",
|
||||
"integrity": "sha384-G6u1nOz/I1DWzNU5Rgh32LEQEcp7lhRs+3JBmbVwPG17+FtZUcEjTz8ZKPnUaou9",
|
||||
"integrity": "sha384-BsZewNf7114rVNUG5E8SutbHIMNkrsXOyQmjWJvyDanYoEPOWnuWq0snZg0JJEz6",
|
||||
"elements": [
|
||||
"country-posters-map"
|
||||
],
|
||||
|
|
@ -178,7 +178,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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-G6u1nOz/I1DWzNU5Rgh32LEQEcp7lhRs+3JBmbVwPG17+FtZUcEjTz8ZKPnUaou9\" 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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-BsZewNf7114rVNUG5E8SutbHIMNkrsXOyQmjWJvyDanYoEPOWnuWq0snZg0JJEz6\" 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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -192,7 +192,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-G6u1nOz/I1DWzNU5Rgh32LEQEcp7lhRs+3JBmbVwPG17+FtZUcEjTz8ZKPnUaou9\" 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-BsZewNf7114rVNUG5E8SutbHIMNkrsXOyQmjWJvyDanYoEPOWnuWq0snZg0JJEz6\" 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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -206,7 +206,7 @@
|
|||
"scriptUrl": "./country-posters/country-posters.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./country-posters/country-posters-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-G6u1nOz/I1DWzNU5Rgh32LEQEcp7lhRs+3JBmbVwPG17+FtZUcEjTz8ZKPnUaou9\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-BsZewNf7114rVNUG5E8SutbHIMNkrsXOyQmjWJvyDanYoEPOWnuWq0snZg0JJEz6\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -259,7 +259,7 @@
|
|||
"bundle": "demo-map",
|
||||
"scriptUrl": "./demo-map/demo-map.js",
|
||||
"output": "doxa-maps/demo-map/demo-map.js",
|
||||
"integrity": "sha384-h1553zNZpllxRlMAzN3V4rNxui8rNkCgUkb3x/cnl9/eDr3NI8KidPJ7CKXgPoFL",
|
||||
"integrity": "sha384-4S2EX1ghqh1rC/tTUhRSP12TwwNuMdyHplZuDrKTmpjpdtqWx0D8SMoytz290CfA",
|
||||
"elements": [
|
||||
"demo-map"
|
||||
],
|
||||
|
|
@ -275,7 +275,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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-h1553zNZpllxRlMAzN3V4rNxui8rNkCgUkb3x/cnl9/eDr3NI8KidPJ7CKXgPoFL\" 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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-4S2EX1ghqh1rC/tTUhRSP12TwwNuMdyHplZuDrKTmpjpdtqWx0D8SMoytz290CfA\" 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": [
|
||||
{
|
||||
|
|
@ -354,7 +354,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-Pk6CG0TX1kipT6m8MoyGjMA2ZUPUYqWCXPKNyPSaF/VN5cXD9WCV6pXKiqCeCtkg",
|
||||
"integrity": "sha384-RqfRc7EsvtX56t1761uTjpm4voNYtK66bftORRGRJZ1KcdIHAgjmeN5jChaNRgoY",
|
||||
"elements": [
|
||||
"doxa-research-map"
|
||||
],
|
||||
|
|
@ -370,7 +370,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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-Pk6CG0TX1kipT6m8MoyGjMA2ZUPUYqWCXPKNyPSaF/VN5cXD9WCV6pXKiqCeCtkg\" 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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-RqfRc7EsvtX56t1761uTjpm4voNYtK66bftORRGRJZ1KcdIHAgjmeN5jChaNRgoY\" 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": [
|
||||
{
|
||||
|
|
@ -396,7 +396,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-5TALsTo7YgHoTIlkgpGKed/yPECovNWVXfnxhldO/VyJjSxWt5aXM/5Kh8l5OZI9",
|
||||
"integrity": "sha384-fx5Lsx2/f/30onBfP6UZ8fZw9rVUrvtJ5XFiFD+nm7ZbIiN5sngh9TuQNWDnbpIC",
|
||||
"elements": [
|
||||
"doxa-map",
|
||||
"doxa-simple-map"
|
||||
|
|
@ -413,7 +413,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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-5TALsTo7YgHoTIlkgpGKed/yPECovNWVXfnxhldO/VyJjSxWt5aXM/5Kh8l5OZI9\" 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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-fx5Lsx2/f/30onBfP6UZ8fZw9rVUrvtJ5XFiFD+nm7ZbIiN5sngh9TuQNWDnbpIC\" 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": [
|
||||
{
|
||||
|
|
@ -579,7 +579,7 @@
|
|||
"bundle": "gospel-resources",
|
||||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"output": "doxa-maps/gospel-resources/gospel-resources.js",
|
||||
"integrity": "sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa",
|
||||
"integrity": "sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM",
|
||||
"elements": [
|
||||
"gospel-resources-map"
|
||||
],
|
||||
|
|
@ -599,7 +599,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/charts/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=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -613,7 +613,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/data-tables/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=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -627,7 +627,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/gospel-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -641,7 +641,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/resources-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=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -655,7 +655,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -664,7 +664,7 @@
|
|||
"bundle": "my-upg-100-list",
|
||||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"output": "doxa-maps/my-upg-100-list/my-upg-100-list.js",
|
||||
"integrity": "sha384-njYpkCJRfvidFnin64I+sM1u4YUM0DKNkAxnVPKLPMyLFe4wTYIhqBok12xpf2ow",
|
||||
"integrity": "sha384-tUePk2lUpTiV+HuPI7TICGGmyAajswoZmM7JB4YuksHa0U7jy7NmBRPiDoHMS8LU",
|
||||
"elements": [
|
||||
"my-upg-100-list-map"
|
||||
],
|
||||
|
|
@ -684,7 +684,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/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=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-njYpkCJRfvidFnin64I+sM1u4YUM0DKNkAxnVPKLPMyLFe4wTYIhqBok12xpf2ow\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-tUePk2lUpTiV+HuPI7TICGGmyAajswoZmM7JB4YuksHa0U7jy7NmBRPiDoHMS8LU\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -698,7 +698,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-njYpkCJRfvidFnin64I+sM1u4YUM0DKNkAxnVPKLPMyLFe4wTYIhqBok12xpf2ow\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-tUePk2lUpTiV+HuPI7TICGGmyAajswoZmM7JB4YuksHa0U7jy7NmBRPiDoHMS8LU\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -712,7 +712,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-njYpkCJRfvidFnin64I+sM1u4YUM0DKNkAxnVPKLPMyLFe4wTYIhqBok12xpf2ow\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-tUePk2lUpTiV+HuPI7TICGGmyAajswoZmM7JB4YuksHa0U7jy7NmBRPiDoHMS8LU\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -837,7 +837,7 @@
|
|||
"bundle": "pplr-data-maps",
|
||||
"scriptUrl": "./pplr-data-maps/pplr-data-maps.js",
|
||||
"output": "doxa-maps/pplr-data-maps/pplr-data-maps.js",
|
||||
"integrity": "sha384-VAZGe3QrZoQE8sStTtEvDZNMRg571QVNygpRJCnRH+Mkp4nE6QDrF32FP8o2FHl5",
|
||||
"integrity": "sha384-3YkjUuo/p0/JW/3xuAqnCtakJlpPhhDN+NLkZT7YCrt7aftEAGSU7g/ta8KbCrSb",
|
||||
"elements": [
|
||||
"pplr-data-maps"
|
||||
],
|
||||
|
|
@ -853,7 +853,7 @@
|
|||
"scriptUrl": "./pplr-data-maps/pplr-data-maps.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./pplr-data-maps/pplr-data-maps/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./pplr-data-maps/pplr-data-maps.js\" integrity=\"sha384-VAZGe3QrZoQE8sStTtEvDZNMRg571QVNygpRJCnRH+Mkp4nE6QDrF32FP8o2FHl5\" crossorigin=\"anonymous\"></script>\n<pplr-data-maps profile-config='{\"profile\":\"pplr-data-maps\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></pplr-data-maps>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./pplr-data-maps/pplr-data-maps.js\" integrity=\"sha384-3YkjUuo/p0/JW/3xuAqnCtakJlpPhhDN+NLkZT7YCrt7aftEAGSU7g/ta8KbCrSb\" crossorigin=\"anonymous\"></script>\n<pplr-data-maps profile-config='{\"profile\":\"pplr-data-maps\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></pplr-data-maps>"
|
||||
},
|
||||
"bundle": "pplr-data-maps"
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -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-Pk6CG0TX1kipT6m8MoyGjMA2ZUPUYqWCXPKNyPSaF/VN5cXD9WCV6pXKiqCeCtkg" crossorigin="anonymous"></script>
|
||||
<script src="../doxa-research-map.js" integrity="sha384-RqfRc7EsvtX56t1761uTjpm4voNYtK66bftORRGRJZ1KcdIHAgjmeN5jChaNRgoY" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -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-Pk6CG0TX1kipT6m8MoyGjMA2ZUPUYqWCXPKNyPSaF/VN5cXD9WCV6pXKiqCeCtkg" crossorigin="anonymous"></script>
|
||||
<script src="../../doxa-research-map.js" integrity="sha384-RqfRc7EsvtX56t1761uTjpm4voNYtK66bftORRGRJZ1KcdIHAgjmeN5jChaNRgoY" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
58
public/doxa-maps/doxa-simple-map/doxa-simple-map.js
generated
58
public/doxa-maps/doxa-simple-map/doxa-simple-map.js
generated
File diff suppressed because one or more lines are too long
|
|
@ -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-5TALsTo7YgHoTIlkgpGKed/yPECovNWVXfnxhldO/VyJjSxWt5aXM/5Kh8l5OZI9" crossorigin="anonymous"></script>
|
||||
<script src="../../doxa-simple-map.js" integrity="sha384-fx5Lsx2/f/30onBfP6UZ8fZw9rVUrvtJ5XFiFD+nm7ZbIiN5sngh9TuQNWDnbpIC" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -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-5TALsTo7YgHoTIlkgpGKed/yPECovNWVXfnxhldO/VyJjSxWt5aXM/5Kh8l5OZI9" crossorigin="anonymous"></script>
|
||||
<script src="../../doxa-simple-map.js" integrity="sha384-fx5Lsx2/f/30onBfP6UZ8fZw9rVUrvtJ5XFiFD+nm7ZbIiN5sngh9TuQNWDnbpIC" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -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-5TALsTo7YgHoTIlkgpGKed/yPECovNWVXfnxhldO/VyJjSxWt5aXM/5Kh8l5OZI9" crossorigin="anonymous"></script>
|
||||
<script src="../doxa-simple-map.js" integrity="sha384-fx5Lsx2/f/30onBfP6UZ8fZw9rVUrvtJ5XFiFD+nm7ZbIiN5sngh9TuQNWDnbpIC" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -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-5TALsTo7YgHoTIlkgpGKed/yPECovNWVXfnxhldO/VyJjSxWt5aXM/5Kh8l5OZI9" crossorigin="anonymous"></script>
|
||||
<script src="../../doxa-simple-map.js" integrity="sha384-fx5Lsx2/f/30onBfP6UZ8fZw9rVUrvtJ5XFiFD+nm7ZbIiN5sngh9TuQNWDnbpIC" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||
<script src="../gospel-resources.js" integrity="sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||
<script src="../gospel-resources.js" integrity="sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||
<script src="../gospel-resources.js" integrity="sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||
<script src="../gospel-resources.js" integrity="sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||
<script src="../gospel-resources.js" integrity="sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
62
public/doxa-maps/key-cities/key-cities.js
generated
62
public/doxa-maps/key-cities/key-cities.js
generated
File diff suppressed because one or more lines are too long
52
public/doxa-maps/manifest.json
generated
52
public/doxa-maps/manifest.json
generated
|
|
@ -105,7 +105,7 @@
|
|||
"bundle": "cities-internet",
|
||||
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||
"output": "doxa-maps/cities-internet/cities-internet.js",
|
||||
"integrity": "sha384-pGwAlE/HlDchxMolwOKt/SaASlcd53/lqXzCGWEf30HHiH8evPJC+cMBoLI9fmQr",
|
||||
"integrity": "sha384-AbREfdDrihkPw7LojNDUYzWDm1KluyleaTv3FsGi31ZCcE5jdYc6yqML6eykz6zb",
|
||||
"elements": [
|
||||
"cities-internet-map"
|
||||
],
|
||||
|
|
@ -121,7 +121,7 @@
|
|||
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./cities-internet/connectivity-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=\"./cities-internet/cities-internet.js\" integrity=\"sha384-pGwAlE/HlDchxMolwOKt/SaASlcd53/lqXzCGWEf30HHiH8evPJC+cMBoLI9fmQr\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-AbREfdDrihkPw7LojNDUYzWDm1KluyleaTv3FsGi31ZCcE5jdYc6yqML6eykz6zb\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -135,7 +135,7 @@
|
|||
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-pGwAlE/HlDchxMolwOKt/SaASlcd53/lqXzCGWEf30HHiH8evPJC+cMBoLI9fmQr\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-AbREfdDrihkPw7LojNDUYzWDm1KluyleaTv3FsGi31ZCcE5jdYc6yqML6eykz6zb\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -149,7 +149,7 @@
|
|||
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./cities-internet/data-tables/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=\"./cities-internet/cities-internet.js\" integrity=\"sha384-pGwAlE/HlDchxMolwOKt/SaASlcd53/lqXzCGWEf30HHiH8evPJC+cMBoLI9fmQr\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-AbREfdDrihkPw7LojNDUYzWDm1KluyleaTv3FsGi31ZCcE5jdYc6yqML6eykz6zb\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -158,7 +158,7 @@
|
|||
"bundle": "country-posters",
|
||||
"scriptUrl": "./country-posters/country-posters.js",
|
||||
"output": "doxa-maps/country-posters/country-posters.js",
|
||||
"integrity": "sha384-G6u1nOz/I1DWzNU5Rgh32LEQEcp7lhRs+3JBmbVwPG17+FtZUcEjTz8ZKPnUaou9",
|
||||
"integrity": "sha384-BsZewNf7114rVNUG5E8SutbHIMNkrsXOyQmjWJvyDanYoEPOWnuWq0snZg0JJEz6",
|
||||
"elements": [
|
||||
"country-posters-map"
|
||||
],
|
||||
|
|
@ -178,7 +178,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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-G6u1nOz/I1DWzNU5Rgh32LEQEcp7lhRs+3JBmbVwPG17+FtZUcEjTz8ZKPnUaou9\" 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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-BsZewNf7114rVNUG5E8SutbHIMNkrsXOyQmjWJvyDanYoEPOWnuWq0snZg0JJEz6\" 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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -192,7 +192,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-G6u1nOz/I1DWzNU5Rgh32LEQEcp7lhRs+3JBmbVwPG17+FtZUcEjTz8ZKPnUaou9\" 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-BsZewNf7114rVNUG5E8SutbHIMNkrsXOyQmjWJvyDanYoEPOWnuWq0snZg0JJEz6\" 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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -206,7 +206,7 @@
|
|||
"scriptUrl": "./country-posters/country-posters.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./country-posters/country-posters-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-G6u1nOz/I1DWzNU5Rgh32LEQEcp7lhRs+3JBmbVwPG17+FtZUcEjTz8ZKPnUaou9\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-BsZewNf7114rVNUG5E8SutbHIMNkrsXOyQmjWJvyDanYoEPOWnuWq0snZg0JJEz6\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -259,7 +259,7 @@
|
|||
"bundle": "demo-map",
|
||||
"scriptUrl": "./demo-map/demo-map.js",
|
||||
"output": "doxa-maps/demo-map/demo-map.js",
|
||||
"integrity": "sha384-h1553zNZpllxRlMAzN3V4rNxui8rNkCgUkb3x/cnl9/eDr3NI8KidPJ7CKXgPoFL",
|
||||
"integrity": "sha384-4S2EX1ghqh1rC/tTUhRSP12TwwNuMdyHplZuDrKTmpjpdtqWx0D8SMoytz290CfA",
|
||||
"elements": [
|
||||
"demo-map"
|
||||
],
|
||||
|
|
@ -275,7 +275,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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-h1553zNZpllxRlMAzN3V4rNxui8rNkCgUkb3x/cnl9/eDr3NI8KidPJ7CKXgPoFL\" 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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-4S2EX1ghqh1rC/tTUhRSP12TwwNuMdyHplZuDrKTmpjpdtqWx0D8SMoytz290CfA\" 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": [
|
||||
{
|
||||
|
|
@ -354,7 +354,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-Pk6CG0TX1kipT6m8MoyGjMA2ZUPUYqWCXPKNyPSaF/VN5cXD9WCV6pXKiqCeCtkg",
|
||||
"integrity": "sha384-RqfRc7EsvtX56t1761uTjpm4voNYtK66bftORRGRJZ1KcdIHAgjmeN5jChaNRgoY",
|
||||
"elements": [
|
||||
"doxa-research-map"
|
||||
],
|
||||
|
|
@ -370,7 +370,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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-Pk6CG0TX1kipT6m8MoyGjMA2ZUPUYqWCXPKNyPSaF/VN5cXD9WCV6pXKiqCeCtkg\" 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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-RqfRc7EsvtX56t1761uTjpm4voNYtK66bftORRGRJZ1KcdIHAgjmeN5jChaNRgoY\" 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": [
|
||||
{
|
||||
|
|
@ -396,7 +396,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-5TALsTo7YgHoTIlkgpGKed/yPECovNWVXfnxhldO/VyJjSxWt5aXM/5Kh8l5OZI9",
|
||||
"integrity": "sha384-fx5Lsx2/f/30onBfP6UZ8fZw9rVUrvtJ5XFiFD+nm7ZbIiN5sngh9TuQNWDnbpIC",
|
||||
"elements": [
|
||||
"doxa-map",
|
||||
"doxa-simple-map"
|
||||
|
|
@ -413,7 +413,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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-5TALsTo7YgHoTIlkgpGKed/yPECovNWVXfnxhldO/VyJjSxWt5aXM/5Kh8l5OZI9\" 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": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-fx5Lsx2/f/30onBfP6UZ8fZw9rVUrvtJ5XFiFD+nm7ZbIiN5sngh9TuQNWDnbpIC\" 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": [
|
||||
{
|
||||
|
|
@ -579,7 +579,7 @@
|
|||
"bundle": "gospel-resources",
|
||||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"output": "doxa-maps/gospel-resources/gospel-resources.js",
|
||||
"integrity": "sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa",
|
||||
"integrity": "sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM",
|
||||
"elements": [
|
||||
"gospel-resources-map"
|
||||
],
|
||||
|
|
@ -599,7 +599,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/charts/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=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -613,7 +613,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/data-tables/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=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -627,7 +627,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/gospel-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -641,7 +641,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/resources-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=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -655,7 +655,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-fs5dEnZOFnYc+hS69jQzYKGMMuBU/I+wf4HUvyHgBG+DltXdzhBIOfYv2pKDysfa\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-WpBCKqbGmwroMs8Uk7FPoeHsp2ujbg5Bhm0eBttNAo36Q4p8CErApNPwPRmAEtjM\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -664,7 +664,7 @@
|
|||
"bundle": "my-upg-100-list",
|
||||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"output": "doxa-maps/my-upg-100-list/my-upg-100-list.js",
|
||||
"integrity": "sha384-njYpkCJRfvidFnin64I+sM1u4YUM0DKNkAxnVPKLPMyLFe4wTYIhqBok12xpf2ow",
|
||||
"integrity": "sha384-tUePk2lUpTiV+HuPI7TICGGmyAajswoZmM7JB4YuksHa0U7jy7NmBRPiDoHMS8LU",
|
||||
"elements": [
|
||||
"my-upg-100-list-map"
|
||||
],
|
||||
|
|
@ -684,7 +684,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/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=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-njYpkCJRfvidFnin64I+sM1u4YUM0DKNkAxnVPKLPMyLFe4wTYIhqBok12xpf2ow\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-tUePk2lUpTiV+HuPI7TICGGmyAajswoZmM7JB4YuksHa0U7jy7NmBRPiDoHMS8LU\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -698,7 +698,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-njYpkCJRfvidFnin64I+sM1u4YUM0DKNkAxnVPKLPMyLFe4wTYIhqBok12xpf2ow\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-tUePk2lUpTiV+HuPI7TICGGmyAajswoZmM7JB4YuksHa0U7jy7NmBRPiDoHMS8LU\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -712,7 +712,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-njYpkCJRfvidFnin64I+sM1u4YUM0DKNkAxnVPKLPMyLFe4wTYIhqBok12xpf2ow\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-tUePk2lUpTiV+HuPI7TICGGmyAajswoZmM7JB4YuksHa0U7jy7NmBRPiDoHMS8LU\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -837,7 +837,7 @@
|
|||
"bundle": "pplr-data-maps",
|
||||
"scriptUrl": "./pplr-data-maps/pplr-data-maps.js",
|
||||
"output": "doxa-maps/pplr-data-maps/pplr-data-maps.js",
|
||||
"integrity": "sha384-VAZGe3QrZoQE8sStTtEvDZNMRg571QVNygpRJCnRH+Mkp4nE6QDrF32FP8o2FHl5",
|
||||
"integrity": "sha384-3YkjUuo/p0/JW/3xuAqnCtakJlpPhhDN+NLkZT7YCrt7aftEAGSU7g/ta8KbCrSb",
|
||||
"elements": [
|
||||
"pplr-data-maps"
|
||||
],
|
||||
|
|
@ -853,7 +853,7 @@
|
|||
"scriptUrl": "./pplr-data-maps/pplr-data-maps.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./pplr-data-maps/pplr-data-maps/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./pplr-data-maps/pplr-data-maps.js\" integrity=\"sha384-VAZGe3QrZoQE8sStTtEvDZNMRg571QVNygpRJCnRH+Mkp4nE6QDrF32FP8o2FHl5\" crossorigin=\"anonymous\"></script>\n<pplr-data-maps profile-config='{\"profile\":\"pplr-data-maps\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></pplr-data-maps>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./pplr-data-maps/pplr-data-maps.js\" integrity=\"sha384-3YkjUuo/p0/JW/3xuAqnCtakJlpPhhDN+NLkZT7YCrt7aftEAGSU7g/ta8KbCrSb\" crossorigin=\"anonymous\"></script>\n<pplr-data-maps profile-config='{\"profile\":\"pplr-data-maps\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></pplr-data-maps>"
|
||||
},
|
||||
"bundle": "pplr-data-maps"
|
||||
}
|
||||
|
|
|
|||
84
public/doxa-maps/my-upg-100-list/my-upg-100-list.js
generated
84
public/doxa-maps/my-upg-100-list/my-upg-100-list.js
generated
File diff suppressed because one or more lines are too long
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-njYpkCJRfvidFnin64I+sM1u4YUM0DKNkAxnVPKLPMyLFe4wTYIhqBok12xpf2ow" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-tUePk2lUpTiV+HuPI7TICGGmyAajswoZmM7JB4YuksHa0U7jy7NmBRPiDoHMS8LU" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-njYpkCJRfvidFnin64I+sM1u4YUM0DKNkAxnVPKLPMyLFe4wTYIhqBok12xpf2ow" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-tUePk2lUpTiV+HuPI7TICGGmyAajswoZmM7JB4YuksHa0U7jy7NmBRPiDoHMS8LU" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-njYpkCJRfvidFnin64I+sM1u4YUM0DKNkAxnVPKLPMyLFe4wTYIhqBok12xpf2ow" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-tUePk2lUpTiV+HuPI7TICGGmyAajswoZmM7JB4YuksHa0U7jy7NmBRPiDoHMS8LU" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
48
public/doxa-maps/pplr-data-maps/pplr-data-maps.js
generated
48
public/doxa-maps/pplr-data-maps/pplr-data-maps.js
generated
File diff suppressed because one or more lines are too long
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <pplr-data-maps> custom element. -->
|
||||
<script src="../pplr-data-maps.js" integrity="sha384-VAZGe3QrZoQE8sStTtEvDZNMRg571QVNygpRJCnRH+Mkp4nE6QDrF32FP8o2FHl5" crossorigin="anonymous"></script>
|
||||
<script src="../pplr-data-maps.js" integrity="sha384-3YkjUuo/p0/JW/3xuAqnCtakJlpPhhDN+NLkZT7YCrt7aftEAGSU7g/ta8KbCrSb" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
Loading…
Reference in a new issue