feat(i18n): the poster wall's own labels now translate

Last tick made the 11 locales selectable. That immediately exposed what was
sitting behind the door: the wall's labels — Poster Map, Prayer List, Card Deck,
Print Options, Show on map, Close — were hardcoded English, so a reader who
chose Spanish got Spanish page furniture around English buttons.

All six are now keys in buttons.json, translated across all 11 locales, plus the
aria-label which interpolates the item name rather than concatenating it.

★ AND IT CLOSED TWO OLDER ORPHANS. buttons.json had 21 keys in English and 19
everywhere else: `share` and `shareSteps` — the Share button's title and its
five-step explainer, rendered on EVERY map. Ten locales had been shipping an
English Share button since those keys were added, invisibly, because vue-i18n
falls back to English rather than erroring. Both are translated now.

Verified in a real browser across four languages: the wall's buttons read
"Lista de oración | Mapa del cartel" under ?lang=es, "Liste de prière | Carte de
l'affiche" under ?lang=fr, and the Arabic text renders with dir=rtl — zero page
errors in each. The Share button's title follows too: Compartir, Поделиться.

The wall's `t` and `locale` come from the SAME useI18n instance, so a label and
a printed card deck can never disagree about which language the reader chose.
This commit is contained in:
doxa-maps-88655c70 2026-09-24 05:43:21 +00:00
parent 24a4520bc0
commit 7fd1c6bcd1
23 changed files with 459 additions and 299 deletions

View file

@ -228,7 +228,10 @@ async function exportPoster(item) {
// than offering an action that cannot work.
// The wall follows the app's locale: the card deck and its QR codes are localised,
// and packet-strings.json falls back per key.
const { locale: wallLocale } = useI18n()
// `t` for the wall's own labels, `locale` for the card deck's language. Both come
// from the SAME instance so a label and a printed deck can never disagree about
// which language the reader chose.
const { t, locale: wallLocale } = useI18n()
// ⚠ ONE exportState, not two. The composable owns a ref of its own; if the HUD
// keeps rendering the wall's while the print actions write to the composable's, a
// card-deck print shows NO progress and its errors vanish silently — the mechanism
@ -440,10 +443,10 @@ useShadowStyles(
:class="{ 'is-last': lastShown === item.id }" :data-list-id="item.id">
<button type="button" class="tape tape-h"
:aria-label="`Show ${item.label} on the map`" @click="showOnMap(item)">
:aria-label="t('buttons.showOnMapAria', { label: item.label })" @click="showOnMap(item)">
<span class="hcount">{{ item.count }} {{ unit }}</span>
<span class="hsep">·</span>
<span class="hlabel">Show on map</span>
<span class="hlabel">{{ t('buttons.showOnMap') }}</span>
</button>
<div class="main">
@ -465,14 +468,14 @@ useShadowStyles(
</div>
<fieldset class="tape pfs">
<legend>Print Options</legend>
<button type="button" class="pbtn" @click="downloadPacket(item)">Prayer List</button>
<legend>{{ t('buttons.printOptions') }}</legend>
<button type="button" class="pbtn" @click="downloadPacket(item)">{{ t('buttons.prayerList') }}</button>
<!-- CARD DECK — only when this wall can supply rows. A button that
cannot work is worse than an absent one, so it is gated on the
records provider rather than shown and then failing at click. -->
<button v-if="canPrintRows" type="button" class="pbtn"
@click="prints.printCardDeck(item)">Card Deck</button>
<button type="button" class="pbtn" @click="exportPoster(item)">Poster Map</button>
@click="prints.printCardDeck(item)">{{ t('buttons.cardDeck') }}</button>
<button type="button" class="pbtn" @click="exportPoster(item)">{{ t('buttons.posterMap') }}</button>
</fieldset>
</div>
</div>
@ -485,12 +488,12 @@ useShadowStyles(
<template v-if="exportState.phase === 'error'">
<div class="modal-err">{{ exportState.message }}</div>
<button type="button" class="modal-btn" @click="dismissExport">Close</button>
<button type="button" class="modal-btn" @click="dismissExport">{{ t('buttons.close') }}</button>
</template>
<template v-else-if="exportState.phase === 'soon'">
<div class="modal-soon">{{ exportState.message }}</div>
<button type="button" class="modal-btn" @click="dismissExport">Close</button>
<button type="button" class="modal-btn" @click="dismissExport">{{ t('buttons.close') }}</button>
</template>
<template v-else>

View file

@ -21,5 +21,20 @@
"normal": "عادي",
"fast": "سريع"
},
"shareEmbed": "مشاركة وتضمين"
"shareEmbed": "مشاركة وتضمين",
"posterMap": "خريطة الملصق",
"prayerList": "قائمة الصلاة",
"cardDeck": "مجموعة البطاقات",
"printOptions": "خيارات الطباعة",
"showOnMap": "أظهر على الخريطة",
"close": "إغلاق",
"showOnMapAria": "أظهر {label} على الخريطة",
"share": "مشاركة",
"shareSteps": [
"ضع هذه الخريطة على موقعك",
"أعدّ قائمة بمواقع الويب في مدينتك",
"علّمهم أن يضعوها أيضًا",
"علّمهم أن يعلّموا غيرهم وضعها",
"لنكثر الخرائط في كل مكان ليسوع!"
]
}

View file

@ -21,5 +21,20 @@
"normal": "Normal",
"fast": "Schnell"
},
"shareEmbed": "Teilen und einbetten"
"shareEmbed": "Teilen und einbetten",
"posterMap": "Posterkarte",
"prayerList": "Gebetsliste",
"cardDeck": "Kartenset",
"printOptions": "Druckoptionen",
"showOnMap": "Auf der Karte zeigen",
"close": "Schließen",
"showOnMapAria": "{label} auf der Karte zeigen",
"share": "Teilen",
"shareSteps": [
"Binde diese Karte auf deiner Website ein",
"Erstelle eine Liste der Websites in deiner Stadt",
"Zeige ihnen, wie sie sie ebenfalls einbinden",
"Zeige ihnen, wie sie es anderen beibringen",
"Lasst uns Karten überall vermehren – für Jesus!"
]
}

