Compare commits
29 commits
main
...
developmen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff9ab27f75 | ||
|
|
db472a92df | ||
|
|
2cb506108c | ||
|
|
454bfbef33 | ||
|
|
48e3d92e32 | ||
|
|
19bce9aa94 | ||
|
|
02d708769c | ||
|
|
0d3219e58e | ||
|
|
66c9f048c9 | ||
|
|
3a4de59fb7 | ||
|
|
d4ee4a7079 | ||
|
|
c2e20fb682 | ||
|
|
fc3b48425d | ||
|
|
5a1aabad4d | ||
|
|
14c0b7f165 | ||
|
|
99c7a1fb7f | ||
|
|
9bf90cc1a4 | ||
|
|
75277062a8 | ||
|
|
efd4e6f11a | ||
|
|
1a8d9da8d9 | ||
|
|
7e0ae65915 | ||
|
|
12cc87c247 | ||
|
|
b2ab82a2e7 | ||
|
|
2a05e8c302 | ||
|
|
8a23d1339c | ||
|
|
4bcdc03614 | ||
|
|
626b1df0f3 | ||
|
|
45a5dd9557 | ||
|
|
c9a7ef9368 |
82 changed files with 1567 additions and 1122 deletions
|
|
@ -38,6 +38,8 @@ If the push step fails with a permission error, check **Settings → Actions →
|
|||
|
||||
**Pull requests → New pull request**, base: your main branch, compare: `contributor`. Review it like any outside contribution, and merge when you're happy. If the pull request stays open, it updates itself each time the Action brings new commits.
|
||||
|
||||
**Keep your secrets out of its CI.** A pull request from a branch in your own repo (unlike one from a fork) runs your `pull_request` workflows **with your repository secrets**, and those runs execute the contributor's code. The guard stops changes to your workflows, not code running inside them. So for `contributor` pull requests, run checks that need no secrets, and keep secret-using steps in `push` or `workflow_dispatch` jobs, or behind a protected environment with required reviewers.
|
||||
|
||||
## Good to know
|
||||
|
||||
- **Turn it off:** delete the file, or use **Actions → Pull contributor → ⋯ → Disable workflow**.
|
||||
|
|
|
|||
|
|
@ -87,6 +87,24 @@ const ALLOWED = new Map([
|
|||
// surrounding copy carries the meaning in each language (export.packetExplain is translated per
|
||||
// locale and explains what a UPG 100 list is), so a reader does not meet a bare acronym with
|
||||
// nothing to anchor it. Do not "resolve" this entry by inventing eleven names for one product.
|
||||
// ── ENGLISH-ONLY FOR NOW, A BOOKMARK (the print progress steps, 2026-10-03) ──────────────────────
|
||||
// The product ruled that new strings ship in ENGLISH for now (localization is parked, translations later), and the
|
||||
// parity gate needs each key in every locale, so these carry their English text everywhere. They are NOT settled as
|
||||
// untranslatable: REMOVE THESE LINES when the steps are translated (a human translator, not an invented term).
|
||||
['wall.json:hud.step.records', 'ENGLISH-ONLY FOR NOW: the print progress step; translate later, then remove this line'],
|
||||
['wall.json:hud.step.boundaries', 'ENGLISH-ONLY FOR NOW: the print progress step; translate later, then remove this line'],
|
||||
['wall.json:hud.step.generator', 'ENGLISH-ONLY FOR NOW: the print progress step; translate later, then remove this line'],
|
||||
['wall.json:hud.step.mapFrame', 'ENGLISH-ONLY FOR NOW: the print progress step; translate later, then remove this line'],
|
||||
['wall.json:hud.step.neighbours', 'ENGLISH-ONLY FOR NOW: the print progress step; translate later, then remove this line'],
|
||||
['wall.json:hud.step.seas', 'ENGLISH-ONLY FOR NOW: the print progress step; translate later, then remove this line'],
|
||||
['wall.json:hud.step.pins', 'ENGLISH-ONLY FOR NOW: the print progress step; translate later, then remove this line'],
|
||||
['wall.json:hud.step.sideLanes', 'ENGLISH-ONLY FOR NOW: the print progress step; translate later, then remove this line'],
|
||||
['wall.json:hud.step.cities', 'ENGLISH-ONLY FOR NOW: the print progress step; translate later, then remove this line'],
|
||||
['wall.json:hud.step.names', 'ENGLISH-ONLY FOR NOW: the print progress step; translate later, then remove this line'],
|
||||
['wall.json:hud.step.header', 'ENGLISH-ONLY FOR NOW: the print progress step; translate later, then remove this line'],
|
||||
['wall.json:hud.step.print', 'ENGLISH-ONLY FOR NOW: the print progress step; translate later, then remove this line'],
|
||||
['wall.json:hud.stepOf', 'ENGLISH-ONLY FOR NOW: "step {n} of {m}"; translate later, then remove this line'],
|
||||
['wall.json:hud.elapsed', 'ENGLISH-ONLY FOR NOW: "{s} s" (seconds); translate later, then remove this line'],
|
||||
['legend.json:export.packet',
|
||||
'BRAND: the product name for the prayer list; export.packetExplain carries the meaning per locale'],
|
||||
])
|
||||
|
|
|
|||
|
|
@ -112,6 +112,9 @@ const props = defineProps({
|
|||
// async (item, format) => a map SHEET generated now (packet/posterSheets.js); tried first for the poster
|
||||
// print and the packet's page 1. usePosterPrints' sheet.
|
||||
sheet: { type: Function, default: null },
|
||||
// (item, which) => void: start the loads a print of this item will need, called when the reader OPENS a print
|
||||
// chooser (the Prayer List packets, the Card Deck sizes): an intent moment before the tap, so the print skips them.
|
||||
prewarm: { type: Function, default: null },
|
||||
// Card stock for the deck print, when this wall offers one. See card-render.js
|
||||
// STOCK — both orientations are available. This is the DEFAULT selection.
|
||||
cardStock: { type: String, default: 'poker' },
|
||||
|
|
@ -316,6 +319,31 @@ const countOf = (key, n) => tCount(key, { n: Number(n || 0).toLocaleString() },
|
|||
// The HUD's kinds and progress messages, and the poster image's alt text (what a screen reader announces
|
||||
// for a card), in the page's language; English only where a key is absent. The same translator goes to
|
||||
// usePosterPrints (opts.t) so the messages IT sets are localized too.
|
||||
// ★ A PRINT'S REAL STEPS: a bar that moves as the work moves, never frozen, with no invented percentages.
|
||||
// The sheet reports each step by name (countrySheet / posterSheets / renderPoster's onStep), the bar is the share of
|
||||
// the KNOWN steps done, and the elapsed seconds tick on their own whenever the page can paint.
|
||||
const PRINT_STEPS = ['records', 'boundaries', 'generator', 'map-frame', 'neighbours', 'seas', 'pins', 'side-lanes', 'cities', 'names', 'header', 'print']
|
||||
const STEP_EN = {
|
||||
records: 'loading the people groups', boundaries: 'loading the map outlines', generator: 'loading the poster engine',
|
||||
'map-frame': 'fitting the map', neighbours: 'drawing the neighbouring provinces', seas: 'naming the seas',
|
||||
pins: 'placing the pins', 'side-lanes': 'laying out the side lanes', cities: 'adding the cities',
|
||||
names: 'placing the names', header: 'writing the header', print: 'preparing the print',
|
||||
}
|
||||
const stepKey = (name) => name.replace(/-([a-z])/g, (m, c) => c.toUpperCase())
|
||||
const nowMs = ref(Date.now())
|
||||
let elapsedTick = null
|
||||
const elapsedS = computed(() => (exportState.value && exportState.value.startedAt ? Math.max(0, Math.floor((nowMs.value - exportState.value.startedAt) / 1000)) : 0))
|
||||
function printStepper() {
|
||||
let done = 0
|
||||
return (name) => {
|
||||
const i = PRINT_STEPS.indexOf(name)
|
||||
if (i < 0 || !exportState.value) return
|
||||
done = Math.max(done, i + 1)
|
||||
exportState.value = { ...exportState.value, phase: 'render', message: hud(`wall.hud.step.${stepKey(name)}`, STEP_EN[name]),
|
||||
stepN: done, stepM: PRINT_STEPS.length, pct: Math.round((100 * done) / PRINT_STEPS.length) }
|
||||
}
|
||||
}
|
||||
|
||||
const hud = (key, en, params = null, n = undefined) => {
|
||||
const v = tCount(key, params || {}, n)
|
||||
return v && v !== key ? v : String(en).replace(/\{(\w+)\}/g, (m, k) => (params && params[k] != null ? String(params[k]) : m))
|
||||
|
|
@ -556,6 +584,12 @@ function showOnMap(item) {
|
|||
// than by keeping two renderers in sync, and it works on Android where the Node
|
||||
// generator cannot run at all.
|
||||
const exportState = ref(null)
|
||||
// the elapsed seconds tick for the life of a print's HUD (declared here: the watch reads exportState at setup)
|
||||
watch(() => exportState.value && exportState.value.startedAt, (st) => {
|
||||
clearInterval(elapsedTick); elapsedTick = null
|
||||
if (st) { nowMs.value = Date.now(); elapsedTick = setInterval(() => { nowMs.value = Date.now() }, 250) }
|
||||
})
|
||||
onBeforeUnmount(() => { clearInterval(elapsedTick) })
|
||||
const { scrimRef, scrimStyle } = useViewportScrim(exportState)
|
||||
|
||||
async function exportPoster(item) {
|
||||
|
|
@ -566,7 +600,8 @@ async function exportPoster(item) {
|
|||
return
|
||||
}
|
||||
exportState.value = { label: item.label, kind: hud('wall.hud.kindPoster', 'Poster'), phase: 'fetch',
|
||||
message: hud('wall.hud.fetchingPoster', 'fetching the poster'), pct: 20 }
|
||||
message: hud('wall.hud.fetchingPoster', 'fetching the poster'), pct: 0, startedAt: Date.now() }
|
||||
const step = printStepper()
|
||||
try {
|
||||
// ★ GENERATED FIRST (the print standard): a host that can draw the sheet now (the `sheet` prop,
|
||||
// packet/posterSheets.js) prints or downloads THAT — no stored file involved, so a country, which has
|
||||
|
|
@ -574,15 +609,19 @@ async function exportPoster(item) {
|
|||
// for a home printer), the item's own poster size for a download. A generation that fails falls through
|
||||
// to the stored image and HTML below rather than to an error.
|
||||
if (props.sheet) {
|
||||
exportState.value = { ...exportState.value, phase: 'render', message: hud('wall.hud.generatingPoster', 'generating the poster'), pct: 35 }
|
||||
exportState.value = { ...exportState.value, phase: 'render', message: hud('wall.hud.generatingPoster', 'generating the poster') }
|
||||
const format = props.posterAction === 'print' ? 'letter' : (item.sheet === '3x3' ? '3x3' : '3x4')
|
||||
const html = await Promise.resolve().then(() => props.sheet(item, format)).catch(() => '')
|
||||
const html = await Promise.resolve().then(() => props.sheet(item, format, { onStep: step })).catch(() => '')
|
||||
if (html) {
|
||||
const { rasterPoster, looksRendered, hasExternalImages } = await import('@map/packet/poster-raster.js')
|
||||
// ★ A SHEET WITH PHOTOS PRINTS AS ITS OWN DOCUMENT (the large side-lane sheets): a raster cannot carry a
|
||||
// photo from its own host (poster-raster.js says why), and the sheet's own @page is its true size
|
||||
// (60in 96in), where an image of it would be shrunk onto letter. A download still rasterises, without them.
|
||||
if (props.posterAction === 'print' && hasExternalImages(html)) { await printSheetDocument(html); return }
|
||||
const { rasterPoster, looksRendered } = await import('@map/packet/poster-raster.js')
|
||||
// ★ A PRINTED SHEET IS ITS OWN DOCUMENT, never an image of itself. The sheet is vector HTML/SVG with its own
|
||||
// @page; printed as is, the print is the same drawing (crisper), carries any photo from its own host (a raster
|
||||
// cannot: poster-raster.js says why), and skips the raster entirely: on a phone that decode + draw + encode was
|
||||
// the last multi-second freeze before the print dialog. A DOWNLOAD still rasterises (it needs an image file).
|
||||
if (props.posterAction === 'print') { step('print'); await printSheetDocument(html); return }
|
||||
step('print')
|
||||
// let the step paint before the raster starts: the SVG decode below holds the page while it draws
|
||||
await new Promise((r) => (typeof requestAnimationFrame === 'function' ? requestAnimationFrame(() => setTimeout(r, 0)) : setTimeout(r, 0)))
|
||||
const blob = await rasterPoster(html, { scale: 2 })
|
||||
if (await looksRendered(blob)) { await deliverPoster(blob, item); return }
|
||||
}
|
||||
|
|
@ -746,6 +785,10 @@ const deckKey = (id, which) => `${id}:${which}`
|
|||
function toggleDeck(id, ev, which = 'deck') {
|
||||
const key = deckKey(id, which)
|
||||
deckOpenFor.value = deckOpenFor.value === key ? null : key
|
||||
if (deckOpenFor.value === key && props.prewarm) {
|
||||
const item = (props.items || []).find((x) => x && x.id === id)
|
||||
if (item) { try { props.prewarm(item, which) } catch (_) { /* a warm-up is only a head start */ } }
|
||||
}
|
||||
// Tell the size row how far down to start: the print row's REAL height, which is
|
||||
// one line in en and two in the long-label locales. Walking up from the clicked
|
||||
// button to its own .pfs keeps this correct per card rather than per wall.
|
||||
|
|
@ -813,7 +856,36 @@ function printPacketAs(item, variantId) {
|
|||
// browser-rasterised). Both callers in exportPoster() route through here.
|
||||
// Print a generated sheet as the document it is (photos load, the page is its own size). Same HUD steps as
|
||||
// deliverPoster's print, including the phone's Print button when the tap has expired.
|
||||
// ★ A PRINTED SHEET KEEPS THE PRINTER'S MARGIN AND ITS SOFT LINES. The sheet's own print CSS runs it edge to edge
|
||||
// (@page margin 0), which a home printer clips, and its scale can overflow the page by a sliver (a blank second
|
||||
// page on a phone). So the print copy gets, AFTER the sheet's own rules (later rules win; the sheet itself is
|
||||
// unchanged): a 12 mm @page margin (as the image print had), the stage scaled to fit inside it on letter AND A4,
|
||||
// and the leader lines softened to how the image print drew them (thin vector lines print darker than the same
|
||||
// lines anti-aliased into an image).
|
||||
const PRINT_MARGIN_MM = 12
|
||||
function fitForPrint(html) {
|
||||
const sc = /\.stage\{margin:0;transform:scale\(([\d.]+)\)/.exec(html)
|
||||
const box = /html,body\{width:(\d+)px;height:(\d+)px;overflow:hidden\}/.exec(html)
|
||||
if (!sc || !box || !html.includes('</head>')) return html
|
||||
const inches = /@page\{size:([\d.]+)in ([\d.]+)in/.exec(html)
|
||||
// letter fits A4's narrower width too, so one fit prints on either paper
|
||||
const [pageW, pageH] = inches ? [+inches[1] * 96, +inches[2] * 96] : /@page\{size:letter/.test(html) ? [8.27 * 96, 11 * 96] : [0, 0]
|
||||
if (!pageW) return html
|
||||
const M = (PRINT_MARGIN_MM / 25.4) * 96
|
||||
const W = +box[1], H = +box[2]
|
||||
const f = Math.min((pageW - 2 * M) / W, (pageH - 2 * M) / H) * 0.995
|
||||
const w = Math.floor(W * f), h = Math.floor(H * f)
|
||||
// On a PHONE the sheet prints inside the page itself (printInPlace's #dxm-print-root), where the host's print rules
|
||||
// force html/body overflow visible, so the stage's unscaled layout box spilled onto blank pages: the root is sized
|
||||
// and clipped to the fitted box too (the frame print has no root, so this rule changes nothing there).
|
||||
const css = `<style>@media print{@page{margin:${PRINT_MARGIN_MM}mm}.stage{transform:scale(${(+sc[1] * f).toFixed(6)})}`
|
||||
+ `html,body{width:${w}px;height:${h}px}#dxm-print-root{width:${w}px!important;height:${h}px!important;overflow:hidden!important;margin:0!important}`
|
||||
+ `.lead{stroke-opacity:.5}.slead{opacity:.4}}</style>`
|
||||
return html.replace('</head>', css + '</head>')
|
||||
}
|
||||
|
||||
async function printSheetDocument(html) {
|
||||
html = fitForPrint(html)
|
||||
exportState.value = { ...exportState.value, phase: 'save', message: hud('wall.hud.openingPrint', 'opening the print dialog'), pct: 80 }
|
||||
const { printDocument } = await import('@map/composables/printInPlace.js')
|
||||
const how = await printDocument(html, { onNeedsTap: (printNow, cancel) => {
|
||||
|
|
@ -1377,7 +1449,7 @@ provide(POSTER_WALL_CTX, {
|
|||
|
||||
<template v-else>
|
||||
<div class="bar"><div class="bar-fill" :style="{ width: exportState.pct + '%' }"></div></div>
|
||||
<div class="modal-phase">{{ exportState.message }}</div>
|
||||
<div class="modal-phase">{{ exportState.message }}<template v-if="exportState.stepN"> · {{ hud('wall.hud.stepOf', 'step {n} of {m}', { n: exportState.stepN, m: exportState.stepM }) }}</template><template v-if="elapsedS >= 1"> · {{ hud('wall.hud.elapsed', '{s} s', { s: elapsedS }) }}</template></div>
|
||||
<div class="modal-hint">
|
||||
{{ t('buttons.renderingLocal') }}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -93,7 +93,23 @@
|
|||
"posterNotFound": "لم يُعثر على الملصق ({status})",
|
||||
"posterBlank": "خرج الملصق المُنشأ فارغًا",
|
||||
"noApi": "لم تُهيَّأ خدمة الشعوب",
|
||||
"fetchFailed": "تعذّر تحميل الشعوب ({status})"
|
||||
"fetchFailed": "تعذّر تحميل الشعوب ({status})",
|
||||
"step": {
|
||||
"records": "loading the people groups",
|
||||
"boundaries": "loading the map outlines",
|
||||
"generator": "loading the poster engine",
|
||||
"mapFrame": "fitting the map",
|
||||
"neighbours": "drawing the neighbouring provinces",
|
||||
"seas": "naming the seas",
|
||||
"pins": "placing the pins",
|
||||
"sideLanes": "laying out the side lanes",
|
||||
"cities": "adding the cities",
|
||||
"names": "placing the names",
|
||||
"header": "writing the header",
|
||||
"print": "preparing the print"
|
||||
},
|
||||
"stepOf": "step {n} of {m}",
|
||||
"elapsed": "{s} s"
|
||||
},
|
||||
"posterAlt": "{label} — ملصق صلاة",
|
||||
"posterAltAction": "{label} — ملصق صلاة (انقر للمعاينة والطباعة)"
|
||||
|
|
|
|||
|
|
@ -93,7 +93,23 @@
|
|||
"posterNotFound": "Plakat nicht gefunden ({status})",
|
||||
"posterBlank": "das erzeugte Plakat ist leer",
|
||||
"noApi": "kein Volksgruppen-Dienst konfiguriert",
|
||||
"fetchFailed": "Volksgruppen konnten nicht geladen werden ({status})"
|
||||
"fetchFailed": "Volksgruppen konnten nicht geladen werden ({status})",
|
||||
"step": {
|
||||
"records": "loading the people groups",
|
||||
"boundaries": "loading the map outlines",
|
||||
"generator": "loading the poster engine",
|
||||
"mapFrame": "fitting the map",
|
||||
"neighbours": "drawing the neighbouring provinces",
|
||||
"seas": "naming the seas",
|
||||
"pins": "placing the pins",
|
||||
"sideLanes": "laying out the side lanes",
|
||||
"cities": "adding the cities",
|
||||
"names": "placing the names",
|
||||
"header": "writing the header",
|
||||
"print": "preparing the print"
|
||||
},
|
||||
"stepOf": "step {n} of {m}",
|
||||
"elapsed": "{s} s"
|
||||
},
|
||||
"posterAlt": "{label} — Gebetsposter",
|
||||
"posterAltAction": "{label} — Gebetsposter (zum Ansehen und Drucken klicken)"
|
||||
|
|
|
|||
|
|
@ -93,7 +93,23 @@
|
|||
"posterNotFound": "poster not found ({status})",
|
||||
"posterBlank": "the generated poster came out blank",
|
||||
"noApi": "no people-groups service is configured",
|
||||
"fetchFailed": "could not load the people groups ({status})"
|
||||
"fetchFailed": "could not load the people groups ({status})",
|
||||
"step": {
|
||||
"records": "loading the people groups",
|
||||
"boundaries": "loading the map outlines",
|
||||
"generator": "loading the poster engine",
|
||||
"mapFrame": "fitting the map",
|
||||
"neighbours": "drawing the neighbouring provinces",
|
||||
"seas": "naming the seas",
|
||||
"pins": "placing the pins",
|
||||
"sideLanes": "laying out the side lanes",
|
||||
"cities": "adding the cities",
|
||||
"names": "placing the names",
|
||||
"header": "writing the header",
|
||||
"print": "preparing the print"
|
||||
},
|
||||
"stepOf": "step {n} of {m}",
|
||||
"elapsed": "{s} s"
|
||||
},
|
||||
"posterAlt": "{label} — prayer poster",
|
||||
"posterAltAction": "{label} — prayer poster (click to preview and print)"
|
||||
|
|
|
|||
|
|
@ -93,7 +93,23 @@
|
|||
"posterNotFound": "cartel no encontrado ({status})",
|
||||
"posterBlank": "el cartel generado salió en blanco",
|
||||
"noApi": "no hay un servicio de pueblos configurado",
|
||||
"fetchFailed": "no se pudieron cargar los pueblos ({status})"
|
||||
"fetchFailed": "no se pudieron cargar los pueblos ({status})",
|
||||
"step": {
|
||||
"records": "loading the people groups",
|
||||
"boundaries": "loading the map outlines",
|
||||
"generator": "loading the poster engine",
|
||||
"mapFrame": "fitting the map",
|
||||
"neighbours": "drawing the neighbouring provinces",
|
||||
"seas": "naming the seas",
|
||||
"pins": "placing the pins",
|
||||
"sideLanes": "laying out the side lanes",
|
||||
"cities": "adding the cities",
|
||||
"names": "placing the names",
|
||||
"header": "writing the header",
|
||||
"print": "preparing the print"
|
||||
},
|
||||
"stepOf": "step {n} of {m}",
|
||||
"elapsed": "{s} s"
|
||||
},
|
||||
"posterAlt": "{label} — cartel de oración",
|
||||
"posterAltAction": "{label} — cartel de oración (haz clic para ver e imprimir)"
|
||||
|
|
|
|||
|
|
@ -93,7 +93,23 @@
|
|||
"posterNotFound": "affiche introuvable ({status})",
|
||||
"posterBlank": "l’affiche générée est sortie vide",
|
||||
"noApi": "aucun service de peuples n’est configuré",
|
||||
"fetchFailed": "impossible de charger les peuples ({status})"
|
||||
"fetchFailed": "impossible de charger les peuples ({status})",
|
||||
"step": {
|
||||
"records": "loading the people groups",
|
||||
"boundaries": "loading the map outlines",
|
||||
"generator": "loading the poster engine",
|
||||
"mapFrame": "fitting the map",
|
||||
"neighbours": "drawing the neighbouring provinces",
|
||||
"seas": "naming the seas",
|
||||
"pins": "placing the pins",
|
||||
"sideLanes": "laying out the side lanes",
|
||||
"cities": "adding the cities",
|
||||
"names": "placing the names",
|
||||
"header": "writing the header",
|
||||
"print": "preparing the print"
|
||||
},
|
||||
"stepOf": "step {n} of {m}",
|
||||
"elapsed": "{s} s"
|
||||
},
|
||||
"posterAlt": "{label} — affiche de prière",
|
||||
"posterAltAction": "{label} — affiche de prière (cliquez pour prévisualiser et imprimer)"
|
||||
|
|
|
|||
|
|
@ -93,7 +93,23 @@
|
|||
"posterNotFound": "पोस्टर नहीं मिला ({status})",
|
||||
"posterBlank": "बनाया गया पोस्टर खाली निकला",
|
||||
"noApi": "कोई जनसमूह सेवा कॉन्फ़िगर नहीं है",
|
||||
"fetchFailed": "जनसमूह लोड नहीं हो सके ({status})"
|
||||
"fetchFailed": "जनसमूह लोड नहीं हो सके ({status})",
|
||||
"step": {
|
||||
"records": "loading the people groups",
|
||||
"boundaries": "loading the map outlines",
|
||||
"generator": "loading the poster engine",
|
||||
"mapFrame": "fitting the map",
|
||||
"neighbours": "drawing the neighbouring provinces",
|
||||
"seas": "naming the seas",
|
||||
"pins": "placing the pins",
|
||||
"sideLanes": "laying out the side lanes",
|
||||
"cities": "adding the cities",
|
||||
"names": "placing the names",
|
||||
"header": "writing the header",
|
||||
"print": "preparing the print"
|
||||
},
|
||||
"stepOf": "step {n} of {m}",
|
||||
"elapsed": "{s} s"
|
||||
},
|
||||
"posterAlt": "{label} — प्रार्थना पोस्टर",
|
||||
"posterAltAction": "{label} — प्रार्थना पोस्टर (देखने और छापने के लिए क्लिक करें)"
|
||||
|
|
|
|||
|
|
@ -93,7 +93,23 @@
|
|||
"posterNotFound": "manifesto non trovato ({status})",
|
||||
"posterBlank": "il manifesto generato è risultato vuoto",
|
||||
"noApi": "nessun servizio dei popoli è configurato",
|
||||
"fetchFailed": "impossibile caricare i popoli ({status})"
|
||||
"fetchFailed": "impossibile caricare i popoli ({status})",
|
||||
"step": {
|
||||
"records": "loading the people groups",
|
||||
"boundaries": "loading the map outlines",
|
||||
"generator": "loading the poster engine",
|
||||
"mapFrame": "fitting the map",
|
||||
"neighbours": "drawing the neighbouring provinces",
|
||||
"seas": "naming the seas",
|
||||
"pins": "placing the pins",
|
||||
"sideLanes": "laying out the side lanes",
|
||||
"cities": "adding the cities",
|
||||
"names": "placing the names",
|
||||
"header": "writing the header",
|
||||
"print": "preparing the print"
|
||||
},
|
||||
"stepOf": "step {n} of {m}",
|
||||
"elapsed": "{s} s"
|
||||
},
|
||||
"posterAlt": "{label} — poster di preghiera",
|
||||
"posterAltAction": "{label} — poster di preghiera (fai clic per vedere e stampare)"
|
||||
|
|
|
|||
|
|
@ -93,7 +93,23 @@
|
|||
"posterNotFound": "cartaz não encontrado ({status})",
|
||||
"posterBlank": "o cartaz gerado saiu em branco",
|
||||
"noApi": "nenhum serviço de povos está configurado",
|
||||
"fetchFailed": "não foi possível carregar os povos ({status})"
|
||||
"fetchFailed": "não foi possível carregar os povos ({status})",
|
||||
"step": {
|
||||
"records": "loading the people groups",
|
||||
"boundaries": "loading the map outlines",
|
||||
"generator": "loading the poster engine",
|
||||
"mapFrame": "fitting the map",
|
||||
"neighbours": "drawing the neighbouring provinces",
|
||||
"seas": "naming the seas",
|
||||
"pins": "placing the pins",
|
||||
"sideLanes": "laying out the side lanes",
|
||||
"cities": "adding the cities",
|
||||
"names": "placing the names",
|
||||
"header": "writing the header",
|
||||
"print": "preparing the print"
|
||||
},
|
||||
"stepOf": "step {n} of {m}",
|
||||
"elapsed": "{s} s"
|
||||
},
|
||||
"posterAlt": "{label} — cartaz de oração",
|
||||
"posterAltAction": "{label} — cartaz de oração (clique para visualizar e imprimir)"
|
||||
|
|
|
|||
|
|
@ -93,7 +93,23 @@
|
|||
"posterNotFound": "afișul nu a fost găsit ({status})",
|
||||
"posterBlank": "afișul generat a ieșit gol",
|
||||
"noApi": "niciun serviciu de popoare nu este configurat",
|
||||
"fetchFailed": "popoarele nu au putut fi încărcate ({status})"
|
||||
"fetchFailed": "popoarele nu au putut fi încărcate ({status})",
|
||||
"step": {
|
||||
"records": "loading the people groups",
|
||||
"boundaries": "loading the map outlines",
|
||||
"generator": "loading the poster engine",
|
||||
"mapFrame": "fitting the map",
|
||||
"neighbours": "drawing the neighbouring provinces",
|
||||
"seas": "naming the seas",
|
||||
"pins": "placing the pins",
|
||||
"sideLanes": "laying out the side lanes",
|
||||
"cities": "adding the cities",
|
||||
"names": "placing the names",
|
||||
"header": "writing the header",
|
||||
"print": "preparing the print"
|
||||
},
|
||||
"stepOf": "step {n} of {m}",
|
||||
"elapsed": "{s} s"
|
||||
},
|
||||
"posterAlt": "{label} — afiș de rugăciune",
|
||||
"posterAltAction": "{label} — afiș de rugăciune (clic pentru previzualizare și tipărire)"
|
||||
|
|
|
|||
|
|
@ -93,7 +93,23 @@
|
|||
"posterNotFound": "плакат не найден ({status})",
|
||||
"posterBlank": "созданный плакат получился пустым",
|
||||
"noApi": "сервис народов не настроен",
|
||||
"fetchFailed": "не удалось загрузить народы ({status})"
|
||||
"fetchFailed": "не удалось загрузить народы ({status})",
|
||||
"step": {
|
||||
"records": "loading the people groups",
|
||||
"boundaries": "loading the map outlines",
|
||||
"generator": "loading the poster engine",
|
||||
"mapFrame": "fitting the map",
|
||||
"neighbours": "drawing the neighbouring provinces",
|
||||
"seas": "naming the seas",
|
||||
"pins": "placing the pins",
|
||||
"sideLanes": "laying out the side lanes",
|
||||
"cities": "adding the cities",
|
||||
"names": "placing the names",
|
||||
"header": "writing the header",
|
||||
"print": "preparing the print"
|
||||
},
|
||||
"stepOf": "step {n} of {m}",
|
||||
"elapsed": "{s} s"
|
||||
},
|
||||
"posterAlt": "{label} — молитвенный плакат",
|
||||
"posterAltAction": "{label} — молитвенный плакат (нажмите, чтобы просмотреть и распечатать)"
|
||||
|
|
|
|||
|
|
@ -93,7 +93,23 @@
|
|||
"posterNotFound": "未找到海报({status})",
|
||||
"posterBlank": "生成的海报为空白",
|
||||
"noApi": "未配置族群服务",
|
||||
"fetchFailed": "无法加载族群({status})"
|
||||
"fetchFailed": "无法加载族群({status})",
|
||||
"step": {
|
||||
"records": "loading the people groups",
|
||||
"boundaries": "loading the map outlines",
|
||||
"generator": "loading the poster engine",
|
||||
"mapFrame": "fitting the map",
|
||||
"neighbours": "drawing the neighbouring provinces",
|
||||
"seas": "naming the seas",
|
||||
"pins": "placing the pins",
|
||||
"sideLanes": "laying out the side lanes",
|
||||
"cities": "adding the cities",
|
||||
"names": "placing the names",
|
||||
"header": "writing the header",
|
||||
"print": "preparing the print"
|
||||
},
|
||||
"stepOf": "step {n} of {m}",
|
||||
"elapsed": "{s} s"
|
||||
},
|
||||
"posterAlt": "{label} — 祷告海报",
|
||||
"posterAltAction": "{label} — 祷告海报(点击预览并打印)"
|
||||
|
|
|
|||
|
|
@ -134,16 +134,21 @@ async function adminAreasFor(iso3, base) {
|
|||
}
|
||||
|
||||
export function makeCountrySheet({ records, assetsBase, countries = null }) {
|
||||
return async function countrySheet(item, format) {
|
||||
// opts.onStep: the print HUD's real steps (PosterWall): 'records', then the drawing's own (posterSheets / renderPoster).
|
||||
return async function countrySheet(item, format, opts = {}) {
|
||||
const iso3 = item && item.iso3
|
||||
if (!iso3) return '' // a selection or a row without a country: no sheet
|
||||
if (posterWithheld(item)) return '' // a withheld poster (above): nothing is fetched or drawn
|
||||
// Lazy, like the zone sheet: the generator and the boundary loader are only pulled when a
|
||||
// reader actually prints, so they stay out of every wall's initial download.
|
||||
const { generateCountrySheet } = await import('@map/packet/posterSheets.js')
|
||||
const onStep = (opts && typeof opts.onStep === 'function') ? opts.onStep : null
|
||||
if (onStep) { try { onStep('records') } catch (_) { /* the caller's display */ } }
|
||||
const { generateCountrySheet, warmSheet } = await import('@map/packet/posterSheets.js')
|
||||
const warm = warmSheet ? warmSheet(assetsBase()) : null // the boundaries + engine load WHILE the records do
|
||||
const [{ ISO3_NAME }, rows] = await Promise.all([
|
||||
import('@map/data/iso3-name.js'),
|
||||
records({ type: 'country', values: [iso3] }),
|
||||
warm,
|
||||
])
|
||||
if (!rows || !rows.length) return '' // nothing to pin: fall through rather than draw an empty country
|
||||
const big = largeSheet(item)
|
||||
|
|
@ -157,6 +162,7 @@ export function makeCountrySheet({ records, assetsBase, countries = null }) {
|
|||
ISO3_NAME,
|
||||
format: sheetFormatFor(item, format),
|
||||
series: seriesFor(countries, item),
|
||||
onStep,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@
|
|||
// The sha384 of library/packet/poster-render.js. The browser fetches the served copy of that file
|
||||
// (<assets>/lib/poster-render.js), hashes it, and runs it only when it matches this pin: code loaded at
|
||||
// print time is integrity-pinned like every embed, because it executes on partner pages.
|
||||
export const POSTER_RENDER_SHA384 = 'sha384-BNFUrsdCCaEetmp5cSBzDklAUsB5XBEefQEcCd3+dNNDghxRuZNytNsVfl5mBOeP'
|
||||
export const POSTER_RENDER_SHA384 = 'sha384-BovEYinyxyuBbZKenKq3jVNmVXHZG1qpEdznmgol7ceumR6r6KiKQhAQVg5Fs6yn'
|
||||
// The sha384 of library/scripts/posters/data/ne-places.json, served at <assets>/boundaries/ne-places.json.
|
||||
// Data, not code, but pinned the same way: a sheet uses the places only when they are the pinned ones.
|
||||
export const NE_PLACES_SHA384 = 'sha384-Qtz2q8mcnA9Ei8Kwa2MRMyX95hSbSnUXjXdtsy8rHTX++mgSCih4LO4Rdrb2MIQy'
|
||||
// The sha384 of the classic-script copy (<assets>/lib/poster-render.global.js, globalVariant of the file above),
|
||||
// loaded with <script integrity> where a page's policy forbids importing a blob: of the verified text.
|
||||
export const POSTER_RENDER_GLOBAL_SHA384 = 'sha384-idoDSzFXNuBK27dktAJffZD6QhubGkNOk+g9vwPobzs0HWHfnUq3cSyX7FyzwvtQ'
|
||||
export const POSTER_RENDER_GLOBAL_SHA384 = 'sha384-p3Ua3UsjgZMKvcmxIsqFwdpqjtj+4DGNHSaA6+EqFqCPL27g3rrVRunEXeG7Qbaj'
|
||||
// The sha384 of library/scripts/posters/packet-strings.json, served at <assets>/lib/packet-strings.json. The
|
||||
// packet, list and card text in every language, fetched at print time (packet/packetStrings.js) and used only
|
||||
// when it matches; otherwise the print falls back to the bundled English block.
|
||||
|
|
|
|||
|
|
@ -30,10 +30,25 @@
|
|||
export function createPosterGenerator({
|
||||
env = {}, SERIES_DEF = {}, ISO3_NAME = {}, adm0 = null, adm1Ind = null, adm1Chn = null, nePlaces = [],
|
||||
fetchGrid = null, bestZoom = null, series = { totalGroups: 0, totalLists: 0, index: 1 },
|
||||
onStep = null,
|
||||
} = {}) {
|
||||
// The moved code reads process.env.X; this LOCAL process makes that read the caller's env object.
|
||||
const process = { env };
|
||||
const SERIES = series;
|
||||
// ★ PROGRESS THAT NEVER FREEZES (the print HUD): with onStep, renderPoster reports each stage by name and YIELDS a
|
||||
// frame between stages, so the page repaints (the step, the elapsed time) instead of one long frozen task. Without
|
||||
// onStep (Node, the proofs) a step is a no-op: `await undefined` changes no state, so every sheet stays byte-identical.
|
||||
const __step = onStep
|
||||
? (name) => {
|
||||
try { onStep(name); } catch (_) { /* the caller's own display */ }
|
||||
return new Promise((r) => (typeof requestAnimationFrame === 'function' ? requestAnimationFrame(() => setTimeout(r, 0)) : setTimeout(r, 0)));
|
||||
}
|
||||
: () => undefined;
|
||||
// A yield WITHOUT a new step, for a long loop inside one stage (the pin relaxation): the page repaints (the elapsed
|
||||
// seconds tick) and the work resumes. A no-op without onStep, so the sheet is unchanged.
|
||||
const __yield = onStep
|
||||
? () => new Promise((r) => (typeof requestAnimationFrame === 'function' ? requestAnimationFrame(() => setTimeout(r, 0)) : setTimeout(r, 0)))
|
||||
: () => undefined;
|
||||
// ── PIN BBOX: antimeridian-aware, outlier-trimmed ───────────────────────────
|
||||
// Two independent failure modes made three posters render the WHOLE GLOBE:
|
||||
//
|
||||
|
|
@ -114,6 +129,13 @@ function geoToPath(geom, project) {
|
|||
}
|
||||
return d;
|
||||
}
|
||||
// A ring's own bbox [minX, minY, maxX, maxY] (one pass), for the point-in-ring skips.
|
||||
function ringBox(ring) {
|
||||
let x0 = Infinity, y0 = Infinity, x1 = -Infinity, y1 = -Infinity;
|
||||
for (const [x, y] of ring) { if (x < x0) x0 = x; if (x > x1) x1 = x; if (y < y0) y0 = y; if (y > y1) y1 = y; }
|
||||
return [x0, y0, x1, y1];
|
||||
}
|
||||
|
||||
function bboxOf(geom) {
|
||||
const rings = geom.type === 'Polygon' ? geom.coordinates
|
||||
: geom.type === 'MultiPolygon' ? geom.coordinates.flat() : [];
|
||||
|
|
@ -184,10 +206,14 @@ function segCross(p, q) {
|
|||
}
|
||||
function countPolyCrossings(polys) {
|
||||
const segs = [];
|
||||
polys.forEach((pts, li) => { for (let i = 0; i < pts.length - 1; i++) segs.push({ s: [pts[i], pts[i + 1]], li }); });
|
||||
// Each segment carries its bbox: a proper crossing needs the two bboxes to overlap, so a disjoint pair is never
|
||||
// counted by segCross either; skipping it gives the same count without the orientation tests (print speed).
|
||||
polys.forEach((pts, li) => { for (let i = 0; i < pts.length - 1; i++) { const a = pts[i], b = pts[i + 1];
|
||||
segs.push({ s: [a, b], li, x0: Math.min(a[0], b[0]), x1: Math.max(a[0], b[0]), y0: Math.min(a[1], b[1]), y1: Math.max(a[1], b[1]) }); } });
|
||||
let n = 0;
|
||||
for (let i = 0; i < segs.length; i++) for (let j = i + 1; j < segs.length; j++) {
|
||||
if (segs[i].li === segs[j].li) continue;
|
||||
if (segs[i].x1 < segs[j].x0 || segs[j].x1 < segs[i].x0 || segs[i].y1 < segs[j].y0 || segs[j].y1 < segs[i].y0) continue;
|
||||
if (segCross(segs[i].s, segs[j].s)) n++;
|
||||
}
|
||||
return n;
|
||||
|
|
@ -1078,6 +1104,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
: [_w * 0.22 + floorDeg, _h * 0.22 + floorDeg];
|
||||
const viewBbox = [bbox[0] - pad[0], bbox[1] - pad[1], bbox[2] + pad[0], bbox[3] + pad[1]];
|
||||
|
||||
await __step('map-frame');
|
||||
// ── FIT THE MAP FRAME TO THE REGION'S SHAPE ────────────────────────────────
|
||||
// The map frame was a fixed portrait rect (930x1580, aspect 0.59) but this
|
||||
// region is LANDSCAPE (aspect 1.26). makeProjection fits with Math.min(sx,sy),
|
||||
|
|
@ -1205,12 +1232,14 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
return hit;
|
||||
};
|
||||
const cand = [];
|
||||
const R = ringsOf(f.geometry);
|
||||
// Each ring with its bbox: a point outside a ring's bbox is never inside it (the parity test gives false), so
|
||||
// skipping those rings gives exactly the same answers and spares the vertex walk (the mobile print speed).
|
||||
const R = ringsOf(f.geometry).map((ring) => [ring, ringBox(ring)]);
|
||||
for (let gx = 1; gx <= 7; gx++) {
|
||||
for (let gy = 1; gy <= 7; gy++) {
|
||||
const cxp = best[0] + ((best[2] - best[0]) * gx) / 8;
|
||||
const cyp = best[1] + ((best[3] - best[1]) * gy) / 8;
|
||||
if (!R.some((ring) => inRing(cxp, cyp, ring))) continue;
|
||||
if (!R.some(([ring, b]) => cxp >= b[0] && cxp <= b[2] && cyp >= b[1] && cyp <= b[3] && inRing(cxp, cyp, ring))) continue;
|
||||
// score = distance to the nearest edge of the clipped box (keeps it central)
|
||||
const d = Math.min(cxp - best[0], best[2] - cxp, cyp - best[1], best[3] - cyp);
|
||||
cand.push({ cxp, cyp, d });
|
||||
|
|
@ -1268,6 +1297,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
ctryNames += `<text x="${L.x.toFixed(1)}" y="${L.y.toFixed(1)}" text-anchor="middle" class="ctry-name-halo">${t}</text>`
|
||||
+ `<text x="${L.x.toFixed(1)}" y="${L.y.toFixed(1)}" text-anchor="middle" class="${cls}">${t}</text>`;
|
||||
}
|
||||
await __step('neighbours');
|
||||
// ── NEIGHBOURING PROVINCES (context ADM1) ─────────────────────────────────
|
||||
// Previously only the ZONE's provinces were drawn, so everything around the
|
||||
// highlighted cluster was one undifferentiated wash — a reader could not tell
|
||||
|
|
@ -1311,6 +1341,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
adm1Labels.push({ x: lx, y: ly, nm: String(nm), own: true });
|
||||
}
|
||||
}
|
||||
await __step('seas');
|
||||
// ── SEA LABELS ─────────────────────────────────────────────────────────────
|
||||
// Water rendered as an unlabelled pale field, so a reader could not tell ocean
|
||||
// from a province that failed to draw — the operator read the Arabian Sea as a
|
||||
|
|
@ -1356,7 +1387,13 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
else if (g.type === 'MultiPolygon') for (const poly of g.coordinates) landRings.push(poly[0]);
|
||||
}
|
||||
}
|
||||
const onLand = (lng, lat) => landRings.some((ring) => {
|
||||
// ★ MOBILE PRINT SPEED: every ring carries its bbox, and a point outside it skips the vertex walk. Exact: outside the
|
||||
// bbox the parity test is always false (no edge spans the latitude, or every crossing lies on one side of a closed
|
||||
// ring). On a phone this scan was most of a country poster's time (China ~45 s at CPU x4).
|
||||
const landBoxes = landRings.map(ringBox);
|
||||
const onLand = (lng, lat) => landRings.some((ring, k) => {
|
||||
const b = landBoxes[k];
|
||||
if (lng < b[0] || lng > b[2] || lat < b[1] || lat > b[3]) return false;
|
||||
let hit = false;
|
||||
for (let i = 0, j = ring.length - 1; i < ring.length; j = i++) {
|
||||
const [xi, yi] = ring[i], [xj, yj] = ring[j];
|
||||
|
|
@ -1386,10 +1423,10 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
const patches = [];
|
||||
for (let lng = viewBbox[0]; lng <= viewBbox[2]; lng += stepX) {
|
||||
for (let lat = viewBbox[1]; lat <= viewBbox[3]; lat += stepY) {
|
||||
if (onLand(lng, lat)) continue;
|
||||
const [px2, py2] = proj(lng, lat);
|
||||
if (px2 < FRAME_X + 60 || px2 > FRAME_X + FRAME_W - 60) continue;
|
||||
if (py2 < FRAME_Y + 40 || py2 > FRAME_Y + FRAME_H - 40) continue;
|
||||
if (onLand(lng, lat)) continue; // after the frame test: a point outside the frame never needed it
|
||||
patches.push({ lng, lat, px: px2, py: py2 });
|
||||
}
|
||||
}
|
||||
|
|
@ -1455,6 +1492,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
// crossing. Moving pins AFTER the sort silently invalidated it — measured 618
|
||||
// crossings at f=0 where the ordering-preserving version measures 0.
|
||||
const prePins = pins.map((p) => { const [lx, ly] = proj(p.lng, p.lat); return { ...p, _px: lx, _py: ly }; });
|
||||
await __step('pins');
|
||||
// ── PIN DE-OVERLAP (relaxation, pixel space, AFTER projection) ────────────
|
||||
// The earlier version only caught EXACT pixel collisions, which missed the real
|
||||
// problem: pins that land 2-3px apart still overlap visually and still read as
|
||||
|
|
@ -1482,6 +1520,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
const ITERS = 260;
|
||||
for (const it of prePins) { it._ox = it._px; it._oy = it._py; }
|
||||
for (let pass = 0; pass < ITERS; pass++) {
|
||||
if (pass && pass % 26 === 0) await __yield(); // ~10 repaints across the relaxation (dense countries: seconds on a phone)
|
||||
let moved = false;
|
||||
for (let i = 0; i < prePins.length; i++) {
|
||||
for (let j = i + 1; j < prePins.length; j++) {
|
||||
|
|
@ -1516,6 +1555,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
// Feed the settled pixel positions back as lng/lat-free overrides.
|
||||
const settled = prePins.map((p) => ({ ...p, _fixed: true }));
|
||||
|
||||
await __step('side-lanes');
|
||||
// ── SIDE LANES: a whole country's groups on one large sheet (FMT.sideLanes) ───────────────────────────
|
||||
// Every name HORIZONTAL, on the left and right of the map, in two STAGGERED columns per side: the rows alternate
|
||||
// inner/outer at half the line pitch, so each column keeps a full pitch and each row holds exactly ONE name.
|
||||
|
|
@ -1643,6 +1683,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
// What the city layer must keep clear of: the drawn pins (laid out, or true positions on a side-lane sheet).
|
||||
const avoidPins = sides ? sides.pins : laid;
|
||||
|
||||
await __step('cities');
|
||||
// ── CAPITALS + MAJOR CITIES ────────────────────────────────────────────────
|
||||
// Orientation marks, deliberately SUBORDINATE to the people-group pins. Imhof's
|
||||
// figure-ground again: this layer answers "where am I?" and must never compete
|
||||
|
|
@ -1793,6 +1834,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
let leaders = '', dots = '', labels = '', pinDots = '';
|
||||
let octiOK = true;
|
||||
|
||||
await __step('names');
|
||||
// ── NUMBERED-LEGEND MODE (dense posters) ──────────────────────────────────
|
||||
// A previous builder PROVED the leader design is geometrically contradictory,
|
||||
// not badly tuned: "labels evenly filling the margin" + "non-horizontal leaders"
|
||||
|
|
@ -2046,9 +2088,11 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
});
|
||||
if (sides) { leaders += sides.leaders; pinDots += sides.pinDots; labels += sides.labels; }
|
||||
if (!octiOK) console.warn(` ⚠ non-octilinear segment in ${zone.zoneKey}`);
|
||||
const crossings = sides ? sides.crossings : countPolyCrossings(routes);
|
||||
// routes = routesFor(bestD), whose crossings the sweep just counted (bestX): reuse it rather than count twice.
|
||||
const crossings = sides ? sides.crossings : (Number.isFinite(bestX) ? bestX : countPolyCrossings(routes));
|
||||
const diagFrac = bestD;
|
||||
|
||||
await __step('header');
|
||||
// ── TITLE vs SUBTITLE ──────────────────────────────────────────────────────
|
||||
// A TITLE IS NEVER A LIST. The India/China lists carry labels like "Rajasthan +
|
||||
// Haryana + Himachal Pradesh + Jammu and Kashmir + Punjab + Chandigarh + Ladakh"
|
||||
|
|
|
|||
|
|
@ -125,9 +125,11 @@ function loadPlaces(assetsBase) {
|
|||
export async function generateSheet({
|
||||
zone, pins = [], zoneFC = null, format = '3x4', seriesId = 'upg100', ISO3_NAME = {},
|
||||
adm0 = null, adm1Ind = null, adm1Chn = null, series = { totalGroups: 0, totalLists: 0, index: 1 }, date = null,
|
||||
assetsBase = null, nePlaces = null, sparse = format !== 'packet',
|
||||
assetsBase = null, nePlaces = null, sparse = format !== 'packet', onStep = null,
|
||||
} = {}) {
|
||||
if (!zone || !zone.zoneKey) return ''
|
||||
// the print HUD's steps (PosterWall): the engine loads, then each stage of the drawing reports itself (renderPoster)
|
||||
if (onStep) { try { onStep('generator') } catch (_) { /* the caller's display */ } }
|
||||
const [{ seriesAll }, places, createPosterGenerator] = await Promise.all([
|
||||
loadShared(), nePlaces ? Promise.resolve(nePlaces) : loadPlaces(assetsBase), loadGenerator(assetsBase),
|
||||
])
|
||||
|
|
@ -148,6 +150,7 @@ export async function generateSheet({
|
|||
// UPG-100 packet's page 1 is its full letter poster).
|
||||
env: { FORMAT: format, ...(sparse ? { SPARSE: '1' } : {}), ...(date ? { POSTER_DATE: date } : {}) },
|
||||
SERIES_DEF, ISO3_NAME, adm0, adm1Ind, adm1Chn, nePlaces: places, series: { totalGroups: 0, totalLists: 0, index: 1, ...series },
|
||||
onStep,
|
||||
})
|
||||
const fc = zoneFC || { type: 'FeatureCollection', features: [] }
|
||||
const out = await gen.renderPoster(zone, pins, fc)
|
||||
|
|
@ -283,11 +286,20 @@ export function pinsFrom(records) {
|
|||
* A country's sheet, generated now: its people groups (records, with coordinates) on its own outline.
|
||||
* @param country { id, iso3, label, count } — one entry of library/data/country-posters.json
|
||||
*/
|
||||
export async function generateCountrySheet({ country, records, assetsBase, ISO3_NAME, format = 'letter', series, date = null }) {
|
||||
// ★ START EVERYTHING A SHEET NEEDS AT ONCE (print speed): the boundaries, the engine, the places table and the
|
||||
// series text are independent, cached loads, and a print used to fetch them one after another (records, then the
|
||||
// boundaries, then the rest). A caller starts this beside its records; the later calls get the same cached results,
|
||||
// so the sheet is unchanged. Failures are left to the real call, which reports them.
|
||||
export function warmSheet(assetsBase) {
|
||||
return Promise.all([loadBoundaries(assetsBase), loadShared(), loadPlaces(assetsBase), loadGenerator(assetsBase)]).catch(() => {})
|
||||
}
|
||||
|
||||
export async function generateCountrySheet({ country, records, assetsBase, ISO3_NAME, format = 'letter', series, date = null, onStep = null }) {
|
||||
const zone = countryZone(country)
|
||||
if (onStep) { try { onStep('boundaries') } catch (_) { /* the caller's display */ } }
|
||||
// The FULL boundary set, as the Node driver passes it: a country beside India or China draws their
|
||||
// provinces too (outlines, names, sea-label land), and a sheet fed ADM0 alone differs from Node's.
|
||||
const { adm0, adm1Ind, adm1Chn } = await loadBoundaries(assetsBase)
|
||||
const zoneFC = countryGeometry(zone, adm0, (records || []).length > 0)
|
||||
return generateSheet({ zone, pins: pinsFrom(records), zoneFC, format, seriesId: 'country', ISO3_NAME, adm0, adm1Ind, adm1Chn, series, date, assetsBase })
|
||||
return generateSheet({ zone, pins: pinsFrom(records), zoneFC, format, seriesId: 'country', ISO3_NAME, adm0, adm1Ind, adm1Chn, series, date, assetsBase, onStep })
|
||||
}
|
||||
|
|
|
|||
|
|
@ -186,12 +186,22 @@ const sheetForRecord = makeCountrySheet({
|
|||
assetsBase: () => assetsBase.value,
|
||||
countries: data.countries || [],
|
||||
})
|
||||
const countryOnlySheet = (card, format) => sheetForRecord(byId.get(card.id) || card, format)
|
||||
const countryOnlySheet = (card, format, opts) => sheetForRecord(byId.get(card.id) || card, format, opts)
|
||||
// A state's sheet through its own ONE path (src/indiaStateSheet.js), in India's hue and the indiaState series.
|
||||
const stateSheet = makeIndiaStateSheet({
|
||||
records: recordsFor, assetsBase: () => assetsBase.value, states: () => indiaStates.value, region: INDIA_REGION,
|
||||
})
|
||||
const countrySheet = (card, format) => (card.indiaState ? stateSheet(card, format) : countryOnlySheet(card, format))
|
||||
// ★ WARM ON INTENT: opening a card's Prayer List or Card Deck chooser starts that card's people groups (the cached
|
||||
// provider the print then reads) and, for the packet, whose page 1 is the country sheet, the sheet's boundaries and
|
||||
// engine (warmSheet), so the print after the choice skips those loads. Never on browsing alone, never for a withheld card.
|
||||
function prewarmPrint(card, which) {
|
||||
if (!card || card.noGroups || rowsWithheld(card) || posterWithheld(card)) return
|
||||
const rows = card.indiaState ? (card.slugs && card.slugs.length ? recordsFor({ type: 'pg_slugs', values: card.slugs }) : null)
|
||||
: (card.iso3 ? recordsFor({ type: 'country', values: [card.iso3] }) : null)
|
||||
if (rows && rows.catch) rows.catch(() => {})
|
||||
if (which === 'packet') import('@map/packet/posterSheets.js').then((m) => m.warmSheet && m.warmSheet(assetsBase.value)).catch(() => {})
|
||||
}
|
||||
const countrySheet = (card, format, opts) => (card.indiaState ? stateSheet(card, format, opts) : countryOnlySheet(card, format, opts))
|
||||
// The name table the generated sheet was labelled from, so a packet in another language relabels page 1's
|
||||
// country names (the same seam the UPG-100 wall passes).
|
||||
const iso3Names = () => import('@map/data/iso3-name.js').then((m) => m.ISO3_NAME)
|
||||
|
|
@ -274,6 +284,7 @@ const soonMessage = computed(() => t('messages.countryWallSoon'))
|
|||
:records="countryRecords"
|
||||
:card-stocks="true"
|
||||
:sheet="countrySheet"
|
||||
:prewarm="prewarmPrint"
|
||||
:iso3-names="iso3Names"
|
||||
:map-image="countryMap"
|
||||
:collapsible="!filtered"
|
||||
|
|
|
|||
|
|
@ -107,7 +107,11 @@ async function photoArms(html, rasterSrc, wallSrc) {
|
|||
else if (ext(svg)) fails.push(`photos: rasterPoster would rasterise ${ext(svg)} external <image> (each one prints the broken-image glyph)`)
|
||||
// (b) the wall's generated-sheet branch prints a sheet with external images as a document, before any raster
|
||||
const branch = (wallSrc.match(/if \(props\.sheet\) \{[\s\S]*?rasterPoster\(html/) || [''])[0]
|
||||
if (!/posterAction === 'print' && hasExternalImages\(html\)\) \{ await printSheetDocument\(html\); return \}/.test(branch)) fails.push('photos: PosterWall prints a sheet with photos through the raster (they cannot draw there)')
|
||||
// Either route keeps the guarantee: a PRINT of a sheet with photos never reaches the raster. Today every printed
|
||||
// sheet goes to its own document first (the document print); before that, only a sheet with photos did.
|
||||
const docFirst = /posterAction === 'print'\) \{ step\('print'\); await printSheetDocument\(html\); return \}/.test(branch)
|
||||
|| /posterAction === 'print' && hasExternalImages\(html\)\) \{ await printSheetDocument\(html\); return \}/.test(branch)
|
||||
if (!docFirst) fails.push('photos: PosterWall prints a sheet with photos through the raster (they cannot draw there)')
|
||||
if (!/async function printSheetDocument\(html\)[\s\S]{0,400}printDocument\(html,/.test(wallSrc)) fails.push('photos: printSheetDocument does not hand the sheet itself to printDocument')
|
||||
return fails
|
||||
}
|
||||
|
|
@ -152,7 +156,7 @@ if (selfTest) {
|
|||
const rs = readFileSync(RASTER, 'utf8'), ws = readFileSync(WALL, 'utf8')
|
||||
for (const [name, r, w, rx] of [
|
||||
['a raster that keeps external images', rs.replace('stripExternalImages(inlineSvg(posterHtml))', 'inlineSvg(posterHtml)'), ws, /rasterise \d+ external/],
|
||||
['a wall print that rasterises a sheet with photos', rs, ws.replace("if (props.posterAction === 'print' && hasExternalImages(html)) { await printSheetDocument(html); return }", ''), /through the raster/],
|
||||
['a wall print that rasterises a sheet with photos', rs, ws.replace("if (props.posterAction === 'print') { step('print'); await printSheetDocument(html); return }", ''), /through the raster/],
|
||||
]) {
|
||||
if (r === rs && w === ws) { console.log(`NOT MEASURED: the poison anchor for "${name}" moved`); process.exitCode = 75; continue }
|
||||
const f = await photoArms(html, r, w)
|
||||
|
|
|
|||
|
|
@ -64,7 +64,9 @@ export function stateGeometry(zone, adm1Ind, shapeName) {
|
|||
* @returns {(item, format) => Promise<string>}
|
||||
*/
|
||||
export function makeIndiaStateSheet({ records, assetsBase, states, region = 'Asia' }) {
|
||||
return async function indiaStateSheet(item, format) {
|
||||
return async function indiaStateSheet(item, format, opts = {}) {
|
||||
const onStep = (opts && typeof opts.onStep === 'function') ? opts.onStep : null
|
||||
if (onStep) { try { onStep('records') } catch (_) { /* the caller's display */ } }
|
||||
const all = states() || []
|
||||
const state = all.find((s) => s.id === (item && item.id))
|
||||
if (!state || !state.count) return ''
|
||||
|
|
@ -73,6 +75,7 @@ export function makeIndiaStateSheet({ records, assetsBase, states, region = 'Asi
|
|||
records({ type: 'pg_slugs', values: state.slugs }),
|
||||
])
|
||||
if (!rows || !rows.length) return ''
|
||||
if (onStep) { try { onStep('boundaries') } catch (_) { /* the caller's display */ } }
|
||||
const bounds = await loadBoundaries(assetsBase())
|
||||
const zone = stateZone(state, countryRegionColor(region))
|
||||
const geo = stateGeometry(zone, bounds.adm1Ind, state.shapeName)
|
||||
|
|
@ -80,7 +83,7 @@ export function makeIndiaStateSheet({ records, assetsBase, states, region = 'Asi
|
|||
return generateSheet({
|
||||
zone, pins: pinsFrom(rows), zoneFC: geo.zoneFC, format, seriesId: 'indiaState', ISO3_NAME,
|
||||
adm0: bounds.adm0, adm1Ind: geo.adm1, adm1Chn: bounds.adm1Chn,
|
||||
series: stateSeries(all, state), assetsBase: assetsBase(),
|
||||
series: stateSeries(all, state), assetsBase: assetsBase(), onStep,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -194,6 +194,14 @@ async function fetchListRecords(list) {
|
|||
// drawn in the browser for the poster print and the packet's page 1 — data/zone-sheet-print.js, the one
|
||||
// helper every UPG-100 surface prints a zone through.
|
||||
const zoneSheet = makeZoneSheet({ allRecords: () => recordsFor.all(), assetsBase: () => assetsBase.value, profileConfig })
|
||||
// ★ WARM ON INTENT (the shared PosterWall's prewarm): opening a card's Prayer List or Card Deck chooser starts the
|
||||
// people-groups list (the cached provider every print here reads) and, for the packet, whose page 1 is the zone
|
||||
// sheet, that sheet's boundaries and engine. Never on browsing alone; a failed warm is retried by the print itself.
|
||||
function prewarmPrint(item, which) {
|
||||
if (!API_BASE || !item) return
|
||||
recordsFor.all().catch(() => {})
|
||||
if (which === 'packet') import('@map/packet/posterSheets.js').then((m) => m.warmSheet && m.warmSheet(assetsBase.value)).catch(() => {})
|
||||
}
|
||||
|
||||
// The wall's own copy. v-html in the shared component, so the <strong> lands as markup —
|
||||
// the emphasis is the point: praying for them BY NAME is the whole brief.
|
||||
|
|
@ -285,6 +293,7 @@ const wallTag = computed(() => t('messages.upg100WallTag'))
|
|||
:records="fetchListRecords"
|
||||
:iso3-names="iso3Names"
|
||||
:sheet="zoneSheet"
|
||||
:prewarm="prewarmPrint"
|
||||
:card-stocks="true"
|
||||
poster-action="print"
|
||||
preview-action="print"
|
||||
|
|
|
|||
|
|
@ -32,10 +32,25 @@
|
|||
function createPosterGenerator({
|
||||
env = {}, SERIES_DEF = {}, ISO3_NAME = {}, adm0 = null, adm1Ind = null, adm1Chn = null, nePlaces = [],
|
||||
fetchGrid = null, bestZoom = null, series = { totalGroups: 0, totalLists: 0, index: 1 },
|
||||
onStep = null,
|
||||
} = {}) {
|
||||
// The moved code reads process.env.X; this LOCAL process makes that read the caller's env object.
|
||||
const process = { env };
|
||||
const SERIES = series;
|
||||
// ★ PROGRESS THAT NEVER FREEZES (the print HUD): with onStep, renderPoster reports each stage by name and YIELDS a
|
||||
// frame between stages, so the page repaints (the step, the elapsed time) instead of one long frozen task. Without
|
||||
// onStep (Node, the proofs) a step is a no-op: `await undefined` changes no state, so every sheet stays byte-identical.
|
||||
const __step = onStep
|
||||
? (name) => {
|
||||
try { onStep(name); } catch (_) { /* the caller's own display */ }
|
||||
return new Promise((r) => (typeof requestAnimationFrame === 'function' ? requestAnimationFrame(() => setTimeout(r, 0)) : setTimeout(r, 0)));
|
||||
}
|
||||
: () => undefined;
|
||||
// A yield WITHOUT a new step, for a long loop inside one stage (the pin relaxation): the page repaints (the elapsed
|
||||
// seconds tick) and the work resumes. A no-op without onStep, so the sheet is unchanged.
|
||||
const __yield = onStep
|
||||
? () => new Promise((r) => (typeof requestAnimationFrame === 'function' ? requestAnimationFrame(() => setTimeout(r, 0)) : setTimeout(r, 0)))
|
||||
: () => undefined;
|
||||
// ── PIN BBOX: antimeridian-aware, outlier-trimmed ───────────────────────────
|
||||
// Two independent failure modes made three posters render the WHOLE GLOBE:
|
||||
//
|
||||
|
|
@ -116,6 +131,13 @@ function geoToPath(geom, project) {
|
|||
}
|
||||
return d;
|
||||
}
|
||||
// A ring's own bbox [minX, minY, maxX, maxY] (one pass), for the point-in-ring skips.
|
||||
function ringBox(ring) {
|
||||
let x0 = Infinity, y0 = Infinity, x1 = -Infinity, y1 = -Infinity;
|
||||
for (const [x, y] of ring) { if (x < x0) x0 = x; if (x > x1) x1 = x; if (y < y0) y0 = y; if (y > y1) y1 = y; }
|
||||
return [x0, y0, x1, y1];
|
||||
}
|
||||
|
||||
function bboxOf(geom) {
|
||||
const rings = geom.type === 'Polygon' ? geom.coordinates
|
||||
: geom.type === 'MultiPolygon' ? geom.coordinates.flat() : [];
|
||||
|
|
@ -186,10 +208,14 @@ function segCross(p, q) {
|
|||
}
|
||||
function countPolyCrossings(polys) {
|
||||
const segs = [];
|
||||
polys.forEach((pts, li) => { for (let i = 0; i < pts.length - 1; i++) segs.push({ s: [pts[i], pts[i + 1]], li }); });
|
||||
// Each segment carries its bbox: a proper crossing needs the two bboxes to overlap, so a disjoint pair is never
|
||||
// counted by segCross either; skipping it gives the same count without the orientation tests (print speed).
|
||||
polys.forEach((pts, li) => { for (let i = 0; i < pts.length - 1; i++) { const a = pts[i], b = pts[i + 1];
|
||||
segs.push({ s: [a, b], li, x0: Math.min(a[0], b[0]), x1: Math.max(a[0], b[0]), y0: Math.min(a[1], b[1]), y1: Math.max(a[1], b[1]) }); } });
|
||||
let n = 0;
|
||||
for (let i = 0; i < segs.length; i++) for (let j = i + 1; j < segs.length; j++) {
|
||||
if (segs[i].li === segs[j].li) continue;
|
||||
if (segs[i].x1 < segs[j].x0 || segs[j].x1 < segs[i].x0 || segs[i].y1 < segs[j].y0 || segs[j].y1 < segs[i].y0) continue;
|
||||
if (segCross(segs[i].s, segs[j].s)) n++;
|
||||
}
|
||||
return n;
|
||||
|
|
@ -1080,6 +1106,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
: [_w * 0.22 + floorDeg, _h * 0.22 + floorDeg];
|
||||
const viewBbox = [bbox[0] - pad[0], bbox[1] - pad[1], bbox[2] + pad[0], bbox[3] + pad[1]];
|
||||
|
||||
await __step('map-frame');
|
||||
// ── FIT THE MAP FRAME TO THE REGION'S SHAPE ────────────────────────────────
|
||||
// The map frame was a fixed portrait rect (930x1580, aspect 0.59) but this
|
||||
// region is LANDSCAPE (aspect 1.26). makeProjection fits with Math.min(sx,sy),
|
||||
|
|
@ -1207,12 +1234,14 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
return hit;
|
||||
};
|
||||
const cand = [];
|
||||
const R = ringsOf(f.geometry);
|
||||
// Each ring with its bbox: a point outside a ring's bbox is never inside it (the parity test gives false), so
|
||||
// skipping those rings gives exactly the same answers and spares the vertex walk (the mobile print speed).
|
||||
const R = ringsOf(f.geometry).map((ring) => [ring, ringBox(ring)]);
|
||||
for (let gx = 1; gx <= 7; gx++) {
|
||||
for (let gy = 1; gy <= 7; gy++) {
|
||||
const cxp = best[0] + ((best[2] - best[0]) * gx) / 8;
|
||||
const cyp = best[1] + ((best[3] - best[1]) * gy) / 8;
|
||||
if (!R.some((ring) => inRing(cxp, cyp, ring))) continue;
|
||||
if (!R.some(([ring, b]) => cxp >= b[0] && cxp <= b[2] && cyp >= b[1] && cyp <= b[3] && inRing(cxp, cyp, ring))) continue;
|
||||
// score = distance to the nearest edge of the clipped box (keeps it central)
|
||||
const d = Math.min(cxp - best[0], best[2] - cxp, cyp - best[1], best[3] - cyp);
|
||||
cand.push({ cxp, cyp, d });
|
||||
|
|
@ -1270,6 +1299,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
ctryNames += `<text x="${L.x.toFixed(1)}" y="${L.y.toFixed(1)}" text-anchor="middle" class="ctry-name-halo">${t}</text>`
|
||||
+ `<text x="${L.x.toFixed(1)}" y="${L.y.toFixed(1)}" text-anchor="middle" class="${cls}">${t}</text>`;
|
||||
}
|
||||
await __step('neighbours');
|
||||
// ── NEIGHBOURING PROVINCES (context ADM1) ─────────────────────────────────
|
||||
// Previously only the ZONE's provinces were drawn, so everything around the
|
||||
// highlighted cluster was one undifferentiated wash — a reader could not tell
|
||||
|
|
@ -1313,6 +1343,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
adm1Labels.push({ x: lx, y: ly, nm: String(nm), own: true });
|
||||
}
|
||||
}
|
||||
await __step('seas');
|
||||
// ── SEA LABELS ─────────────────────────────────────────────────────────────
|
||||
// Water rendered as an unlabelled pale field, so a reader could not tell ocean
|
||||
// from a province that failed to draw — the operator read the Arabian Sea as a
|
||||
|
|
@ -1358,7 +1389,13 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
else if (g.type === 'MultiPolygon') for (const poly of g.coordinates) landRings.push(poly[0]);
|
||||
}
|
||||
}
|
||||
const onLand = (lng, lat) => landRings.some((ring) => {
|
||||
// ★ MOBILE PRINT SPEED: every ring carries its bbox, and a point outside it skips the vertex walk. Exact: outside the
|
||||
// bbox the parity test is always false (no edge spans the latitude, or every crossing lies on one side of a closed
|
||||
// ring). On a phone this scan was most of a country poster's time (China ~45 s at CPU x4).
|
||||
const landBoxes = landRings.map(ringBox);
|
||||
const onLand = (lng, lat) => landRings.some((ring, k) => {
|
||||
const b = landBoxes[k];
|
||||
if (lng < b[0] || lng > b[2] || lat < b[1] || lat > b[3]) return false;
|
||||
let hit = false;
|
||||
for (let i = 0, j = ring.length - 1; i < ring.length; j = i++) {
|
||||
const [xi, yi] = ring[i], [xj, yj] = ring[j];
|
||||
|
|
@ -1388,10 +1425,10 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
const patches = [];
|
||||
for (let lng = viewBbox[0]; lng <= viewBbox[2]; lng += stepX) {
|
||||
for (let lat = viewBbox[1]; lat <= viewBbox[3]; lat += stepY) {
|
||||
if (onLand(lng, lat)) continue;
|
||||
const [px2, py2] = proj(lng, lat);
|
||||
if (px2 < FRAME_X + 60 || px2 > FRAME_X + FRAME_W - 60) continue;
|
||||
if (py2 < FRAME_Y + 40 || py2 > FRAME_Y + FRAME_H - 40) continue;
|
||||
if (onLand(lng, lat)) continue; // after the frame test: a point outside the frame never needed it
|
||||
patches.push({ lng, lat, px: px2, py: py2 });
|
||||
}
|
||||
}
|
||||
|
|
@ -1457,6 +1494,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
// crossing. Moving pins AFTER the sort silently invalidated it — measured 618
|
||||
// crossings at f=0 where the ordering-preserving version measures 0.
|
||||
const prePins = pins.map((p) => { const [lx, ly] = proj(p.lng, p.lat); return { ...p, _px: lx, _py: ly }; });
|
||||
await __step('pins');
|
||||
// ── PIN DE-OVERLAP (relaxation, pixel space, AFTER projection) ────────────
|
||||
// The earlier version only caught EXACT pixel collisions, which missed the real
|
||||
// problem: pins that land 2-3px apart still overlap visually and still read as
|
||||
|
|
@ -1484,6 +1522,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
const ITERS = 260;
|
||||
for (const it of prePins) { it._ox = it._px; it._oy = it._py; }
|
||||
for (let pass = 0; pass < ITERS; pass++) {
|
||||
if (pass && pass % 26 === 0) await __yield(); // ~10 repaints across the relaxation (dense countries: seconds on a phone)
|
||||
let moved = false;
|
||||
for (let i = 0; i < prePins.length; i++) {
|
||||
for (let j = i + 1; j < prePins.length; j++) {
|
||||
|
|
@ -1518,6 +1557,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
// Feed the settled pixel positions back as lng/lat-free overrides.
|
||||
const settled = prePins.map((p) => ({ ...p, _fixed: true }));
|
||||
|
||||
await __step('side-lanes');
|
||||
// ── SIDE LANES: a whole country's groups on one large sheet (FMT.sideLanes) ───────────────────────────
|
||||
// Every name HORIZONTAL, on the left and right of the map, in two STAGGERED columns per side: the rows alternate
|
||||
// inner/outer at half the line pitch, so each column keeps a full pitch and each row holds exactly ONE name.
|
||||
|
|
@ -1645,6 +1685,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
// What the city layer must keep clear of: the drawn pins (laid out, or true positions on a side-lane sheet).
|
||||
const avoidPins = sides ? sides.pins : laid;
|
||||
|
||||
await __step('cities');
|
||||
// ── CAPITALS + MAJOR CITIES ────────────────────────────────────────────────
|
||||
// Orientation marks, deliberately SUBORDINATE to the people-group pins. Imhof's
|
||||
// figure-ground again: this layer answers "where am I?" and must never compete
|
||||
|
|
@ -1795,6 +1836,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
let leaders = '', dots = '', labels = '', pinDots = '';
|
||||
let octiOK = true;
|
||||
|
||||
await __step('names');
|
||||
// ── NUMBERED-LEGEND MODE (dense posters) ──────────────────────────────────
|
||||
// A previous builder PROVED the leader design is geometrically contradictory,
|
||||
// not badly tuned: "labels evenly filling the margin" + "non-horizontal leaders"
|
||||
|
|
@ -2048,9 +2090,11 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
});
|
||||
if (sides) { leaders += sides.leaders; pinDots += sides.pinDots; labels += sides.labels; }
|
||||
if (!octiOK) console.warn(` ⚠ non-octilinear segment in ${zone.zoneKey}`);
|
||||
const crossings = sides ? sides.crossings : countPolyCrossings(routes);
|
||||
// routes = routesFor(bestD), whose crossings the sweep just counted (bestX): reuse it rather than count twice.
|
||||
const crossings = sides ? sides.crossings : (Number.isFinite(bestX) ? bestX : countPolyCrossings(routes));
|
||||
const diagFrac = bestD;
|
||||
|
||||
await __step('header');
|
||||
// ── TITLE vs SUBTITLE ──────────────────────────────────────────────────────
|
||||
// A TITLE IS NEVER A LIST. The India/China lists carry labels like "Rajasthan +
|
||||
// Haryana + Himachal Pradesh + Jammu and Kashmir + Punjab + Chandigarh + Ladakh"
|
||||
|
|
|
|||
|
|
@ -30,10 +30,25 @@
|
|||
export function createPosterGenerator({
|
||||
env = {}, SERIES_DEF = {}, ISO3_NAME = {}, adm0 = null, adm1Ind = null, adm1Chn = null, nePlaces = [],
|
||||
fetchGrid = null, bestZoom = null, series = { totalGroups: 0, totalLists: 0, index: 1 },
|
||||
onStep = null,
|
||||
} = {}) {
|
||||
// The moved code reads process.env.X; this LOCAL process makes that read the caller's env object.
|
||||
const process = { env };
|
||||
const SERIES = series;
|
||||
// ★ PROGRESS THAT NEVER FREEZES (the print HUD): with onStep, renderPoster reports each stage by name and YIELDS a
|
||||
// frame between stages, so the page repaints (the step, the elapsed time) instead of one long frozen task. Without
|
||||
// onStep (Node, the proofs) a step is a no-op: `await undefined` changes no state, so every sheet stays byte-identical.
|
||||
const __step = onStep
|
||||
? (name) => {
|
||||
try { onStep(name); } catch (_) { /* the caller's own display */ }
|
||||
return new Promise((r) => (typeof requestAnimationFrame === 'function' ? requestAnimationFrame(() => setTimeout(r, 0)) : setTimeout(r, 0)));
|
||||
}
|
||||
: () => undefined;
|
||||
// A yield WITHOUT a new step, for a long loop inside one stage (the pin relaxation): the page repaints (the elapsed
|
||||
// seconds tick) and the work resumes. A no-op without onStep, so the sheet is unchanged.
|
||||
const __yield = onStep
|
||||
? () => new Promise((r) => (typeof requestAnimationFrame === 'function' ? requestAnimationFrame(() => setTimeout(r, 0)) : setTimeout(r, 0)))
|
||||
: () => undefined;
|
||||
// ── PIN BBOX: antimeridian-aware, outlier-trimmed ───────────────────────────
|
||||
// Two independent failure modes made three posters render the WHOLE GLOBE:
|
||||
//
|
||||
|
|
@ -114,6 +129,13 @@ function geoToPath(geom, project) {
|
|||
}
|
||||
return d;
|
||||
}
|
||||
// A ring's own bbox [minX, minY, maxX, maxY] (one pass), for the point-in-ring skips.
|
||||
function ringBox(ring) {
|
||||
let x0 = Infinity, y0 = Infinity, x1 = -Infinity, y1 = -Infinity;
|
||||
for (const [x, y] of ring) { if (x < x0) x0 = x; if (x > x1) x1 = x; if (y < y0) y0 = y; if (y > y1) y1 = y; }
|
||||
return [x0, y0, x1, y1];
|
||||
}
|
||||
|
||||
function bboxOf(geom) {
|
||||
const rings = geom.type === 'Polygon' ? geom.coordinates
|
||||
: geom.type === 'MultiPolygon' ? geom.coordinates.flat() : [];
|
||||
|
|
@ -184,10 +206,14 @@ function segCross(p, q) {
|
|||
}
|
||||
function countPolyCrossings(polys) {
|
||||
const segs = [];
|
||||
polys.forEach((pts, li) => { for (let i = 0; i < pts.length - 1; i++) segs.push({ s: [pts[i], pts[i + 1]], li }); });
|
||||
// Each segment carries its bbox: a proper crossing needs the two bboxes to overlap, so a disjoint pair is never
|
||||
// counted by segCross either; skipping it gives the same count without the orientation tests (print speed).
|
||||
polys.forEach((pts, li) => { for (let i = 0; i < pts.length - 1; i++) { const a = pts[i], b = pts[i + 1];
|
||||
segs.push({ s: [a, b], li, x0: Math.min(a[0], b[0]), x1: Math.max(a[0], b[0]), y0: Math.min(a[1], b[1]), y1: Math.max(a[1], b[1]) }); } });
|
||||
let n = 0;
|
||||
for (let i = 0; i < segs.length; i++) for (let j = i + 1; j < segs.length; j++) {
|
||||
if (segs[i].li === segs[j].li) continue;
|
||||
if (segs[i].x1 < segs[j].x0 || segs[j].x1 < segs[i].x0 || segs[i].y1 < segs[j].y0 || segs[j].y1 < segs[i].y0) continue;
|
||||
if (segCross(segs[i].s, segs[j].s)) n++;
|
||||
}
|
||||
return n;
|
||||
|
|
@ -1078,6 +1104,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
: [_w * 0.22 + floorDeg, _h * 0.22 + floorDeg];
|
||||
const viewBbox = [bbox[0] - pad[0], bbox[1] - pad[1], bbox[2] + pad[0], bbox[3] + pad[1]];
|
||||
|
||||
await __step('map-frame');
|
||||
// ── FIT THE MAP FRAME TO THE REGION'S SHAPE ────────────────────────────────
|
||||
// The map frame was a fixed portrait rect (930x1580, aspect 0.59) but this
|
||||
// region is LANDSCAPE (aspect 1.26). makeProjection fits with Math.min(sx,sy),
|
||||
|
|
@ -1205,12 +1232,14 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
return hit;
|
||||
};
|
||||
const cand = [];
|
||||
const R = ringsOf(f.geometry);
|
||||
// Each ring with its bbox: a point outside a ring's bbox is never inside it (the parity test gives false), so
|
||||
// skipping those rings gives exactly the same answers and spares the vertex walk (the mobile print speed).
|
||||
const R = ringsOf(f.geometry).map((ring) => [ring, ringBox(ring)]);
|
||||
for (let gx = 1; gx <= 7; gx++) {
|
||||
for (let gy = 1; gy <= 7; gy++) {
|
||||
const cxp = best[0] + ((best[2] - best[0]) * gx) / 8;
|
||||
const cyp = best[1] + ((best[3] - best[1]) * gy) / 8;
|
||||
if (!R.some((ring) => inRing(cxp, cyp, ring))) continue;
|
||||
if (!R.some(([ring, b]) => cxp >= b[0] && cxp <= b[2] && cyp >= b[1] && cyp <= b[3] && inRing(cxp, cyp, ring))) continue;
|
||||
// score = distance to the nearest edge of the clipped box (keeps it central)
|
||||
const d = Math.min(cxp - best[0], best[2] - cxp, cyp - best[1], best[3] - cyp);
|
||||
cand.push({ cxp, cyp, d });
|
||||
|
|
@ -1268,6 +1297,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
ctryNames += `<text x="${L.x.toFixed(1)}" y="${L.y.toFixed(1)}" text-anchor="middle" class="ctry-name-halo">${t}</text>`
|
||||
+ `<text x="${L.x.toFixed(1)}" y="${L.y.toFixed(1)}" text-anchor="middle" class="${cls}">${t}</text>`;
|
||||
}
|
||||
await __step('neighbours');
|
||||
// ── NEIGHBOURING PROVINCES (context ADM1) ─────────────────────────────────
|
||||
// Previously only the ZONE's provinces were drawn, so everything around the
|
||||
// highlighted cluster was one undifferentiated wash — a reader could not tell
|
||||
|
|
@ -1311,6 +1341,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
adm1Labels.push({ x: lx, y: ly, nm: String(nm), own: true });
|
||||
}
|
||||
}
|
||||
await __step('seas');
|
||||
// ── SEA LABELS ─────────────────────────────────────────────────────────────
|
||||
// Water rendered as an unlabelled pale field, so a reader could not tell ocean
|
||||
// from a province that failed to draw — the operator read the Arabian Sea as a
|
||||
|
|
@ -1356,7 +1387,13 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
else if (g.type === 'MultiPolygon') for (const poly of g.coordinates) landRings.push(poly[0]);
|
||||
}
|
||||
}
|
||||
const onLand = (lng, lat) => landRings.some((ring) => {
|
||||
// ★ MOBILE PRINT SPEED: every ring carries its bbox, and a point outside it skips the vertex walk. Exact: outside the
|
||||
// bbox the parity test is always false (no edge spans the latitude, or every crossing lies on one side of a closed
|
||||
// ring). On a phone this scan was most of a country poster's time (China ~45 s at CPU x4).
|
||||
const landBoxes = landRings.map(ringBox);
|
||||
const onLand = (lng, lat) => landRings.some((ring, k) => {
|
||||
const b = landBoxes[k];
|
||||
if (lng < b[0] || lng > b[2] || lat < b[1] || lat > b[3]) return false;
|
||||
let hit = false;
|
||||
for (let i = 0, j = ring.length - 1; i < ring.length; j = i++) {
|
||||
const [xi, yi] = ring[i], [xj, yj] = ring[j];
|
||||
|
|
@ -1386,10 +1423,10 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
const patches = [];
|
||||
for (let lng = viewBbox[0]; lng <= viewBbox[2]; lng += stepX) {
|
||||
for (let lat = viewBbox[1]; lat <= viewBbox[3]; lat += stepY) {
|
||||
if (onLand(lng, lat)) continue;
|
||||
const [px2, py2] = proj(lng, lat);
|
||||
if (px2 < FRAME_X + 60 || px2 > FRAME_X + FRAME_W - 60) continue;
|
||||
if (py2 < FRAME_Y + 40 || py2 > FRAME_Y + FRAME_H - 40) continue;
|
||||
if (onLand(lng, lat)) continue; // after the frame test: a point outside the frame never needed it
|
||||
patches.push({ lng, lat, px: px2, py: py2 });
|
||||
}
|
||||
}
|
||||
|
|
@ -1455,6 +1492,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
// crossing. Moving pins AFTER the sort silently invalidated it — measured 618
|
||||
// crossings at f=0 where the ordering-preserving version measures 0.
|
||||
const prePins = pins.map((p) => { const [lx, ly] = proj(p.lng, p.lat); return { ...p, _px: lx, _py: ly }; });
|
||||
await __step('pins');
|
||||
// ── PIN DE-OVERLAP (relaxation, pixel space, AFTER projection) ────────────
|
||||
// The earlier version only caught EXACT pixel collisions, which missed the real
|
||||
// problem: pins that land 2-3px apart still overlap visually and still read as
|
||||
|
|
@ -1482,6 +1520,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
const ITERS = 260;
|
||||
for (const it of prePins) { it._ox = it._px; it._oy = it._py; }
|
||||
for (let pass = 0; pass < ITERS; pass++) {
|
||||
if (pass && pass % 26 === 0) await __yield(); // ~10 repaints across the relaxation (dense countries: seconds on a phone)
|
||||
let moved = false;
|
||||
for (let i = 0; i < prePins.length; i++) {
|
||||
for (let j = i + 1; j < prePins.length; j++) {
|
||||
|
|
@ -1516,6 +1555,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
// Feed the settled pixel positions back as lng/lat-free overrides.
|
||||
const settled = prePins.map((p) => ({ ...p, _fixed: true }));
|
||||
|
||||
await __step('side-lanes');
|
||||
// ── SIDE LANES: a whole country's groups on one large sheet (FMT.sideLanes) ───────────────────────────
|
||||
// Every name HORIZONTAL, on the left and right of the map, in two STAGGERED columns per side: the rows alternate
|
||||
// inner/outer at half the line pitch, so each column keeps a full pitch and each row holds exactly ONE name.
|
||||
|
|
@ -1643,6 +1683,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
// What the city layer must keep clear of: the drawn pins (laid out, or true positions on a side-lane sheet).
|
||||
const avoidPins = sides ? sides.pins : laid;
|
||||
|
||||
await __step('cities');
|
||||
// ── CAPITALS + MAJOR CITIES ────────────────────────────────────────────────
|
||||
// Orientation marks, deliberately SUBORDINATE to the people-group pins. Imhof's
|
||||
// figure-ground again: this layer answers "where am I?" and must never compete
|
||||
|
|
@ -1793,6 +1834,7 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
let leaders = '', dots = '', labels = '', pinDots = '';
|
||||
let octiOK = true;
|
||||
|
||||
await __step('names');
|
||||
// ── NUMBERED-LEGEND MODE (dense posters) ──────────────────────────────────
|
||||
// A previous builder PROVED the leader design is geometrically contradictory,
|
||||
// not badly tuned: "labels evenly filling the margin" + "non-horizontal leaders"
|
||||
|
|
@ -2046,9 +2088,11 @@ async function renderPoster(zone, pins, zoneFC) {
|
|||
});
|
||||
if (sides) { leaders += sides.leaders; pinDots += sides.pinDots; labels += sides.labels; }
|
||||
if (!octiOK) console.warn(` ⚠ non-octilinear segment in ${zone.zoneKey}`);
|
||||
const crossings = sides ? sides.crossings : countPolyCrossings(routes);
|
||||
// routes = routesFor(bestD), whose crossings the sweep just counted (bestX): reuse it rather than count twice.
|
||||
const crossings = sides ? sides.crossings : (Number.isFinite(bestX) ? bestX : countPolyCrossings(routes));
|
||||
const diagFrac = bestD;
|
||||
|
||||
await __step('header');
|
||||
// ── TITLE vs SUBTITLE ──────────────────────────────────────────────────────
|
||||
// A TITLE IS NEVER A LIST. The India/China lists carry labels like "Rajasthan +
|
||||
// Haryana + Himachal Pradesh + Jammu and Kashmir + Punjab + Chandigarh + Ladakh"
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <bless-india-posters> custom element. -->
|
||||
<script src="../bless-india-posters.js" integrity="sha384-Y/Ib6sYGClrODPxG3Gj9txadwtVZRIiHWQa9FA9fH/RGAAs9SAbVrJobrwC4bY1b" crossorigin="anonymous"></script>
|
||||
<script src="../bless-india-posters.js" integrity="sha384-zcUT/F0snHbxquOmmFZWBaT3QjsAvRfSFEesDS6J2LPzvILIxb3Dg/8FZ5AuRxdy" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -67,7 +67,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-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql" crossorigin="anonymous"></script>
|
||||
<script src="../cities-internet.js" integrity="sha384-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,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-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql" crossorigin="anonymous"></script>
|
||||
<script src="../cities-internet.js" integrity="sha384-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,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-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql" crossorigin="anonymous"></script>
|
||||
<script src="../cities-internet.js" integrity="sha384-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,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-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z" crossorigin="anonymous"></script>
|
||||
<script src="../country-posters.js" integrity="sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,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-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z" crossorigin="anonymous"></script>
|
||||
<script src="../country-posters.js" integrity="sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -82,7 +82,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-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z" crossorigin="anonymous"></script>
|
||||
<script src="../country-posters.js" integrity="sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -67,7 +67,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-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z" crossorigin="anonymous"></script>
|
||||
<script src="../country-posters.js" integrity="sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@
|
|||
"bundle": "bless-india-posters",
|
||||
"scriptUrl": "./bless-india-posters/bless-india-posters.js",
|
||||
"output": "dx-maps/bless-india-posters/bless-india-posters.js",
|
||||
"integrity": "sha384-Y/Ib6sYGClrODPxG3Gj9txadwtVZRIiHWQa9FA9fH/RGAAs9SAbVrJobrwC4bY1b",
|
||||
"integrity": "sha384-zcUT/F0snHbxquOmmFZWBaT3QjsAvRfSFEesDS6J2LPzvILIxb3Dg/8FZ5AuRxdy",
|
||||
"elements": [
|
||||
"bless-india-posters"
|
||||
],
|
||||
|
|
@ -207,7 +207,7 @@
|
|||
"scriptUrl": "./bless-india-posters/bless-india-posters.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./bless-india-posters/bless-india-posters/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=\"./bless-india-posters/bless-india-posters.js\" integrity=\"sha384-Y/Ib6sYGClrODPxG3Gj9txadwtVZRIiHWQa9FA9fH/RGAAs9SAbVrJobrwC4bY1b\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<bless-india-posters profile-config='{\"profile\":\"bless-india-posters\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></bless-india-posters>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./bless-india-posters/bless-india-posters.js\" integrity=\"sha384-zcUT/F0snHbxquOmmFZWBaT3QjsAvRfSFEesDS6J2LPzvILIxb3Dg/8FZ5AuRxdy\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<bless-india-posters profile-config='{\"profile\":\"bless-india-posters\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></bless-india-posters>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -216,7 +216,7 @@
|
|||
"bundle": "cities-internet",
|
||||
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||
"output": "dx-maps/cities-internet/cities-internet.js",
|
||||
"integrity": "sha384-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql",
|
||||
"integrity": "sha384-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4",
|
||||
"elements": [
|
||||
"cities-internet-map"
|
||||
],
|
||||
|
|
@ -235,7 +235,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-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<cities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"provider\":\"maplibre\",\"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-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<cities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -251,8 +251,8 @@
|
|||
"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": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -268,7 +268,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-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<cities-internet-map profile-config='{\"profile\":\"data-tables\",\"provider\":\"maplibre\",\"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-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<cities-internet-map profile-config='{\"profile\":\"data-tables\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -306,7 +306,7 @@
|
|||
"bundle": "country-posters",
|
||||
"scriptUrl": "./country-posters/country-posters.js",
|
||||
"output": "dx-maps/country-posters/country-posters.js",
|
||||
"integrity": "sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z",
|
||||
"integrity": "sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl",
|
||||
"elements": [
|
||||
"country-posters-map"
|
||||
],
|
||||
|
|
@ -329,8 +329,8 @@
|
|||
"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": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -368,7 +368,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-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<country-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"provider\":\"maplibre\",\"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-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<country-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -384,8 +384,8 @@
|
|||
"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": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -401,7 +401,7 @@
|
|||
"scriptUrl": "./country-posters/country-posters.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./country-posters/poster-section/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-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<country-posters-map profile-config='{\"profile\":\"poster-section\",\"provider\":\"maplibre\",\"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-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<country-posters-map profile-config='{\"profile\":\"poster-section\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -562,7 +562,7 @@
|
|||
"bundle": "doxa-research-map",
|
||||
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
|
||||
"output": "dx-maps/doxa-research-map/doxa-research-map.js",
|
||||
"integrity": "sha384-w8mEGeIr5DTaQEIrfMaga7c8AOzBfk5BCFQWhhBLStfA1x+8/WPn0W8FVDM77tX+",
|
||||
"integrity": "sha384-Urs6iXKlPoSiQrrWlrnxxcJ+uKAZBqAV2iUbvJqX8H6tC5pBHnA57wY5/Uup2qyz",
|
||||
"elements": [
|
||||
"doxa-research-map"
|
||||
],
|
||||
|
|
@ -581,8 +581,8 @@
|
|||
"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": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-w8mEGeIr5DTaQEIrfMaga7c8AOzBfk5BCFQWhhBLStfA1x+8/WPn0W8FVDM77tX+\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-w8mEGeIr5DTaQEIrfMaga7c8AOzBfk5BCFQWhhBLStfA1x+8/WPn0W8FVDM77tX+\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-Urs6iXKlPoSiQrrWlrnxxcJ+uKAZBqAV2iUbvJqX8H6tC5pBHnA57wY5/Uup2qyz\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-Urs6iXKlPoSiQrrWlrnxxcJ+uKAZBqAV2iUbvJqX8H6tC5pBHnA57wY5/Uup2qyz\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>"
|
||||
},
|
||||
"instances": [
|
||||
{
|
||||
|
|
@ -798,7 +798,7 @@
|
|||
"bundle": "gospel-internet",
|
||||
"scriptUrl": "./gospel-internet/gospel-internet.js",
|
||||
"output": "dx-maps/gospel-internet/gospel-internet.js",
|
||||
"integrity": "sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc",
|
||||
"integrity": "sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U",
|
||||
"elements": [
|
||||
"gospel-internet-board"
|
||||
],
|
||||
|
|
@ -819,8 +819,8 @@
|
|||
"scriptUrl": "./gospel-internet/gospel-internet.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-internet/board/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-internet/gospel-internet.js\" integrity=\"sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<gospel-internet-board profile-config='{\"profile\":\"board\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-internet-board>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-internet/gospel-internet.js\" integrity=\"sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<gospel-internet-board profile-config='{\"profile\":\"board\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-internet-board>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-internet/gospel-internet.js\" integrity=\"sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<gospel-internet-board profile-config='{\"profile\":\"board\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-internet-board>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-internet/gospel-internet.js\" integrity=\"sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<gospel-internet-board profile-config='{\"profile\":\"board\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-internet-board>"
|
||||
},
|
||||
"instances": [
|
||||
{
|
||||
|
|
@ -1025,7 +1025,7 @@
|
|||
"bundle": "my-upg-100-list",
|
||||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"output": "dx-maps/my-upg-100-list/my-upg-100-list.js",
|
||||
"integrity": "sha384-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo",
|
||||
"integrity": "sha384-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q",
|
||||
"elements": [
|
||||
"my-upg-100-list-map"
|
||||
],
|
||||
|
|
@ -1112,7 +1112,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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"provider\":\"maplibre\",\"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-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1128,8 +1128,8 @@
|
|||
"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": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\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-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\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-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1145,8 +1145,8 @@
|
|||
"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": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\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-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\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-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1277,7 +1277,7 @@
|
|||
"bundle": "poster-design",
|
||||
"scriptUrl": "./poster-design/poster-design.js",
|
||||
"output": "dx-maps/poster-design/poster-design.js",
|
||||
"integrity": "sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo",
|
||||
"integrity": "sha384-61WWvbg8qKJG69HrAMihuFRECvwEc2asPhG7DpvF5pZKptGkjMgQXSM3NrWvySkR",
|
||||
"elements": [
|
||||
"poster-design"
|
||||
],
|
||||
|
|
@ -1300,7 +1300,7 @@
|
|||
"scriptUrl": "./poster-design/poster-design.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./poster-design/poster-design-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./poster-design/poster-design.js\" integrity=\"sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-design profile-config='{\"profile\":\"poster-design-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-design>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./poster-design/poster-design.js\" integrity=\"sha384-61WWvbg8qKJG69HrAMihuFRECvwEc2asPhG7DpvF5pZKptGkjMgQXSM3NrWvySkR\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-design profile-config='{\"profile\":\"poster-design-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-design>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1316,7 +1316,7 @@
|
|||
"scriptUrl": "./poster-design/poster-design.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./poster-design/poster-sizes/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=\"./poster-design/poster-design.js\" integrity=\"sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-design profile-config='{\"profile\":\"poster-sizes\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-design>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./poster-design/poster-design.js\" integrity=\"sha384-61WWvbg8qKJG69HrAMihuFRECvwEc2asPhG7DpvF5pZKptGkjMgQXSM3NrWvySkR\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-design profile-config='{\"profile\":\"poster-sizes\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-design>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1332,7 +1332,7 @@
|
|||
"scriptUrl": "./poster-design/poster-design.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./poster-design/poster-styles/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=\"./poster-design/poster-design.js\" integrity=\"sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-design profile-config='{\"profile\":\"poster-styles\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-design>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./poster-design/poster-design.js\" integrity=\"sha384-61WWvbg8qKJG69HrAMihuFRECvwEc2asPhG7DpvF5pZKptGkjMgQXSM3NrWvySkR\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-design profile-config='{\"profile\":\"poster-styles\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-design>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1341,7 +1341,7 @@
|
|||
"bundle": "poster-sections",
|
||||
"scriptUrl": "./poster-sections/poster-sections.js",
|
||||
"output": "dx-maps/poster-sections/poster-sections.js",
|
||||
"integrity": "sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j",
|
||||
"integrity": "sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI",
|
||||
"elements": [
|
||||
"poster-sections"
|
||||
],
|
||||
|
|
@ -1360,7 +1360,7 @@
|
|||
"scriptUrl": "./poster-sections/poster-sections.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./poster-sections/poster-sections/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=\"./poster-sections/poster-sections.js\" integrity=\"sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-sections profile-config='{\"profile\":\"poster-sections\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-sections>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./poster-sections/poster-sections.js\" integrity=\"sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-sections profile-config='{\"profile\":\"poster-sections\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-sections>"
|
||||
},
|
||||
"instances": [
|
||||
{
|
||||
|
|
@ -1589,7 +1589,7 @@
|
|||
"bundle": "prayer-walk-planner",
|
||||
"scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js",
|
||||
"output": "dx-maps/prayer-walk-planner/prayer-walk-planner.js",
|
||||
"integrity": "sha384-6nj6SNKsRM5cmVVUmPgIAKe8ZSejxZew8HheG0P4rzyiUYdLrPVosfJJbrUypNiY",
|
||||
"integrity": "sha384-VsOrx+ThXApuCh82J645zpnkl9zKT/v4r9fupTMaT3PLTACsUg3tdvyYN7T/usxz",
|
||||
"elements": [
|
||||
"prayer-walk-planner"
|
||||
],
|
||||
|
|
@ -1607,8 +1607,8 @@
|
|||
"scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./prayer-walk-planner/prayer-walk-planner/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-6nj6SNKsRM5cmVVUmPgIAKe8ZSejxZew8HheG0P4rzyiUYdLrPVosfJJbrUypNiY\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-6nj6SNKsRM5cmVVUmPgIAKe8ZSejxZew8HheG0P4rzyiUYdLrPVosfJJbrUypNiY\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-VsOrx+ThXApuCh82J645zpnkl9zKT/v4r9fupTMaT3PLTACsUg3tdvyYN7T/usxz\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-VsOrx+ThXApuCh82J645zpnkl9zKT/v4r9fupTMaT3PLTACsUg3tdvyYN7T/usxz\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1617,7 +1617,7 @@
|
|||
"bundle": "regions-dashboard",
|
||||
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||
"output": "dx-maps/regions-dashboard/regions-dashboard.js",
|
||||
"integrity": "sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex",
|
||||
"integrity": "sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ",
|
||||
"elements": [
|
||||
"regions-dashboard"
|
||||
],
|
||||
|
|
@ -1640,8 +1640,8 @@
|
|||
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./regions-dashboard/region-dashboards/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1657,7 +1657,7 @@
|
|||
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./regions-dashboard/regions-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<regions-dashboard profile-config='{\"profile\":\"regions-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<regions-dashboard profile-config='{\"profile\":\"regions-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1673,8 +1673,8 @@
|
|||
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./regions-dashboard/regions-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1808,7 +1808,7 @@
|
|||
"bundle": "upg-neighbor",
|
||||
"scriptUrl": "./upg-neighbor/upg-neighbor.js",
|
||||
"output": "dx-maps/upg-neighbor/upg-neighbor.js",
|
||||
"integrity": "sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab",
|
||||
"integrity": "sha384-oTIoS0aUiRVg9alXSiqXTQ2KeGehU86XfqYao6ocW9J0ESry25HyzOknI1UpbGwH",
|
||||
"elements": [
|
||||
"upg-neighbor"
|
||||
],
|
||||
|
|
@ -1827,8 +1827,8 @@
|
|||
"scriptUrl": "./upg-neighbor/upg-neighbor.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./upg-neighbor/upg-neighbor/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<upg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></upg-neighbor>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<upg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></upg-neighbor>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-oTIoS0aUiRVg9alXSiqXTQ2KeGehU86XfqYao6ocW9J0ESry25HyzOknI1UpbGwH\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<upg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></upg-neighbor>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-oTIoS0aUiRVg9alXSiqXTQ2KeGehU86XfqYao6ocW9J0ESry25HyzOknI1UpbGwH\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<upg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></upg-neighbor>"
|
||||
},
|
||||
"instances": [
|
||||
{
|
||||
|
|
@ -1910,7 +1910,7 @@
|
|||
"bundle": "wall-of-people-groups",
|
||||
"scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js",
|
||||
"output": "dx-maps/wall-of-people-groups/wall-of-people-groups.js",
|
||||
"integrity": "sha384-YR31Wdy/svC86D+/G+AVKNK/HdWQYnWh4Uv1rRhPJyPcjRVRT9s2opXRCCU9BeZK",
|
||||
"integrity": "sha384-hdHFL47ZMH+ZffQ7pAgx++O3jzmjj09fPK07mUDY0TfUvYQ8xalbRVllLehk19G3",
|
||||
"elements": [
|
||||
"wall-of-people-groups"
|
||||
],
|
||||
|
|
@ -1994,7 +1994,7 @@
|
|||
"scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./wall-of-people-groups/wall-of-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./wall-of-people-groups/wall-of-people-groups.js\" integrity=\"sha384-YR31Wdy/svC86D+/G+AVKNK/HdWQYnWh4Uv1rRhPJyPcjRVRT9s2opXRCCU9BeZK\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<wall-of-people-groups profile-config='{\"profile\":\"wall-of-people-groups\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></wall-of-people-groups>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./wall-of-people-groups/wall-of-people-groups.js\" integrity=\"sha384-hdHFL47ZMH+ZffQ7pAgx++O3jzmjj09fPK07mUDY0TfUvYQ8xalbRVllLehk19G3\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<wall-of-people-groups profile-config='{\"profile\":\"wall-of-people-groups\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></wall-of-people-groups>"
|
||||
},
|
||||
"bundle": "wall-of-people-groups"
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -76,7 +76,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-w8mEGeIr5DTaQEIrfMaga7c8AOzBfk5BCFQWhhBLStfA1x+8/WPn0W8FVDM77tX+" crossorigin="anonymous"></script>
|
||||
<script src="../doxa-research-map.js" integrity="sha384-Urs6iXKlPoSiQrrWlrnxxcJ+uKAZBqAV2iUbvJqX8H6tC5pBHnA57wY5/Uup2qyz" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -72,7 +72,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-w8mEGeIr5DTaQEIrfMaga7c8AOzBfk5BCFQWhhBLStfA1x+8/WPn0W8FVDM77tX+" crossorigin="anonymous"></script>
|
||||
<script src="../../doxa-research-map.js" integrity="sha384-Urs6iXKlPoSiQrrWlrnxxcJ+uKAZBqAV2iUbvJqX8H6tC5pBHnA57wY5/Uup2qyz" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
|
||||
<script src="../../gospel-internet.js" integrity="sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc" crossorigin="anonymous"></script>
|
||||
<script src="../../gospel-internet.js" integrity="sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
|
||||
<script src="../gospel-internet.js" integrity="sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-internet.js" integrity="sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
|
||||
<script src="../../gospel-internet.js" integrity="sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc" crossorigin="anonymous"></script>
|
||||
<script src="../../gospel-internet.js" integrity="sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
|
||||
<script src="../../gospel-internet.js" integrity="sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc" crossorigin="anonymous"></script>
|
||||
<script src="../../gospel-internet.js" integrity="sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
|
||||
<script src="../../gospel-internet.js" integrity="sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc" crossorigin="anonymous"></script>
|
||||
<script src="../../gospel-internet.js" integrity="sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
|
||||
<script src="../../gospel-internet.js" integrity="sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc" crossorigin="anonymous"></script>
|
||||
<script src="../../gospel-internet.js" integrity="sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
|
||||
<script src="../../gospel-internet.js" integrity="sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc" crossorigin="anonymous"></script>
|
||||
<script src="../../gospel-internet.js" integrity="sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -164,7 +164,7 @@
|
|||
"bundle": "bless-india-posters",
|
||||
"scriptUrl": "./bless-india-posters/bless-india-posters.js",
|
||||
"output": "dx-maps/bless-india-posters/bless-india-posters.js",
|
||||
"integrity": "sha384-Y/Ib6sYGClrODPxG3Gj9txadwtVZRIiHWQa9FA9fH/RGAAs9SAbVrJobrwC4bY1b",
|
||||
"integrity": "sha384-zcUT/F0snHbxquOmmFZWBaT3QjsAvRfSFEesDS6J2LPzvILIxb3Dg/8FZ5AuRxdy",
|
||||
"elements": [
|
||||
"bless-india-posters"
|
||||
],
|
||||
|
|
@ -207,7 +207,7 @@
|
|||
"scriptUrl": "./bless-india-posters/bless-india-posters.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./bless-india-posters/bless-india-posters/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=\"./bless-india-posters/bless-india-posters.js\" integrity=\"sha384-Y/Ib6sYGClrODPxG3Gj9txadwtVZRIiHWQa9FA9fH/RGAAs9SAbVrJobrwC4bY1b\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<bless-india-posters profile-config='{\"profile\":\"bless-india-posters\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></bless-india-posters>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./bless-india-posters/bless-india-posters.js\" integrity=\"sha384-zcUT/F0snHbxquOmmFZWBaT3QjsAvRfSFEesDS6J2LPzvILIxb3Dg/8FZ5AuRxdy\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<bless-india-posters profile-config='{\"profile\":\"bless-india-posters\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></bless-india-posters>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -216,7 +216,7 @@
|
|||
"bundle": "cities-internet",
|
||||
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||
"output": "dx-maps/cities-internet/cities-internet.js",
|
||||
"integrity": "sha384-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql",
|
||||
"integrity": "sha384-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4",
|
||||
"elements": [
|
||||
"cities-internet-map"
|
||||
],
|
||||
|
|
@ -235,7 +235,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-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<cities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"provider\":\"maplibre\",\"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-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<cities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -251,8 +251,8 @@
|
|||
"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": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -268,7 +268,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-6c4SlWMUWowE4IG1S5F3WshA66I3aKnK7ilHyHzOncLWeyXFL/I+NGlAYhyjZ1Ql\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<cities-internet-map profile-config='{\"profile\":\"data-tables\",\"provider\":\"maplibre\",\"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-hM7Dgkwv6UH2ff1xEXj38OVeyN+YrUWepihor9qn+vTT7i6Qh/3bu5jBxNQ5waL4\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<cities-internet-map profile-config='{\"profile\":\"data-tables\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -306,7 +306,7 @@
|
|||
"bundle": "country-posters",
|
||||
"scriptUrl": "./country-posters/country-posters.js",
|
||||
"output": "dx-maps/country-posters/country-posters.js",
|
||||
"integrity": "sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z",
|
||||
"integrity": "sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl",
|
||||
"elements": [
|
||||
"country-posters-map"
|
||||
],
|
||||
|
|
@ -329,8 +329,8 @@
|
|||
"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": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -368,7 +368,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-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<country-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"provider\":\"maplibre\",\"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-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<country-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -384,8 +384,8 @@
|
|||
"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": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -401,7 +401,7 @@
|
|||
"scriptUrl": "./country-posters/country-posters.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./country-posters/poster-section/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-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<country-posters-map profile-config='{\"profile\":\"poster-section\",\"provider\":\"maplibre\",\"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-Roj6CGjcycittqcKf9oBwlwRuvZrL6MHzY16oOo0MZqdwZDLu7z2NVsgq7Me72Nl\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<country-posters-map profile-config='{\"profile\":\"poster-section\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -562,7 +562,7 @@
|
|||
"bundle": "doxa-research-map",
|
||||
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
|
||||
"output": "dx-maps/doxa-research-map/doxa-research-map.js",
|
||||
"integrity": "sha384-w8mEGeIr5DTaQEIrfMaga7c8AOzBfk5BCFQWhhBLStfA1x+8/WPn0W8FVDM77tX+",
|
||||
"integrity": "sha384-Urs6iXKlPoSiQrrWlrnxxcJ+uKAZBqAV2iUbvJqX8H6tC5pBHnA57wY5/Uup2qyz",
|
||||
"elements": [
|
||||
"doxa-research-map"
|
||||
],
|
||||
|
|
@ -581,8 +581,8 @@
|
|||
"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": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-w8mEGeIr5DTaQEIrfMaga7c8AOzBfk5BCFQWhhBLStfA1x+8/WPn0W8FVDM77tX+\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-w8mEGeIr5DTaQEIrfMaga7c8AOzBfk5BCFQWhhBLStfA1x+8/WPn0W8FVDM77tX+\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-Urs6iXKlPoSiQrrWlrnxxcJ+uKAZBqAV2iUbvJqX8H6tC5pBHnA57wY5/Uup2qyz\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-Urs6iXKlPoSiQrrWlrnxxcJ+uKAZBqAV2iUbvJqX8H6tC5pBHnA57wY5/Uup2qyz\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>"
|
||||
},
|
||||
"instances": [
|
||||
{
|
||||
|
|
@ -798,7 +798,7 @@
|
|||
"bundle": "gospel-internet",
|
||||
"scriptUrl": "./gospel-internet/gospel-internet.js",
|
||||
"output": "dx-maps/gospel-internet/gospel-internet.js",
|
||||
"integrity": "sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc",
|
||||
"integrity": "sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U",
|
||||
"elements": [
|
||||
"gospel-internet-board"
|
||||
],
|
||||
|
|
@ -819,8 +819,8 @@
|
|||
"scriptUrl": "./gospel-internet/gospel-internet.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-internet/board/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-internet/gospel-internet.js\" integrity=\"sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<gospel-internet-board profile-config='{\"profile\":\"board\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-internet-board>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-internet/gospel-internet.js\" integrity=\"sha384-cYEFAJDnY5U2DTUhnYFCCSG7rUsqh1c8nzExu1GePI0mIKdFZU3vQ/zKHkSBHdvc\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<gospel-internet-board profile-config='{\"profile\":\"board\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-internet-board>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-internet/gospel-internet.js\" integrity=\"sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<gospel-internet-board profile-config='{\"profile\":\"board\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-internet-board>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-internet/gospel-internet.js\" integrity=\"sha384-Az64hyobFbbv1an7CatmpS6DKwLpFdMr0GfdIK5GtWZMFUW9QVGZZ2En9MxwPy7U\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<gospel-internet-board profile-config='{\"profile\":\"board\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-internet-board>"
|
||||
},
|
||||
"instances": [
|
||||
{
|
||||
|
|
@ -1025,7 +1025,7 @@
|
|||
"bundle": "my-upg-100-list",
|
||||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"output": "dx-maps/my-upg-100-list/my-upg-100-list.js",
|
||||
"integrity": "sha384-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo",
|
||||
"integrity": "sha384-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q",
|
||||
"elements": [
|
||||
"my-upg-100-list-map"
|
||||
],
|
||||
|
|
@ -1112,7 +1112,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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"provider\":\"maplibre\",\"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-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1128,8 +1128,8 @@
|
|||
"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": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\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-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\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-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1145,8 +1145,8 @@
|
|||
"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": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\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-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\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-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1277,7 +1277,7 @@
|
|||
"bundle": "poster-design",
|
||||
"scriptUrl": "./poster-design/poster-design.js",
|
||||
"output": "dx-maps/poster-design/poster-design.js",
|
||||
"integrity": "sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo",
|
||||
"integrity": "sha384-61WWvbg8qKJG69HrAMihuFRECvwEc2asPhG7DpvF5pZKptGkjMgQXSM3NrWvySkR",
|
||||
"elements": [
|
||||
"poster-design"
|
||||
],
|
||||
|
|
@ -1300,7 +1300,7 @@
|
|||
"scriptUrl": "./poster-design/poster-design.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./poster-design/poster-design-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./poster-design/poster-design.js\" integrity=\"sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-design profile-config='{\"profile\":\"poster-design-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-design>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./poster-design/poster-design.js\" integrity=\"sha384-61WWvbg8qKJG69HrAMihuFRECvwEc2asPhG7DpvF5pZKptGkjMgQXSM3NrWvySkR\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-design profile-config='{\"profile\":\"poster-design-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-design>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1316,7 +1316,7 @@
|
|||
"scriptUrl": "./poster-design/poster-design.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./poster-design/poster-sizes/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=\"./poster-design/poster-design.js\" integrity=\"sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-design profile-config='{\"profile\":\"poster-sizes\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-design>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./poster-design/poster-design.js\" integrity=\"sha384-61WWvbg8qKJG69HrAMihuFRECvwEc2asPhG7DpvF5pZKptGkjMgQXSM3NrWvySkR\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-design profile-config='{\"profile\":\"poster-sizes\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-design>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1332,7 +1332,7 @@
|
|||
"scriptUrl": "./poster-design/poster-design.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./poster-design/poster-styles/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=\"./poster-design/poster-design.js\" integrity=\"sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-design profile-config='{\"profile\":\"poster-styles\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-design>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./poster-design/poster-design.js\" integrity=\"sha384-61WWvbg8qKJG69HrAMihuFRECvwEc2asPhG7DpvF5pZKptGkjMgQXSM3NrWvySkR\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-design profile-config='{\"profile\":\"poster-styles\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-design>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1341,7 +1341,7 @@
|
|||
"bundle": "poster-sections",
|
||||
"scriptUrl": "./poster-sections/poster-sections.js",
|
||||
"output": "dx-maps/poster-sections/poster-sections.js",
|
||||
"integrity": "sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j",
|
||||
"integrity": "sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI",
|
||||
"elements": [
|
||||
"poster-sections"
|
||||
],
|
||||
|
|
@ -1360,7 +1360,7 @@
|
|||
"scriptUrl": "./poster-sections/poster-sections.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./poster-sections/poster-sections/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=\"./poster-sections/poster-sections.js\" integrity=\"sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-sections profile-config='{\"profile\":\"poster-sections\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-sections>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./poster-sections/poster-sections.js\" integrity=\"sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<poster-sections profile-config='{\"profile\":\"poster-sections\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></poster-sections>"
|
||||
},
|
||||
"instances": [
|
||||
{
|
||||
|
|
@ -1589,7 +1589,7 @@
|
|||
"bundle": "prayer-walk-planner",
|
||||
"scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js",
|
||||
"output": "dx-maps/prayer-walk-planner/prayer-walk-planner.js",
|
||||
"integrity": "sha384-6nj6SNKsRM5cmVVUmPgIAKe8ZSejxZew8HheG0P4rzyiUYdLrPVosfJJbrUypNiY",
|
||||
"integrity": "sha384-VsOrx+ThXApuCh82J645zpnkl9zKT/v4r9fupTMaT3PLTACsUg3tdvyYN7T/usxz",
|
||||
"elements": [
|
||||
"prayer-walk-planner"
|
||||
],
|
||||
|
|
@ -1607,8 +1607,8 @@
|
|||
"scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./prayer-walk-planner/prayer-walk-planner/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-6nj6SNKsRM5cmVVUmPgIAKe8ZSejxZew8HheG0P4rzyiUYdLrPVosfJJbrUypNiY\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-6nj6SNKsRM5cmVVUmPgIAKe8ZSejxZew8HheG0P4rzyiUYdLrPVosfJJbrUypNiY\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-VsOrx+ThXApuCh82J645zpnkl9zKT/v4r9fupTMaT3PLTACsUg3tdvyYN7T/usxz\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-VsOrx+ThXApuCh82J645zpnkl9zKT/v4r9fupTMaT3PLTACsUg3tdvyYN7T/usxz\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1617,7 +1617,7 @@
|
|||
"bundle": "regions-dashboard",
|
||||
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||
"output": "dx-maps/regions-dashboard/regions-dashboard.js",
|
||||
"integrity": "sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex",
|
||||
"integrity": "sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ",
|
||||
"elements": [
|
||||
"regions-dashboard"
|
||||
],
|
||||
|
|
@ -1640,8 +1640,8 @@
|
|||
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./regions-dashboard/region-dashboards/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1657,7 +1657,7 @@
|
|||
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./regions-dashboard/regions-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<regions-dashboard profile-config='{\"profile\":\"regions-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<regions-dashboard profile-config='{\"profile\":\"regions-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1673,8 +1673,8 @@
|
|||
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./regions-dashboard/regions-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1808,7 +1808,7 @@
|
|||
"bundle": "upg-neighbor",
|
||||
"scriptUrl": "./upg-neighbor/upg-neighbor.js",
|
||||
"output": "dx-maps/upg-neighbor/upg-neighbor.js",
|
||||
"integrity": "sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab",
|
||||
"integrity": "sha384-oTIoS0aUiRVg9alXSiqXTQ2KeGehU86XfqYao6ocW9J0ESry25HyzOknI1UpbGwH",
|
||||
"elements": [
|
||||
"upg-neighbor"
|
||||
],
|
||||
|
|
@ -1827,8 +1827,8 @@
|
|||
"scriptUrl": "./upg-neighbor/upg-neighbor.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./upg-neighbor/upg-neighbor/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<upg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></upg-neighbor>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<upg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></upg-neighbor>"
|
||||
"script": "<!-- MapLibre engine (the default), fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js\" integrity=\"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css\" integrity=\"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-oTIoS0aUiRVg9alXSiqXTQ2KeGehU86XfqYao6ocW9J0ESry25HyzOknI1UpbGwH\" crossorigin=\"anonymous\"></script>\n<!-- MapLibre draws this map and needs no token. For Mapbox, paste this map's embed.scriptMapbox from manifest.json instead: it sets \"provider\":\"mapbox\" and preloads the Mapbox engine; fill \"tk\" with your token. -->\n<upg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></upg-neighbor>",
|
||||
"scriptMapbox": "<!-- Mapbox engine, fetched early -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<link rel=\"preload\" as=\"style\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css\" integrity=\"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-oTIoS0aUiRVg9alXSiqXTQ2KeGehU86XfqYao6ocW9J0ESry25HyzOknI1UpbGwH\" crossorigin=\"anonymous\"></script>\n<!-- Mapbox draws this map: fill \"tk\" with your Mapbox token. -->\n<upg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"provider\":\"mapbox\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></upg-neighbor>"
|
||||
},
|
||||
"instances": [
|
||||
{
|
||||
|
|
@ -1910,7 +1910,7 @@
|
|||
"bundle": "wall-of-people-groups",
|
||||
"scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js",
|
||||
"output": "dx-maps/wall-of-people-groups/wall-of-people-groups.js",
|
||||
"integrity": "sha384-YR31Wdy/svC86D+/G+AVKNK/HdWQYnWh4Uv1rRhPJyPcjRVRT9s2opXRCCU9BeZK",
|
||||
"integrity": "sha384-hdHFL47ZMH+ZffQ7pAgx++O3jzmjj09fPK07mUDY0TfUvYQ8xalbRVllLehk19G3",
|
||||
"elements": [
|
||||
"wall-of-people-groups"
|
||||
],
|
||||
|
|
@ -1994,7 +1994,7 @@
|
|||
"scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./wall-of-people-groups/wall-of-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./wall-of-people-groups/wall-of-people-groups.js\" integrity=\"sha384-YR31Wdy/svC86D+/G+AVKNK/HdWQYnWh4Uv1rRhPJyPcjRVRT9s2opXRCCU9BeZK\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<wall-of-people-groups profile-config='{\"profile\":\"wall-of-people-groups\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></wall-of-people-groups>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./wall-of-people-groups/wall-of-people-groups.js\" integrity=\"sha384-hdHFL47ZMH+ZffQ7pAgx++O3jzmjj09fPK07mUDY0TfUvYQ8xalbRVllLehk19G3\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<wall-of-people-groups profile-config='{\"profile\":\"wall-of-people-groups\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></wall-of-people-groups>"
|
||||
},
|
||||
"bundle": "wall-of-people-groups"
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -67,7 +67,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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -82,7 +82,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-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-MfaD5Oa8kEF3KzNYXRt5THnlHGOPK1Iu+EuhOETiecY/1+TB/vHNuNrPXq7urw6Q" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-design> custom element. -->
|
||||
<script src="../poster-design.js" integrity="sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo" crossorigin="anonymous"></script>
|
||||
<script src="../poster-design.js" integrity="sha384-61WWvbg8qKJG69HrAMihuFRECvwEc2asPhG7DpvF5pZKptGkjMgQXSM3NrWvySkR" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-design> custom element. -->
|
||||
<script src="../poster-design.js" integrity="sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo" crossorigin="anonymous"></script>
|
||||
<script src="../poster-design.js" integrity="sha384-61WWvbg8qKJG69HrAMihuFRECvwEc2asPhG7DpvF5pZKptGkjMgQXSM3NrWvySkR" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-design> custom element. -->
|
||||
<script src="../poster-design.js" integrity="sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo" crossorigin="anonymous"></script>
|
||||
<script src="../poster-design.js" integrity="sha384-61WWvbg8qKJG69HrAMihuFRECvwEc2asPhG7DpvF5pZKptGkjMgQXSM3NrWvySkR" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-sections> custom element. -->
|
||||
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
|
||||
<script src="../../poster-sections.js" integrity="sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-sections> custom element. -->
|
||||
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
|
||||
<script src="../../poster-sections.js" integrity="sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-sections> custom element. -->
|
||||
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
|
||||
<script src="../../poster-sections.js" integrity="sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-sections> custom element. -->
|
||||
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
|
||||
<script src="../../poster-sections.js" integrity="sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-sections> custom element. -->
|
||||
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
|
||||
<script src="../../poster-sections.js" integrity="sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-sections> custom element. -->
|
||||
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
|
||||
<script src="../../poster-sections.js" integrity="sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-sections> custom element. -->
|
||||
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
|
||||
<script src="../../poster-sections.js" integrity="sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-sections> custom element. -->
|
||||
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
|
||||
<script src="../../poster-sections.js" integrity="sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-sections> custom element. -->
|
||||
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
|
||||
<script src="../../poster-sections.js" integrity="sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <poster-sections> custom element. -->
|
||||
<script src="../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
|
||||
<script src="../poster-sections.js" integrity="sha384-x/nE+9LrGrpwBDrRYyK6ZeXZYHuWvLn0WuqVK4SLr2CW3+MhWhNbDmd4eQEaJFUI" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <prayer-walk-planner> custom element. -->
|
||||
<script src="../prayer-walk-planner.js" integrity="sha384-6nj6SNKsRM5cmVVUmPgIAKe8ZSejxZew8HheG0P4rzyiUYdLrPVosfJJbrUypNiY" crossorigin="anonymous"></script>
|
||||
<script src="../prayer-walk-planner.js" integrity="sha384-VsOrx+ThXApuCh82J645zpnkl9zKT/v4r9fupTMaT3PLTACsUg3tdvyYN7T/usxz" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
|
||||
<script src="../regions-dashboard.js" integrity="sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex" crossorigin="anonymous"></script>
|
||||
<script src="../regions-dashboard.js" integrity="sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
|
||||
<script src="../regions-dashboard.js" integrity="sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex" crossorigin="anonymous"></script>
|
||||
<script src="../regions-dashboard.js" integrity="sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
|
||||
<script src="../regions-dashboard.js" integrity="sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex" crossorigin="anonymous"></script>
|
||||
<script src="../regions-dashboard.js" integrity="sha384-B9s/Z68TqDlA+DhZG51NPMW8rBNx1CjwrhiXRIzrXm3i1DuagbEy4OFjz60FduJZ" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <upg-neighbor> custom element. -->
|
||||
<script src="../../upg-neighbor.js" integrity="sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab" crossorigin="anonymous"></script>
|
||||
<script src="../../upg-neighbor.js" integrity="sha384-oTIoS0aUiRVg9alXSiqXTQ2KeGehU86XfqYao6ocW9J0ESry25HyzOknI1UpbGwH" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <upg-neighbor> custom element. -->
|
||||
<script src="../../upg-neighbor.js" integrity="sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab" crossorigin="anonymous"></script>
|
||||
<script src="../../upg-neighbor.js" integrity="sha384-oTIoS0aUiRVg9alXSiqXTQ2KeGehU86XfqYao6ocW9J0ESry25HyzOknI1UpbGwH" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <upg-neighbor> custom element. -->
|
||||
<script src="../upg-neighbor.js" integrity="sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab" crossorigin="anonymous"></script>
|
||||
<script src="../upg-neighbor.js" integrity="sha384-oTIoS0aUiRVg9alXSiqXTQ2KeGehU86XfqYao6ocW9J0ESry25HyzOknI1UpbGwH" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <upg-neighbor> custom element. -->
|
||||
<script src="../../upg-neighbor.js" integrity="sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab" crossorigin="anonymous"></script>
|
||||
<script src="../../upg-neighbor.js" integrity="sha384-oTIoS0aUiRVg9alXSiqXTQ2KeGehU86XfqYao6ocW9J0ESry25HyzOknI1UpbGwH" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <upg-neighbor> custom element. -->
|
||||
<script src="../../upg-neighbor.js" integrity="sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab" crossorigin="anonymous"></script>
|
||||
<script src="../../upg-neighbor.js" integrity="sha384-oTIoS0aUiRVg9alXSiqXTQ2KeGehU86XfqYao6ocW9J0ESry25HyzOknI1UpbGwH" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <upg-neighbor> custom element. -->
|
||||
<script src="../../upg-neighbor.js" integrity="sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab" crossorigin="anonymous"></script>
|
||||
<script src="../../upg-neighbor.js" integrity="sha384-oTIoS0aUiRVg9alXSiqXTQ2KeGehU86XfqYao6ocW9J0ESry25HyzOknI1UpbGwH" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <wall-of-people-groups> custom element. -->
|
||||
<script src="../wall-of-people-groups.js" integrity="sha384-YR31Wdy/svC86D+/G+AVKNK/HdWQYnWh4Uv1rRhPJyPcjRVRT9s2opXRCCU9BeZK" crossorigin="anonymous"></script>
|
||||
<script src="../wall-of-people-groups.js" integrity="sha384-hdHFL47ZMH+ZffQ7pAgx++O3jzmjj09fPK07mUDY0TfUvYQ8xalbRVllLehk19G3" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
Loading…
Reference in a new issue