diff --git a/plugin-designs/gospel-resources/resources-map.vue b/plugin-designs/gospel-resources/resources-map.vue index eee1f67e7..cc1dc8579 100644 --- a/plugin-designs/gospel-resources/resources-map.vue +++ b/plugin-designs/gospel-resources/resources-map.vue @@ -920,6 +920,45 @@ const countryStats = computed(() => { } }) +/** + * ═══ PRAYER IS A MOVE, NOT A STATISTIC ════════════════════════════════════════════════════ + * + * A country click ended in numbers. Every one of them describes work somebody else has to fund, + * staff or translate — and the one thing the reader of a country can do THIS MINUTE was reachable + * only by guessing which pin to tap. So the country sheet now ends in a move: the largest group + * here that has nothing AND nobody praying, with its prayer page one tap away. + * + * ⚠ THE DENOMINATOR IS STATED BECAUSE IT IS NOT THE COUNTRY. doxa.life publishes a page for + * 1,723 of the 12,379 groups on this map, so "nobody praying" can only ever be said of the + * groups that HAVE a page — never of the country. Rendering a bare count would read as "14 groups + * in this country have nobody praying", which this data cannot support. It is shown as N of M. + * + * ⚠ ZERO IS ZERO ON doxa.life's COUNTER, which is what the gap tab already says in full. It is + * not a claim that nobody in the world prays for these people — an unknowable thing. + */ +const countryPrayer = computed(() => { + const g = groupsForCountry.value + let pages = 0, noPray = 0, noPrayPeople = 0 + let firstMove = null, firstMovePop = -1 + for (const r of g) { + const e = prayIndex.value[prayKey(r.people_group, r._iso3 || selected.value?.iso3 || '')] + if (!e) continue + pages++ + if (e.praying > 0) continue + noPray++ + noPrayPeople += r.population || 0 + /* NEED FIRST, THEN SIZE, and India shows what that costs: of its 601 groups with nobody + praying only FIVE have nothing at all, so this offers Malai Pandaram at 8,700 people ahead + of Badhai at 851,000 — who already have Scripture and film. That is the map's own ladder + applied to prayer rather than a second, quieter ranking, and the sub-label says "nothing + found" so the reader can see which rung they were handed. Where every unprayed-for group + here has something, the largest of those is offered instead. */ + const rank = (hasAny(r) ? 0 : 1e12) + (r.population || 0) + if (rank > firstMovePop) { firstMovePop = rank; firstMove = { ...e, group: r } } + } + return { pages, noPray, noPrayPeople, firstMove } +}) + /* ITEM 2 — resources in a group's OWN language, joined on the EXACT ISO 639-3 code. * Never a name match: language names collide and drift ("Arabic" is dozens of * distinct codes), and a fuzzy hit here would put the wrong scripture in someone's @@ -2630,6 +2669,12 @@ useShadowStyles( rows underneath already showed the third. -->
{{ t('gospel.stat.haveAudio') }}{{ fmt(countryStats.audio) }}
{{ t('gospel.stat.signLanguages') }}{{ fmt(countryStats.sign) }}
+ +
+ {{ t('gospel.tabs.noprayer') }} + {{ fmt(countryPrayer.noPray) }} / {{ fmt(countryPrayer.pages) }} +
+ + {{ t('gospel.sheet.pray') }} {{ countryPrayer.firstMove.n }} + {{ fmt(countryPrayer.firstMove.group.population || 0) }} + people + + \n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -640,7 +640,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -654,7 +654,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] diff --git a/public/dx-maps/gospel-resources/charts/index.html b/public/dx-maps/gospel-resources/charts/index.html index 4c0249102..0cce96c82 100644 --- a/public/dx-maps/gospel-resources/charts/index.html +++ b/public/dx-maps/gospel-resources/charts/index.html @@ -32,7 +32,7 @@ - + - + - + - + - + \n\n" + "script": "\n\n" } }, { @@ -612,7 +612,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -626,7 +626,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -640,7 +640,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -654,7 +654,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ]