Compare commits

...

16 commits

Author SHA1 Message Date
Doxa Maps
3a6d392a1a Rebuild 8 bundles for the print warnings (a sheet that cannot be generated; a page that is not secure), and regenerate the tree and SRI 2026-10-03 11:42:25 +00:00
Doxa Maps
e209096fd7 Merge remote-tracking branch 'origin/development' into studio/print-warn 2026-10-03 11:22:36 +00:00
Doxa Maps
96a0cd6ca8 Rebuild the sheet generator's carriers for the UPG100 page-1 names and header sizes: poster-render re-pinned, the tree and SRI regenerated 2026-10-03 11:16:41 +00:00
Doxa Maps
3e226bd807 Merge the UPG100 page-1 names change (larger people-group names, smaller header-column text) 2026-10-03 11:09:38 +00:00
Doxa Maps
67ac9a8670 Rebuild the sheet generator and packet carriers from the merged pilot for the UPG100 header's even columns; the tree and SRI regenerated 2026-10-03 11:05:20 +00:00
Doxa Maps
1855c8cad4 UPG100 poster page 1: larger people-group names and smaller header-column text (header columns 22 to 18px; names capped at 19px instead of 15, with tighter rows on dense zones) 2026-10-03 11:03:34 +00:00
Doxa Maps
149e8d144b Merge the pilot (development 1c5711e33) into the UPG100 header's even columns 2026-10-03 11:00:11 +00:00
Doxa Maps
1fca636297 Rebuild the sheet generator's carriers for the UPG100 header's even columns (the three end at about the same height; scripture references stay whole): poster-render re-pinned, the tree and SRI regenerated 2026-10-03 10:51:32 +00:00
Doxa Maps
1c5711e339 Rebuild the packet carriers for the 12 Prayer Points wording and the page's tighter smallest tier, then the tree and SRI 2026-10-03 10:46:54 +00:00
Doxa Maps
ca2d36c8fd Merge the pilot (development 6d48d8b17) into the UPG100 header's even columns 2026-10-03 10:45:03 +00:00
Doxa Maps
926815240d UPG100 packet, 12 Prayer Points: the page's smallest size tier is a little tighter so the new wording fits one sheet
At the floor tier the gap between points is 3px (was 5px) and the point text 18px (was 18.5px). All 11
languages fit one sheet; several now take a larger tier. The packet-strings pin is renewed for the new wording.
2026-10-03 10:44:36 +00:00
Doxa Maps
62fad6ed5a UPG100 packet, 12 Prayer Points: new English wording for the twelve points and the Father's-heart lines
Spelling and capitalization made consistent across the page (lowercase people groups, nations and
churches; heavenly Father; neighbors), verse ranges set with an en dash, and point 9's and point 12's
references updated in every language (references are shared addresses). Revelation joins the book table
in all 11 languages. Other languages keep their wording.
2026-10-03 10:42:41 +00:00
Doxa Maps
4c3a118d2e UPG100 poster header: scripture references stay whole; the classic header drops bold markers
- A scripture reference never breaks between its book and its
  chapter:verse in the header's text columns ("Mark 6:40"); before, two
  zones printed "(Mark" at a line's end and "6:40)." on the next.
- (With the parent commit: the three header columns end at about the same
  height. The facts column widens when it runs long, the side columns stay
  equal and mirrored; across the 28 zones the height spread drops from
  99 to 72 px, mean 54 to 34.)