View file

@ -29,5 +29,12 @@
"Train them to train others to embed it too",
"Multiply maps everywhere for Jesus!"
],
"share": "Share"
"share": "Share",
"posterMap": "Poster Map",
"prayerList": "Prayer List",
"cardDeck": "Card Deck",
"printOptions": "Print Options",
"showOnMap": "Show on map",
"close": "Close",
"showOnMapAria": "Show {label} on the map"
}

View file

@ -21,5 +21,20 @@
"normal": "Normal",
"fast": "Rápida"
},
"shareEmbed": "Compartir e incrustar"
"shareEmbed": "Compartir e incrustar",
"posterMap": "Mapa del cartel",
"prayerList": "Lista de oración",
"cardDeck": "Baraja de tarjetas",
"printOptions": "Opciones de impresión",
"showOnMap": "Ver en el mapa",
"close": "Cerrar",
"showOnMapAria": "Ver {label} en el mapa",
"share": "Compartir",
"shareSteps": [
"Inserta este mapa en tu sitio",
"Haz una lista de los sitios web de tu ciudad",
"Enséñales a insertarlo también",
"Enséñales a enseñar a otros a insertarlo",
"¡Multiplica los mapas por todas partes para Jesús!"
]
}

View file

@ -21,5 +21,20 @@
"normal": "Normale",
"fast": "Rapide"
},
"shareEmbed": "Partager et intégrer"
"shareEmbed": "Partager et intégrer",
"posterMap": "Carte de l'affiche",
"prayerList": "Liste de prière",
"cardDeck": "Jeu de cartes",
"printOptions": "Options d'impression",
"showOnMap": "Voir sur la carte",
"close": "Fermer",
"showOnMapAria": "Voir {label} sur la carte",
"share": "Partager",
"shareSteps": [
"Intégrez cette carte à votre site",
"Dressez la liste des sites web de votre ville",
"Apprenez-leur à l’intégrer aussi",
"Apprenez-leur à former d’autres personnes à l’intégrer",
"Multiplions les cartes partout pour Jésus !"
]
}

View file

@ -21,5 +21,20 @@
"normal": "सामान्य",
"fast": "तेज़"
},
"shareEmbed": "साझा करें और एम्बेड करें"
"shareEmbed": "साझा करें और एम्बेड करें",
"posterMap": "पोस्टर मानचित्र",
"prayerList": "प्रार्थना सूची",
"cardDeck": "कार्ड सेट",
"printOptions": "छपाई विकल्प",
"showOnMap": "मानचित्र पर देखें",
"close": "बंद करें",
"showOnMapAria": "{label} को मानचित्र पर देखें",
"share": "साझा करें",
"shareSteps": [
"इस मानचित्र को अपनी वेबसाइट पर लगाएँ",
"अपने शहर की वेबसाइटों की सूची बनाएँ",
"उन्हें भी इसे लगाना सिखाएँ",
"उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ",
"यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"
]
}

View file

@ -21,5 +21,20 @@
"normal": "Normale",
"fast": "Veloce"
},
"shareEmbed": "Condividi e incorpora"
"shareEmbed": "Condividi e incorpora",
"posterMap": "Mappa del poster",
"prayerList": "Lista di preghiera",
"cardDeck": "Mazzo di carte",
"printOptions": "Opzioni di stampa",
"showOnMap": "Mostra sulla mappa",
"close": "Chiudi",
"showOnMapAria": "Mostra {label} sulla mappa",
"share": "Condividi",
"shareSteps": [
"Incorpora questa mappa nel tuo sito",
"Fai un elenco dei siti web della tua città",
"Insegna loro a incorporarla a loro volta",
"Insegna loro a formare altri a incorporarla",
"Moltiplichiamo le mappe ovunque per Gesù!"
]
}

View file

@ -21,5 +21,20 @@
"normal": "Normal",
"fast": "Rápida"
},
"shareEmbed": "Partilhar e incorporar"
"shareEmbed": "Partilhar e incorporar",
"posterMap": "Mapa do cartaz",
"prayerList": "Lista de oração",
"cardDeck": "Baralho de cartões",
"printOptions": "Opções de impressão",
"showOnMap": "Ver no mapa",
"close": "Fechar",
"showOnMapAria": "Ver {label} no mapa",
"share": "Partilhar",
"shareSteps": [
"Incorpore este mapa no seu site",
"Faça uma lista dos sites da sua cidade",
"Ensine-os a incorporá-lo também",
"Ensine-os a ensinar outros a incorporá-lo",
"Multipliquemos mapas por toda a parte para Jesus!"
]
}

View file

@ -21,5 +21,20 @@
"normal": "Normal",
"fast": "Rapid"
},
"shareEmbed": "Partajează și încorporează"
"shareEmbed": "Partajează și încorporează",
"posterMap": "Harta afișului",
"prayerList": "Listă de rugăciune",
"cardDeck": "Pachet de cartonașe",
"printOptions": "Opțiuni de tipărire",
"showOnMap": "Arată pe hartă",
"close": "Închide",
"showOnMapAria": "Arată {label} pe hartă",
"share": "Distribuie",
"shareSteps": [
"Încorporează această hartă pe site-ul tău",
"Fă o listă cu site-urile din orașul tău",
"Învață-i să o încorporeze și ei",
"Învață-i să îi formeze pe alții să o încorporeze",
"Să multiplicăm hărți pretutindeni pentru Isus!"
]
}

View file

@ -21,5 +21,20 @@
"normal": "Нормально",
"fast": "Быстро"
},
"shareEmbed": "Поделиться и встроить"
"shareEmbed": "Поделиться и встроить",
"posterMap": "Карта плаката",
"prayerList": "Молитвенный список",
"cardDeck": "Набор карточек",
"printOptions": "Параметры печати",
"showOnMap": "Показать на карте",
"close": "Закрыть",
"showOnMapAria": "Показать {label} на карте",
"share": "Поделиться",
"shareSteps": [
"Разместите эту карту на своём сайте",
"Составьте список сайтов вашего города",
"Научите их тоже размещать её",
"Научите их учить других размещать её",
"Умножим карты повсюду для Иисуса!"
]
}

View file

@ -21,5 +21,20 @@
"normal": "正常",
"fast": "快"
},
"shareEmbed": "分享与嵌入"
"shareEmbed": "分享与嵌入",
"posterMap": "海报地图",
"prayerList": "禱告名單",
"cardDeck": "禱告卡組",
"printOptions": "列印選項",
"showOnMap": "在地圖上顯示",
"close": "關閉",
"showOnMapAria": "在地圖上顯示 {label}",
"share": "分享",
"shareSteps": [
"把這張地圖嵌入你的網站",
"列出你城市裡的網站",
"教他們也嵌入這張地圖",
"教他們去教別人嵌入",
"為耶穌讓地圖遍地繁增!"
]
}

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
<script src="../country-posters.js" integrity="sha384-Ppl/V7mh8jUusU6h6BZaB6h7vtZieGKH0l+JawrXX0m0mv6qpCw7HApSUpgc22Qz" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-vOWpOX9VTEOH8G8m/+4PI4/+ENAKsbEpKPGL1jtlWp5xWQRNKK2+Ttl2YtxrJViv" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
<script src="../country-posters.js" integrity="sha384-Ppl/V7mh8jUusU6h6BZaB6h7vtZieGKH0l+JawrXX0m0mv6qpCw7HApSUpgc22Qz" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-vOWpOX9VTEOH8G8m/+4PI4/+ENAKsbEpKPGL1jtlWp5xWQRNKK2+Ttl2YtxrJViv" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
<script src="../country-posters.js" integrity="sha384-Ppl/V7mh8jUusU6h6BZaB6h7vtZieGKH0l+JawrXX0m0mv6qpCw7HApSUpgc22Qz" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-vOWpOX9VTEOH8G8m/+4PI4/+ENAKsbEpKPGL1jtlWp5xWQRNKK2+Ttl2YtxrJViv" 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

File diff suppressed because one or more lines are too long

View file

@ -154,7 +154,7 @@
"bundle": "country-posters",
"scriptUrl": "./country-posters/country-posters.js",
"output": "doxa-maps/country-posters/country-posters.js",
"integrity": "sha384-Ppl/V7mh8jUusU6h6BZaB6h7vtZieGKH0l+JawrXX0m0mv6qpCw7HApSUpgc22Qz",
"integrity": "sha384-vOWpOX9VTEOH8G8m/+4PI4/+ENAKsbEpKPGL1jtlWp5xWQRNKK2+Ttl2YtxrJViv",
"elements": [
"country-posters-map"
],
@ -174,7 +174,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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-Ppl/V7mh8jUusU6h6BZaB6h7vtZieGKH0l+JawrXX0m0mv6qpCw7HApSUpgc22Qz\" 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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-vOWpOX9VTEOH8G8m/+4PI4/+ENAKsbEpKPGL1jtlWp5xWQRNKK2+Ttl2YtxrJViv\" 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>"
}
},
{
@ -188,7 +188,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-Ppl/V7mh8jUusU6h6BZaB6h7vtZieGKH0l+JawrXX0m0mv6qpCw7HApSUpgc22Qz\" 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-vOWpOX9VTEOH8G8m/+4PI4/+ENAKsbEpKPGL1jtlWp5xWQRNKK2+Ttl2YtxrJViv\" 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>"
}
},
{
@ -202,7 +202,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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-Ppl/V7mh8jUusU6h6BZaB6h7vtZieGKH0l+JawrXX0m0mv6qpCw7HApSUpgc22Qz\" 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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-vOWpOX9VTEOH8G8m/+4PI4/+ENAKsbEpKPGL1jtlWp5xWQRNKK2+Ttl2YtxrJViv\" 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>"
}
}
]
@ -255,7 +255,7 @@
"bundle": "demo-map",
"scriptUrl": "./demo-map/demo-map.js",
"output": "doxa-maps/demo-map/demo-map.js",
"integrity": "sha384-+aEpWfFa/yJvg6qOQxu7t9o1mAe++yST9CTjaF5UTsZ9pCzRrl5BE6gm+QJ3AP9D",
"integrity": "sha384-2ItGdUG5OW9uHN4ldNF6To6hvTy3XGdFnJrJenyyqShBjIi2NgcyXTyhYu2mttHH",
"elements": [
"demo-map"
],
@ -271,7 +271,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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-+aEpWfFa/yJvg6qOQxu7t9o1mAe++yST9CTjaF5UTsZ9pCzRrl5BE6gm+QJ3AP9D\" 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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-2ItGdUG5OW9uHN4ldNF6To6hvTy3XGdFnJrJenyyqShBjIi2NgcyXTyhYu2mttHH\" 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": [
{
@ -349,7 +349,7 @@
"bundle": "doxa-research-map",
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
"output": "doxa-maps/doxa-research-map/doxa-research-map.js",
"integrity": "sha384-QHTlLYAT2mWYJuKfQqitHlB5ytrK32gq5yyzVSPO+msrvxepJin2TIrpzYVoICEd",
"integrity": "sha384-ycDpVdTjizEUxzsO+lQpTagpdLenXlLnvFQ/juKcWeazo2Qvo1B1QYpDxykzA9Zp",
"elements": [
"doxa-research-map"
],
@ -365,7 +365,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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-QHTlLYAT2mWYJuKfQqitHlB5ytrK32gq5yyzVSPO+msrvxepJin2TIrpzYVoICEd\" 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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-ycDpVdTjizEUxzsO+lQpTagpdLenXlLnvFQ/juKcWeazo2Qvo1B1QYpDxykzA9Zp\" 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": [
{
@ -391,7 +391,7 @@
"bundle": "doxa-simple-map",
"scriptUrl": "./doxa-simple-map/doxa-simple-map.js",
"output": "doxa-maps/doxa-simple-map/doxa-simple-map.js",
"integrity": "sha384-wFf3nEfDtX5mS6fVXUzTxi276eyj+V8cwlQGePMqoL9D4HzVmDta4Zns5oXv25HP",
"integrity": "sha384-8drw8bByutNX9KwjTP4nrgMqtlu7xgrqxK6ebWLh8VTWAYC39TQ3d/8qwBxhPJMC",
"elements": [
"doxa-map",
"doxa-simple-map"
@ -408,7 +408,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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-wFf3nEfDtX5mS6fVXUzTxi276eyj+V8cwlQGePMqoL9D4HzVmDta4Zns5oXv25HP\" 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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-8drw8bByutNX9KwjTP4nrgMqtlu7xgrqxK6ebWLh8VTWAYC39TQ3d/8qwBxhPJMC\" 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": [
{
@ -856,7 +856,7 @@
"bundle": "regions-dashboard",
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"output": "doxa-maps/regions-dashboard/regions-dashboard.js",
"integrity": "sha384-uvPZ4BQAvplepAmw06+2BTgp66xq2yCnONpKwch8NPwHtS2iuzCGMR2to5vFN441",
"integrity": "sha384-A/hKycxgsB3ko73EEe5InFYCOTrMVwU7rsuuidyI/lQpT3kcaV1W7WaOVCT+UqiQ",
"elements": [
"regions-dashboard"
],
@ -876,7 +876,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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-uvPZ4BQAvplepAmw06+2BTgp66xq2yCnONpKwch8NPwHtS2iuzCGMR2to5vFN441\" 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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-A/hKycxgsB3ko73EEe5InFYCOTrMVwU7rsuuidyI/lQpT3kcaV1W7WaOVCT+UqiQ\" 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>"
}
},
{
@ -890,7 +890,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-uvPZ4BQAvplepAmw06+2BTgp66xq2yCnONpKwch8NPwHtS2iuzCGMR2to5vFN441\" 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-A/hKycxgsB3ko73EEe5InFYCOTrMVwU7rsuuidyI/lQpT3kcaV1W7WaOVCT+UqiQ\" 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>"
}
},
{
@ -904,7 +904,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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-uvPZ4BQAvplepAmw06+2BTgp66xq2yCnONpKwch8NPwHtS2iuzCGMR2to5vFN441\" 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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-A/hKycxgsB3ko73EEe5InFYCOTrMVwU7rsuuidyI/lQpT3kcaV1W7WaOVCT+UqiQ\" 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>"
}
}
]

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
<script src="../regions-dashboard.js" integrity="sha384-uvPZ4BQAvplepAmw06+2BTgp66xq2yCnONpKwch8NPwHtS2iuzCGMR2to5vFN441" crossorigin="anonymous"></script>
<script src="../regions-dashboard.js" integrity="sha384-A/hKycxgsB3ko73EEe5InFYCOTrMVwU7rsuuidyI/lQpT3kcaV1W7WaOVCT+UqiQ" 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

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
<script src="../regions-dashboard.js" integrity="sha384-uvPZ4BQAvplepAmw06+2BTgp66xq2yCnONpKwch8NPwHtS2iuzCGMR2to5vFN441" crossorigin="anonymous"></script>
<script src="../regions-dashboard.js" integrity="sha384-A/hKycxgsB3ko73EEe5InFYCOTrMVwU7rsuuidyI/lQpT3kcaV1W7WaOVCT+UqiQ" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
<script src="../regions-dashboard.js" integrity="sha384-uvPZ4BQAvplepAmw06+2BTgp66xq2yCnONpKwch8NPwHtS2iuzCGMR2to5vFN441" crossorigin="anonymous"></script>
<script src="../regions-dashboard.js" integrity="sha384-A/hKycxgsB3ko73EEe5InFYCOTrMVwU7rsuuidyI/lQpT3kcaV1W7WaOVCT+UqiQ" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order: