Update from source c85eeee7
Some checks are pending
Deploy to GitHub Pages / build (push) Waiting to run
Deploy to GitHub Pages / deploy (push) Blocked by required conditions

This commit is contained in:
Doxa Maps 2026-09-26 12:59:06 +00:00
parent 14922b0529
commit 6665f37180
136 changed files with 1375 additions and 1046 deletions

View file

@ -58,6 +58,13 @@ const ALLOWED = new Map([
'proper noun — Open Bible Stories is the publication\'s name (unfoldingWord), not a description'],
['gospel.json:res.scriptureEarth',
'proper noun — Scripture Earth is the organisation\'s name; the destination site is English'],
// ── UNITS ───────────────────────────────────────────────────────────────────
['tables.json:csv',
'file-format name — "CSV" names the format the button downloads; the file extension is the same in every locale'],
['tables.json:json',
'file-format name — "JSON" names the format the button downloads; the file extension is the same in every locale'],
['poster.json:dpi',
'unit symbol — "DPI" is how print resolution is labelled in every one of these locales\' print dialogs; kept as-is by project decision (the poster-strings landing)'],
// ── DRIVER-GATED, NOT RESOLVED ──────────────────────────────────────────────
// ⚠ THESE ARE ALLOWED SO THE GATE CAN GO GREEN ON THE THINGS IT HAS ACTUALLY SETTLED, NOT
// because the defect is fixed. "UUPGs" really is an English acronym wedged into an otherwise

View file

@ -0,0 +1,67 @@
#!/usr/bin/env node
/**
* check-studio-rail — the Plugin Studio's rail is laid out like plugin-designs/. Headless.
*
* The agent's ask (2026-09-26): one FOLDER per BUNDLE with its ELEMENTS inside, bundles sorted by
* capability, highest first. Runs the studio's REAL treeSections / compositionTrees / rowsFromManifest
* (loaded through Vite, no browser) against the BUILT manifest and asserts:
* - sections run CAP 5 → 1, and each bundle sits in the section of its HIGHEST capability, once;
* - bundles within a section are in name order;
* - a bundle with several elements is ONE folder holding all of them; a single-element bundle is its element;
* - every studio row has exactly ONE canonical node (one identity per plugin; parts only target it).
* EXIT 0 pass · 1 fail · 0 with SKIP when there is no built manifest
*/
import { readFileSync, existsSync } from 'node:fs'
import { join, resolve, dirname } from 'node:path'
import { fileURLToPath } from 'node:url'
import { TREE_NAME } from './_tree-name.mjs'
const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..')
const MANIFEST = join(ROOT, 'public', TREE_NAME, 'manifest.json')
if (!existsSync(MANIFEST)) { console.log('STUDIO-RAIL: SKIP — no built manifest'); process.exit(0) }
const { createServer } = await import('vite')
const { default: vue } = await import('@vitejs/plugin-vue')
const server = await createServer({ root: ROOT, configFile: false, logLevel: 'error', appType: 'custom',
server: { middlewareMode: true, hmr: false, watch: null }, plugins: [vue({ customElement: true })],
resolve: { alias: { '@map': join(ROOT, 'library') } }, define: { __DOXA_TREE_NAME__: JSON.stringify(TREE_NAME) } })
globalThis.window = globalThis
globalThis.localStorage = { getItem: () => null, setItem() {} }
let bad = 0
const fail = (m) => { bad++; console.log(' FAIL ' + m) }
try {
const comp = (await server.ssrLoadModule('/plugin-designs/plugin-studio/plugin-studio.vue')).default
const manifest = JSON.parse(readFileSync(MANIFEST, 'utf8'))
const ctx = { manifestBundles: manifest.bundles, tr: (k) => k, cfg: {}, base: '' }
ctx.rows = comp.methods.rowsFromManifest.call(ctx, manifest)
ctx.resolveRef = (ref, fb) => comp.methods.resolveRef.call(ctx, ref, fb)
ctx.compositionTrees = comp.computed.compositionTrees.call(ctx)
const secs = comp.computed.treeSections.call(ctx)
const caps = secs.map((s) => s.cap)
if (caps.join() !== [...caps].sort((a, b) => b - a).join()) fail(`sections not CAP 5 → 1: ${caps.join(',')}`)
const byBundle = new Map()
for (const r of ctx.rows) { if (!byBundle.has(r.bundle)) byBundle.set(r.bundle, []); byBundle.get(r.bundle).push(r) }
const seen = new Map()
for (const s of secs) {
const tops = s.nodes.filter((n) => n.depth === 0)
const names = tops.map((n) => (n.folder ? n.label : ctx.rows.find((r) => r.key === n.target)?.bundle))
if (names.join() !== [...names].sort((a, b) => a.localeCompare(b)).join()) fail(`CAP ${s.cap}: bundles not in name order (${names.join(', ')})`)
for (const [i, n] of tops.entries()) {
const b = names[i]; const rows = byBundle.get(b) || []
if (seen.has(b)) fail(`bundle ${b} appears twice (CAP ${seen.get(b)} and CAP ${s.cap})`)
seen.set(b, s.cap)
const top = Math.max(...rows.map((r) => r.cap))
if (top !== s.cap) fail(`bundle ${b} (highest CAP ${top}) filed under CAP ${s.cap}`)
if (rows.length > 1) {
if (!n.folder) fail(`bundle ${b} has ${rows.length} elements but is not a folder`)
const kids = s.nodes.filter((k) => k.parent === n.id && k.canonical).map((k) => k.target).sort()
if (kids.join() !== rows.map((r) => r.key).sort().join()) fail(`folder ${b} holds ${kids.length} of its ${rows.length} elements`)
} else if (n.folder) fail(`single-element bundle ${b} is shown as a folder`)
}
}
for (const b of byBundle.keys()) if (!seen.has(b)) fail(`bundle ${b} is missing from the rail`)
const canon = secs.flatMap((s) => s.nodes.filter((n) => n.canonical))
for (const r of ctx.rows) { const c = canon.filter((n) => n.target === r.key).length; if (c !== 1) fail(`${r.key} has ${c} canonical nodes (want 1)`) }
console.log(`STUDIO-RAIL: ${byBundle.size} bundle(s), ${ctx.rows.length} element(s), ${secs.length} capability section(s); folders: ${secs.flatMap((s) => s.nodes.filter((n) => n.folder).map((n) => n.label + '(' + n.kids + ')')).join(', ')}`)
} finally { await server.close() }
if (bad) { console.log(`STUDIO-RAIL: FAIL — ${bad} problem(s).`); process.exit(1) }
console.log('STUDIO-RAIL: PASS — one folder per bundle with its elements inside, bundles grouped by their highest capability (5 → 1) and in name order, one identity per plugin.')

View file

@ -38,6 +38,12 @@
* dropped from the custom element's shadow DOM (see WARNING.md).
*/
import { ref, inject, computed, onMounted, onBeforeUnmount, getCurrentInstance, nextTick } from 'vue'
import { tStatic } from '@map/i18n/index.js'
// This component's chrome, read out of the catalogue. tStatic and not useI18n: these mount inside
// custom elements that install no i18n plugin, and an unguarded useI18n() throws on the way in and
// takes the subtree with it. The English stays as the fallback.
const T = (key, en) => tStatic(key) || en
import { useI18n } from 'vue-i18n'
import { useShadowStyles } from '../../composables/useShadowStyles.js'
@ -374,7 +380,7 @@ useShadowStyles(`
<span class="pin-hint-pill">
<span class="pin-hint-dot" aria-hidden="true"></span>
{{ label }}
<button class="pin-hint-x" type="button" aria-label="Dismiss hint" @click="dismiss">×</button>
<button class="pin-hint-x" type="button" :aria-label="T('aria.dismissHint', 'Dismiss hint')" @click="dismiss">×</button>
</span>
</div>
</template>

View file

@ -1,5 +1,11 @@
<script setup>
import { ref, computed, onMounted, onBeforeUnmount, watch, inject, toRef } from 'vue'
import { tStatic } from '@map/i18n/index.js'
// This component's chrome, read out of the catalogue. tStatic and not useI18n: these mount inside
// custom elements that install no i18n plugin, and an unguarded useI18n() throws on the way in and
// takes the subtree with it. The English stays as the fallback.
const T = (key, en) => tStatic(key) || en
import { useI18n } from 'vue-i18n'
import { useShadowStyles } from '../../composables/useShadowStyles.js'
import { useLegendData } from '../../composables/legends/useLegendData.js'
@ -357,7 +363,7 @@ onBeforeUnmount(() => {
<!-- Collapsed pill — identical to STL's .stl-reopen -->
<button v-else-if="isCollapsed"
:class="['legend-reopen', { 'legend-reopen-light': !isDark }]"
title="Expand legend"
:title="T('aria.expandLegend', 'Expand legend')"
@click="isCollapsed = false">
<svg class="legend-reopen-icon" width="11" height="11" viewBox="0 0 12 12" fill="none">
<path d="M2 4h8M2 6h8M2 8h5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/>

View file

@ -38,6 +38,12 @@ export function showsFlyTools(legendType) {
* parent profile listens through mapStore).
*/
import { ref, computed, inject, onBeforeUnmount, toRef } from 'vue'
import { tStatic } from '@map/i18n/index.js'
// This component's chrome, read out of the catalogue. tStatic and not useI18n: these mount inside
// custom elements that install no i18n plugin, and an unguarded useI18n() throws on the way in and
// takes the subtree with it. The English stays as the fallback.
const T = (key, en) => tStatic(key) || en
import { useI18n } from 'vue-i18n'
import { useShadowStyles } from '../../composables/useShadowStyles.js'
import { useLegendData } from '../../composables/legends/useLegendData.js'
@ -249,7 +255,7 @@ onBeforeUnmount(() => {
<path d="M2 6l3 3 5-6" stroke="#3498db" stroke-width="2" fill="none"/>
</svg>
</span>
<span class="lt-btn-text">Clusters</span>
<span class="lt-btn-text">{{ T('controls.clusters', 'Clusters') }}</span>
</button>
<button
class="lt-side-btn"
@ -261,7 +267,7 @@ onBeforeUnmount(() => {
<div v-if="showClusterSettings" class="lt-popup" @click.stop>
<div class="lt-popup-row active" @click="setClusterMode('mst')">
<span class="lt-popup-icon">⌬</span>
<span>Minimum Spanning Tree<br><small style="opacity:0.7;font-weight:400">click a legend row to cluster only that group</small></span>
<span>{{ T('controls.mst_full_name', 'Minimum Spanning Tree') }}<br><small style="opacity:0.7;font-weight:400">{{ T('controls.mst_hint', 'click a legend row to cluster only that group') }}</small></span>
</div>
</div>
<div v-if="showClusterSettings" ref="scrimRef" :style="scrimStyle" class="lt-overlay" @click.stop="showClusterSettings = false"></div>

View file

@ -27,6 +27,12 @@
-->
<script setup>
import { ref, inject, watch, nextTick, onMounted, onBeforeUnmount } from 'vue'
import { tStatic } from '@map/i18n/index.js'
// This component's chrome, read out of the catalogue. tStatic and not useI18n: these mount inside
// custom elements that install no i18n plugin, and an unguarded useI18n() throws on the way in and
// takes the subtree with it. The English stays as the fallback.
const T = (key, en) => tStatic(key) || en
import { useShadowStyles } from '../../composables/useShadowStyles.js'
useShadowStyles(`
@ -140,7 +146,7 @@ onBeforeUnmount(() => {
<div v-if="open" ref="el" class="mcm" :class="{ light: !isDark }" :style="style" role="dialog" :aria-label="title">
<div class="mcm-header">
<span class="mcm-title">{{ title }}</span>
<button class="mcm-close" type="button" aria-label="Close" @click="emit('close')">
<button class="mcm-close" type="button" :aria-label="T('buttons.close', 'Close')" @click="emit('close')">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
<line x1="2" y1="2" x2="12" y2="12"/><line x1="12" y1="2" x2="2" y2="12"/>
</svg>

View file

@ -22,6 +22,12 @@
-->
<script setup>
import { ref, computed, inject, unref, provide } from 'vue'
import { tStatic } from '@map/i18n/index.js'
// This component's chrome, read out of the catalogue. tStatic and not useI18n: these mount inside
// custom elements that install no i18n plugin, and an unguarded useI18n() throws on the way in and
// takes the subtree with it. The English stays as the fallback.
const T = (key, en) => tStatic(key) || en
import { useI18n } from 'vue-i18n'
import { useShadowStyles } from '../../composables/useShadowStyles.js'
import { resolveShareUrl } from '../../utils/embedBase.js'
@ -538,12 +544,12 @@ function bindAnchor(el) {
class="share-tab"
:class="{ active: activeTab === 'link' }"
@click="activeTab = 'link'"
>Embed link</button>
>{{ T('share.embed_link', 'Embed link') }}</button>
<button
class="share-tab"
:class="{ active: activeTab === 'embed' }"
@click="activeTab = 'embed'"
>Add to Your Website</button>
>{{ T('share.add_to_website', 'Add to Your Website') }}</button>
</div>
<!-- ===== Tab 1: Share Link ===== -->
@ -579,7 +585,7 @@ function bindAnchor(el) {
<div v-if="activeTab === 'embed'" class="share-body">
<!-- Friendly description -->
<div class="share-embed-desc">
Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets).
{{ T('share.embed_paste_hint', 'Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets).') }}
</div>
<!-- Size presets -->

View file

@ -88,7 +88,7 @@
</div>
<div class="actions">
<button class="btn btn--ghost" type="button" @click="onClose">Close</button>
<button class="btn btn--ghost" type="button" @click="onClose">{{ T('buttons.close', 'Close') }}</button>
<button class="btn btn--primary" type="button" :disabled="poster.isRendering.value" @click="onRender">
{{ poster.isRendering.value ? 'Rendering…' : `Render ${format.toUpperCase()}` }}
</button>

View file

@ -33,6 +33,12 @@
* ADD to declared widths and columns drift.
*/
import { ref, shallowRef, onMounted, onBeforeUnmount, watch, computed } from 'vue'
import { tStatic } from '@map/i18n/index.js'
// This component's chrome, read out of the catalogue. tStatic and not useI18n: these mount inside
// custom elements that install no i18n plugin, and an unguarded useI18n() throws on the way in and
// takes the subtree with it. The English stays as the fallback.
const T = (key, en) => tStatic(key) || en
import { useShadowStyles } from '../../composables/useShadowStyles.js'
// A fixed;inset:0 scrim covers only the CONTENT PANE inside the cap-5 shell (contain:layout on
// .vtl-content captures the fixed containing block). Measured here: 1024x793 @ (256,107) at a
@ -297,22 +303,22 @@ useShadowStyles(
<span class="dt-count">{{ rowCount.toLocaleString() }} rows</span>
<span v-if="meta.grain" class="dt-grain">· {{ meta.grain }}</span>
<span class="dt-actions">
<button type="button" class="dt-btn" @click="download('csv')">CSV</button>
<button type="button" class="dt-btn" @click="download('json')">JSON</button>
<button type="button" class="dt-btn" @click="download('csv')">{{ T('tables.csv', 'CSV') }}</button>
<button type="button" class="dt-btn" @click="download('json')">{{ T('tables.json', 'JSON') }}</button>
</span>
</div>
<div v-if="err" class="dt-err">{{ err }}</div>
<div class="dt-wrap"><div ref="host"></div></div>
<p class="dt-hint">Tap any row for its full detail{{ isMobile ? '' : ' — every field, including the lists the table flattens' }}.</p>
<p class="dt-hint">{{ T('tables.tap_row_hint', 'Tap any row for its full detail') }}{{ isMobile ? '' : ' — every field, including the lists the table flattens' }}.</p>
<!-- ROW DETAIL — a bottom sheet on mobile, a panel on desktop. Carries EVERY
field, including the ones the list view has to hide or flatten. -->
<div v-if="detail" ref="scrimRef" :style="scrimStyle" class="dt-scrim" @click.self="detail = null">
<div class="dt-sheet" role="dialog" aria-label="Row detail">
<div class="dt-sheet" role="dialog" :aria-label="T('aria.rowDetail', 'Row detail')">
<div class="dt-sheet-head">
<strong>{{ detail[(table?.columns || [])[0]?.field] || 'Detail' }}</strong>
<button type="button" class="dt-close" @click="detail = null">Close</button>
<button type="button" class="dt-close" @click="detail = null">{{ T('buttons.close', 'Close') }}</button>
</div>
<dl class="dt-dl">
<template v-for="[k, v] in detailRows" :key="k">

View file

@ -7,5 +7,7 @@
"searchPeopleGroups": "ابحث عن الشعوب",
"resetAllFilters": "إعادة تعيين كل عوامل التصفية والبحث",
"selectAllRows": "تحديد كل الصفوف",
"deselectAllRows": "إلغاء تحديد كل الصفوف"
"deselectAllRows": "إلغاء تحديد كل الصفوف",
"rowDetail": "تفاصيل الصف",
"dismissHint": "إخفاء التلميح"
}

View file

@ -34,5 +34,8 @@
"prayer_status": "حالة الصلاة",
"close": "إغلاق",
"clear": "مسح",
"map_controls": "أدوات التحكم بالخريطة"
"map_controls": "أدوات التحكم بالخريطة",
"clusters": "التجمّعات",
"mst_full_name": "الشجرة الممتدة الصغرى",
"mst_hint": "اضغط على صف في مفتاح الخريطة لتجميع تلك المجموعة وحدها"
}

View file

@ -0,0 +1,5 @@
{
"embed_link": "رابط التضمين",
"add_to_website": "أضِفها إلى موقعك",
"embed_paste_hint": "الصق هذا الرمز في أداة إنشاء موقعك (WordPress أو Squarespace أو Wix أو أي موقع يقبل أدوات HTML)."
}

View file

@ -48,5 +48,7 @@
"engineMaplibreNote": "لا يحتاج إلى رمز",
"tokenNotNeeded": "تم اختيار MapLibre: خرائطه لا تحتاج إلى رمز Mapbox",
"hideHeader": "إخفاء الشريط العلوي",
"showHeader": "إظهار الشريط العلوي"
"showHeader": "إظهار الشريط العلوي",
"elementsCount": "{n} عناصر",
"elements": "عناصر"
}

View file

@ -0,0 +1,5 @@
{
"csv": "CSV",
"json": "JSON",
"tap_row_hint": "اضغط على أي صف لعرض تفاصيله الكاملة"
}

View file

@ -7,5 +7,7 @@
"searchPeopleGroups": "Volksgruppen suchen",
"resetAllFilters": "Alle Filter und die Suche zurücksetzen",
"selectAllRows": "Alle Zeilen auswählen",
"deselectAllRows": "Auswahl aller Zeilen aufheben"
"deselectAllRows": "Auswahl aller Zeilen aufheben",
"rowDetail": "Zeilendetails",
"dismissHint": "Hinweis schließen"
}

View file

@ -34,5 +34,8 @@
"prayer_status": "Gebetsstatus",
"close": "Schließen",
"clear": "Zurücksetzen",
"map_controls": "Kartensteuerung"
"map_controls": "Kartensteuerung",
"clusters": "Cluster",
"mst_full_name": "Minimaler Spannbaum",
"mst_hint": "Klicken Sie auf eine Legendenzeile, um nur diese Gruppe zu clustern"
}

View file

@ -0,0 +1,5 @@
{
"embed_link": "Einbettungslink",
"add_to_website": "Zu Ihrer Website hinzufügen",
"embed_paste_hint": "Fügen Sie diesen Code in Ihren Website-Baukasten ein (WordPress, Squarespace, Wix oder jede Website, die HTML-Widgets akzeptiert)."
}

View file

@ -48,5 +48,7 @@
"engineMaplibreNote": "kein Token nötig",
"tokenNotNeeded": "MapLibre ist gewählt: Seine Karten brauchen keinen Mapbox-Token",
"hideHeader": "Kopfzeile ausblenden",
"showHeader": "Kopfzeile einblenden"
"showHeader": "Kopfzeile einblenden",
"elementsCount": "{n} Elemente",
"elements": "Elemente"
}

View file

@ -0,0 +1,5 @@
{
"csv": "CSV",
"json": "JSON",
"tap_row_hint": "Tippen Sie auf eine Zeile für alle Details"
}

View file

@ -7,5 +7,7 @@
"searchPeopleGroups": "Search people groups",
"resetAllFilters": "Reset all filters and search",
"selectAllRows": "Select all rows",
"deselectAllRows": "Deselect all rows"
"deselectAllRows": "Deselect all rows",
"rowDetail": "Row detail",
"dismissHint": "Dismiss hint"
}

View file

@ -34,5 +34,8 @@
"prayer_status": "Prayer Status",
"close": "Close",
"clear": "Clear",
"map_controls": "Research map controls"
"map_controls": "Research map controls",
"clusters": "Clusters",
"mst_full_name": "Minimum Spanning Tree",
"mst_hint": "click a legend row to cluster only that group"
}

View file

@ -0,0 +1,5 @@
{
"embed_link": "Embed link",
"add_to_website": "Add to Your Website",
"embed_paste_hint": "Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets)."
}

View file

@ -48,5 +48,7 @@
"engineMaplibreNote": "no token needed",
"tokenNotNeeded": "MapLibre is selected: its maps need no Mapbox token",
"hideHeader": "Hide header",
"showHeader": "Show header"
"showHeader": "Show header",
"elementsCount": "{n} elements",
"elements": "elements"
}

View file

@ -0,0 +1,5 @@
{
"csv": "CSV",
"json": "JSON",
"tap_row_hint": "Tap any row for its full detail"
}

View file

@ -7,5 +7,7 @@
"searchPeopleGroups": "Buscar pueblos",
"resetAllFilters": "Restablecer todos los filtros y la búsqueda",
"selectAllRows": "Seleccionar todas las filas",
"deselectAllRows": "Deseleccionar todas las filas"
"deselectAllRows": "Deseleccionar todas las filas",
"rowDetail": "Detalle de la fila",
"dismissHint": "Descartar la sugerencia"
}

View file

@ -34,5 +34,8 @@
"prayer_status": "Estado de oración",
"close": "Cerrar",
"clear": "Borrar",
"map_controls": "Controles del mapa"
"map_controls": "Controles del mapa",
"clusters": "Clústeres",
"mst_full_name": "Árbol de expansión mínima",
"mst_hint": "haz clic en una fila de la leyenda para agrupar solo ese grupo"
}

View file

@ -0,0 +1,5 @@
{
"embed_link": "Enlace para insertar",
"add_to_website": "Añádelo a tu sitio web",
"embed_paste_hint": "Pega este código en tu creador de sitios web (WordPress, Squarespace, Wix o cualquier sitio que acepte widgets HTML)."
}

View file

@ -48,5 +48,7 @@
"engineMaplibreNote": "no necesita token",
"tokenNotNeeded": "MapLibre está seleccionado: sus mapas no necesitan token de Mapbox",
"hideHeader": "Ocultar encabezado",
"showHeader": "Mostrar encabezado"
"showHeader": "Mostrar encabezado",
"elementsCount": "{n} elementos",
"elements": "elementos"
}

View file

@ -0,0 +1,5 @@
{
"csv": "CSV",
"json": "JSON",
"tap_row_hint": "Toca cualquier fila para ver su detalle completo"
}

View file

@ -7,5 +7,7 @@
"searchPeopleGroups": "Rechercher des peuples",
"resetAllFilters": "Réinitialiser tous les filtres et la recherche",
"selectAllRows": "Sélectionner toutes les lignes",
"deselectAllRows": "Désélectionner toutes les lignes"
"deselectAllRows": "Désélectionner toutes les lignes",
"rowDetail": "Détail de la ligne",
"dismissHint": "Masquer l'astuce"
}

View file

@ -34,5 +34,8 @@
"prayer_status": "État de prière",
"close": "Fermer",
"clear": "Effacer",
"map_controls": "Commandes de la carte"
"map_controls": "Commandes de la carte",
"clusters": "Groupes",
"mst_full_name": "Arbre couvrant minimal",
"mst_hint": "cliquez sur une ligne de la légende pour ne regrouper que ce groupe"
}

View file

@ -0,0 +1,5 @@
{
"embed_link": "Lien d'intégration",
"add_to_website": "Ajouter à votre site web",
"embed_paste_hint": "Collez ce code dans votre créateur de site web (WordPress, Squarespace, Wix ou tout site acceptant les widgets HTML)."
}

View file

@ -48,5 +48,7 @@
"engineMaplibreNote": "aucun jeton requis",
"tokenNotNeeded": "MapLibre est sélectionné : ses cartes n’ont pas besoin de jeton Mapbox",
"hideHeader": "Masquer l'en-tête",
"showHeader": "Afficher l'en-tête"
"showHeader": "Afficher l'en-tête",
"elementsCount": "{n} éléments",
"elements": "éléments"
}

View file

@ -0,0 +1,5 @@
{
"csv": "CSV",
"json": "JSON",
"tap_row_hint": "Touchez une ligne pour voir tout son détail"
}

View file

@ -7,5 +7,7 @@
"searchPeopleGroups": "जनसमूह खोजें",
"resetAllFilters": "सभी फ़िल्टर और खोज रीसेट करें",
"selectAllRows": "सभी पंक्तियाँ चुनें",
"deselectAllRows": "सभी पंक्तियाँ अचयनित करें"
"deselectAllRows": "सभी पंक्तियाँ अचयनित करें",
"rowDetail": "पंक्ति विवरण",
"dismissHint": "संकेत हटाएँ"
}

View file

@ -34,5 +34,8 @@
"prayer_status": "प्रार्थना स्थिति",
"close": "बंद करें",
"clear": "साफ़ करें",
"map_controls": "मानचित्र नियंत्रण"
"map_controls": "मानचित्र नियंत्रण",
"clusters": "क्लस्टर",
"mst_full_name": "न्यूनतम विस्तारित वृक्ष",
"mst_hint": "केवल उस समूह को क्लस्टर करने के लिए लेजेंड की पंक्ति पर क्लिक करें"
}

View file

@ -0,0 +1,5 @@
{
"embed_link": "एम्बेड लिंक",
"add_to_website": "अपनी वेबसाइट में जोड़ें",
"embed_paste_hint": "इस कोड को अपने वेबसाइट बिल्डर में पेस्ट करें (WordPress, Squarespace, Wix, या कोई भी साइट जो HTML विजेट स्वीकार करती है)।"
}

View file

@ -48,5 +48,7 @@
"engineMaplibreNote": "टोकन की ज़रूरत नहीं",
"tokenNotNeeded": "MapLibre चुना गया है: इसके मानचित्रों को Mapbox टोकन नहीं चाहिए",
"hideHeader": "हेडर छिपाएँ",
"showHeader": "हेडर दिखाएँ"
"showHeader": "हेडर दिखाएँ",
"elementsCount": "{n} तत्व",
"elements": "तत्व"
}

View file

@ -0,0 +1,5 @@
{
"csv": "CSV",
"json": "JSON",
"tap_row_hint": "पूरा विवरण देखने के लिए किसी भी पंक्ति पर टैप करें"
}

View file

@ -7,5 +7,7 @@
"searchPeopleGroups": "Cerca popoli",
"resetAllFilters": "Reimposta tutti i filtri e la ricerca",
"selectAllRows": "Seleziona tutte le righe",
"deselectAllRows": "Deseleziona tutte le righe"
"deselectAllRows": "Deseleziona tutte le righe",
"rowDetail": "Dettaglio riga",
"dismissHint": "Ignora il suggerimento"
}

View file

@ -34,5 +34,8 @@
"prayer_status": "Stato di preghiera",
"close": "Chiudi",
"clear": "Cancella",
"map_controls": "Controlli della mappa"
"map_controls": "Controlli della mappa",
"clusters": "Cluster",
"mst_full_name": "Albero ricoprente minimo",
"mst_hint": "fai clic su una riga della legenda per raggruppare solo quel gruppo"
}

View file

@ -0,0 +1,5 @@
{
"embed_link": "Link di incorporamento",
"add_to_website": "Aggiungi al tuo sito web",
"embed_paste_hint": "Incolla questo codice nel tuo costruttore di siti web (WordPress, Squarespace, Wix o qualsiasi sito che accetti widget HTML)."
}

View file

@ -48,5 +48,7 @@
"engineMaplibreNote": "nessun token necessario",
"tokenNotNeeded": "MapLibre è selezionato: le sue mappe non richiedono un token Mapbox",
"hideHeader": "Nascondi intestazione",
"showHeader": "Mostra intestazione"
"showHeader": "Mostra intestazione",
"elementsCount": "{n} elementi",
"elements": "elementi"
}

View file

@ -0,0 +1,5 @@
{
"csv": "CSV",
"json": "JSON",
"tap_row_hint": "Tocca una riga per vederne il dettaglio completo"
}

View file

@ -7,5 +7,7 @@
"searchPeopleGroups": "Pesquisar povos",
"resetAllFilters": "Redefinir todos os filtros e a pesquisa",
"selectAllRows": "Selecionar todas as linhas",
"deselectAllRows": "Desmarcar todas as linhas"
"deselectAllRows": "Desmarcar todas as linhas",
"rowDetail": "Detalhe da linha",
"dismissHint": "Dispensar a dica"
}

View file

@ -34,5 +34,8 @@
"prayer_status": "Estado de oração",
"close": "Fechar",
"clear": "Limpar",
"map_controls": "Controlos do mapa"
"map_controls": "Controlos do mapa",
"clusters": "Agrupamentos",
"mst_full_name": "Árvore geradora mínima",
"mst_hint": "clique numa linha da legenda para agrupar apenas esse grupo"
}

View file

@ -0,0 +1,5 @@
{
"embed_link": "Link de incorporação",
"add_to_website": "Adicione ao seu site",
"embed_paste_hint": "Cole este código no seu construtor de sites (WordPress, Squarespace, Wix ou qualquer site que aceite widgets HTML)."
}

View file

@ -48,5 +48,7 @@
"engineMaplibreNote": "não precisa de token",
"tokenNotNeeded": "MapLibre está selecionado: os seus mapas não precisam de token do Mapbox",
"hideHeader": "Ocultar cabeçalho",
"showHeader": "Mostrar cabeçalho"
"showHeader": "Mostrar cabeçalho",
"elementsCount": "{n} elementos",
"elements": "elementos"
}

View file

@ -0,0 +1,5 @@
{
"csv": "CSV",
"json": "JSON",
"tap_row_hint": "Toque em qualquer linha para ver o detalhe completo"
}

View file

@ -7,5 +7,7 @@
"searchPeopleGroups": "Caută popoare",
"resetAllFilters": "Resetează toate filtrele și căutarea",
"selectAllRows": "Selectează toate rândurile",
"deselectAllRows": "Deselectează toate rândurile"
"deselectAllRows": "Deselectează toate rândurile",
"rowDetail": "Detaliu rând",
"dismissHint": "Închide sugestia"
}

View file

@ -34,5 +34,8 @@
"prayer_status": "Stare de rugăciune",
"close": "Închide",
"clear": "Șterge",
"map_controls": "Comenzile hărții"
"map_controls": "Comenzile hărții",
"clusters": "Grupuri",
"mst_full_name": "Arbore de acoperire minim",
"mst_hint": "dă clic pe un rând din legendă pentru a grupa doar acel grup"
}

View file

@ -0,0 +1,5 @@
{
"embed_link": "Link de încorporare",
"add_to_website": "Adaugă pe site-ul tău",
"embed_paste_hint": "Lipește acest cod în constructorul site-ului tău (WordPress, Squarespace, Wix sau orice site care acceptă widget-uri HTML)."
}

View file

@ -48,5 +48,7 @@
"engineMaplibreNote": "nu necesită token",
"tokenNotNeeded": "MapLibre este selectat: hărțile sale nu necesită token Mapbox",
"hideHeader": "Ascunde antetul",
"showHeader": "Afișează antetul"
"showHeader": "Afișează antetul",
"elementsCount": "{n} elemente",
"elements": "elemente"
}

View file

@ -0,0 +1,5 @@
{
"csv": "CSV",
"json": "JSON",
"tap_row_hint": "Atinge orice rând pentru detaliile complete"
}

View file

@ -7,5 +7,7 @@
"searchPeopleGroups": "Поиск народов",
"resetAllFilters": "Сбросить все фильтры и поиск",
"selectAllRows": "Выбрать все строки",
"deselectAllRows": "Снять выделение со всех строк"
"deselectAllRows": "Снять выделение со всех строк",
"rowDetail": "Подробности строки",
"dismissHint": "Скрыть подсказку"
}

View file

@ -34,5 +34,8 @@
"prayer_status": "Статус молитвы",
"close": "Закрыть",
"clear": "Очистить",
"map_controls": "Элементы управления картой"
"map_controls": "Элементы управления картой",
"clusters": "Кластеры",
"mst_full_name": "Минимальное остовное дерево",
"mst_hint": "нажмите строку легенды, чтобы сгруппировать только эту группу"
}

View file

@ -0,0 +1,5 @@
{
"embed_link": "Ссылка для встраивания",
"add_to_website": "Добавить на ваш сайт",
"embed_paste_hint": "Вставьте этот код в конструктор вашего сайта (WordPress, Squarespace, Wix или любой сайт, принимающий HTML-виджеты)."
}

View file

@ -48,5 +48,7 @@
"engineMaplibreNote": "токен не нужен",
"tokenNotNeeded": "Выбран MapLibre: его картам не нужен токен Mapbox",
"hideHeader": "Скрыть заголовок",
"showHeader": "Показать заголовок"
"showHeader": "Показать заголовок",
"elementsCount": "{n} элементов",
"elements": "элементов"
}

View file

@ -0,0 +1,5 @@
{
"csv": "CSV",
"json": "JSON",
"tap_row_hint": "Нажмите на любую строку, чтобы увидеть все подробности"
}

View file

@ -7,5 +7,7 @@
"searchPeopleGroups": "搜索民族",
"resetAllFilters": "重置所有筛选和搜索",
"selectAllRows": "选择所有行",
"deselectAllRows": "取消选择所有行"
"deselectAllRows": "取消选择所有行",
"rowDetail": "行详情",
"dismissHint": "关闭提示"
}

View file

@ -34,5 +34,8 @@
"prayer_status": "代祷状态",
"close": "关闭",
"clear": "清除",
"map_controls": "地图控件"
"map_controls": "地图控件",
"clusters": "聚类",
"mst_full_name": "最小生成树",
"mst_hint": "点击图例中的一行,仅对该组进行聚类"
}

View file

@ -0,0 +1,5 @@
{
"embed_link": "嵌入链接",
"add_to_website": "添加到您的网站",
"embed_paste_hint": "将此代码粘贴到您的网站构建器中(WordPress、Squarespace、Wix,或任何接受 HTML 小部件的网站)。"
}

View file

@ -48,5 +48,7 @@
"engineMaplibreNote": "无需令牌",
"tokenNotNeeded": "已选择 MapLibre:其地图无需 Mapbox 令牌",
"hideHeader": "隐藏标题栏",
"showHeader": "显示标题栏"
"showHeader": "显示标题栏",
"elementsCount": "{n} 个元素",
"elements": "元素"
}

View file

@ -0,0 +1,5 @@
{
"csv": "CSV",
"json": "JSON",
"tap_row_hint": "点按任一行查看完整详情"
}

View file

@ -25,6 +25,7 @@ const P = {
pin: '<path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z"/><circle cx="12" cy="10" r="3"/>',
monitor: '<rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/>',
chart: '<line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/>',
folder: '<path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>',
layers: '<polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 17 12 22 22 17"/><polyline points="2 12 12 17 22 12"/>',
flask: '<path d="M9 3h6v5l5 11a2 2 0 0 1-2 3H6a2 2 0 0 1-2-3l5-11z"/><line x1="9" y1="3" x2="15" y2="3"/><line x1="6" y1="15" x2="18" y2="15"/>',
share: '<circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><line x1="8.6" y1="13.5" x2="15.4" y2="17.5"/><line x1="15.4" y1="6.5" x2="8.6" y2="10.5"/>',

View file

@ -87,6 +87,7 @@
"check:gospel-all": "node internal/check-gospel-all.mjs",
"check:gospel-tables-staged": "node internal/check-gospel-tables-staged.mjs",
"check:map-attribution": "node internal/check-map-attribution.mjs",
"check:studio-rail": "node internal/check-studio-rail.mjs",
"check:translator-contacts": "node internal/check-translator-contacts.mjs",
"check:translator-contacts:poison": "node internal/check-translator-contacts.mjs --poison",
"check:heartbeat": "node internal/check-heartbeat-threshold.mjs",
@ -206,7 +207,7 @@
"dev": "bun x vite",
"fix:sri": "node internal/fix-sri.mjs",
"gallery": "node internal/generate-gallery.mjs",
"gates:post": "node internal/run-parallel.mjs --label=post -- check:drop check:parse verify check:sri check:public-hygiene check:label-joins check:facet-cascade check:facet-one-field check:heartbeat check:kpi-unit check:composite-reg check:descriptions check:no-abs-paths check:no-codename check:dep-names check:composite-srcs check:embed-targets check:nested-token check:i18n-parity check:tabs-localized check:packets-all check:packet-strings-parity check:zone-census check:share-policy check:library-index check:csv-shape check:capability-citations check:catalog-identity check:no-orphan-gates check:quoted-scripts check:done-evidence check:script-flags check:backlog-status check:capability-exemplars check:packet-fixture check:packet-browser check:provider-switch check:locale-reachable check:url-resolver check:manifest-covers check:one-palette check:pin-dim-slider check:legend-source check:backlog-refs check:clustering-modes check:composite-embed-knobs check:composite-locale-leaks check:linked-vocabulary check:wp-embed check:dashboard-geocoder-provider check:leaf-engine-per-provider check:map-props-unit check:composites-mount check:composite-interop check:no-free-identifiers check:map-fly-reduced-motion check:mst-clustering check:list-prop-unit check:profiles-mount check:cdn-pins check:no-eval check:popup-escaping check:i18n-treeshake check:pinned-umd check:one-palette:self-test check:no-cross-plugin-imports check:no-cross-plugin-imports:self-test check:map-attribution",
"gates:post": "node internal/run-parallel.mjs --label=post -- check:drop check:parse verify check:sri check:public-hygiene check:label-joins check:facet-cascade check:facet-one-field check:heartbeat check:kpi-unit check:composite-reg check:descriptions check:no-abs-paths check:no-codename check:dep-names check:composite-srcs check:embed-targets check:nested-token check:i18n-parity check:tabs-localized check:packets-all check:packet-strings-parity check:zone-census check:share-policy check:library-index check:csv-shape check:capability-citations check:catalog-identity check:no-orphan-gates check:quoted-scripts check:done-evidence check:script-flags check:backlog-status check:capability-exemplars check:packet-fixture check:packet-browser check:provider-switch check:locale-reachable check:url-resolver check:manifest-covers check:one-palette check:pin-dim-slider check:legend-source check:backlog-refs check:clustering-modes check:composite-embed-knobs check:composite-locale-leaks check:linked-vocabulary check:wp-embed check:dashboard-geocoder-provider check:leaf-engine-per-provider check:map-props-unit check:composites-mount check:composite-interop check:no-free-identifiers check:map-fly-reduced-motion check:mst-clustering check:list-prop-unit check:profiles-mount check:cdn-pins check:no-eval check:popup-escaping check:i18n-treeshake check:pinned-umd check:one-palette:self-test check:no-cross-plugin-imports check:no-cross-plugin-imports:self-test check:map-attribution check:studio-rail",
"gates:pre": "node internal/run-parallel.mjs --label=pre -- check:template-literal check:mjs-parse check:sfc-parse check:tab-radius check:synced-css check:doc-scripts",
"internet:adm1": "node plugin-designs/cities-internet/scripts/build-adm1-internet.mjs",
"library-index": "node internal/generate-library-index.mjs",
@ -358,6 +359,7 @@
"check:shot-fidelity": "warns when THIS machine cannot RENDER what the shots must SHOW. `bun run shots` printed 13x OK while every emoji rendered as a tofu box — a glyph fallback loads perfectly (0 console errors, 0 HTTP>=400), so the generator cannot see it. Reports by default; the `check:shot-fidelity:strict` script to block once an emoji font is installed.",
"check:shot-fonts": "can THIS machine render the emoji the UI uses? Run BEFORE `bun run shots` — no font = tofu boxes in every committed PNG, which every other shot gate passes. Deliberately NOT in build:unlocked: it reports an ENVIRONMENT condition (this box has no emoji font), and a gate that always fails in the build makes the build useless.",
"check:shots": "a README screenshot that predates the bundle it shows is a picture telling a lie — and it looks IDENTICAL to a current one. Compares each shot's PNG against the BUILT BUNDLE it renders (not raw sources: an unbuilt edit is not yet in any leaf). Fix: node internal/readme-shots.mjs",
"check:studio-rail": "the Plugin Studio rail is laid out like plugin-designs/: one folder per bundle with its elements inside, bundles in the section of their highest capability (5 \u2192 1) and in name order, one canonical node per plugin. Runs the studio's real rail code on the built manifest, headless.",
"check:translator-contacts": "the credit line LINKS the translating organisation now, and a contact URL is a link this map stands behind. Reads ALLOWED_CONTACT out of internal/verify-gospel-map.mjs rather than restating it (two copies of an allowlist drift, and the drifting copy is the one nobody reads), then asserts every cr.u is on that list, was recorded `verified` by a real fetch, is never also serving a RESOURCE (wycliffe.org is somewhere to write to, not a publisher this map reads text from), and is actually RENDERED as an anchor \u2014 the data can carry 838 URLs while the template shows none. Static, sub-second. Self-test: `bun run check:translator-contacts:poison`.",
"check:snapshot-guard": "every gospel-resources catalogue fetcher must write through scripts/_snapshot-guard.mjs, which refuses a write that loses more than a tenth of the previous snapshot. Written after a rate-limited FCBH run silently replaced 1,666 video scopes with 1,103. Static, sub-second. Self-test: `bun run check:snapshot-guard:poison` injects a raw write and the check must fail on it.",
"check:spa-tab-order": "the cap-5 SPA must open on Big Picture and keep the agent's order (Big Picture, UPG-100, Prayer Progress, Gospel Resources) — asserted as PRESENCE + tab-1 + RELATIVE order on the RENDERED rail, because the rail gained three sections and now renders 12 rows with others between them. ⚠ NOT WAVE-WIRED: it FAILS rather than skips when the SPA is unreachable, deliberately (\"a gate that cannot reach its subject has not passed, it has not run\") — correct standalone, but gates:post runs on checkouts with no server. Needs `bun run serve` on 4173.",

View file

@ -567,21 +567,30 @@ export default defineComponent({
// plugin left no single name to report it by; a node that only TARGETS the canonical row has no
// identity of its own, so nesting and the one-name rule coexist.
treeSections() {
// ★ LAID OUT LIKE plugin-designs/ (the agent, 2026-09-26): one FOLDER per BUNDLE, its ELEMENTS inside,
// bundles grouped by their HIGHEST capability (5 → 1) and sorted by name within a group. A bundle
// with one element is shown as that element (a folder of one is noise). A composite's parts still
// hang under its element, folded, each TARGETING its canonical row (one identity per plugin).
const treeOf = new Map(this.compositionTrees.map(t => [t.nodes[0].selects, t]))
return this.groups.map(g => {
const byBundle = new Map()
for (const r of this.rows) { if (!byBundle.has(r.bundle)) byBundle.set(r.bundle, []); byBundle.get(r.bundle).push(r) }
const bundles = [...byBundle.entries()].map(([bundle, rows]) => ({ bundle, rows, cap: Math.max(...rows.map(r => r.cap)) }))
return [5, 4, 3, 2, 1].map(cap => {
const group = bundles.filter(b => b.cap === cap).sort((x, y) => x.bundle.localeCompare(y.bundle))
if (!group.length) return null
const nodes = []
for (const r of g.rows) {
const pushElement = (r, depth, parent) => {
const t = treeOf.get(r.key)
nodes.push({
id: r.key, parent: '', depth: 0, label: r.label, desc: r.tag, icon: r.icon, target: r.key,
id: r.key, parent, depth, label: r.label, desc: r.tag, icon: r.icon, target: r.key, canonical: true,
kids: t ? t.nodes[0].kids : 0, title: r.label + ' · <' + r.tag + '> · CAP ' + r.cap + ' ' + this.tr('cap' + r.cap)
})
if (!t) continue
if (!t) return
const nid = (id) => (id === 0 ? r.key : r.key + '>' + id)
for (const n of t.nodes.slice(1)) {
nodes.push({
id: nid(n.id), parent: nid(n.ancestors[n.ancestors.length - 1]), depth: n.depth,
label: n.label, part: !!n.part, target: n.selects || '',
id: nid(n.id), parent: nid(n.ancestors[n.ancestors.length - 1]), depth: depth + n.depth,
label: n.label, part: !!n.part, target: n.selects || '', canonical: false,
icon: n.part ? 'dots' : (CAP_ICON[n.cap] || 'embed'),
desc: n.part ? this.tr('noStandalone') : 'cap ' + n.cap + ' · ' + n.tag,
kids: n.kids || 0,
@ -590,10 +599,19 @@ export default defineComponent({
})
}
}
// Short section names: the header shares a 256px rail with its CAP badge and count, and the
// full "App shell · nested-mfe-spa" truncated to "APP SHELL · NEST…". The long name is the tooltip.
return { id: 'cap-' + g.cap, cap: g.cap, label: this.tr('cap' + g.cap), title: this.tr('cap' + g.cap) + ' · ' + (MACHINE_TYPE[g.cap] || ''), icon: CAP_ICON[g.cap] || 'embed', nodes }
})
for (const b of group) {
const rows = [...b.rows].sort((x, y) => y.cap - x.cap || x.label.localeCompare(y.label))
if (rows.length === 1) { pushElement(rows[0], 0, ''); continue }
const fid = 'bundle:' + b.bundle
nodes.push({
id: fid, parent: '', depth: 0, label: b.bundle, desc: this.tr('elementsCount', { n: rows.length }),
icon: 'folder', target: rows[0].key, canonical: false, folder: true, kids: rows.length,
title: b.bundle + ' · plugin-designs/' + b.bundle + '/ · ' + rows.length + ' ' + this.tr('elements')
})
for (const r of rows) pushElement(r, 1, fid)
}
return { id: 'cap-' + cap, cap, label: this.tr('cap' + cap), title: this.tr('cap' + cap) + ' · ' + (MACHINE_TYPE[cap] || ''), icon: CAP_ICON[cap] || 'embed', nodes }
}).filter(Boolean)
},
// ★ ONE TREE PER COMPOSITE, built ENTIRELY from the manifest's `composes` edges — no bundle names
// or child lists live in this file, so a new composite appears here with zero edits.

View file

@ -146,6 +146,11 @@ const EN = {
}
const CHEV = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 6 15 12 9 18"/></svg>'
// A node is the CANONICAL row of a plugin when the rail says so (canonical: true); older models without
// the flag used depth 0 for that. A bundle FOLDER is not a plugin, and neither is a repeated part.
const isCanonical = (n) => (n.canonical !== undefined ? !!n.canonical : n.depth === 0)
const isAlias = (n) => (n.canonical !== undefined ? !n.canonical && !n.folder : n.depth > 0)
export default defineComponent({
name: 'StudioTree',
props: {
@ -209,13 +214,13 @@ export default defineComponent({
if (!this.kept && this.secClosed[s.id]) continue
for (const n of nodes) {
if (!this.kept && !this.ancestorsOpen(n)) continue
out.push({ ...n, sectionId: s.id, level: n.depth + 2, expandable: !!n.kids, alias: n.depth > 0 })
out.push({ ...n, sectionId: s.id, level: n.depth + 2, expandable: !!n.kids, alias: isAlias(n) })
}
}
return out
},
activeSectionId() {
for (const s of this.sections) if (s.nodes.some(n => n.depth === 0 && n.target === this.active)) return s.id
for (const s of this.sections) if (s.nodes.some(n => isCanonical(n) && n.target === this.active)) return s.id
return ''
}
},
@ -255,7 +260,7 @@ export default defineComponent({
collapseAll() {
this.nodeOpen = {}
this.saveState()
const a = this.visible.find(i => !i.section && i.target === this.active && i.depth === 0)
const a = this.visible.find(i => !i.section && i.target === this.active && isCanonical(i))
if (a) this.focusId = a.id
},
rowClass(item) {
@ -325,9 +330,15 @@ export default defineComponent({
if (!this.active || !this.sections.length) return
let row = null
for (const s of this.sections) {
row = s.nodes.find(n => n.depth === 0 && n.target === this.active)
row = s.nodes.find(n => isCanonical(n) && n.target === this.active)
if (row) { if (this.secClosed[s.id]) { this.secClosed = { ...this.secClosed, [s.id]: false }; this.saveState() } break }
}
// A plugin inside a BUNDLE FOLDER: open the folder(s) above it, or it cannot be seen.
if (row) {
let p = row.parent, opened = false
while (p) { if (!this.nodeOpen[p]) { this.nodeOpen = { ...this.nodeOpen, [p]: true }; opened = true } p = this.byId.get(p) && this.byId.get(p).parent }
if (opened) this.saveState()
}
if (!row) return
if (!this.focusId || !this.byId.has(this.focusId) || this.byId.get(this.focusId).target !== this.active) this.focusId = row.id
this.$nextTick(() => { const el = this._rows && this._rows[row.id]; if (el && el.scrollIntoView) el.scrollIntoView({ block: 'nearest' }) })

File diff suppressed because one or more lines are too long

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <all-people-groups> custom element. -->
<script src="../all-people-groups.js" integrity="sha384-ijuyaIC6DPfxAa/daqEDu86TzBwjBOrgK+vzH2L01keScnp/bV1WRZumKNkscW2K" crossorigin="anonymous"></script>
<script src="../all-people-groups.js" integrity="sha384-FbEsGoYxtxhoLkkfY+WW/Pp8dJ9BhiJoQ+p+Zou31j/rnjmvo/s4WddKfbzrpgyM" 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

@ -43,7 +43,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <bp-big-picture> custom element. -->
<script src="../../big-picture.js" integrity="sha384-ol5VjnttxiwjEl9dlcOzHFYhGqUUFNfDm/FKV3zeR7YQCFOczRHasOGlJtdsRuuy" crossorigin="anonymous"></script>
<script src="../../big-picture.js" integrity="sha384-Ii8bDqkNqNyPoL4R6n7nz0C7hBM4DggWRXcaFRSHrcKTjSgFYebrpeBfmbAKLCzx" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -43,7 +43,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <bp-big-picture> custom element. -->
<script src="../../big-picture.js" integrity="sha384-ol5VjnttxiwjEl9dlcOzHFYhGqUUFNfDm/FKV3zeR7YQCFOczRHasOGlJtdsRuuy" crossorigin="anonymous"></script>
<script src="../../big-picture.js" integrity="sha384-Ii8bDqkNqNyPoL4R6n7nz0C7hBM4DggWRXcaFRSHrcKTjSgFYebrpeBfmbAKLCzx" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -43,7 +43,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <bp-big-picture> custom element. -->
<script src="../big-picture.js" integrity="sha384-ol5VjnttxiwjEl9dlcOzHFYhGqUUFNfDm/FKV3zeR7YQCFOczRHasOGlJtdsRuuy" crossorigin="anonymous"></script>
<script src="../big-picture.js" integrity="sha384-Ii8bDqkNqNyPoL4R6n7nz0C7hBM4DggWRXcaFRSHrcKTjSgFYebrpeBfmbAKLCzx" 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

@ -32,7 +32,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
<script src="../cities-internet.js" integrity="sha384-03KHGMDhqr2q4+lvbu81MccmvBiKQAdAKoeWOgSPhsIPEHCyN5pkkKuo3sE7BcrF" crossorigin="anonymous"></script>
<script src="../cities-internet.js" integrity="sha384-X3FXpSbF++LeTZsUPQY7Awndl2kgOULGiqLk/Jo207I9mqlYECHoi8nK8djPVyt4" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
<script src="../cities-internet.js" integrity="sha384-03KHGMDhqr2q4+lvbu81MccmvBiKQAdAKoeWOgSPhsIPEHCyN5pkkKuo3sE7BcrF" crossorigin="anonymous"></script>
<script src="../cities-internet.js" integrity="sha384-X3FXpSbF++LeTZsUPQY7Awndl2kgOULGiqLk/Jo207I9mqlYECHoi8nK8djPVyt4" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -32,7 +32,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
<script src="../cities-internet.js" integrity="sha384-03KHGMDhqr2q4+lvbu81MccmvBiKQAdAKoeWOgSPhsIPEHCyN5pkkKuo3sE7BcrF" crossorigin="anonymous"></script>
<script src="../cities-internet.js" integrity="sha384-X3FXpSbF++LeTZsUPQY7Awndl2kgOULGiqLk/Jo207I9mqlYECHoi8nK8djPVyt4" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -36,7 +36,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-HfXx74Ds3LCiKxxnHZ5SJrETdhedH36z2vvkWamfxIiY8P4Vi2nvu2+BkcMdHn21" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-lrVGtngK/w/70EAfe2x+vykpsjVEqMyItlg6Sq7R8OZ9GTuDQbDgpWQB6VrVNyHf" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -32,7 +32,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-HfXx74Ds3LCiKxxnHZ5SJrETdhedH36z2vvkWamfxIiY8P4Vi2nvu2+BkcMdHn21" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-lrVGtngK/w/70EAfe2x+vykpsjVEqMyItlg6Sq7R8OZ9GTuDQbDgpWQB6VrVNyHf" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -47,7 +47,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-HfXx74Ds3LCiKxxnHZ5SJrETdhedH36z2vvkWamfxIiY8P4Vi2nvu2+BkcMdHn21" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-lrVGtngK/w/70EAfe2x+vykpsjVEqMyItlg6Sq7R8OZ9GTuDQbDgpWQB6VrVNyHf" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -47,7 +47,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
<script src="../../dashboard-plus-grid.js" integrity="sha384-HlacN5eFJy1tUz5BXycPsWdFNXVKpOHxk+s4HCXZs9AndFI4jrZb3H//UwKO51Vh" crossorigin="anonymous"></script>
<script src="../../dashboard-plus-grid.js" integrity="sha384-5Yvna6wDcKVmPHD5Gc+ed3n+AAxx4a2hM4IwHIb08bus3WNjC5Eq9mC4lxH+T2VM" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -47,7 +47,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
<script src="../dashboard-plus-grid.js" integrity="sha384-HlacN5eFJy1tUz5BXycPsWdFNXVKpOHxk+s4HCXZs9AndFI4jrZb3H//UwKO51Vh" crossorigin="anonymous"></script>
<script src="../dashboard-plus-grid.js" integrity="sha384-5Yvna6wDcKVmPHD5Gc+ed3n+AAxx4a2hM4IwHIb08bus3WNjC5Eq9mC4lxH+T2VM" 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

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <demo-map> custom element. -->
<script src="../demo-map.js" integrity="sha384-rIt+T3/qQxlH3zz5VqNxK1ErdVopbVPPg7N5/7WGz3PctsMUU1rewalkbVhzstZW" crossorigin="anonymous"></script>
<script src="../demo-map.js" integrity="sha384-RYIVjadev77lt087CZrszNCsJvXu5And6+TP2XlacJEqu8c5HBIT6jASonE+eQv/" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -33,7 +33,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <demo-map> custom element. -->
<script src="../../demo-map.js" integrity="sha384-rIt+T3/qQxlH3zz5VqNxK1ErdVopbVPPg7N5/7WGz3PctsMUU1rewalkbVhzstZW" crossorigin="anonymous"></script>
<script src="../../demo-map.js" integrity="sha384-RYIVjadev77lt087CZrszNCsJvXu5And6+TP2XlacJEqu8c5HBIT6jASonE+eQv/" 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

@ -32,7 +32,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-maps-spa> custom element. -->
<script src="../../doxa-maps-spa.js" integrity="sha384-vh5LGB5teIGFVOe3BajgoozGs3UJ5uut6n3ZOYysf8IFBQiGXQnKrUDrmm7Hqk1d" crossorigin="anonymous"></script>
<script src="../../doxa-maps-spa.js" integrity="sha384-H4fyU/d2mBR+r3Hm4ehfktNXrz/wme+FP8cdOPnOja0bxjbg3do5mCUEytw1tIhg" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -32,7 +32,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-maps-spa> custom element. -->
<script src="../doxa-maps-spa.js" integrity="sha384-vh5LGB5teIGFVOe3BajgoozGs3UJ5uut6n3ZOYysf8IFBQiGXQnKrUDrmm7Hqk1d" crossorigin="anonymous"></script>
<script src="../doxa-maps-spa.js" integrity="sha384-H4fyU/d2mBR+r3Hm4ehfktNXrz/wme+FP8cdOPnOja0bxjbg3do5mCUEytw1tIhg" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -12,7 +12,7 @@
"bundle": "all-people-groups",
"scriptUrl": "./all-people-groups/all-people-groups.js",
"output": "dx-maps/all-people-groups/all-people-groups.js",
"integrity": "sha384-ijuyaIC6DPfxAa/daqEDu86TzBwjBOrgK+vzH2L01keScnp/bV1WRZumKNkscW2K",
"integrity": "sha384-FbEsGoYxtxhoLkkfY+WW/Pp8dJ9BhiJoQ+p+Zou31j/rnjmvo/s4WddKfbzrpgyM",
"elements": [
"all-people-groups"
],
@ -28,7 +28,7 @@
"scriptUrl": "./all-people-groups/all-people-groups.js",
"embed": {
"iframe": "<iframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-ijuyaIC6DPfxAa/daqEDu86TzBwjBOrgK+vzH2L01keScnp/bV1WRZumKNkscW2K\" crossorigin=\"anonymous\"></script>\n<all-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></all-people-groups>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-FbEsGoYxtxhoLkkfY+WW/Pp8dJ9BhiJoQ+p+Zou31j/rnjmvo/s4WddKfbzrpgyM\" crossorigin=\"anonymous\"></script>\n<all-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></all-people-groups>"
},
"bundle": "all-people-groups"
}
@ -38,7 +38,7 @@
"bundle": "big-picture",
"scriptUrl": "./big-picture/big-picture.js",
"output": "dx-maps/big-picture/big-picture.js",
"integrity": "sha384-ol5VjnttxiwjEl9dlcOzHFYhGqUUFNfDm/FKV3zeR7YQCFOczRHasOGlJtdsRuuy",
"integrity": "sha384-Ii8bDqkNqNyPoL4R6n7nz0C7hBM4DggWRXcaFRSHrcKTjSgFYebrpeBfmbAKLCzx",
"elements": [
"bp-big-picture",
"bp-research-header",
@ -60,7 +60,7 @@
"scriptUrl": "./big-picture/big-picture.js",
"embed": {
"iframe": "<iframe src=\"./big-picture/big-picture/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=\"./big-picture/big-picture.js\" integrity=\"sha384-ol5VjnttxiwjEl9dlcOzHFYhGqUUFNfDm/FKV3zeR7YQCFOczRHasOGlJtdsRuuy\" crossorigin=\"anonymous\"></script>\n<bp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></bp-big-picture>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./big-picture/big-picture.js\" integrity=\"sha384-Ii8bDqkNqNyPoL4R6n7nz0C7hBM4DggWRXcaFRSHrcKTjSgFYebrpeBfmbAKLCzx\" crossorigin=\"anonymous\"></script>\n<bp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></bp-big-picture>"
},
"instances": [
{
@ -104,7 +104,7 @@
"bundle": "cities-internet",
"scriptUrl": "./cities-internet/cities-internet.js",
"output": "dx-maps/cities-internet/cities-internet.js",
"integrity": "sha384-03KHGMDhqr2q4+lvbu81MccmvBiKQAdAKoeWOgSPhsIPEHCyN5pkkKuo3sE7BcrF",
"integrity": "sha384-X3FXpSbF++LeTZsUPQY7Awndl2kgOULGiqLk/Jo207I9mqlYECHoi8nK8djPVyt4",
"elements": [
"cities-internet-map"
],
@ -120,7 +120,7 @@
"scriptUrl": "./cities-internet/cities-internet.js",
"embed": {
"iframe": "<iframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-03KHGMDhqr2q4+lvbu81MccmvBiKQAdAKoeWOgSPhsIPEHCyN5pkkKuo3sE7BcrF\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-X3FXpSbF++LeTZsUPQY7Awndl2kgOULGiqLk/Jo207I9mqlYECHoi8nK8djPVyt4\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
}
},
{
@ -134,7 +134,7 @@
"scriptUrl": "./cities-internet/cities-internet.js",
"embed": {
"iframe": "<iframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-03KHGMDhqr2q4+lvbu81MccmvBiKQAdAKoeWOgSPhsIPEHCyN5pkkKuo3sE7BcrF\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-X3FXpSbF++LeTZsUPQY7Awndl2kgOULGiqLk/Jo207I9mqlYECHoi8nK8djPVyt4\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
}
},
{
@ -148,7 +148,7 @@
"scriptUrl": "./cities-internet/cities-internet.js",
"embed": {
"iframe": "<iframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-03KHGMDhqr2q4+lvbu81MccmvBiKQAdAKoeWOgSPhsIPEHCyN5pkkKuo3sE7BcrF\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-X3FXpSbF++LeTZsUPQY7Awndl2kgOULGiqLk/Jo207I9mqlYECHoi8nK8djPVyt4\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
}
}
]
@ -157,7 +157,7 @@
"bundle": "country-posters",
"scriptUrl": "./country-posters/country-posters.js",
"output": "dx-maps/country-posters/country-posters.js",
"integrity": "sha384-HfXx74Ds3LCiKxxnHZ5SJrETdhedH36z2vvkWamfxIiY8P4Vi2nvu2+BkcMdHn21",
"integrity": "sha384-lrVGtngK/w/70EAfe2x+vykpsjVEqMyItlg6Sq7R8OZ9GTuDQbDgpWQB6VrVNyHf",
"elements": [
"country-posters-map"
],
@ -177,7 +177,7 @@
"scriptUrl": "./country-posters/country-posters.js",
"embed": {
"iframe": "<iframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-HfXx74Ds3LCiKxxnHZ5SJrETdhedH36z2vvkWamfxIiY8P4Vi2nvu2+BkcMdHn21\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-lrVGtngK/w/70EAfe2x+vykpsjVEqMyItlg6Sq7R8OZ9GTuDQbDgpWQB6VrVNyHf\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
}
},
{
@ -191,7 +191,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-HfXx74Ds3LCiKxxnHZ5SJrETdhedH36z2vvkWamfxIiY8P4Vi2nvu2+BkcMdHn21\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-lrVGtngK/w/70EAfe2x+vykpsjVEqMyItlg6Sq7R8OZ9GTuDQbDgpWQB6VrVNyHf\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
}
},
{
@ -205,7 +205,7 @@
"scriptUrl": "./country-posters/country-posters.js",
"embed": {
"iframe": "<iframe src=\"./country-posters/country-posters-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-HfXx74Ds3LCiKxxnHZ5SJrETdhedH36z2vvkWamfxIiY8P4Vi2nvu2+BkcMdHn21\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-lrVGtngK/w/70EAfe2x+vykpsjVEqMyItlg6Sq7R8OZ9GTuDQbDgpWQB6VrVNyHf\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
}
}
]
@ -214,7 +214,7 @@
"bundle": "dashboard-plus-grid",
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
"output": "dx-maps/dashboard-plus-grid/dashboard-plus-grid.js",
"integrity": "sha384-HlacN5eFJy1tUz5BXycPsWdFNXVKpOHxk+s4HCXZs9AndFI4jrZb3H//UwKO51Vh",
"integrity": "sha384-5Yvna6wDcKVmPHD5Gc+ed3n+AAxx4a2hM4IwHIb08bus3WNjC5Eq9mC4lxH+T2VM",
"elements": [
"dashboard-plus-grid"
],
@ -234,7 +234,7 @@
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
"embed": {
"iframe": "<iframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-HlacN5eFJy1tUz5BXycPsWdFNXVKpOHxk+s4HCXZs9AndFI4jrZb3H//UwKO51Vh\" crossorigin=\"anonymous\"></script>\n<dashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></dashboard-plus-grid>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-5Yvna6wDcKVmPHD5Gc+ed3n+AAxx4a2hM4IwHIb08bus3WNjC5Eq9mC4lxH+T2VM\" crossorigin=\"anonymous\"></script>\n<dashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></dashboard-plus-grid>"
},
"instances": [
{
@ -258,7 +258,7 @@
"bundle": "demo-map",
"scriptUrl": "./demo-map/demo-map.js",
"output": "dx-maps/demo-map/demo-map.js",
"integrity": "sha384-rIt+T3/qQxlH3zz5VqNxK1ErdVopbVPPg7N5/7WGz3PctsMUU1rewalkbVhzstZW",
"integrity": "sha384-RYIVjadev77lt087CZrszNCsJvXu5And6+TP2XlacJEqu8c5HBIT6jASonE+eQv/",
"elements": [
"demo-map"
],
@ -274,7 +274,7 @@
"scriptUrl": "./demo-map/demo-map.js",
"embed": {
"iframe": "<iframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-rIt+T3/qQxlH3zz5VqNxK1ErdVopbVPPg7N5/7WGz3PctsMUU1rewalkbVhzstZW\" crossorigin=\"anonymous\"></script>\n<demo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></demo-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-RYIVjadev77lt087CZrszNCsJvXu5And6+TP2XlacJEqu8c5HBIT6jASonE+eQv/\" crossorigin=\"anonymous\"></script>\n<demo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></demo-map>"
},
"instances": [
{
@ -301,7 +301,7 @@
"bundle": "doxa-maps-spa",
"scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js",
"output": "dx-maps/doxa-maps-spa/doxa-maps-spa.js",
"integrity": "sha384-vh5LGB5teIGFVOe3BajgoozGs3UJ5uut6n3ZOYysf8IFBQiGXQnKrUDrmm7Hqk1d",
"integrity": "sha384-H4fyU/d2mBR+r3Hm4ehfktNXrz/wme+FP8cdOPnOja0bxjbg3do5mCUEytw1tIhg",
"elements": [
"doxa-maps-spa"
],
@ -326,7 +326,7 @@
"scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js",
"embed": {
"iframe": "<iframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-vh5LGB5teIGFVOe3BajgoozGs3UJ5uut6n3ZOYysf8IFBQiGXQnKrUDrmm7Hqk1d\" crossorigin=\"anonymous\"></script>\n<doxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-maps-spa>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-H4fyU/d2mBR+r3Hm4ehfktNXrz/wme+FP8cdOPnOja0bxjbg3do5mCUEytw1tIhg\" crossorigin=\"anonymous\"></script>\n<doxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-maps-spa>"
},
"instances": [
{
@ -353,7 +353,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-jnk8e3CY/POi6bsechON+HrKuz9RTWIThOmrGYLt83KW//yvp0ZuZ1QXKlzF7r1W",
"integrity": "sha384-LaJaS2ZBZ57JXMVLxHLt90+uFKcROA9c8pqWlTbaGt2Hh5ePD9YFP+BriQ4FfsjI",
"elements": [
"doxa-research-map"
],
@ -369,7 +369,7 @@
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
"embed": {
"iframe": "<iframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-jnk8e3CY/POi6bsechON+HrKuz9RTWIThOmrGYLt83KW//yvp0ZuZ1QXKlzF7r1W\" crossorigin=\"anonymous\"></script>\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-LaJaS2ZBZ57JXMVLxHLt90+uFKcROA9c8pqWlTbaGt2Hh5ePD9YFP+BriQ4FfsjI\" crossorigin=\"anonymous\"></script>\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>"
},
"instances": [
{
@ -395,7 +395,7 @@
"bundle": "doxa-simple-map",
"scriptUrl": "./doxa-simple-map/doxa-simple-map.js",
"output": "dx-maps/doxa-simple-map/doxa-simple-map.js",
"integrity": "sha384-/FKjfXZK+akXk4xNq9Sw9fA6SBHcPyy69hJksdyjpXmc6b39uDp1fSsV7UcxsL3w",
"integrity": "sha384-Dj0ddq/cMROS2UoShns7prDo9tp6ots7rL+VR7hKNHAmtHj5WSFey8GpuI++vnCp",
"elements": [
"doxa-map",
"doxa-simple-map"
@ -412,7 +412,7 @@
"scriptUrl": "./doxa-simple-map/doxa-simple-map.js",
"embed": {
"iframe": "<iframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-/FKjfXZK+akXk4xNq9Sw9fA6SBHcPyy69hJksdyjpXmc6b39uDp1fSsV7UcxsL3w\" crossorigin=\"anonymous\"></script>\n<doxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-Dj0ddq/cMROS2UoShns7prDo9tp6ots7rL+VR7hKNHAmtHj5WSFey8GpuI++vnCp\" crossorigin=\"anonymous\"></script>\n<doxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-map>"
},
"instances": [
{
@ -578,7 +578,7 @@
"bundle": "gospel-resources",
"scriptUrl": "./gospel-resources/gospel-resources.js",
"output": "dx-maps/gospel-resources/gospel-resources.js",
"integrity": "sha384-ZCIZCTsm9MIQwvJb8DplE+Gutaf94d6a5KJ+0vRCbMxabj6UuNC5xmbd2KCRAoWU",
"integrity": "sha384-YRYTqf2kKqFEp/qGDRpWJzUixBfFgSI4dbxgZgWTVX10KCF8eaQaLyER/1wIVqcm",
"elements": [
"gospel-resources-map"
],
@ -598,7 +598,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-ZCIZCTsm9MIQwvJb8DplE+Gutaf94d6a5KJ+0vRCbMxabj6UuNC5xmbd2KCRAoWU\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-YRYTqf2kKqFEp/qGDRpWJzUixBfFgSI4dbxgZgWTVX10KCF8eaQaLyER/1wIVqcm\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -612,7 +612,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-ZCIZCTsm9MIQwvJb8DplE+Gutaf94d6a5KJ+0vRCbMxabj6UuNC5xmbd2KCRAoWU\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-YRYTqf2kKqFEp/qGDRpWJzUixBfFgSI4dbxgZgWTVX10KCF8eaQaLyER/1wIVqcm\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -626,7 +626,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/gospel-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-ZCIZCTsm9MIQwvJb8DplE+Gutaf94d6a5KJ+0vRCbMxabj6UuNC5xmbd2KCRAoWU\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-YRYTqf2kKqFEp/qGDRpWJzUixBfFgSI4dbxgZgWTVX10KCF8eaQaLyER/1wIVqcm\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -640,7 +640,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-ZCIZCTsm9MIQwvJb8DplE+Gutaf94d6a5KJ+0vRCbMxabj6UuNC5xmbd2KCRAoWU\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-YRYTqf2kKqFEp/qGDRpWJzUixBfFgSI4dbxgZgWTVX10KCF8eaQaLyER/1wIVqcm\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -654,7 +654,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-ZCIZCTsm9MIQwvJb8DplE+Gutaf94d6a5KJ+0vRCbMxabj6UuNC5xmbd2KCRAoWU\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-YRYTqf2kKqFEp/qGDRpWJzUixBfFgSI4dbxgZgWTVX10KCF8eaQaLyER/1wIVqcm\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
}
]
@ -663,7 +663,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-ZtqolU/fkFHEDarCxOcfTODHvcEkqfugr2NVcIX2DefcotJAsEP31MUCYCAqVO84",
"integrity": "sha384-LxaLwoOuDS/l9mXOhgXDFswWzkr9hKsUW+khhnwQrhZl77YBEWKqQan3XwkL5yjs",
"elements": [
"my-upg-100-list-map"
],
@ -683,7 +683,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-ZtqolU/fkFHEDarCxOcfTODHvcEkqfugr2NVcIX2DefcotJAsEP31MUCYCAqVO84\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-LxaLwoOuDS/l9mXOhgXDFswWzkr9hKsUW+khhnwQrhZl77YBEWKqQan3XwkL5yjs\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
}
},
{
@ -697,7 +697,7 @@
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
"embed": {
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<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-ZtqolU/fkFHEDarCxOcfTODHvcEkqfugr2NVcIX2DefcotJAsEP31MUCYCAqVO84\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<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-LxaLwoOuDS/l9mXOhgXDFswWzkr9hKsUW+khhnwQrhZl77YBEWKqQan3XwkL5yjs\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
}
},
{
@ -711,7 +711,7 @@
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
"embed": {
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<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-ZtqolU/fkFHEDarCxOcfTODHvcEkqfugr2NVcIX2DefcotJAsEP31MUCYCAqVO84\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<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-LxaLwoOuDS/l9mXOhgXDFswWzkr9hKsUW+khhnwQrhZl77YBEWKqQan3XwkL5yjs\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
}
}
]
@ -781,7 +781,7 @@
"bundle": "plugin-studio",
"scriptUrl": "./plugin-studio/plugin-studio.js",
"output": "dx-maps/plugin-studio/plugin-studio.js",
"integrity": "sha384-Spd7F9g/F0o8q30DGRwDradZFf1txcflqEBeRg3Dh0Sgjsrl6VtL0lxyOdkHbKmC",
"integrity": "sha384-HhtL9AcFtnhONhJhgQWoTPxqmz+34gg0YUW6pMMot4wxDFg8IUT8QQqVpdplv1SD",
"elements": [
"plugin-studio"
],
@ -809,7 +809,7 @@
"scriptUrl": "./plugin-studio/plugin-studio.js",
"embed": {
"iframe": "<iframe src=\"./plugin-studio/plugin-studio/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=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-Spd7F9g/F0o8q30DGRwDradZFf1txcflqEBeRg3Dh0Sgjsrl6VtL0lxyOdkHbKmC\" crossorigin=\"anonymous\"></script>\n<plugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></plugin-studio>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-HhtL9AcFtnhONhJhgQWoTPxqmz+34gg0YUW6pMMot4wxDFg8IUT8QQqVpdplv1SD\" crossorigin=\"anonymous\"></script>\n<plugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></plugin-studio>"
},
"instances": [
{
@ -836,7 +836,7 @@
"bundle": "pplr-data-maps",
"scriptUrl": "./pplr-data-maps/pplr-data-maps.js",
"output": "dx-maps/pplr-data-maps/pplr-data-maps.js",
"integrity": "sha384-koAjGVq7VRimsFtaadj919IEV8AB0MLU2DEl4YYmdXhiJL/o1eviZa6pkyZaL9ur",
"integrity": "sha384-Eu+ZngrYWycZc36J6HZgugdq4gNnhtsPd/rzjaOj8OVmzVqJ5BJl7QYzI70V+T4f",
"elements": [
"pplr-data-maps"
],
@ -852,7 +852,7 @@
"scriptUrl": "./pplr-data-maps/pplr-data-maps.js",
"embed": {
"iframe": "<iframe src=\"./pplr-data-maps/pplr-data-maps/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./pplr-data-maps/pplr-data-maps.js\" integrity=\"sha384-koAjGVq7VRimsFtaadj919IEV8AB0MLU2DEl4YYmdXhiJL/o1eviZa6pkyZaL9ur\" crossorigin=\"anonymous\"></script>\n<pplr-data-maps profile-config='{\"profile\":\"pplr-data-maps\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></pplr-data-maps>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./pplr-data-maps/pplr-data-maps.js\" integrity=\"sha384-Eu+ZngrYWycZc36J6HZgugdq4gNnhtsPd/rzjaOj8OVmzVqJ5BJl7QYzI70V+T4f\" crossorigin=\"anonymous\"></script>\n<pplr-data-maps profile-config='{\"profile\":\"pplr-data-maps\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></pplr-data-maps>"
},
"bundle": "pplr-data-maps"
}
@ -862,7 +862,7 @@
"bundle": "prayer-walk-planner",
"scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js",
"output": "dx-maps/prayer-walk-planner/prayer-walk-planner.js",
"integrity": "sha384-AiCnyDN2sRD3tPNrntX3tCCTpOcX3Pm6HLAU9gYrGm6bd3PWcM0eOmB4AEIZ/kZ9",
"integrity": "sha384-8A4fz8QD1mfQqomQ7WuDzFWXQojs6WapA5sz9MFjuOYt3evO0uyOt4k8+9gAI8S7",
"elements": [
"prayer-walk-planner"
],
@ -878,7 +878,7 @@
"scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js",
"embed": {
"iframe": "<iframe src=\"./prayer-walk-planner/prayer-walk-planner/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-AiCnyDN2sRD3tPNrntX3tCCTpOcX3Pm6HLAU9gYrGm6bd3PWcM0eOmB4AEIZ/kZ9\" crossorigin=\"anonymous\"></script>\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-8A4fz8QD1mfQqomQ7WuDzFWXQojs6WapA5sz9MFjuOYt3evO0uyOt4k8+9gAI8S7\" crossorigin=\"anonymous\"></script>\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>"
}
}
]
@ -887,7 +887,7 @@
"bundle": "regions-dashboard",
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"output": "dx-maps/regions-dashboard/regions-dashboard.js",
"integrity": "sha384-3NuK0HRigjOJM6uHnTggHRRwCuj0zCczjJBGMZ/2R3v5Wr+bZ5pvgkZeUOoV6U6v",
"integrity": "sha384-HB9C6XNnYpQKHJsBAfZwsTARVedVeH8DycgtRjRCpelMin2Uw3tn7bBPjqAJCvXz",
"elements": [
"regions-dashboard"
],
@ -907,7 +907,7 @@
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"embed": {
"iframe": "<iframe src=\"./regions-dashboard/region-dashboards/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-3NuK0HRigjOJM6uHnTggHRRwCuj0zCczjJBGMZ/2R3v5Wr+bZ5pvgkZeUOoV6U6v\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-HB9C6XNnYpQKHJsBAfZwsTARVedVeH8DycgtRjRCpelMin2Uw3tn7bBPjqAJCvXz\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
}
},
{
@ -921,7 +921,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-3NuK0HRigjOJM6uHnTggHRRwCuj0zCczjJBGMZ/2R3v5Wr+bZ5pvgkZeUOoV6U6v\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-HB9C6XNnYpQKHJsBAfZwsTARVedVeH8DycgtRjRCpelMin2Uw3tn7bBPjqAJCvXz\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
}
},
{
@ -935,7 +935,7 @@
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"embed": {
"iframe": "<iframe src=\"./regions-dashboard/regions-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-3NuK0HRigjOJM6uHnTggHRRwCuj0zCczjJBGMZ/2R3v5Wr+bZ5pvgkZeUOoV6U6v\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-HB9C6XNnYpQKHJsBAfZwsTARVedVeH8DycgtRjRCpelMin2Uw3tn7bBPjqAJCvXz\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
}
}
]
@ -944,7 +944,7 @@
"bundle": "research-dashboard",
"scriptUrl": "./research-dashboard/research-dashboard.js",
"output": "dx-maps/research-dashboard/research-dashboard.js",
"integrity": "sha384-lqO2i0ijY3WSl2YU5GU1dK707SDPg7JGuKEYPzJEEVoPYYNyijAarGF+Oa6CgM84",
"integrity": "sha384-ShfZKnAx0GAa75BzrdNrY1GGbVJwu8YqKs9Br9hu/BOpTyorqWgHyP9IxTThwX/W",
"elements": [
"research-dashboard-map"
],
@ -960,7 +960,7 @@
"scriptUrl": "./research-dashboard/research-dashboard.js",
"embed": {
"iframe": "<iframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-lqO2i0ijY3WSl2YU5GU1dK707SDPg7JGuKEYPzJEEVoPYYNyijAarGF+Oa6CgM84\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-dashboard-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-ShfZKnAx0GAa75BzrdNrY1GGbVJwu8YqKs9Br9hu/BOpTyorqWgHyP9IxTThwX/W\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-dashboard-map>"
},
"bundle": "research-dashboard"
}
@ -1058,7 +1058,7 @@
"bundle": "upg-neighbor",
"scriptUrl": "./upg-neighbor/upg-neighbor.js",
"output": "dx-maps/upg-neighbor/upg-neighbor.js",
"integrity": "sha384-Qs7iIl9Ai7ILa5jY8FihoO/1DYiCkY+pgbhYAJxuku2WyJaf8Ku5XTw+y+EMy/Bz",
"integrity": "sha384-W9AmNdTFgOwDMnL1FwjdWfSbICDyXGmokYp8zs7qX9C6zgCN7P7MOZ43lAd6LjMT",
"elements": [
"upg-neighbor"
],
@ -1074,7 +1074,7 @@
"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": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-Qs7iIl9Ai7ILa5jY8FihoO/1DYiCkY+pgbhYAJxuku2WyJaf8Ku5XTw+y+EMy/Bz\" crossorigin=\"anonymous\"></script>\n<upg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></upg-neighbor>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\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<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-W9AmNdTFgOwDMnL1FwjdWfSbICDyXGmokYp8zs7qX9C6zgCN7P7MOZ43lAd6LjMT\" crossorigin=\"anonymous\"></script>\n<upg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></upg-neighbor>"
},
"instances": [
{
@ -1157,7 +1157,7 @@
"bundle": "wall-of-people-groups",
"scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js",
"output": "dx-maps/wall-of-people-groups/wall-of-people-groups.js",
"integrity": "sha384-yhccU/HS9XYlzAwTltjjepb9Y4yvm0Y9ghanGK7exTIcRv0Ozpe7CLlVZAYv8d6K",
"integrity": "sha384-FbJCppmNY2muqKcM4n0jqFidLDHCB1f5VwKyR6dRt8L0RkU1nHH+r7qVcQFRyuEk",
"elements": [
"wall-of-people-groups"
],
@ -1173,7 +1173,7 @@
"scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js",
"embed": {
"iframe": "<iframe src=\"./wall-of-people-groups/wall-of-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./wall-of-people-groups/wall-of-people-groups.js\" integrity=\"sha384-yhccU/HS9XYlzAwTltjjepb9Y4yvm0Y9ghanGK7exTIcRv0Ozpe7CLlVZAYv8d6K\" crossorigin=\"anonymous\"></script>\n<wall-of-people-groups profile-config='{\"profile\":\"wall-of-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></wall-of-people-groups>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./wall-of-people-groups/wall-of-people-groups.js\" integrity=\"sha384-FbJCppmNY2muqKcM4n0jqFidLDHCB1f5VwKyR6dRt8L0RkU1nHH+r7qVcQFRyuEk\" crossorigin=\"anonymous\"></script>\n<wall-of-people-groups profile-config='{\"profile\":\"wall-of-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></wall-of-people-groups>"
},
"bundle": "wall-of-people-groups"
}

File diff suppressed because one or more lines are too long

View file

@ -36,7 +36,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-jnk8e3CY/POi6bsechON+HrKuz9RTWIThOmrGYLt83KW//yvp0ZuZ1QXKlzF7r1W" crossorigin="anonymous"></script>
<script src="../doxa-research-map.js" integrity="sha384-LaJaS2ZBZ57JXMVLxHLt90+uFKcROA9c8pqWlTbaGt2Hh5ePD9YFP+BriQ4FfsjI" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -33,7 +33,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-jnk8e3CY/POi6bsechON+HrKuz9RTWIThOmrGYLt83KW//yvp0ZuZ1QXKlzF7r1W" crossorigin="anonymous"></script>
<script src="../../doxa-research-map.js" integrity="sha384-LaJaS2ZBZ57JXMVLxHLt90+uFKcROA9c8pqWlTbaGt2Hh5ePD9YFP+BriQ4FfsjI" 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

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../../doxa-simple-map.js" integrity="sha384-/FKjfXZK+akXk4xNq9Sw9fA6SBHcPyy69hJksdyjpXmc6b39uDp1fSsV7UcxsL3w" crossorigin="anonymous"></script>
<script src="../../doxa-simple-map.js" integrity="sha384-Dj0ddq/cMROS2UoShns7prDo9tp6ots7rL+VR7hKNHAmtHj5WSFey8GpuI++vnCp" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../../doxa-simple-map.js" integrity="sha384-/FKjfXZK+akXk4xNq9Sw9fA6SBHcPyy69hJksdyjpXmc6b39uDp1fSsV7UcxsL3w" crossorigin="anonymous"></script>
<script src="../../doxa-simple-map.js" integrity="sha384-Dj0ddq/cMROS2UoShns7prDo9tp6ots7rL+VR7hKNHAmtHj5WSFey8GpuI++vnCp" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../doxa-simple-map.js" integrity="sha384-/FKjfXZK+akXk4xNq9Sw9fA6SBHcPyy69hJksdyjpXmc6b39uDp1fSsV7UcxsL3w" crossorigin="anonymous"></script>
<script src="../doxa-simple-map.js" integrity="sha384-Dj0ddq/cMROS2UoShns7prDo9tp6ots7rL+VR7hKNHAmtHj5WSFey8GpuI++vnCp" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../../doxa-simple-map.js" integrity="sha384-/FKjfXZK+akXk4xNq9Sw9fA6SBHcPyy69hJksdyjpXmc6b39uDp1fSsV7UcxsL3w" crossorigin="anonymous"></script>
<script src="../../doxa-simple-map.js" integrity="sha384-Dj0ddq/cMROS2UoShns7prDo9tp6ots7rL+VR7hKNHAmtHj5WSFey8GpuI++vnCp" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

Some files were not shown because too many files have changed in this diff Show more