2026-10-03 08:59:50 +00:00
Doxa Maps
5d3b2cf95d Pinned files: a page that is not secure is told so in words
A browser gives crypto.subtle only to a secure page (https, or http://localhost). Opened any other way, for example a dev server reached over plain http by its LAN address from a phone, every pinned file was refused with a bare "reading 'digest'": the packet printed in English and page 1 fell back to its stored sheet. sha384() now refuses with a sentence that names the cause. check:pinned-fetch-fresh arm D2 removes crypto.subtle and requires that sentence; its self-test plants the unguarded call.
2026-10-03 08:58:09 +00:00
Doxa Maps
e8a1a1f12c Poster prints: a sheet that cannot be generated says so before the stored one prints
A generated sheet (opts.sheet) that fails still falls through to the stored sheet, so a print never comes out blank, but no longer silently: the console names the format, the sheet and the reason. A stored sheet with an old header once printed in place of the generated one with no word of why. An empty result stays quiet: a generator returns '' on purpose when it cannot draw a sheet.
2026-10-03 08:49:58 +00:00
Doxa Maps
4ec5905492 UPG100 poster header: the three columns end at about the same height (WIP: verifying) 2026-10-03 08:46:36 +00:00
53 changed files with 818 additions and 680 deletions

View file

@ -16,13 +16,15 @@
* B. a cached copy that matches is used as is: ONE request, force-cache (the fast, offline-friendly path stays);
* C. a server that also serves the wrong bytes → rejected, err.integrity, after one fresh refetch;
* D. a file that is not served → rejected (not an integrity failure);
* D2. a page without crypto.subtle (not secure: plain http by LAN address) → refused saying "secure page";
* E. loadPacketStrings with a stale cached table → the full table in every language (not the English fallback);
* F. loadIndiaStates with a stale cached table → India's 36 states (not a rejection);
* G. generateSheet with a stale cached generator → a drawn sheet (not an integrity refusal);
* H. wiring: every pinned loader fetches through fetchPinned with its own pin, and none fetches its pinned file
* directly; the classic-script path refreshes the HTTP cache and retries a refused tag once.
* `--self-test`: fetchPinned without its fresh refetch, one that never uses the cache, one that accepts a
* mismatch, and a loader that fetches its pinned file directly must each FAIL.
* mismatch, a hash that reaches for crypto.subtle unguarded, and a loader that fetches its pinned file directly must
* each FAIL.
* Two-sided by hand at the change: the previous loaders (the pilot before this) fail E, F and G.
*/
import { readFileSync, existsSync } from 'node:fs'
@ -88,6 +90,12 @@ async function auditFetchPinned(shaSrc) {
{ world('https://d.test', { missing: [P] }); let err = null
try { await fetchPinned(`https://d.test/${P}`, pin) } catch (e) { err = e }
if (!err || err.integrity) fails.push(`D: an unserved file should reject as not served (${err ? err.message : 'it resolved'})`) }
// D2: a page that is not secure (plain http by LAN address) has no crypto.subtle: refused in WORDS, not a bare TypeError
{ world('https://e.test', { cached: { [P]: current } }); const realCrypto = globalThis.crypto; let err = null
Object.defineProperty(globalThis, 'crypto', { value: {}, configurable: true, writable: true })
try { await fetchPinned(`https://e.test/${P}`, pin) } catch (e) { err = e }
finally { Object.defineProperty(globalThis, 'crypto', { value: realCrypto, configurable: true, writable: true }) }
if (!err || err.integrity || !/secure page/.test(err.message)) fails.push(`D2: on a page without crypto.subtle the refusal should say "secure page", got ${err ? JSON.stringify(err.message) : 'a resolve'}`) }
globalThis.fetch = realFetch
return fails
}
@ -146,6 +154,7 @@ if (process.argv.includes('--self-test')) {
['fetchPinned without its fresh refetch', () => auditFetchPinned(shaSrc.replace(FOR, "for (const cache of ['force-cache']) {")), /^A: /],
['fetchPinned that never uses the cache', () => auditFetchPinned(shaSrc.replace(FOR, "for (const cache of ['reload', 'reload']) {")), /^B: /],
['fetchPinned that accepts a mismatch', () => auditFetchPinned(shaSrc.replace(' if (got === pin) return text\n', ' return text\n')), /^C: /],
['a hash that reaches for crypto.subtle unguarded', () => auditFetchPinned(shaSrc.replace(/ if \(!subtle\) throw [^\n]*\n/, '')), /^D2: /],
['a loader that fetches its pinned file directly', () => auditWiring((f) => (f === 'library/packet/packetStrings.js'
? read(f).replace('fetchPinned(url, PACKET_STRINGS_SHA384)', "(await fetch(url, { cache: 'force-cache' })).text()") : read(f))), /^H: library\/packet\/packetStrings\.js/],
]
@ -159,5 +168,5 @@ if (process.argv.includes('--self-test')) {
} else {
const f = [...await auditFetchPinned(shaSrc), ...await auditLoaders(), ...auditWiring(read)]
if (f.length) { for (const x of f) console.log('✗ ' + x); console.log(`FAIL check:pinned-fetch-fresh (${f.length})`); process.exitCode = 1 }
else console.log('PASS check:pinned-fetch-fresh — a stale cached copy of a pinned file is refetched once, fresh: page 1 still draws, the packet keeps its language, India keeps its states; a matching cached copy is used as is; wrong bytes are refused; every pinned loader goes through fetchPinned')
else console.log('PASS check:pinned-fetch-fresh — a stale cached copy of a pinned file is refetched once, fresh: page 1 still draws, the packet keeps its language, India keeps its states; a matching cached copy is used as is; wrong bytes are refused; a page that is not secure is told so in words; every pinned loader goes through fetchPinned')
}

View file

@ -36,6 +36,15 @@ const esc = (s) => String(s ?? '')
.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')
.replace(/"/g, '&quot;').replace(/'/g, '&#39;');
// A sheet the host GENERATES (opts.sheet) that fails still falls through to the stored one, so a print never comes
// out blank. It must not fall through SILENTLY: a stored sheet with an old header once printed in place of the
// generated one, and nothing said why. The console names the sheet and the reason. An empty result is not a
// failure: a generator returns '' on purpose when it cannot draw that sheet.
const generated = (draw, id, format) => Promise.resolve().then(draw).catch((e) => {
try { console.warn(`[posterPrints] the ${format} sheet for ${id} could not be generated, so the stored sheet prints instead: ${e?.message || e}`); } catch (_) { /* no console */ }
return '';
});
/**
* THE PRINT STANDARD — one call gives any map the poster, the card deck, the prayer list and the
* prayer packet (full or lightweight) for ANY item: a zone, a country, or a custom list of people.
@ -167,7 +176,7 @@ export function usePosterPrints(opts = {}) {
// that cannot generate, and a generation that fails falls through to them rather than to nothing.
if (opts.sheet) {
set(item, kind, 'render', tr('wall.hud.generatingPoster', 'generating the poster'), 35);
const html = await Promise.resolve().then(() => opts.sheet(item, 'letter')).catch(() => '');
const html = await generated(() => opts.sheet(item, 'letter'), id, 'letter');
if (html) {
set(item, kind, 'save', tr('wall.hud.openingPrint', 'opening the print dialog'), 80);
await deliver(html, item, kind);
@ -413,7 +422,7 @@ export function usePosterPrints(opts = {}) {
const mapId = item && 'mapId' in item ? item.mapId : item?.id;
if (!mapSvg && opts.sheet && mapId) {
const target = mapId === item?.id ? item : { ...item, id: mapId };
const html = await Promise.resolve().then(() => opts.sheet(target, 'packet')).catch(() => '');
const html = await generated(() => opts.sheet(target, 'packet'), mapId, 'packet');
if (html) mapSvg = R.liftMap(html, { labelFor: await mapLabelFor() });
}
if (!mapSvg && opts.mapImage) {

View file

@ -1397,7 +1397,7 @@ export function createPacketRenderer({ strings, lang = 'en', fontData = null, de
// its own width, with per-script advances measured on this page in the packet's fonts and rounded UP; a
// tier is taken only when the estimate fits with PT_SAFE to spare. check:packet-render measures the real
// page in all 11 locales behind it (pointsOver).
const PT_MIN = { head: 22, sub: 19, text: 18.5, refs: 16, gap: 5, passage: 16, th: 19, thb: 20, scr: 18 };
const PT_MIN = { head: 22, sub: 19, text: 18, refs: 16, gap: 3, passage: 16, th: 19, thb: 20, scr: 18 };
const PT_MAX = { head: 25, sub: 21, text: 22.5, refs: 18.5, gap: 18, passage: 20, th: 21, thb: 22, scr: 19 };
const PT_TOP = 82, PT_TIERS = 10, PT_SAFE = 0.97;
const PT_BODY_H = H - (M + PT_TOP) - 80; // the .points-body box: 1719px

View file

@ -2,14 +2,14 @@
// 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-CwaFDzEX6hBJBrqihv9XdGDfPnA6YhQmm30/T7T0xkQvDQ0h6NcAsI71vs3n0EYx'
export const POSTER_RENDER_SHA384 = 'sha384-BNFUrsdCCaEetmp5cSBzDklAUsB5XBEefQEcCd3+dNNDghxRuZNytNsVfl5mBOeP'
// 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-/xk50RJ2wbLLxTmMS6dXqDb6fmWRihJvXuSUWcLA8t8MzONn4c1pq0vpqnqPMuCf'
export const POSTER_RENDER_GLOBAL_SHA384 = 'sha384-idoDSzFXNuBK27dktAJffZD6QhubGkNOk+g9vwPobzs0HWHfnUq3cSyX7FyzwvtQ'
// 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.
export const PACKET_STRINGS_SHA384 = 'sha384-7GKxNngOgE7w3XjqqPsOOFeVtDthItm+Z/lbgcm9rVrUo9afVPaTGp/7wpOrbEj2'
export const PACKET_STRINGS_SHA384 = 'sha384-YAzPNeMU+DF26OIEJrzo+Rr5f3lvoCjhae292a4tvGQZo5fggUQroiBVJCgBDtTF'

View file

@ -287,11 +287,14 @@ const HEAD_COLUMNS_CSS = `
// at 22 / 21px with darker ink: about 8pt on the printed page. Only the full layout (HEAD_COLUMNS) gets this; the
// series-wide rules above stay as they were, so the series' SPARSE posters are byte-identical.
// Print size = sheet px x 0.92 (the packet's margins) x 0.408 (1500px = 8.5in): 22px ≈ 8.3pt, 19px ≈ 7.1pt.
// ★ THE NAMES COME FIRST (2026-10-03): the header columns step down to 18px (≈6.8pt; keys 15.5, headings 19) so
// the people-group names beside the map can be the larger type. The shorter band gives the map ~80px more height,
// and the names' cap on this layout rises to 19px (see MAXF). These sizes must equal HC's (fs, keyFs, headFs).
const HEAD_COLUMNS_FULL_CSS = `
.hcolk{font-size:19px;fill:#2f2a22;font-weight:800;letter-spacing:.1em}
.hcolt{font-size:22px;fill:#3a362c}
.hcolk{font-size:15.5px;fill:#2f2a22;font-weight:800;letter-spacing:.1em}
.hcolt{font-size:18px;fill:#3a362c}
.hcolb{font-weight:700;fill:#2f2a22}
.hcolh{font-family:Georgia,'Times New Roman',serif;font-size:23px;font-weight:700;fill:#2f2a22;letter-spacing:.04em;font-variant:small-caps}
.hcolh{font-family:Georgia,'Times New Roman',serif;font-size:19px;font-weight:700;fill:#2f2a22;letter-spacing:.04em;font-variant:small-caps}
.hvref{font-size:19px}
.hverse{font-size:19.5px}
.hsrc{font-size:22px;fill:#4a4636}
@ -691,7 +694,9 @@ function layoutLabels(pins, project) {
col.forEach((it) => { it.maxNum = MAXNUM_L; });
// A map-only sheet frees the header and footer bands the same way SPARSE frees the vision
// columns, so it gets SPARSE's ceiling; the solver still only uses what the column can hold.
const MAXF = (SPARSE || MAP_ONLY) ? 19 : 15;
// The three-column sheet (HEAD_COLUMNS) gets it too: there the names are the main text, and the cap of 15
// held 21 of the 28 zones' names at 15px (≈5.6pt printed) with room to spare in the band.
const MAXF = (SPARSE || MAP_ONLY || HEAD_COLUMNS) ? 19 : 15;
// AVAIL IS THE COLUMN, AND THE NAME DOES NOT GET ALL OF IT.
// The renderer draws the name starting one number-column IN from the column's
// map-facing edge (`nameEdge = tx ± numColW`) but does not shrink its budget by
@ -725,18 +730,23 @@ function layoutLabels(pins, project) {
if (line) out.push(line);
return out.length ? out : [it.name];
};
// The air between rows, as a share of the size. The three-column sheet sets it tighter (0.22): its densest
// zones (95-118 names) are held by the band's height, and the tighter rows turn that height into type
// (west-africa 12.5 -> 13.8px, laos 15.8 -> 17.3px). A row's underline sits 0.30 below its baseline and the
// next row's capitals start 0.56 below it, so they stay clear. Every other sheet keeps 0.34.
const GAPF = HEAD_COLUMNS ? 0.22 : 0.34;
let font = MAXF, wraps = null;
for (let f = MAXF; f >= 8; f -= 0.25) {
const ws = col.map((it) => wrapName(it, f));
const totalLines = ws.reduce((a, w) => a + w.length, 0);
// Each line needs f*1.06 of pitch, plus a little air between rows.
if (totalLines * (f * 1.06) + col.length * (f * 0.34) <= bandH) { font = f; wraps = ws; break; }
if (totalLines * (f * 1.06) + col.length * (f * GAPF) <= bandH) { font = f; wraps = ws; break; }
}
if (!wraps) wraps = col.map((it) => wrapName(it, font));
// Re-pitch rows by LINE COUNT so a two-line name gets the room it needs and
// single-line rows are not stretched to match it.
const lineH = font * 1.06;
const gap = font * 0.34;
const gap = font * GAPF;
const usedH = wraps.reduce((a, w) => a + w.length * lineH, 0) + col.length * gap;
const slack = Math.max(0, bandH - usedH) / Math.max(1, col.length);
let cursor = bandTop + slack / 2;
@ -831,7 +841,8 @@ function paraInto(push, text, { x, y, w, fs, lh, cls, lead }) {
// 1 Jesus' strategy to feed the 5000
// 2 the facts: a bold key above each value (countries, administrative areas, people groups, series)
// 3 what the series is
const HC = { gut: 32, fs: 22, lh: 27, keyFs: 19, keyLh: 24, headLh: 30, gap: 8, headFs: 23 };
// The sizes equal HEAD_COLUMNS_FULL_CSS (.hcolt = fs, .hcolk = keyFs, .hcolh = headFs); leading and gaps scale with them.
const HC = { gut: 32, fs: 18, lh: 22, keyFs: 15.5, keyLh: 19.5, headLh: 24.5, gap: 7, headFs: 19 };
// textW is calibrated for Lato. Without Lato the browser falls back to a system sans that sets
// these columns 2-6% wider (measured 1.05-1.06x in DejaVu Sans). Each block is centred on its
// width at 1.03x, halfway, so any overrun splits across both sides instead of all running right.
@ -860,6 +871,9 @@ function boldLines(text, width) {
for (let i = 0; i < part.length; i++) { plain += part[i]; bold.push(on); } // per UTF-16 unit, as plain[p] reads
on = !on;
}
// A scripture reference never breaks between its book and its chapter:verse ("Mark 6:40"): that space becomes a
// placeholder for the wrap and prints as a space again. One character for one, so the bold flags stay aligned.
plain = plain.replace(/([A-Za-z]+) (\d+:\d+)/g, '$1\u0001$2');
let p = 0;
return wrapPx(plain, HC.fs, width).map((ln) => {
while (plain[p] === ' ') p++;
@ -867,7 +881,7 @@ function boldLines(text, width) {
const flush = () => { if (run) out += runBold ? `<tspan class="hcolb">${esc(run)}</tspan>` : esc(run); run = ''; };
for (let k = 0; k < ln.length; k++, p++) {
if (bold[p] !== runBold) { flush(); runBold = bold[p]; }
run += plain[p];
run += plain[p] === '\u0001' ? ' ' : plain[p];
}
flush();
return out;
@ -875,15 +889,24 @@ function boldLines(text, width) {
}
function headColumnsBand(top, facts, approxLists) {
const GRID_L = BAND_MARGIN_G, GRID_W = PW - 2 * BAND_MARGIN_G;
const CW = (GRID_W - 2 * HC.gut) / 3;
const AVAIL = GRID_W - 2 * HC.gut;
// The measure leaves room for a fallback font (see HC_FALLBACK): a block set to it stays inside its column.
const TW = (CW - 10 - BAND_TEXT_PAD / 2) * 0.92;
const measure = (cw) => (cw - 10 - BAND_TEXT_PAD / 2) * 0.92;
// ★ EVEN COLUMNS (2026-10-03): when the facts column runs longer than the two text columns it is WIDENED (and
// shorter, it is narrowed) so the three end at about the same height. The two side columns stay equal, so they
// still mirror each other round the centre. The centre's share is searched from 26% to 46% of the three-column
// width; the split whose TALLEST column is shortest wins, and a tie goes to the split nearest equal widths, so a
// zone that is already balanced keeps equal columns. measureHeader calls this same function, so the map below
// gets exactly the height that is left.
// Uppercase, letterspaced keys: measured as capitals plus the .14em tracking.
const keyW = (k) => textW(k.toUpperCase(), HC.keyFs) + k.length * HC.keyFs * 0.14;
// Each column's height at a given measure (the same arithmetic the drawing below advances y by).
const proseH = (col, tw) => HC.headLh + col[0].paras.reduce((h, t, k) => h + (k ? HC.gap : 0) + boldLines(t, tw).length * HC.lh, 0);
const factsH = (tw) => facts.reduce((h, [, value], k) => h + (k ? HC.gap : 0) + HC.keyLh + wrapPx(value, HC.fs, tw).length * HC.lh, 0);
// Column order (2026-10-02): Jesus' strategy | the facts | what the series is.
const cols = [
[{ head: 'Jesus’ Strategy to Feed the 5000', paras: strategyParas() }],
facts.map(([key, value]) => ({ key, lines: wrapPx(value, HC.fs, TW) })),
null, // the facts column, wrapped below at the centre's measure
[{ head: POSTER_TEXT.sideBoxHeading || 'What is a UPG100 List?', paras: [
(POSTER_TEXT.sideBoxBody
|| 'This map is one of a {approxLists}-map set called the {seriesName} — a large, overwhelming target in the thousands, organised into clear groupings and displayed on maps and prayer lists.')
@ -891,9 +914,22 @@ function headColumnsBand(top, facts, approxLists) {
...whatIsMore(),
] }],
];
// The split: equal thirds first, then centre shares on a 1% step ordered by their distance from a third, so
// among splits whose tallest column is equally short, the one nearest equal widths is found first and kept.
const shares = Array.from({ length: 21 }, (_, k) => 0.26 + k * 0.01).sort((a, b) => Math.abs(a - 1 / 3) - Math.abs(b - 1 / 3));
let best = null;
for (const cwC of [1 / 3, ...shares].map((f) => AVAIL * f)) {
const cwS = (AVAIL - cwC) / 2;
const tall = Math.max(proseH(cols[0], measure(cwS)), factsH(measure(cwC)), proseH(cols[2], measure(cwS)));
if (!best || tall < best.tall - 0.5) best = { cwC, cwS, tall };
}
const widths = [best.cwS, best.cwC, best.cwS];
const lefts = [GRID_L, GRID_L + best.cwS + HC.gut, GRID_L + best.cwS + HC.gut + best.cwC + HC.gut];
cols[1] = facts.map(([key, value]) => ({ key, lines: wrapPx(value, HC.fs, measure(best.cwC)) }));
let frags = '', bottom = top;
cols.forEach((col, i) => {
const centre = GRID_L + i * (CW + HC.gut) + CW / 2;
const CW = widths[i], TW = measure(CW);
const centre = lefts[i] + CW / 2;
if (col[0] && col[0].key !== undefined) { // the facts column: a bold key above each value
const blockW = Math.min(TW, Math.max(...col.map((r) => Math.max(keyW(r.key), ...r.lines.map((ln) => textW(ln, HC.fs))))));
const x = (centre - blockW * HC_FALLBACK / 2).toFixed(1);
@ -922,7 +958,7 @@ function headColumnsBand(top, facts, approxLists) {
}
});
for (let i = 1; i < 3; i++) {
const rx = (GRID_L + i * (CW + HC.gut) - HC.gut / 2).toFixed(1);
const rx = (lefts[i] - HC.gut / 2).toFixed(1);
frags += `<line x1="${rx}" y1="${top - 14}" x2="${rx}" y2="${bottom - 12}" class="hcolrule"/>`;
}
return { frags, bottom };
@ -2368,7 +2404,7 @@ async function renderPoster(zone, pins, zoneFC) {
let cy0 = bodyTop;
strategyParas().forEach((text, k) => {
if (k) cy0 += 5;
cy0 = paraInto(push, text, { x: b1x[0], y: cy0, w: B1_TW, fs: B1_FS, lh: B1_LH, cls: 'hsrc2' });
cy0 = paraInto(push, String(text).replace(/\*\*/g, ''), { x: b1x[0], y: cy0, w: B1_TW, fs: B1_FS, lh: B1_LH, cls: 'hsrc2' });
});
let cy1 = bodyTop;
@ -2379,9 +2415,11 @@ async function renderPoster(zone, pins, zoneFC) {
|| 'This map is one of a {approxLists}-map set called the {seriesName} — a large, overwhelming target in the thousands, organised into clear groupings and displayed on maps and prayer lists.')
.replace('{approxLists}', String(approxLists))
.replace('{seriesName}', SERIES_NAME);
// A **...** bold marker is the band's (boldLines); this classic header prints plain, so the markers are dropped.
const plain = (t) => String(t).replace(/\*\*/g, '');
[whatIs, ...whatIsMore()].forEach((text, k) => {
if (k) cy1 += 5;
cy1 = paraInto(push, text, { x: b1x[1], y: cy1, w: B1_TW, fs: B1_FS, lh: B1_LH, cls: 'hsrc2' });
cy1 = paraInto(push, plain(text), { x: b1x[1], y: cy1, w: B1_TW, fs: B1_FS, lh: B1_LH, cls: 'hsrc2' });
});
const b1Bot = Math.max(cy0, cy1);

View file

@ -1,8 +1,14 @@
// The Subresource-Integrity form of a text's SHA-384 ("sha384-<base64>"), via WebCrypto, so a file fetched at
// print time can be compared with the pin baked into the bundle (poster-render.integrity.js) before it is used.
// The same value pin-poster-render.mjs computes with node:crypto.
// ★ ONLY ON A SECURE PAGE. A browser gives crypto.subtle only to a secure page (https, or http://localhost). Opened any
// other way (a dev server reached over plain http by its LAN address, from a phone on the same Wi-Fi), every pinned
// file was refused with a bare "reading 'digest'": the packet printed in English and page 1 fell back to its stored
// sheet, with nothing saying why. Say it in words.
export async function sha384(text) {
const d = new Uint8Array(await crypto.subtle.digest('SHA-384', new TextEncoder().encode(text)))
const subtle = globalThis.crypto && globalThis.crypto.subtle
if (!subtle) throw new Error('pinned files can only be checked on a secure page (https, or http://localhost); this page is not one')
const d = new Uint8Array(await subtle.digest('SHA-384', new TextEncoder().encode(text)))
let bin = ''
for (const b of d) bin += String.fromCharCode(b)
return `sha384-${btoa(bin)}`

View file

@ -52,7 +52,7 @@
"n": 1,
"rhythm": "praise",
"sub": "Two-Cross Gospel",
"text": "That they accept Christ as King, forgiven by His cross — and take up their own cross, willing to suffer through persecution. May the Lamb receive the reward of His suffering, starting with me.",
"text": "Praise Jesus for taking up a cross for you and being humbled. Crown Him as your King, and pray for these nations (people groups) that they will do the same. Devote yourself to Jesus to take up your own cross and follow Him, even through suffering, and death. Praise Him for He is worthy of these nations (people groups) taking up their own cross, willing to follow Jesus no matter what the cost. May the Lamb receive the reward of His suffering, starting with me.",
"refs": [
"Matthew 27:27",
"Matthew 16:24–25"
@ -62,7 +62,7 @@
"n": 2,
"rhythm": "wait",
"sub": "Holy Spirit & deliverance",
"text": "Spend time waiting on the Holy Spirit to tell you and empower you to pray as a bold prayer warrior for them: that they are filled with the Holy Spirit and made bold witnesses, not isolated; baptized in water and Spirit; every evil grip broken; and that believers in neighboring people groups are mobilized as laborers.",
"text": "Spend time waiting on the Holy Spirit to fill you and empower you to pray as a bold prayer warrior for them. Focus in on God's presence, and wait on the Lord!",
"refs": [
"Acts 1:8",
"John 14:26"
@ -72,7 +72,7 @@
"n": 3,
"rhythm": "confess",
"sub": "",
"text": "We confess the unbelief that it is too big an ask for God to reach all of these unreached people groups in our lifetime. We receive the truth that He is reviving our love and faith for the global unreached.",
"text": "Be open and honest with God about your fears, lies, and unbelief surrounding unreached people groups (Example lie: It is too big an ask for God to reach all of these unreached people groups in our lifetime). Receive His love, truth, and voice surrounding unreached people groups and your role in helping Him reach these people groups. Ask God to revive your love and faith for the people groups on your prayer list.",
"refs": [
"John 3:16",
"1 John 1:9"
@ -81,8 +81,8 @@
{
"n": 4,
"rhythm": "read",
"sub": "the Father's love",
"text": "That they would be SAVED and KNOW their heavenly Father loves them — and that through them He would bring salvation to their family, friends, neighbours, coworkers, classmates, everyone they know personally.",
"sub": "the heavenly Father's love",
"text": "That they would be SAVED and KNOW their heavenly Father loves them — He wants to save them, and through them He wants to bring salvation to their family, friends, neighbors, coworkers, classmates, everyone they know personally.",
"refs": [
"Mark 5:18–20",
"Acts 16:31"
@ -93,7 +93,7 @@
"n": 5,
"rhythm": "ask",
"sub": "baptisms",
"text": "New baptisms among the indigenous people groups, and every baptized disciple trained to baptize others — multiplying baptisms.",
"text": "New baptisms among the indigenous people groups, and every baptized disciple is trained to baptize others — multiplying baptisms.",
"refs": [
"Acts 16",
"Acts 10"
@ -103,7 +103,7 @@
"n": 6,
"rhythm": "intercede",
"sub": "laborers & shepherds",
"text": "Laborers sent to deeply love a people they have never met; good shepherds raised up from within.",
"text": "For laborers sent to deeply love a people they have never met; and indigenous good shepherds raised up from within the people groups.",
"refs": [
"Luke 10:2",
"John 10:11–15"
@ -113,7 +113,7 @@
"n": 7,
"rhythm": "pray_word",
"sub": "Persons & Houses of Peace",
"text": "That laborers and indigenous leaders find the receptive person and the house of peace, deeply love them, disciple them well, baptize them, and train them to reach their friends and family with their newfound love for Jesus.",
"text": "That laborers and indigenous disciples find the receptive person and the house of peace, deeply love them, disciple them well, baptize them, and train them to reach their friends and family with their newfound love for Jesus.",
"refs": [
"Luke 10:5–7",
"Matthew 10:5–14"
@ -133,17 +133,17 @@
"n": 9,
"rhythm": "sing",
"sub": "",
"text": "That the people group is flooded with worshippers — worship everywhere, in freedom and in chains.",
"text": "Imagine you are with Jesus worshipping Him, and you are surrounded by all the people groups on your prayer list worshipping Him too. Spend some time to praise Jesus.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
"n": 10,
"rhythm": "meditate",
"sub": "communion",
"text": "That they take communion together and grasp the freedom they have in Christ through His death, burial and resurrection.",
"text": "Focus on Jesus. Take communion if possible. Imagine being together with Jesus at a table with one person from each people group on your list. What is it going to take for this to become a reality?",
"refs": [
"Matthew 26:26–30",
"1 Corinthians 11:23–26"
@ -163,11 +163,10 @@
"n": 12,
"rhythm": "praise_end",
"sub": "blessing · great · greater · greatest",
"text": "Pray Jesus’ prayer in John 17 over them. The blessing: eternal life, knowing God and Jesus, whom He sent. The great blessing: their own believers leading others to faith. The greater blessing: new spiritual families of their own, one in Christ. One of the greatest: leaders from among them who train others to start new spiritual families, again and again. Ask all this and more, beyond all we ask or think. Ask, as Jesus did, that they be one and kept from the evil one. None of it is possible unless Jesus is who He says He is.",
"text": "Short reading: It is a blessing from God for people in these people groups to be saved through Jesus and have eternal life (John 17:3). It is a great blessing from God for indigenous disciples to lead their friends, family, coworkers, classmates, neighbors, and people they don't know, to Jesus through their witness (John 17:20). It is a greater blessing from God when indigenous leaders in these people groups start new churches that are unified in Jesus (John 17:21). It is one of the greatest blessings from God, when indigenous leaders train other indigenous leaders to start more churches unified in Christ. They begin to worship Jesus and spread throughout neighboring unreached people groups bringing the life of Jesus to the ends of the earth. Spend time singing praise to God. He is worthy of worshippers in all these people groups!",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -175,8 +174,8 @@
"point4_passage_credit": "Mark 5:18–20 · World English Bible (public domain)",
"point4_passage_bold": "He didn’t allow him, but said to him, “Go to your house, to your friends, and tell them what great things the Lord has done for you and how he had mercy on you.”",
"point4_heart_title": "THE HEAVENLY FATHER'S HEART",
"point4_heart_lede": "They need to know that their Heavenly Father loves them, He wants to save them, and through them He wants their unreached people group neighbors to be saved.",
"point4_heart_leadin": "More scriptures about the heavenly Father's heart",
"point4_heart_lede": "They need to know that their heavenly Father loves them, He wants to save them, and through them He wants their unreached people group neighbors to be saved.",
"point4_heart_leadin": "More scriptures about the heavenly Father's heart (pick one scripture to read)",
"point4_heart": [
{
"who": "Noah",
@ -298,7 +297,8 @@
"Haggai": "Haggai",
"Isaiah": "Isaiah",
"Habakkuk": "Habakkuk",
"Ephesians": "Ephesians"
"Ephesians": "Ephesians",
"Revelation": "Revelation"
},
"christian_per_cell": "Each box ≈ {n} people",
"howto_title": "How to pray with this list",
@ -489,7 +489,7 @@
"text": "Que el grupo étnico sea inundado de adoradores — adoración en todas partes, en libertad y en cadenas.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -518,9 +518,8 @@
"sub": "bendición · grande · mayor · de las mayores",
"text": "Ora sobre ellos la oración de Jesús en Juan 17. La bendición: la vida eterna, conocer a Dios y a Jesús, a quien él envió. La gran bendición: que sus propios creyentes lleven a otros a la fe. La bendición mayor: nuevas familias espirituales propias, unidas en Cristo. Una de las mayores: líderes de entre ellos que formen a otros para iniciar nuevas familias espirituales, una y otra vez. Pide todo esto y más, mucho más de lo que pedimos o pensamos. Pide, como Jesús, que sean uno y que sean guardados del maligno. Nada de esto es posible si Jesús no es quien dice ser.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -644,7 +643,8 @@
"Haggai": "Hageo",
"Isaiah": "Isaías",
"Habakkuk": "Habacuc",
"Ephesians": "Efesios"
"Ephesians": "Efesios",
"Revelation": "Apocalipsis"
},
"christian_per_cell": "Cada casilla ≈ {n} personas",
"howto_title": "Cómo orar con esta lista",
@ -821,7 +821,7 @@
"text": "Que le groupe ethnique soit inondé d'adorateurs — l'adoration partout, dans la liberté comme dans les chaînes.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -850,9 +850,8 @@
"sub": "bénédiction · grande · plus grande · parmi les plus grandes",
"text": "Priez sur eux la prière de Jésus en Jean 17. La bénédiction : la vie éternelle, connaître Dieu et Jésus, celui qu’il a envoyé. La grande bénédiction : que leurs propres croyants amènent d’autres à la foi. Une bénédiction plus grande : de nouvelles familles spirituelles bien à eux, unies en Christ. L’une des plus grandes : des responsables issus de leur peuple qui forment d’autres personnes à fonder de nouvelles familles spirituelles, encore et encore. Demandez tout cela et plus encore, au-delà de tout ce que nous demandons ou pensons. Demandez, comme Jésus, qu’ils soient un et gardés du malin. Rien de cela n’est possible si Jésus n’est pas celui qu’il dit être.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -976,7 +975,8 @@
"Haggai": "Aggée",
"Isaiah": "Ésaïe",
"Habakkuk": "Habacuc",
"Ephesians": "Éphésiens"
"Ephesians": "Éphésiens",
"Revelation": "Apocalypse"
},
"christian_per_cell": "Chaque case ≈ {n} personnes",
"howto_title": "Comment prier avec cette liste",
@ -1153,7 +1153,7 @@
"text": "Que o grupo étnico seja inundado de adoradores — adoração em toda parte, em liberdade e em correntes.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -1182,9 +1182,8 @@
"sub": "bênção · grande · maior · das maiores",
"text": "Ore sobre eles a oração de Jesus em João 17. A bênção: a vida eterna, conhecer a Deus e a Jesus, a quem ele enviou. A grande bênção: que os seus próprios crentes levem outros à fé. A bênção maior: novas famílias espirituais deles mesmos, unidas em Cristo. Uma das maiores: líderes do meio deles que preparem outros para começar novas famílias espirituais, vez após vez. Peça tudo isso e mais, muito além do que pedimos ou pensamos. Peça, como Jesus pediu, que sejam um e guardados do maligno. Nada disso é possível se Jesus não for quem ele diz ser.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -1305,7 +1304,8 @@
"Haggai": "Ageu",
"Isaiah": "Isaías",
"Habakkuk": "Habacuque",
"Ephesians": "Efésios"
"Ephesians": "Efésios",
"Revelation": "Apocalipse"
},
"christian_per_cell": "Cada caixa ≈ {n} pessoas",
"howto_title": "Como orar com esta lista",
@ -1482,7 +1482,7 @@
"text": "Dass die Volksgruppe von Anbetern überflutet wird — Anbetung überall, in Freiheit und in Ketten.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -1511,9 +1511,8 @@
"sub": "Segen · groß · größer · einer der größten",
"text": "Beten Sie Jesu Gebet aus Johannes 17 über ihnen. Der Segen: ewiges Leben, Gott zu kennen und Jesus, den er gesandt hat. Der große Segen: dass ihre eigenen Gläubigen andere zum Glauben führen. Der größere Segen: neue geistliche Familien, ihre eigenen, eins in Christus. Einer der größten: Leiter aus ihrer Mitte, die andere anleiten, neue geistliche Familien zu gründen, immer wieder. Bitten Sie um all das und mehr, über alles hinaus, was wir bitten oder verstehen. Bitten Sie wie Jesus, dass sie eins seien und vor dem Bösen bewahrt werden. Nichts davon ist möglich, wenn Jesus nicht der ist, der er zu sein sagt.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -1637,7 +1636,8 @@
"Haggai": "Haggai",
"Isaiah": "Jesaja",
"Habakkuk": "Habakuk",
"Ephesians": "Epheser"
"Ephesians": "Epheser",
"Revelation": "Offenbarung"
},
"christian_per_cell": "Jedes Kästchen ≈ {n} Menschen",
"howto_title": "So beten Sie mit dieser Liste",
@ -1814,7 +1814,7 @@
"text": "Che il gruppo etnico sia inondato di adoratori — adorazione ovunque, nella libertà e nelle catene.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -1843,9 +1843,8 @@
"sub": "benedizione · grande · più grande · tra le più grandi",
"text": "Prega su di loro la preghiera di Gesù in Giovanni 17. La benedizione: la vita eterna, conoscere Dio e Gesù, colui che egli ha mandato. La grande benedizione: che i loro stessi credenti portino altri alla fede. La benedizione più grande: nuove famiglie spirituali tutte loro, unite in Cristo. Una delle più grandi: responsabili del loro popolo che formano altri ad avviare nuove famiglie spirituali, ancora e ancora. Chiedi tutto questo e di più, oltre tutto ciò che chiediamo o pensiamo. Chiedi, come Gesù, che siano uno e custoditi dal maligno. Niente di tutto questo è possibile se Gesù non è chi dice di essere.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -1966,7 +1965,8 @@
"Haggai": "Aggeo",
"Isaiah": "Isaia",
"Habakkuk": "Abacuc",
"Ephesians": "Efesini"
"Ephesians": "Efesini",
"Revelation": "Apocalisse"
},
"christian_per_cell": "Ogni casella ≈ {n} persone",
"howto_title": "Come pregare con questa lista",
@ -2143,7 +2143,7 @@
"text": "Grupul etnic să fie inundat de închinători — închinare pretutindeni, în libertate și în lanțuri.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -2172,9 +2172,8 @@
"sub": "binecuvântare · mare · mai mare · printre cele mai mari",
"text": "Roagă-te peste ei cu rugăciunea lui Isus din Ioan 17. Binecuvântarea: viața veșnică, să-L cunoască pe Dumnezeu și pe Isus, pe care L-a trimis. Marea binecuvântare: ca propriii lor credincioși să-i aducă pe alții la credință. O binecuvântare și mai mare: familii spirituale noi, ale lor, una în Hristos. Una dintre cele mai mari: lideri dintre ei care îi pregătesc pe alții să înceapă noi familii spirituale, iar și iar. Cere toate acestea și mai mult, dincolo de tot ce cerem sau gândim. Cere, ca Isus, să fie una și păziți de cel rău. Nimic din toate acestea nu este posibil dacă Isus nu este Cel care spune că este.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -2295,7 +2294,8 @@
"Haggai": "Hagai",
"Isaiah": "Isaia",
"Habakkuk": "Habacuc",
"Ephesians": "Efeseni"
"Ephesians": "Efeseni",
"Revelation": "Apocalipsa"
},
"christian_per_cell": "Fiecare căsuță ≈ {n} de oameni",
"howto_title": "Cum să te rogi cu această listă",
@ -2470,7 +2470,7 @@
"text": "Чтобы народ наполнился поклонниками — поклонение повсюду, в свободе и в цепях.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -2499,9 +2499,8 @@
"sub": "благословение · великое · большее · одно из величайших",
"text": "Молитесь над ними молитвой Иисуса из Иоанна 17. Благословение: вечная жизнь — знать Бога и Иисуса, Которого Он послал. Великое благословение: чтобы их собственные верующие приводили других к вере. Ещё большее благословение: новые духовные семьи, свои собственные, единые во Христе. Одно из величайших: лидеры из их среды, которые учат других начинать новые духовные семьи — снова и снова. Просите обо всём этом и о большем — превыше всего, чего мы просим или о чём помышляем. Просите, как Иисус, чтобы они были едины и сохранены от лукавого. Ничто из этого невозможно, если Иисус не Тот, Кем Он Себя называет.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -2625,7 +2624,8 @@
"Haggai": "Агг.",
"Isaiah": "Ис.",
"Habakkuk": "Авв.",
"Ephesians": "Еф."
"Ephesians": "Еф.",
"Revelation": "Откр."
},
"christian_per_cell": "Каждая клетка ≈ {n} чел.",
"howto_title": "Как молиться по этому списку",
@ -2809,7 +2809,7 @@
"text": "أن يفيض الشعب بالساجدين — عبادة في كل مكان، في الحرية وفي القيود.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -2838,9 +2838,8 @@
"sub": "البركة · العظيمة · الأعظم · من أعظمها",
"text": "صلِّ لأجلهم بصلاة يسوع في يوحنا ١٧. البركة: الحياة الأبدية، أن يعرفوا الله ويسوع الذي أرسله. البركة العظيمة: أن يقود المؤمنون منهم غيرهم إلى الإيمان. البركة الأعظم: عائلات روحية جديدة خاصة بهم، واحدة في المسيح. ومن أعظم البركات: قادة من بينهم يدرّبون آخرين ليبدؤوا عائلات روحية جديدة، مرة بعد مرة. اطلب كل هذا وأكثر، أكثر جدًا مما نطلب أو نفتكر. واطلب، كما طلب يسوع، أن يكونوا واحدًا وأن يُحفظوا من الشرير. لا شيء من هذا ممكن إن لم يكن يسوع هو مَن يقول إنه هو.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -2964,7 +2963,8 @@
"Haggai": "حجي",
"Isaiah": "إشعياء",
"Habakkuk": "حبقوق",
"Ephesians": "أفسس"
"Ephesians": "أفسس",
"Revelation": "رؤيا"
},
"christian_per_cell": "كل مربّع ≈ {n} شخص",
"howto_title": "كيف تصلّي بهذه القائمة",
@ -3141,7 +3141,7 @@
"text": "कि वह जनसमूह आराधकों से भर जाए — हर जगह आराधना, स्वतंत्रता में और बेड़ियों में भी।",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -3170,9 +3170,8 @@
"sub": "आशीष · बड़ी · और बड़ी · सबसे बड़ी में से एक",
"text": "यूहन्ना 17 में यीशु ने जो प्रार्थना की, वही उनके लिए करें। आशीष: अनन्त जीवन — परमेश्वर को और यीशु को जानना, जिन्हें उन्होंने भेजा। बड़ी आशीष: उन्हीं के विश्वासी दूसरों को विश्वास में लाएँ। उससे बड़ी आशीष: उनके अपने नए आत्मिक परिवार, मसीह में एक। सबसे बड़ी आशीषों में से एक: उनके बीच से अगुवे, जो दूसरों को नए आत्मिक परिवार शुरू करने के लिए तैयार करें — बार-बार। यह सब और इससे भी अधिक माँगें, जितना हम माँगते या सोचते हैं उससे कहीं बढ़कर। यीशु की तरह माँगें कि वे एक हों और उस दुष्ट से बचे रहें। इनमें से कुछ भी संभव नहीं, यदि यीशु वह नहीं हैं जो वह कहते हैं कि वह हैं।",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -3293,7 +3292,8 @@
"Haggai": "हाग्गै",
"Isaiah": "यशायाह",
"Habakkuk": "हबक्कूक",
"Ephesians": "इफिसियों"
"Ephesians": "इफिसियों",
"Revelation": "प्रकाशितवाक्य"
},
"christian_per_cell": "हर खाना ≈ {n} लोग",
"howto_title": "इस सूची के साथ प्रार्थना कैसे करें",
@ -3468,7 +3468,7 @@
"text": "愿这族群充满敬拜者——处处敬拜,在自由中,也在捆锁中。",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -3497,9 +3497,8 @@
"sub": "祝福 · 大 · 更大 · 最大之一",
"text": "用耶稣在约翰福音17章的祷告为他们祷告。祝福:永生,认识神和他所差来的耶稣。大祝福:他们自己的信徒带领别人信主。更大的祝福:属于他们自己的新属灵家庭,在基督里合而为一。最大的祝福之一:从他们中间兴起领袖,装备别人建立新的属灵家庭,一代又一代。求这一切,还有更多,超过我们所求所想的。也像耶稣一样,求神使他们合而为一,保守他们脱离那恶者。若耶稣不是他自己所说的那一位,这一切都不可能。",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -3620,7 +3619,8 @@
"Haggai": "哈该书",
"Isaiah": "以赛亚书",
"Habakkuk": "哈巴谷书",
"Ephesians": "以弗所书"
"Ephesians": "以弗所书",
"Revelation": "启示录"
},
"christian_per_cell": "每格约 {n} 人",
"howto_title": "如何使用这份祷告名单",

View file

@ -449,7 +449,7 @@
"check:pinned-fetch-fresh:self-test": "bun internal/check-pinned-fetch-fresh.mjs --self-test"
},
"//scripts": {
"check:pinned-fetch-fresh": "a STALE cached copy of a pinned print-time file never decides a print: library/packet/sha384.js fetchPinned fetches force-cache, and on a copy that is not served or fails its pin, ONCE more with cache:'reload'; every pinned loader (posterSheets poster-render.js + ne-places.json, packetStrings, indiaStates) calls it, and the classic-script path refreshes the cache and retries a refused tag once. With a modelled HTTP cache holding stale copies: the current file after one fresh refetch; a matching cached copy used with one force-cache request; wrong bytes refused; page 1 still draws (generateSheet), the packet keeps every language, India keeps its 36 states. Self-test poisons: no fresh refetch, never the cache, a mismatch accepted, a loader fetching its pinned file directly.",
"check:pinned-fetch-fresh": "a STALE cached copy of a pinned print-time file never decides a print: library/packet/sha384.js fetchPinned fetches force-cache, and on a copy that is not served or fails its pin, ONCE more with cache:'reload'; every pinned loader (posterSheets poster-render.js + ne-places.json, packetStrings, indiaStates) calls it, and the classic-script path refreshes the cache and retries a refused tag once. With a modelled HTTP cache holding stale copies: the current file after one fresh refetch; a matching cached copy used with one force-cache request; wrong bytes refused; page 1 still draws (generateSheet), the packet keeps every language, India keeps its 36 states. Self-test poisons: no fresh refetch, never the cache, a mismatch accepted, an unguarded crypto.subtle, a loader fetching its pinned file directly. On a page that is not secure (crypto.subtle missing: plain http by LAN address) the refusal says so in words (arm D2).",
"check:phone-print-keep": "on a PHONE the in-page print document (#dxm-print-root and its print style, library/composables/printInPlace.js) and printImageBlob's object URL outlive afterprint, because Android Chrome fires afterprint once the PREVIEW is built and renders a saved PDF later, from the page as it is then (a phone's saved packet was the bare host page). A timeline on fake timers and a stub DOM with an Android user agent: still mounted 30 s after afterprint; released once the reader is back (shown again after hidden, focused again after blur, or touched after print() but not in its first TOUCH_SETTLE_MS) plus BACK_GRACE_MS (60 s), or at the ceiling; going away again during the grace cancels the pending drop; the Print tap of a late print does not count; a new print replaces it; desktop is the frame path, verbatim. --impl=<path> runs it against another copy (the pre-fix file fails). Self-test poisons: the old drop at afterprint, no release when back, listeners armed at mount, no grace, printImageBlob revoking at afterprint, no ceiling, no cancel when away again, no touch settle window.",
"_": "What each script does. These notes used to sit inside the command strings as trailing \"# …\" comments, which made the shell discard any arguments passed after \"--\" (so a gate given --url silently measured its hardcoded default port — possibly another agent's server). Keep notes here, never in a command.",
"browser-gates": "lists every package.json script that launches a browser (the same detection run-parallel uses to route them through internal/browser-slot.sh). Run each as internal/browser-slot.sh bun run <name>.",

View file

@ -52,7 +52,7 @@
"n": 1,
"rhythm": "praise",
"sub": "Two-Cross Gospel",
"text": "That they accept Christ as King, forgiven by His cross — and take up their own cross, willing to suffer through persecution. May the Lamb receive the reward of His suffering, starting with me.",
"text": "Praise Jesus for taking up a cross for you and being humbled. Crown Him as your King, and pray for these nations (people groups) that they will do the same. Devote yourself to Jesus to take up your own cross and follow Him, even through suffering, and death. Praise Him for He is worthy of these nations (people groups) taking up their own cross, willing to follow Jesus no matter what the cost. May the Lamb receive the reward of His suffering, starting with me.",
"refs": [
"Matthew 27:27",
"Matthew 16:24–25"
@ -62,7 +62,7 @@
"n": 2,
"rhythm": "wait",
"sub": "Holy Spirit & deliverance",
"text": "Spend time waiting on the Holy Spirit to tell you and empower you to pray as a bold prayer warrior for them: that they are filled with the Holy Spirit and made bold witnesses, not isolated; baptized in water and Spirit; every evil grip broken; and that believers in neighboring people groups are mobilized as laborers.",
"text": "Spend time waiting on the Holy Spirit to fill you and empower you to pray as a bold prayer warrior for them. Focus in on God's presence, and wait on the Lord!",
"refs": [
"Acts 1:8",
"John 14:26"
@ -72,7 +72,7 @@
"n": 3,
"rhythm": "confess",
"sub": "",
"text": "We confess the unbelief that it is too big an ask for God to reach all of these unreached people groups in our lifetime. We receive the truth that He is reviving our love and faith for the global unreached.",
"text": "Be open and honest with God about your fears, lies, and unbelief surrounding unreached people groups (Example lie: It is too big an ask for God to reach all of these unreached people groups in our lifetime). Receive His love, truth, and voice surrounding unreached people groups and your role in helping Him reach these people groups. Ask God to revive your love and faith for the people groups on your prayer list.",
"refs": [
"John 3:16",
"1 John 1:9"
@ -81,8 +81,8 @@
{
"n": 4,
"rhythm": "read",
"sub": "the Father's love",
"text": "That they would be SAVED and KNOW their heavenly Father loves them — and that through them He would bring salvation to their family, friends, neighbours, coworkers, classmates, everyone they know personally.",
"sub": "the heavenly Father's love",
"text": "That they would be SAVED and KNOW their heavenly Father loves them — He wants to save them, and through them He wants to bring salvation to their family, friends, neighbors, coworkers, classmates, everyone they know personally.",
"refs": [
"Mark 5:18–20",
"Acts 16:31"
@ -93,7 +93,7 @@
"n": 5,
"rhythm": "ask",
"sub": "baptisms",
"text": "New baptisms among the indigenous people groups, and every baptized disciple trained to baptize others — multiplying baptisms.",
"text": "New baptisms among the indigenous people groups, and every baptized disciple is trained to baptize others — multiplying baptisms.",
"refs": [
"Acts 16",
"Acts 10"
@ -103,7 +103,7 @@
"n": 6,
"rhythm": "intercede",
"sub": "laborers & shepherds",
"text": "Laborers sent to deeply love a people they have never met; good shepherds raised up from within.",
"text": "For laborers sent to deeply love a people they have never met; and indigenous good shepherds raised up from within the people groups.",
"refs": [
"Luke 10:2",
"John 10:11–15"
@ -113,7 +113,7 @@
"n": 7,
"rhythm": "pray_word",
"sub": "Persons & Houses of Peace",
"text": "That laborers and indigenous leaders find the receptive person and the house of peace, deeply love them, disciple them well, baptize them, and train them to reach their friends and family with their newfound love for Jesus.",
"text": "That laborers and indigenous disciples find the receptive person and the house of peace, deeply love them, disciple them well, baptize them, and train them to reach their friends and family with their newfound love for Jesus.",
"refs": [
"Luke 10:5–7",
"Matthew 10:5–14"
@ -133,17 +133,17 @@
"n": 9,
"rhythm": "sing",
"sub": "",
"text": "That the people group is flooded with worshippers — worship everywhere, in freedom and in chains.",
"text": "Imagine you are with Jesus worshipping Him, and you are surrounded by all the people groups on your prayer list worshipping Him too. Spend some time to praise Jesus.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
"n": 10,
"rhythm": "meditate",
"sub": "communion",
"text": "That they take communion together and grasp the freedom they have in Christ through His death, burial and resurrection.",
"text": "Focus on Jesus. Take communion if possible. Imagine being together with Jesus at a table with one person from each people group on your list. What is it going to take for this to become a reality?",
"refs": [
"Matthew 26:26–30",
"1 Corinthians 11:23–26"
@ -163,11 +163,10 @@
"n": 12,
"rhythm": "praise_end",
"sub": "blessing · great · greater · greatest",
"text": "Pray Jesus’ prayer in John 17 over them. The blessing: eternal life, knowing God and Jesus, whom He sent. The great blessing: their own believers leading others to faith. The greater blessing: new spiritual families of their own, one in Christ. One of the greatest: leaders from among them who train others to start new spiritual families, again and again. Ask all this and more, beyond all we ask or think. Ask, as Jesus did, that they be one and kept from the evil one. None of it is possible unless Jesus is who He says He is.",
"text": "Short reading: It is a blessing from God for people in these people groups to be saved through Jesus and have eternal life (John 17:3). It is a great blessing from God for indigenous disciples to lead their friends, family, coworkers, classmates, neighbors, and people they don't know, to Jesus through their witness (John 17:20). It is a greater blessing from God when indigenous leaders in these people groups start new churches that are unified in Jesus (John 17:21). It is one of the greatest blessings from God, when indigenous leaders train other indigenous leaders to start more churches unified in Christ. They begin to worship Jesus and spread throughout neighboring unreached people groups bringing the life of Jesus to the ends of the earth. Spend time singing praise to God. He is worthy of worshippers in all these people groups!",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -175,8 +174,8 @@
"point4_passage_credit": "Mark 5:18–20 · World English Bible (public domain)",
"point4_passage_bold": "He didn’t allow him, but said to him, “Go to your house, to your friends, and tell them what great things the Lord has done for you and how he had mercy on you.”",
"point4_heart_title": "THE HEAVENLY FATHER'S HEART",
"point4_heart_lede": "They need to know that their Heavenly Father loves them, He wants to save them, and through them He wants their unreached people group neighbors to be saved.",
"point4_heart_leadin": "More scriptures about the heavenly Father's heart",
"point4_heart_lede": "They need to know that their heavenly Father loves them, He wants to save them, and through them He wants their unreached people group neighbors to be saved.",
"point4_heart_leadin": "More scriptures about the heavenly Father's heart (pick one scripture to read)",
"point4_heart": [
{
"who": "Noah",
@ -298,7 +297,8 @@
"Haggai": "Haggai",
"Isaiah": "Isaiah",
"Habakkuk": "Habakkuk",
"Ephesians": "Ephesians"
"Ephesians": "Ephesians",
"Revelation": "Revelation"
},
"christian_per_cell": "Each box ≈ {n} people",
"howto_title": "How to pray with this list",
@ -489,7 +489,7 @@
"text": "Que el grupo étnico sea inundado de adoradores — adoración en todas partes, en libertad y en cadenas.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -518,9 +518,8 @@
"sub": "bendición · grande · mayor · de las mayores",
"text": "Ora sobre ellos la oración de Jesús en Juan 17. La bendición: la vida eterna, conocer a Dios y a Jesús, a quien él envió. La gran bendición: que sus propios creyentes lleven a otros a la fe. La bendición mayor: nuevas familias espirituales propias, unidas en Cristo. Una de las mayores: líderes de entre ellos que formen a otros para iniciar nuevas familias espirituales, una y otra vez. Pide todo esto y más, mucho más de lo que pedimos o pensamos. Pide, como Jesús, que sean uno y que sean guardados del maligno. Nada de esto es posible si Jesús no es quien dice ser.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -644,7 +643,8 @@
"Haggai": "Hageo",
"Isaiah": "Isaías",
"Habakkuk": "Habacuc",
"Ephesians": "Efesios"
"Ephesians": "Efesios",
"Revelation": "Apocalipsis"
},
"christian_per_cell": "Cada casilla ≈ {n} personas",
"howto_title": "Cómo orar con esta lista",
@ -821,7 +821,7 @@
"text": "Que le groupe ethnique soit inondé d'adorateurs — l'adoration partout, dans la liberté comme dans les chaînes.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -850,9 +850,8 @@
"sub": "bénédiction · grande · plus grande · parmi les plus grandes",
"text": "Priez sur eux la prière de Jésus en Jean 17. La bénédiction : la vie éternelle, connaître Dieu et Jésus, celui qu’il a envoyé. La grande bénédiction : que leurs propres croyants amènent d’autres à la foi. Une bénédiction plus grande : de nouvelles familles spirituelles bien à eux, unies en Christ. L’une des plus grandes : des responsables issus de leur peuple qui forment d’autres personnes à fonder de nouvelles familles spirituelles, encore et encore. Demandez tout cela et plus encore, au-delà de tout ce que nous demandons ou pensons. Demandez, comme Jésus, qu’ils soient un et gardés du malin. Rien de cela n’est possible si Jésus n’est pas celui qu’il dit être.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -976,7 +975,8 @@
"Haggai": "Aggée",
"Isaiah": "Ésaïe",
"Habakkuk": "Habacuc",
"Ephesians": "Éphésiens"
"Ephesians": "Éphésiens",
"Revelation": "Apocalypse"
},
"christian_per_cell": "Chaque case ≈ {n} personnes",
"howto_title": "Comment prier avec cette liste",
@ -1153,7 +1153,7 @@
"text": "Que o grupo étnico seja inundado de adoradores — adoração em toda parte, em liberdade e em correntes.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -1182,9 +1182,8 @@
"sub": "bênção · grande · maior · das maiores",
"text": "Ore sobre eles a oração de Jesus em João 17. A bênção: a vida eterna, conhecer a Deus e a Jesus, a quem ele enviou. A grande bênção: que os seus próprios crentes levem outros à fé. A bênção maior: novas famílias espirituais deles mesmos, unidas em Cristo. Uma das maiores: líderes do meio deles que preparem outros para começar novas famílias espirituais, vez após vez. Peça tudo isso e mais, muito além do que pedimos ou pensamos. Peça, como Jesus pediu, que sejam um e guardados do maligno. Nada disso é possível se Jesus não for quem ele diz ser.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -1305,7 +1304,8 @@
"Haggai": "Ageu",
"Isaiah": "Isaías",
"Habakkuk": "Habacuque",
"Ephesians": "Efésios"
"Ephesians": "Efésios",
"Revelation": "Apocalipse"
},
"christian_per_cell": "Cada caixa ≈ {n} pessoas",
"howto_title": "Como orar com esta lista",
@ -1482,7 +1482,7 @@
"text": "Dass die Volksgruppe von Anbetern überflutet wird — Anbetung überall, in Freiheit und in Ketten.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -1511,9 +1511,8 @@
"sub": "Segen · groß · größer · einer der größten",
"text": "Beten Sie Jesu Gebet aus Johannes 17 über ihnen. Der Segen: ewiges Leben, Gott zu kennen und Jesus, den er gesandt hat. Der große Segen: dass ihre eigenen Gläubigen andere zum Glauben führen. Der größere Segen: neue geistliche Familien, ihre eigenen, eins in Christus. Einer der größten: Leiter aus ihrer Mitte, die andere anleiten, neue geistliche Familien zu gründen, immer wieder. Bitten Sie um all das und mehr, über alles hinaus, was wir bitten oder verstehen. Bitten Sie wie Jesus, dass sie eins seien und vor dem Bösen bewahrt werden. Nichts davon ist möglich, wenn Jesus nicht der ist, der er zu sein sagt.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -1637,7 +1636,8 @@
"Haggai": "Haggai",
"Isaiah": "Jesaja",
"Habakkuk": "Habakuk",
"Ephesians": "Epheser"
"Ephesians": "Epheser",
"Revelation": "Offenbarung"
},
"christian_per_cell": "Jedes Kästchen ≈ {n} Menschen",
"howto_title": "So beten Sie mit dieser Liste",
@ -1814,7 +1814,7 @@
"text": "Che il gruppo etnico sia inondato di adoratori — adorazione ovunque, nella libertà e nelle catene.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -1843,9 +1843,8 @@
"sub": "benedizione · grande · più grande · tra le più grandi",
"text": "Prega su di loro la preghiera di Gesù in Giovanni 17. La benedizione: la vita eterna, conoscere Dio e Gesù, colui che egli ha mandato. La grande benedizione: che i loro stessi credenti portino altri alla fede. La benedizione più grande: nuove famiglie spirituali tutte loro, unite in Cristo. Una delle più grandi: responsabili del loro popolo che formano altri ad avviare nuove famiglie spirituali, ancora e ancora. Chiedi tutto questo e di più, oltre tutto ciò che chiediamo o pensiamo. Chiedi, come Gesù, che siano uno e custoditi dal maligno. Niente di tutto questo è possibile se Gesù non è chi dice di essere.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -1966,7 +1965,8 @@
"Haggai": "Aggeo",
"Isaiah": "Isaia",
"Habakkuk": "Abacuc",
"Ephesians": "Efesini"
"Ephesians": "Efesini",
"Revelation": "Apocalisse"
},
"christian_per_cell": "Ogni casella ≈ {n} persone",
"howto_title": "Come pregare con questa lista",
@ -2143,7 +2143,7 @@
"text": "Grupul etnic să fie inundat de închinători — închinare pretutindeni, în libertate și în lanțuri.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -2172,9 +2172,8 @@
"sub": "binecuvântare · mare · mai mare · printre cele mai mari",
"text": "Roagă-te peste ei cu rugăciunea lui Isus din Ioan 17. Binecuvântarea: viața veșnică, să-L cunoască pe Dumnezeu și pe Isus, pe care L-a trimis. Marea binecuvântare: ca propriii lor credincioși să-i aducă pe alții la credință. O binecuvântare și mai mare: familii spirituale noi, ale lor, una în Hristos. Una dintre cele mai mari: lideri dintre ei care îi pregătesc pe alții să înceapă noi familii spirituale, iar și iar. Cere toate acestea și mai mult, dincolo de tot ce cerem sau gândim. Cere, ca Isus, să fie una și păziți de cel rău. Nimic din toate acestea nu este posibil dacă Isus nu este Cel care spune că este.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -2295,7 +2294,8 @@
"Haggai": "Hagai",
"Isaiah": "Isaia",
"Habakkuk": "Habacuc",
"Ephesians": "Efeseni"
"Ephesians": "Efeseni",
"Revelation": "Apocalipsa"
},
"christian_per_cell": "Fiecare căsuță ≈ {n} de oameni",
"howto_title": "Cum să te rogi cu această listă",
@ -2470,7 +2470,7 @@
"text": "Чтобы народ наполнился поклонниками — поклонение повсюду, в свободе и в цепях.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -2499,9 +2499,8 @@
"sub": "благословение · великое · большее · одно из величайших",
"text": "Молитесь над ними молитвой Иисуса из Иоанна 17. Благословение: вечная жизнь — знать Бога и Иисуса, Которого Он послал. Великое благословение: чтобы их собственные верующие приводили других к вере. Ещё большее благословение: новые духовные семьи, свои собственные, единые во Христе. Одно из величайших: лидеры из их среды, которые учат других начинать новые духовные семьи — снова и снова. Просите обо всём этом и о большем — превыше всего, чего мы просим или о чём помышляем. Просите, как Иисус, чтобы они были едины и сохранены от лукавого. Ничто из этого невозможно, если Иисус не Тот, Кем Он Себя называет.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -2625,7 +2624,8 @@
"Haggai": "Агг.",
"Isaiah": "Ис.",
"Habakkuk": "Авв.",
"Ephesians": "Еф."
"Ephesians": "Еф.",
"Revelation": "Откр."
},
"christian_per_cell": "Каждая клетка ≈ {n} чел.",
"howto_title": "Как молиться по этому списку",
@ -2809,7 +2809,7 @@
"text": "أن يفيض الشعب بالساجدين — عبادة في كل مكان، في الحرية وفي القيود.",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -2838,9 +2838,8 @@
"sub": "البركة · العظيمة · الأعظم · من أعظمها",
"text": "صلِّ لأجلهم بصلاة يسوع في يوحنا ١٧. البركة: الحياة الأبدية، أن يعرفوا الله ويسوع الذي أرسله. البركة العظيمة: أن يقود المؤمنون منهم غيرهم إلى الإيمان. البركة الأعظم: عائلات روحية جديدة خاصة بهم، واحدة في المسيح. ومن أعظم البركات: قادة من بينهم يدرّبون آخرين ليبدؤوا عائلات روحية جديدة، مرة بعد مرة. اطلب كل هذا وأكثر، أكثر جدًا مما نطلب أو نفتكر. واطلب، كما طلب يسوع، أن يكونوا واحدًا وأن يُحفظوا من الشرير. لا شيء من هذا ممكن إن لم يكن يسوع هو مَن يقول إنه هو.",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -2964,7 +2963,8 @@
"Haggai": "حجي",
"Isaiah": "إشعياء",
"Habakkuk": "حبقوق",
"Ephesians": "أفسس"
"Ephesians": "أفسس",
"Revelation": "رؤيا"
},
"christian_per_cell": "كل مربّع ≈ {n} شخص",
"howto_title": "كيف تصلّي بهذه القائمة",
@ -3141,7 +3141,7 @@
"text": "कि वह जनसमूह आराधकों से भर जाए — हर जगह आराधना, स्वतंत्रता में और बेड़ियों में भी।",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -3170,9 +3170,8 @@
"sub": "आशीष · बड़ी · और बड़ी · सबसे बड़ी में से एक",
"text": "यूहन्ना 17 में यीशु ने जो प्रार्थना की, वही उनके लिए करें। आशीष: अनन्त जीवन — परमेश्वर को और यीशु को जानना, जिन्हें उन्होंने भेजा। बड़ी आशीष: उन्हीं के विश्वासी दूसरों को विश्वास में लाएँ। उससे बड़ी आशीष: उनके अपने नए आत्मिक परिवार, मसीह में एक। सबसे बड़ी आशीषों में से एक: उनके बीच से अगुवे, जो दूसरों को नए आत्मिक परिवार शुरू करने के लिए तैयार करें — बार-बार। यह सब और इससे भी अधिक माँगें, जितना हम माँगते या सोचते हैं उससे कहीं बढ़कर। यीशु की तरह माँगें कि वे एक हों और उस दुष्ट से बचे रहें। इनमें से कुछ भी संभव नहीं, यदि यीशु वह नहीं हैं जो वह कहते हैं कि वह हैं।",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -3293,7 +3292,8 @@
"Haggai": "हाग्गै",
"Isaiah": "यशायाह",
"Habakkuk": "हबक्कूक",
"Ephesians": "इफिसियों"
"Ephesians": "इफिसियों",
"Revelation": "प्रकाशितवाक्य"
},
"christian_per_cell": "हर खाना ≈ {n} लोग",
"howto_title": "इस सूची के साथ प्रार्थना कैसे करें",
@ -3468,7 +3468,7 @@
"text": "愿这族群充满敬拜者——处处敬拜,在自由中,也在捆锁中。",
"refs": [
"Acts 16:25–26",
"Colossians 3:16"
"Revelation 7:9–10"
]
},
{
@ -3497,9 +3497,8 @@
"sub": "祝福 · 大 · 更大 · 最大之一",
"text": "用耶稣在约翰福音17章的祷告为他们祷告。祝福:永生,认识神和他所差来的耶稣。大祝福:他们自己的信徒带领别人信主。更大的祝福:属于他们自己的新属灵家庭,在基督里合而为一。最大的祝福之一:从他们中间兴起领袖,装备别人建立新的属灵家庭,一代又一代。求这一切,还有更多,超过我们所求所想的。也像耶稣一样,求神使他们合而为一,保守他们脱离那恶者。若耶稣不是他自己所说的那一位,这一切都不可能。",
"refs": [
"John 17:3",
"John 17:11–23",
"Ephesians 3:20"
"John 17:3,11–23",
"Ephesians 3:20–21"
]
}
],
@ -3620,7 +3619,8 @@
"Haggai": "哈该书",
"Isaiah": "以赛亚书",
"Habakkuk": "哈巴谷书",
"Ephesians": "以弗所书"
"Ephesians": "以弗所书",
"Revelation": "启示录"
},
"christian_per_cell": "每格约 {n} 人",
"howto_title": "如何使用这份祷告名单",

View file

@ -289,11 +289,14 @@ const HEAD_COLUMNS_CSS = `
// at 22 / 21px with darker ink: about 8pt on the printed page. Only the full layout (HEAD_COLUMNS) gets this; the
// series-wide rules above stay as they were, so the series' SPARSE posters are byte-identical.
// Print size = sheet px x 0.92 (the packet's margins) x 0.408 (1500px = 8.5in): 22px ≈ 8.3pt, 19px ≈ 7.1pt.
// ★ THE NAMES COME FIRST (2026-10-03): the header columns step down to 18px (≈6.8pt; keys 15.5, headings 19) so
// the people-group names beside the map can be the larger type. The shorter band gives the map ~80px more height,
// and the names' cap on this layout rises to 19px (see MAXF). These sizes must equal HC's (fs, keyFs, headFs).
const HEAD_COLUMNS_FULL_CSS = `
.hcolk{font-size:19px;fill:#2f2a22;font-weight:800;letter-spacing:.1em}
.hcolt{font-size:22px;fill:#3a362c}
.hcolk{font-size:15.5px;fill:#2f2a22;font-weight:800;letter-spacing:.1em}
.hcolt{font-size:18px;fill:#3a362c}
.hcolb{font-weight:700;fill:#2f2a22}
.hcolh{font-family:Georgia,'Times New Roman',serif;font-size:23px;font-weight:700;fill:#2f2a22;letter-spacing:.04em;font-variant:small-caps}
.hcolh{font-family:Georgia,'Times New Roman',serif;font-size:19px;font-weight:700;fill:#2f2a22;letter-spacing:.04em;font-variant:small-caps}
.hvref{font-size:19px}
.hverse{font-size:19.5px}
.hsrc{font-size:22px;fill:#4a4636}
@ -693,7 +696,9 @@ function layoutLabels(pins, project) {
col.forEach((it) => { it.maxNum = MAXNUM_L; });
// A map-only sheet frees the header and footer bands the same way SPARSE frees the vision
// columns, so it gets SPARSE's ceiling; the solver still only uses what the column can hold.
const MAXF = (SPARSE || MAP_ONLY) ? 19 : 15;
// The three-column sheet (HEAD_COLUMNS) gets it too: there the names are the main text, and the cap of 15
// held 21 of the 28 zones' names at 15px (≈5.6pt printed) with room to spare in the band.
const MAXF = (SPARSE || MAP_ONLY || HEAD_COLUMNS) ? 19 : 15;
// AVAIL IS THE COLUMN, AND THE NAME DOES NOT GET ALL OF IT.
// The renderer draws the name starting one number-column IN from the column's
// map-facing edge (`nameEdge = tx ± numColW`) but does not shrink its budget by
@ -727,18 +732,23 @@ function layoutLabels(pins, project) {
if (line) out.push(line);
return out.length ? out : [it.name];
};
// The air between rows, as a share of the size. The three-column sheet sets it tighter (0.22): its densest
// zones (95-118 names) are held by the band's height, and the tighter rows turn that height into type
// (west-africa 12.5 -> 13.8px, laos 15.8 -> 17.3px). A row's underline sits 0.30 below its baseline and the
// next row's capitals start 0.56 below it, so they stay clear. Every other sheet keeps 0.34.
const GAPF = HEAD_COLUMNS ? 0.22 : 0.34;
let font = MAXF, wraps = null;
for (let f = MAXF; f >= 8; f -= 0.25) {
const ws = col.map((it) => wrapName(it, f));
const totalLines = ws.reduce((a, w) => a + w.length, 0);
// Each line needs f*1.06 of pitch, plus a little air between rows.
if (totalLines * (f * 1.06) + col.length * (f * 0.34) <= bandH) { font = f; wraps = ws; break; }
if (totalLines * (f * 1.06) + col.length * (f * GAPF) <= bandH) { font = f; wraps = ws; break; }
}
if (!wraps) wraps = col.map((it) => wrapName(it, font));
// Re-pitch rows by LINE COUNT so a two-line name gets the room it needs and
// single-line rows are not stretched to match it.
const lineH = font * 1.06;
const gap = font * 0.34;
const gap = font * GAPF;
const usedH = wraps.reduce((a, w) => a + w.length * lineH, 0) + col.length * gap;
const slack = Math.max(0, bandH - usedH) / Math.max(1, col.length);
let cursor = bandTop + slack / 2;
@ -833,7 +843,8 @@ function paraInto(push, text, { x, y, w, fs, lh, cls, lead }) {
// 1 Jesus' strategy to feed the 5000
// 2 the facts: a bold key above each value (countries, administrative areas, people groups, series)
// 3 what the series is
const HC = { gut: 32, fs: 22, lh: 27, keyFs: 19, keyLh: 24, headLh: 30, gap: 8, headFs: 23 };
// The sizes equal HEAD_COLUMNS_FULL_CSS (.hcolt = fs, .hcolk = keyFs, .hcolh = headFs); leading and gaps scale with them.
const HC = { gut: 32, fs: 18, lh: 22, keyFs: 15.5, keyLh: 19.5, headLh: 24.5, gap: 7, headFs: 19 };
// textW is calibrated for Lato. Without Lato the browser falls back to a system sans that sets
// these columns 2-6% wider (measured 1.05-1.06x in DejaVu Sans). Each block is centred on its
// width at 1.03x, halfway, so any overrun splits across both sides instead of all running right.
@ -862,6 +873,9 @@ function boldLines(text, width) {
for (let i = 0; i < part.length; i++) { plain += part[i]; bold.push(on); } // per UTF-16 unit, as plain[p] reads
on = !on;
}
// A scripture reference never breaks between its book and its chapter:verse ("Mark 6:40"): that space becomes a
// placeholder for the wrap and prints as a space again. One character for one, so the bold flags stay aligned.
plain = plain.replace(/([A-Za-z]+) (\d+:\d+)/g, '$1\u0001$2');
let p = 0;
return wrapPx(plain, HC.fs, width).map((ln) => {
while (plain[p] === ' ') p++;
@ -869,7 +883,7 @@ function boldLines(text, width) {
const flush = () => { if (run) out += runBold ? `<tspan class="hcolb">${esc(run)}</tspan>` : esc(run); run = ''; };
for (let k = 0; k < ln.length; k++, p++) {
if (bold[p] !== runBold) { flush(); runBold = bold[p]; }
run += plain[p];
run += plain[p] === '\u0001' ? ' ' : plain[p];
}
flush();
return out;
@ -877,15 +891,24 @@ function boldLines(text, width) {
}
function headColumnsBand(top, facts, approxLists) {
const GRID_L = BAND_MARGIN_G, GRID_W = PW - 2 * BAND_MARGIN_G;
const CW = (GRID_W - 2 * HC.gut) / 3;
const AVAIL = GRID_W - 2 * HC.gut;
// The measure leaves room for a fallback font (see HC_FALLBACK): a block set to it stays inside its column.
const TW = (CW - 10 - BAND_TEXT_PAD / 2) * 0.92;
const measure = (cw) => (cw - 10 - BAND_TEXT_PAD / 2) * 0.92;
// ★ EVEN COLUMNS (2026-10-03): when the facts column runs longer than the two text columns it is WIDENED (and
// shorter, it is narrowed) so the three end at about the same height. The two side columns stay equal, so they
// still mirror each other round the centre. The centre's share is searched from 26% to 46% of the three-column
// width; the split whose TALLEST column is shortest wins, and a tie goes to the split nearest equal widths, so a
// zone that is already balanced keeps equal columns. measureHeader calls this same function, so the map below
// gets exactly the height that is left.
// Uppercase, letterspaced keys: measured as capitals plus the .14em tracking.
const keyW = (k) => textW(k.toUpperCase(), HC.keyFs) + k.length * HC.keyFs * 0.14;
// Each column's height at a given measure (the same arithmetic the drawing below advances y by).
const proseH = (col, tw) => HC.headLh + col[0].paras.reduce((h, t, k) => h + (k ? HC.gap : 0) + boldLines(t, tw).length * HC.lh, 0);
const factsH = (tw) => facts.reduce((h, [, value], k) => h + (k ? HC.gap : 0) + HC.keyLh + wrapPx(value, HC.fs, tw).length * HC.lh, 0);
// Column order (2026-10-02): Jesus' strategy | the facts | what the series is.
const cols = [
[{ head: 'Jesus’ Strategy to Feed the 5000', paras: strategyParas() }],
facts.map(([key, value]) => ({ key, lines: wrapPx(value, HC.fs, TW) })),
null, // the facts column, wrapped below at the centre's measure
[{ head: POSTER_TEXT.sideBoxHeading || 'What is a UPG100 List?', paras: [
(POSTER_TEXT.sideBoxBody
|| 'This map is one of a {approxLists}-map set called the {seriesName} — a large, overwhelming target in the thousands, organised into clear groupings and displayed on maps and prayer lists.')
@ -893,9 +916,22 @@ function headColumnsBand(top, facts, approxLists) {
...whatIsMore(),
] }],
];
// The split: equal thirds first, then centre shares on a 1% step ordered by their distance from a third, so
// among splits whose tallest column is equally short, the one nearest equal widths is found first and kept.
const shares = Array.from({ length: 21 }, (_, k) => 0.26 + k * 0.01).sort((a, b) => Math.abs(a - 1 / 3) - Math.abs(b - 1 / 3));
let best = null;
for (const cwC of [1 / 3, ...shares].map((f) => AVAIL * f)) {
const cwS = (AVAIL - cwC) / 2;
const tall = Math.max(proseH(cols[0], measure(cwS)), factsH(measure(cwC)), proseH(cols[2], measure(cwS)));
if (!best || tall < best.tall - 0.5) best = { cwC, cwS, tall };
}
const widths = [best.cwS, best.cwC, best.cwS];
const lefts = [GRID_L, GRID_L + best.cwS + HC.gut, GRID_L + best.cwS + HC.gut + best.cwC + HC.gut];
cols[1] = facts.map(([key, value]) => ({ key, lines: wrapPx(value, HC.fs, measure(best.cwC)) }));
let frags = '', bottom = top;
cols.forEach((col, i) => {
const centre = GRID_L + i * (CW + HC.gut) + CW / 2;
const CW = widths[i], TW = measure(CW);
const centre = lefts[i] + CW / 2;
if (col[0] && col[0].key !== undefined) { // the facts column: a bold key above each value
const blockW = Math.min(TW, Math.max(...col.map((r) => Math.max(keyW(r.key), ...r.lines.map((ln) => textW(ln, HC.fs))))));
const x = (centre - blockW * HC_FALLBACK / 2).toFixed(1);
@ -924,7 +960,7 @@ function headColumnsBand(top, facts, approxLists) {
}
});
for (let i = 1; i < 3; i++) {
const rx = (GRID_L + i * (CW + HC.gut) - HC.gut / 2).toFixed(1);
const rx = (lefts[i] - HC.gut / 2).toFixed(1);
frags += `<line x1="${rx}" y1="${top - 14}" x2="${rx}" y2="${bottom - 12}" class="hcolrule"/>`;
}
return { frags, bottom };
@ -2370,7 +2406,7 @@ async function renderPoster(zone, pins, zoneFC) {
let cy0 = bodyTop;
strategyParas().forEach((text, k) => {
if (k) cy0 += 5;
cy0 = paraInto(push, text, { x: b1x[0], y: cy0, w: B1_TW, fs: B1_FS, lh: B1_LH, cls: 'hsrc2' });
cy0 = paraInto(push, String(text).replace(/\*\*/g, ''), { x: b1x[0], y: cy0, w: B1_TW, fs: B1_FS, lh: B1_LH, cls: 'hsrc2' });
});
let cy1 = bodyTop;
@ -2381,9 +2417,11 @@ async function renderPoster(zone, pins, zoneFC) {
|| 'This map is one of a {approxLists}-map set called the {seriesName} — a large, overwhelming target in the thousands, organised into clear groupings and displayed on maps and prayer lists.')
.replace('{approxLists}', String(approxLists))
.replace('{seriesName}', SERIES_NAME);
// A **...** bold marker is the band's (boldLines); this classic header prints plain, so the markers are dropped.
const plain = (t) => String(t).replace(/\*\*/g, '');
[whatIs, ...whatIsMore()].forEach((text, k) => {
if (k) cy1 += 5;
cy1 = paraInto(push, text, { x: b1x[1], y: cy1, w: B1_TW, fs: B1_FS, lh: B1_LH, cls: 'hsrc2' });
cy1 = paraInto(push, plain(text), { x: b1x[1], y: cy1, w: B1_TW, fs: B1_FS, lh: B1_LH, cls: 'hsrc2' });
});
const b1Bot = Math.max(cy0, cy1);

View file

@ -287,11 +287,14 @@ const HEAD_COLUMNS_CSS = `
// at 22 / 21px with darker ink: about 8pt on the printed page. Only the full layout (HEAD_COLUMNS) gets this; the
// series-wide rules above stay as they were, so the series' SPARSE posters are byte-identical.
// Print size = sheet px x 0.92 (the packet's margins) x 0.408 (1500px = 8.5in): 22px ≈ 8.3pt, 19px ≈ 7.1pt.
// ★ THE NAMES COME FIRST (2026-10-03): the header columns step down to 18px (≈6.8pt; keys 15.5, headings 19) so
// the people-group names beside the map can be the larger type. The shorter band gives the map ~80px more height,
// and the names' cap on this layout rises to 19px (see MAXF). These sizes must equal HC's (fs, keyFs, headFs).
const HEAD_COLUMNS_FULL_CSS = `
.hcolk{font-size:19px;fill:#2f2a22;font-weight:800;letter-spacing:.1em}
.hcolt{font-size:22px;fill:#3a362c}
.hcolk{font-size:15.5px;fill:#2f2a22;font-weight:800;letter-spacing:.1em}
.hcolt{font-size:18px;fill:#3a362c}
.hcolb{font-weight:700;fill:#2f2a22}
.hcolh{font-family:Georgia,'Times New Roman',serif;font-size:23px;font-weight:700;fill:#2f2a22;letter-spacing:.04em;font-variant:small-caps}
.hcolh{font-family:Georgia,'Times New Roman',serif;font-size:19px;font-weight:700;fill:#2f2a22;letter-spacing:.04em;font-variant:small-caps}
.hvref{font-size:19px}
.hverse{font-size:19.5px}
.hsrc{font-size:22px;fill:#4a4636}
@ -691,7 +694,9 @@ function layoutLabels(pins, project) {
col.forEach((it) => { it.maxNum = MAXNUM_L; });
// A map-only sheet frees the header and footer bands the same way SPARSE frees the vision
// columns, so it gets SPARSE's ceiling; the solver still only uses what the column can hold.
const MAXF = (SPARSE || MAP_ONLY) ? 19 : 15;
// The three-column sheet (HEAD_COLUMNS) gets it too: there the names are the main text, and the cap of 15
// held 21 of the 28 zones' names at 15px (≈5.6pt printed) with room to spare in the band.
const MAXF = (SPARSE || MAP_ONLY || HEAD_COLUMNS) ? 19 : 15;
// AVAIL IS THE COLUMN, AND THE NAME DOES NOT GET ALL OF IT.
// The renderer draws the name starting one number-column IN from the column's
// map-facing edge (`nameEdge = tx ± numColW`) but does not shrink its budget by
@ -725,18 +730,23 @@ function layoutLabels(pins, project) {
if (line) out.push(line);
return out.length ? out : [it.name];
};
// The air between rows, as a share of the size. The three-column sheet sets it tighter (0.22): its densest
// zones (95-118 names) are held by the band's height, and the tighter rows turn that height into type
// (west-africa 12.5 -> 13.8px, laos 15.8 -> 17.3px). A row's underline sits 0.30 below its baseline and the
// next row's capitals start 0.56 below it, so they stay clear. Every other sheet keeps 0.34.
const GAPF = HEAD_COLUMNS ? 0.22 : 0.34;
let font = MAXF, wraps = null;
for (let f = MAXF; f >= 8; f -= 0.25) {
const ws = col.map((it) => wrapName(it, f));
const totalLines = ws.reduce((a, w) => a + w.length, 0);
// Each line needs f*1.06 of pitch, plus a little air between rows.
if (totalLines * (f * 1.06) + col.length * (f * 0.34) <= bandH) { font = f; wraps = ws; break; }
if (totalLines * (f * 1.06) + col.length * (f * GAPF) <= bandH) { font = f; wraps = ws; break; }
}
if (!wraps) wraps = col.map((it) => wrapName(it, font));
// Re-pitch rows by LINE COUNT so a two-line name gets the room it needs and
// single-line rows are not stretched to match it.
const lineH = font * 1.06;
const gap = font * 0.34;
const gap = font * GAPF;
const usedH = wraps.reduce((a, w) => a + w.length * lineH, 0) + col.length * gap;
const slack = Math.max(0, bandH - usedH) / Math.max(1, col.length);
let cursor = bandTop + slack / 2;
@ -831,7 +841,8 @@ function paraInto(push, text, { x, y, w, fs, lh, cls, lead }) {
// 1 Jesus' strategy to feed the 5000
// 2 the facts: a bold key above each value (countries, administrative areas, people groups, series)
// 3 what the series is
const HC = { gut: 32, fs: 22, lh: 27, keyFs: 19, keyLh: 24, headLh: 30, gap: 8, headFs: 23 };
// The sizes equal HEAD_COLUMNS_FULL_CSS (.hcolt = fs, .hcolk = keyFs, .hcolh = headFs); leading and gaps scale with them.
const HC = { gut: 32, fs: 18, lh: 22, keyFs: 15.5, keyLh: 19.5, headLh: 24.5, gap: 7, headFs: 19 };
// textW is calibrated for Lato. Without Lato the browser falls back to a system sans that sets
// these columns 2-6% wider (measured 1.05-1.06x in DejaVu Sans). Each block is centred on its
// width at 1.03x, halfway, so any overrun splits across both sides instead of all running right.
@ -860,6 +871,9 @@ function boldLines(text, width) {
for (let i = 0; i < part.length; i++) { plain += part[i]; bold.push(on); } // per UTF-16 unit, as plain[p] reads
on = !on;
}
// A scripture reference never breaks between its book and its chapter:verse ("Mark 6:40"): that space becomes a
// placeholder for the wrap and prints as a space again. One character for one, so the bold flags stay aligned.
plain = plain.replace(/([A-Za-z]+) (\d+:\d+)/g, '$1\u0001$2');
let p = 0;
return wrapPx(plain, HC.fs, width).map((ln) => {
while (plain[p] === ' ') p++;
@ -867,7 +881,7 @@ function boldLines(text, width) {
const flush = () => { if (run) out += runBold ? `<tspan class="hcolb">${esc(run)}</tspan>` : esc(run); run = ''; };
for (let k = 0; k < ln.length; k++, p++) {
if (bold[p] !== runBold) { flush(); runBold = bold[p]; }
run += plain[p];
run += plain[p] === '\u0001' ? ' ' : plain[p];
}
flush();
return out;
@ -875,15 +889,24 @@ function boldLines(text, width) {
}
function headColumnsBand(top, facts, approxLists) {
const GRID_L = BAND_MARGIN_G, GRID_W = PW - 2 * BAND_MARGIN_G;
const CW = (GRID_W - 2 * HC.gut) / 3;
const AVAIL = GRID_W - 2 * HC.gut;
// The measure leaves room for a fallback font (see HC_FALLBACK): a block set to it stays inside its column.
const TW = (CW - 10 - BAND_TEXT_PAD / 2) * 0.92;
const measure = (cw) => (cw - 10 - BAND_TEXT_PAD / 2) * 0.92;
// ★ EVEN COLUMNS (2026-10-03): when the facts column runs longer than the two text columns it is WIDENED (and
// shorter, it is narrowed) so the three end at about the same height. The two side columns stay equal, so they
// still mirror each other round the centre. The centre's share is searched from 26% to 46% of the three-column
// width; the split whose TALLEST column is shortest wins, and a tie goes to the split nearest equal widths, so a
// zone that is already balanced keeps equal columns. measureHeader calls this same function, so the map below
// gets exactly the height that is left.
// Uppercase, letterspaced keys: measured as capitals plus the .14em tracking.
const keyW = (k) => textW(k.toUpperCase(), HC.keyFs) + k.length * HC.keyFs * 0.14;
// Each column's height at a given measure (the same arithmetic the drawing below advances y by).
const proseH = (col, tw) => HC.headLh + col[0].paras.reduce((h, t, k) => h + (k ? HC.gap : 0) + boldLines(t, tw).length * HC.lh, 0);
const factsH = (tw) => facts.reduce((h, [, value], k) => h + (k ? HC.gap : 0) + HC.keyLh + wrapPx(value, HC.fs, tw).length * HC.lh, 0);
// Column order (2026-10-02): Jesus' strategy | the facts | what the series is.
const cols = [
[{ head: 'Jesus’ Strategy to Feed the 5000', paras: strategyParas() }],
facts.map(([key, value]) => ({ key, lines: wrapPx(value, HC.fs, TW) })),
null, // the facts column, wrapped below at the centre's measure
[{ head: POSTER_TEXT.sideBoxHeading || 'What is a UPG100 List?', paras: [
(POSTER_TEXT.sideBoxBody
|| 'This map is one of a {approxLists}-map set called the {seriesName} — a large, overwhelming target in the thousands, organised into clear groupings and displayed on maps and prayer lists.')
@ -891,9 +914,22 @@ function headColumnsBand(top, facts, approxLists) {
...whatIsMore(),
] }],
];
// The split: equal thirds first, then centre shares on a 1% step ordered by their distance from a third, so
// among splits whose tallest column is equally short, the one nearest equal widths is found first and kept.
const shares = Array.from({ length: 21 }, (_, k) => 0.26 + k * 0.01).sort((a, b) => Math.abs(a - 1 / 3) - Math.abs(b - 1 / 3));
let best = null;
for (const cwC of [1 / 3, ...shares].map((f) => AVAIL * f)) {
const cwS = (AVAIL - cwC) / 2;
const tall = Math.max(proseH(cols[0], measure(cwS)), factsH(measure(cwC)), proseH(cols[2], measure(cwS)));
if (!best || tall < best.tall - 0.5) best = { cwC, cwS, tall };
}
const widths = [best.cwS, best.cwC, best.cwS];
const lefts = [GRID_L, GRID_L + best.cwS + HC.gut, GRID_L + best.cwS + HC.gut + best.cwC + HC.gut];
cols[1] = facts.map(([key, value]) => ({ key, lines: wrapPx(value, HC.fs, measure(best.cwC)) }));
let frags = '', bottom = top;
cols.forEach((col, i) => {
const centre = GRID_L + i * (CW + HC.gut) + CW / 2;
const CW = widths[i], TW = measure(CW);
const centre = lefts[i] + CW / 2;
if (col[0] && col[0].key !== undefined) { // the facts column: a bold key above each value
const blockW = Math.min(TW, Math.max(...col.map((r) => Math.max(keyW(r.key), ...r.lines.map((ln) => textW(ln, HC.fs))))));
const x = (centre - blockW * HC_FALLBACK / 2).toFixed(1);
@ -922,7 +958,7 @@ function headColumnsBand(top, facts, approxLists) {
}
});
for (let i = 1; i < 3; i++) {
const rx = (GRID_L + i * (CW + HC.gut) - HC.gut / 2).toFixed(1);
const rx = (lefts[i] - HC.gut / 2).toFixed(1);
frags += `<line x1="${rx}" y1="${top - 14}" x2="${rx}" y2="${bottom - 12}" class="hcolrule"/>`;
}
return { frags, bottom };
@ -2368,7 +2404,7 @@ async function renderPoster(zone, pins, zoneFC) {
let cy0 = bodyTop;
strategyParas().forEach((text, k) => {
if (k) cy0 += 5;
cy0 = paraInto(push, text, { x: b1x[0], y: cy0, w: B1_TW, fs: B1_FS, lh: B1_LH, cls: 'hsrc2' });
cy0 = paraInto(push, String(text).replace(/\*\*/g, ''), { x: b1x[0], y: cy0, w: B1_TW, fs: B1_FS, lh: B1_LH, cls: 'hsrc2' });
});
let cy1 = bodyTop;
@ -2379,9 +2415,11 @@ async function renderPoster(zone, pins, zoneFC) {
|| 'This map is one of a {approxLists}-map set called the {seriesName} — a large, overwhelming target in the thousands, organised into clear groupings and displayed on maps and prayer lists.')
.replace('{approxLists}', String(approxLists))
.replace('{seriesName}', SERIES_NAME);
// A **...** bold marker is the band's (boldLines); this classic header prints plain, so the markers are dropped.
const plain = (t) => String(t).replace(/\*\*/g, '');
[whatIs, ...whatIsMore()].forEach((text, k) => {
if (k) cy1 += 5;
cy1 = paraInto(push, text, { x: b1x[1], y: cy1, w: B1_TW, fs: B1_FS, lh: B1_LH, cls: 'hsrc2' });
cy1 = paraInto(push, plain(text), { x: b1x[1], y: cy1, w: B1_TW, fs: B1_FS, lh: B1_LH, cls: 'hsrc2' });
});
const b1Bot = Math.max(cy0, cy1);

File diff suppressed because one or more lines are too long

View file

@ -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-v4V1LrtkX/o/hur7SHYuwVRI8RzHMAnU9OUY/gdltoPVLn8lWhmJpPdgAM8ZU+/l" crossorigin="anonymous"></script>
<script src="../bless-india-posters.js" integrity="sha384-Y/Ib6sYGClrODPxG3Gj9txadwtVZRIiHWQa9FA9fH/RGAAs9SAbVrJobrwC4bY1b" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-v4V1LrtkX/o/hur7SHYuwVRI8RzHMAnU9OUY/gdltoPVLn8lWhmJpPdgAM8ZU+/l",
"integrity": "sha384-Y/Ib6sYGClrODPxG3Gj9txadwtVZRIiHWQa9FA9fH/RGAAs9SAbVrJobrwC4bY1b",
"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-v4V1LrtkX/o/hur7SHYuwVRI8RzHMAnU9OUY/gdltoPVLn8lWhmJpPdgAM8ZU+/l\" 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-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>"
}
}
]
@ -306,7 +306,7 @@
"bundle": "country-posters",
"scriptUrl": "./country-posters/country-posters.js",
"output": "dx-maps/country-posters/country-posters.js",
"integrity": "sha384-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4",
"integrity": "sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z",
"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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4\" 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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4\" 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-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>"
}
},
{
@ -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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4\" 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-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>"
}
},
{
@ -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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4\" 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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4\" 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-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>"
}
},
{
@ -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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4\" 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-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>"
}
}
]
@ -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-tIL2KveogthV0ZEoBx/XfNCI8PvcS2K1DMBpg8uUwsvFyHOnhKZZAXfrEM+FBPe3",
"integrity": "sha384-w8mEGeIr5DTaQEIrfMaga7c8AOzBfk5BCFQWhhBLStfA1x+8/WPn0W8FVDM77tX+",
"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-tIL2KveogthV0ZEoBx/XfNCI8PvcS2K1DMBpg8uUwsvFyHOnhKZZAXfrEM+FBPe3\" 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-tIL2KveogthV0ZEoBx/XfNCI8PvcS2K1DMBpg8uUwsvFyHOnhKZZAXfrEM+FBPe3\" 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-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>"
},
"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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7",
"integrity": "sha384-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo",
"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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7\" 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-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>"
}
},
{
@ -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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7\" 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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7\" 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-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>"
}
},
{
@ -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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7\" 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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7\" 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-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>"
}
}
]
@ -1277,7 +1277,7 @@
"bundle": "poster-design",
"scriptUrl": "./poster-design/poster-design.js",
"output": "dx-maps/poster-design/poster-design.js",
"integrity": "sha384-84IcnB97ca+PkDdzPHCh93xp58BN6ngFMBuU1V41vgpkmw3fN6yI5rfqh9BtoQ1w",
"integrity": "sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo",
"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-84IcnB97ca+PkDdzPHCh93xp58BN6ngFMBuU1V41vgpkmw3fN6yI5rfqh9BtoQ1w\" 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-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>"
}
},
{
@ -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-84IcnB97ca+PkDdzPHCh93xp58BN6ngFMBuU1V41vgpkmw3fN6yI5rfqh9BtoQ1w\" 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-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>"
}
},
{
@ -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-84IcnB97ca+PkDdzPHCh93xp58BN6ngFMBuU1V41vgpkmw3fN6yI5rfqh9BtoQ1w\" 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-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>"
}
}
]
@ -1341,7 +1341,7 @@
"bundle": "poster-sections",
"scriptUrl": "./poster-sections/poster-sections.js",
"output": "dx-maps/poster-sections/poster-sections.js",
"integrity": "sha384-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2",
"integrity": "sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j",
"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-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2\" 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-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>"
},
"instances": [
{
@ -1617,7 +1617,7 @@
"bundle": "regions-dashboard",
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"output": "dx-maps/regions-dashboard/regions-dashboard.js",
"integrity": "sha384-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk",
"integrity": "sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex",
"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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk\" 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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk\" 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-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>"
}
},
{
@ -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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk\" 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-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>"
}
},
{
@ -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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk\" 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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk\" 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-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>"
}
}
]
@ -1808,7 +1808,7 @@
"bundle": "upg-neighbor",
"scriptUrl": "./upg-neighbor/upg-neighbor.js",
"output": "dx-maps/upg-neighbor/upg-neighbor.js",
"integrity": "sha384-rwYzX6UEvh7MTeVKQrzDvoX/KspH7UQXmtGKCBgDR4OGqxQ2SjwaM2l8yi+CP7e5",
"integrity": "sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab",
"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-rwYzX6UEvh7MTeVKQrzDvoX/KspH7UQXmtGKCBgDR4OGqxQ2SjwaM2l8yi+CP7e5\" 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-rwYzX6UEvh7MTeVKQrzDvoX/KspH7UQXmtGKCBgDR4OGqxQ2SjwaM2l8yi+CP7e5\" 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-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>"
},
"instances": [
{

File diff suppressed because one or more lines are too long

View file

@ -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-tIL2KveogthV0ZEoBx/XfNCI8PvcS2K1DMBpg8uUwsvFyHOnhKZZAXfrEM+FBPe3" crossorigin="anonymous"></script>
<script src="../doxa-research-map.js" integrity="sha384-w8mEGeIr5DTaQEIrfMaga7c8AOzBfk5BCFQWhhBLStfA1x+8/WPn0W8FVDM77tX+" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-tIL2KveogthV0ZEoBx/XfNCI8PvcS2K1DMBpg8uUwsvFyHOnhKZZAXfrEM+FBPe3" crossorigin="anonymous"></script>
<script src="../../doxa-research-map.js" integrity="sha384-w8mEGeIr5DTaQEIrfMaga7c8AOzBfk5BCFQWhhBLStfA1x+8/WPn0W8FVDM77tX+" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-v4V1LrtkX/o/hur7SHYuwVRI8RzHMAnU9OUY/gdltoPVLn8lWhmJpPdgAM8ZU+/l",
"integrity": "sha384-Y/Ib6sYGClrODPxG3Gj9txadwtVZRIiHWQa9FA9fH/RGAAs9SAbVrJobrwC4bY1b",
"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-v4V1LrtkX/o/hur7SHYuwVRI8RzHMAnU9OUY/gdltoPVLn8lWhmJpPdgAM8ZU+/l\" 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-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>"
}
}
]
@ -306,7 +306,7 @@
"bundle": "country-posters",
"scriptUrl": "./country-posters/country-posters.js",
"output": "dx-maps/country-posters/country-posters.js",
"integrity": "sha384-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4",
"integrity": "sha384-PWyg9lVVg1fuZP5YCEBCsoAonqUcYztXk0ykfXnlPDA1eqeLNZHYKokaon1mE90Z",
"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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4\" 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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4\" 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-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>"
}
},
{
@ -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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4\" 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-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>"
}
},
{
@ -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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4\" 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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4\" 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-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>"
}
},
{
@ -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-ttJWggywmJ2ON0+jm7EzESMqlTqsADVCAAf1CxpEhYEYHxtbCsHDLMfY/dAFR8x4\" 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-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>"
}
}
]
@ -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-tIL2KveogthV0ZEoBx/XfNCI8PvcS2K1DMBpg8uUwsvFyHOnhKZZAXfrEM+FBPe3",
"integrity": "sha384-w8mEGeIr5DTaQEIrfMaga7c8AOzBfk5BCFQWhhBLStfA1x+8/WPn0W8FVDM77tX+",
"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-tIL2KveogthV0ZEoBx/XfNCI8PvcS2K1DMBpg8uUwsvFyHOnhKZZAXfrEM+FBPe3\" 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-tIL2KveogthV0ZEoBx/XfNCI8PvcS2K1DMBpg8uUwsvFyHOnhKZZAXfrEM+FBPe3\" 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-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>"
},
"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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7",
"integrity": "sha384-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo",
"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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7\" 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-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>"
}
},
{
@ -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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7\" 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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7\" 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-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>"
}
},
{
@ -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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7\" 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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7\" 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-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>"
}
}
]
@ -1277,7 +1277,7 @@
"bundle": "poster-design",
"scriptUrl": "./poster-design/poster-design.js",
"output": "dx-maps/poster-design/poster-design.js",
"integrity": "sha384-84IcnB97ca+PkDdzPHCh93xp58BN6ngFMBuU1V41vgpkmw3fN6yI5rfqh9BtoQ1w",
"integrity": "sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo",
"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-84IcnB97ca+PkDdzPHCh93xp58BN6ngFMBuU1V41vgpkmw3fN6yI5rfqh9BtoQ1w\" 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-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>"
}
},
{
@ -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-84IcnB97ca+PkDdzPHCh93xp58BN6ngFMBuU1V41vgpkmw3fN6yI5rfqh9BtoQ1w\" 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-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>"
}
},
{
@ -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-84IcnB97ca+PkDdzPHCh93xp58BN6ngFMBuU1V41vgpkmw3fN6yI5rfqh9BtoQ1w\" 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-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>"
}
}
]
@ -1341,7 +1341,7 @@
"bundle": "poster-sections",
"scriptUrl": "./poster-sections/poster-sections.js",
"output": "dx-maps/poster-sections/poster-sections.js",
"integrity": "sha384-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2",
"integrity": "sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j",
"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-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2\" 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-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>"
},
"instances": [
{
@ -1617,7 +1617,7 @@
"bundle": "regions-dashboard",
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"output": "dx-maps/regions-dashboard/regions-dashboard.js",
"integrity": "sha384-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk",
"integrity": "sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex",
"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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk\" 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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk\" 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-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>"
}
},
{
@ -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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk\" 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-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>"
}
},
{
@ -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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk\" 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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk\" 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-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>"
}
}
]
@ -1808,7 +1808,7 @@
"bundle": "upg-neighbor",
"scriptUrl": "./upg-neighbor/upg-neighbor.js",
"output": "dx-maps/upg-neighbor/upg-neighbor.js",
"integrity": "sha384-rwYzX6UEvh7MTeVKQrzDvoX/KspH7UQXmtGKCBgDR4OGqxQ2SjwaM2l8yi+CP7e5",
"integrity": "sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab",
"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-rwYzX6UEvh7MTeVKQrzDvoX/KspH7UQXmtGKCBgDR4OGqxQ2SjwaM2l8yi+CP7e5\" 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-rwYzX6UEvh7MTeVKQrzDvoX/KspH7UQXmtGKCBgDR4OGqxQ2SjwaM2l8yi+CP7e5\" 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-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>"
},
"instances": [
{

File diff suppressed because one or more lines are too long

View file

@ -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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7" crossorigin="anonymous"></script>
<script src="../my-upg-100-list.js" integrity="sha384-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7" crossorigin="anonymous"></script>
<script src="../my-upg-100-list.js" integrity="sha384-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-Z80xh7CNEACaSU3uxmqlUHHNSqofiTjSSLUAzMxXNJ9yGPECPFA8L1OMENeVCpU7" crossorigin="anonymous"></script>
<script src="../my-upg-100-list.js" integrity="sha384-lGHqz/3puE+d+OsmZgC+TmlNYspuG9ifVaIyxyzGyAFf6cXh9wDwSKj9bFvZY4Fo" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-84IcnB97ca+PkDdzPHCh93xp58BN6ngFMBuU1V41vgpkmw3fN6yI5rfqh9BtoQ1w" crossorigin="anonymous"></script>
<script src="../poster-design.js" integrity="sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -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-84IcnB97ca+PkDdzPHCh93xp58BN6ngFMBuU1V41vgpkmw3fN6yI5rfqh9BtoQ1w" crossorigin="anonymous"></script>
<script src="../poster-design.js" integrity="sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-84IcnB97ca+PkDdzPHCh93xp58BN6ngFMBuU1V41vgpkmw3fN6yI5rfqh9BtoQ1w" crossorigin="anonymous"></script>
<script src="../poster-design.js" integrity="sha384-5r/RtSGqs1AaM+gimpy9hYjCwR+fzjHyYX617dMwaFWhydz6dlt09TOyb+i/78Vo" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -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-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2" crossorigin="anonymous"></script>
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2" crossorigin="anonymous"></script>
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2" crossorigin="anonymous"></script>
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2" crossorigin="anonymous"></script>
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2" crossorigin="anonymous"></script>
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2" crossorigin="anonymous"></script>
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2" crossorigin="anonymous"></script>
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2" crossorigin="anonymous"></script>
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2" crossorigin="anonymous"></script>
<script src="../../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-LQGVabx0PjkHXcDLJXcHezzBuP23Wdz3LZQbSUqC8Hd3S43bgXJ/vKLmAdS7QJX2" crossorigin="anonymous"></script>
<script src="../poster-sections.js" integrity="sha384-yTqSEf7W1guaDdfAfm5AC3H1dG2wOasVHQdVjnV3XhFbXfukPq3wJokwLOrK4M4j" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk" crossorigin="anonymous"></script>
<script src="../regions-dashboard.js" integrity="sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk" crossorigin="anonymous"></script>
<script src="../regions-dashboard.js" integrity="sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-xQr59+xAxNDHkIY8QnZIlYY8iz1b81zDmKN2satRCiHYhYHKCbe11Yln4Xzzc3rk" crossorigin="anonymous"></script>
<script src="../regions-dashboard.js" integrity="sha384-TzpyeMEeBj+L99cLsTKN2X27VxqYVTMqRdnxct/qhxQ5KrNOkQw7yJUGgaepqrex" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -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-rwYzX6UEvh7MTeVKQrzDvoX/KspH7UQXmtGKCBgDR4OGqxQ2SjwaM2l8yi+CP7e5" crossorigin="anonymous"></script>
<script src="../../upg-neighbor.js" integrity="sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-rwYzX6UEvh7MTeVKQrzDvoX/KspH7UQXmtGKCBgDR4OGqxQ2SjwaM2l8yi+CP7e5" crossorigin="anonymous"></script>
<script src="../../upg-neighbor.js" integrity="sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-rwYzX6UEvh7MTeVKQrzDvoX/KspH7UQXmtGKCBgDR4OGqxQ2SjwaM2l8yi+CP7e5" crossorigin="anonymous"></script>
<script src="../upg-neighbor.js" integrity="sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-rwYzX6UEvh7MTeVKQrzDvoX/KspH7UQXmtGKCBgDR4OGqxQ2SjwaM2l8yi+CP7e5" crossorigin="anonymous"></script>
<script src="../../upg-neighbor.js" integrity="sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-rwYzX6UEvh7MTeVKQrzDvoX/KspH7UQXmtGKCBgDR4OGqxQ2SjwaM2l8yi+CP7e5" crossorigin="anonymous"></script>
<script src="../../upg-neighbor.js" integrity="sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -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-rwYzX6UEvh7MTeVKQrzDvoX/KspH7UQXmtGKCBgDR4OGqxQ2SjwaM2l8yi+CP7e5" crossorigin="anonymous"></script>
<script src="../../upg-neighbor.js" integrity="sha384-g6NBHTZ945HuiOxk/eGRpMe64qQcAVdFjn0KMeclyAZCwZ3NlIyaKfsOCq55uJab" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order: