diff --git a/internal/check-poster-action-print.mjs b/internal/check-poster-action-print.mjs
index 36ca3363..070ded01 100644
--- a/internal/check-poster-action-print.mjs
+++ b/internal/check-poster-action-print.mjs
@@ -18,6 +18,9 @@ const fail = (m) => { bad++; console.log(' FAIL ' + m) }
const wall = readFileSync(join(ROOT, 'library/components/poster/PosterWall.vue'), 'utf8')
if (!/posterAction:\s*\{\s*type:\s*String,\s*default:\s*'print'\s*\}/.test(wall)) fail("PosterWall's posterAction default is not 'print'")
+// PosterDialog too (gospel's audit, card 7): its Render button only ever downloaded.
+const dialog = readFileSync(join(ROOT, 'library/components/poster/PosterDialog.vue'), 'utf8')
+if (!/action:\s*\{\s*type:\s*String,\s*default:\s*'print'\s*\}/.test(dialog)) fail("PosterDialog's action default is not 'print'")
const walk = (d, out = []) => {
for (const n of readdirSync(d)) {
@@ -28,10 +31,10 @@ const walk = (d, out = []) => {
}
return out
}
-const USE = /posterAction\s*[=:]\s*["']download["']|:poster-action\s*=\s*["']'download'["']|poster-action\s*=\s*["']download["']/
+const USE = /(?:posterAction|]*\baction)\s*[=:]\s*["']download["']|:poster-action\s*=\s*["']'download'["']|poster-action\s*=\s*["']download["']/
let optIns = 0
for (const f of [...walk(join(ROOT, 'plugin-designs')), ...walk(join(ROOT, 'library'))]) {
- if (f.endsWith('PosterWall.vue')) continue
+ if (f.endsWith('PosterWall.vue') || f.endsWith('PosterDialog.vue')) continue
const lines = readFileSync(f, 'utf8').split('\n')
lines.forEach((l, i) => {
if (!USE.test(l)) return
diff --git a/library/components/legends/SemanticTreeLegend.vue b/library/components/legends/SemanticTreeLegend.vue
index 8d8f1df5..823d617b 100644
--- a/library/components/legends/SemanticTreeLegend.vue
+++ b/library/components/legends/SemanticTreeLegend.vue
@@ -1188,8 +1188,8 @@ useShadowStyles(`
family/group. Keyboard-focusable button with aria-label; Enter/
Space activate natively. -->
@@ -140,51 +140,51 @@
overflow: hidden;
">
- Language: ${bt(f.language||"Unknown")}
+ Language: ${$t(h.language||"Unknown")}
Family:
-
- ${bt(f.languageFamily||"Unknown")}
+
+ ${$t(h.languageFamily||"Unknown")}
- ${f.population?`
Population: ${bt(f.population)}
`:""}
- ${f.description?`
${bt(f.description)}
`:""}
+ ${h.population?`
Population: ${$t(h.population)}
`:""}
+ ${h.description?`
${$t(h.description)}
`:""}
- `}function u(f){const k=f.iso_3166_1_alpha_3||"",p=f["name_"+((i==null?void 0:i.value)||"en")]||f.name_en||f.name||k,_=a(),x=k.toUpperCase(),C=_.filter(ue=>{const B=(ue.countryIso||ue.country||"").toUpperCase();return B&&B===x}),W=C.length,te=C[0],Z=(te==null?void 0:te.wagfRegionLabel)||(te==null?void 0:te.doxaRegionLabel)||(te==null?void 0:te.doxaRegion)||(te==null?void 0:te.wagfRegion)||"—",q=(te==null?void 0:te.wagfBlockLabel)||(te==null?void 0:te.wagfBlock)||"—";return`
+ `}function u(h){const v=h.iso_3166_1_alpha_3||"",k=h["name_"+((i==null?void 0:i.value)||"en")]||h.name_en||h.name||v,f=a(),T=v.toUpperCase(),w=f.filter(oe=>{const D=(oe.countryIso||oe.country||"").toUpperCase();return D&&D===T}),H=w.length,Q=w[0],K=(Q==null?void 0:Q.wagfRegionLabel)||(Q==null?void 0:Q.doxaRegionLabel)||(Q==null?void 0:Q.doxaRegion)||(Q==null?void 0:Q.wagfRegion)||"—",M=(Q==null?void 0:Q.wagfBlockLabel)||(Q==null?void 0:Q.wagfBlock)||"—";return`
- ${bt(p)}
+ ${$t(k)}
- ${bt(r("popup.country.wagfRegion"))}: ${bt(Z)}
+ ${$t(r("popup.country.wagfRegion"))}: ${$t(K)}
- ${bt(r("popup.country.wagfBlock"))}: ${bt(q)}
+ ${$t(r("popup.country.wagfBlock"))}: ${$t(M)}
- ${bt(r("popup.country.country"))}: ${bt(p)} (${bt(k)})
+ ${$t(r("popup.country.country"))}: ${$t(k)} (${$t(v)})
- ${bt(r("popup.country.uupgCount"))}: ${bt(W)}
+ ${$t(r("popup.country.uupgCount"))}: ${$t(H)}
- `}function h(f){const k=t();if(!k)return;const A=f||"language-family-pins";if(!k.getLayer(A))return;const p=_=>{try{const x=_.features[0],C=x.properties,W=x.geometry.coordinates.slice();for(;Math.abs(_.lngLat.lng-W[0])>180;)W[0]+=_.lngLat.lng>W[0]?360:-360;if(s&&s.legendMode!==void 0){s.selectPeopleGroup(x),s.isMobile&&s.legendState==="collapsed"&&s.setLegendState("open"),s.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new($r(k)).Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(W).setHTML(c(C)).addTo(k)}catch(x){console.error(` [${o}] Pin click handler error:`,x)}};k.on("click",A,p),l.value.push({event:"click",layer:A,handler:p})}function g(){const f=t();if(!f)return;const k="regions-fill";if(!f.getLayer(k))return;const A=p=>{const _=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const x of _)if(f.getLayer(x)){const C=f.queryRenderedFeatures(p.point,{layers:[x]});if(C&&C.length>0)return}if(p.features&&p.features.length>0){const x=p.features[0].properties;new($r(f)).Popup().setLngLat(p.lngLat).setHTML(u(x)).addTo(f)}};f.on("click",k,A),l.value.push({event:"click",layer:k,handler:A})}function L(){const f=t();if(!f)return;const k="clusters";if(!f.getLayer(k))return;const A=p=>{const _=f.queryRenderedFeatures(p.point,{layers:[k]});if(!_.length)return;const x=_[0].properties.cluster_id,C=_[0].source;f.getSource(C).getClusterExpansionZoom(x,(W,te)=>{W||f.easeTo({center:_[0].geometry.coordinates,zoom:te})})};f.on("click",k,A),l.value.push({event:"click",layer:k,handler:A})}function w(f){const k=t();if(!k||!k.getLayer(f))return;const A=()=>{k.getCanvas().style.cursor="pointer"},p=()=>{k.getCanvas().style.cursor=""};k.on("mouseenter",f,A),k.on("mouseleave",f,p),l.value.push({event:"mouseenter",layer:f,handler:A}),l.value.push({event:"mouseleave",layer:f,handler:p})}function m(){h(),w("language-family-pins"),h("language-family-pins-hitbox"),w("language-family-pins-hitbox"),L(),w("clusters")}function b(){g(),w("regions-fill")}function $(){const f=t();f&&(f.getLayer("language-family-pins")&&m(),f.getLayer("regions-fill")&&b(),f.getLayer("people-groups-pins")&&(h(),w("people-groups-pins")))}function d(){const f=t();if(f){for(const{event:k,layer:A,handler:p}of l.value)try{f.off(k,A,p)}catch{}l.value=[]}}return{attachAllEventHandlers:$,attachLanguageFamilyEvents:m,attachRegionEvents:b,attachPinClickHandler:h,attachRegionClickHandler:g,attachClusterClickHandler:L,attachCursorHandlers:w,detachAllEventHandlers:d,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const Je={Chamacoco:"Zamucoan",Ninam:"Yanomaman",Yagua:"Yaguan",Muinane:"Witotoan",Finnish:"Uralic","Hill Mari":"Uralic",Mansi:"Uralic","Meadow Mari":"Uralic","North Saami":"Uralic",Carabayo:"Unclassified",Kujarge:"Unclassified",Shabo:"Unclassified",Ainu:"Turkic",Kazakh:"Turkic","Khorasani Turkish":"Turkic",Kyrgyz:"Turkic","Northern Uzbek":"Turkic","South Azerbaijani":"Turkic",Turkish:"Turkic",Tuvan:"Turkic",Uyghur:"Turkic",Amundava:"Tupian",Araweté:"Tupian","Asurini of Xingú":"Tupian","Avá-Canoeiro":"Tupian",Awetí:"Tupian",Kamayurá:"Tupian",Karo:"Tupian",Morerebi:"Tupian",Tenharim:"Tupian","Uru-Eu-Wau-Wau":"Tupian","Uru-Pa-In":"Tupian",Wayampi:"Tupian","Zo’é":"Tupian",Evenki:"Tungusic",Xibe:"Tungusic",Carapana:"Tucanoan",Cubeo:"Tucanoan",Desano:"Tucanoan",Macuna:"Tucanoan",Piratapuyo:"Tucanoan",Siona:"Tucanoan",Siriano:"Tucanoan",Tucano:"Tucanoan",Tuyuca:"Tucanoan",Waimaha:"Tucanoan",Tay:"Trans-New Guinea",Adi:"Sino-Tibetan",Akha:"Sino-Tibetan","Amdo Tibetan":"Sino-Tibetan",Axi:"Sino-Tibetan",Biyo:"Sino-Tibetan","Boro (India)":"Sino-Tibetan",Brokkat:"Sino-Tibetan",Bugun:"Sino-Tibetan",Byangsi:"Sino-Tibetan","Central Lalo":"Sino-Tibetan","Central Tibetan":"Sino-Tibetan",Chak:"Sino-Tibetan",Chalikha:"Sino-Tibetan",Chaudangsi:"Sino-Tibetan",Chocangacakha:"Sino-Tibetan",Darlong:"Sino-Tibetan",Dhimal:"Sino-Tibetan","Digaro-Mishmi":"Sino-Tibetan",Dzalakha:"Sino-Tibetan","Eastern Nisu":"Sino-Tibetan",Ersu:"Sino-Tibetan",Gahri:"Sino-Tibetan",Gongduk:"Sino-Tibetan",Gyalsumdo:"Sino-Tibetan",Hani:"Sino-Tibetan","Idu-Mishmi":"Sino-Tibetan",Kaike:"Sino-Tibetan",Kanashi:"Sino-Tibetan",Katso:"Sino-Tibetan",Khamba:"Sino-Tibetan",Koireng:"Sino-Tibetan",Kucong:"Sino-Tibetan",Kurtokha:"Sino-Tibetan",Ladakhi:"Sino-Tibetan",Lakha:"Sino-Tibetan","Lang’e":"Sino-Tibetan",Lhokpu:"Sino-Tibetan",Lolopo:"Sino-Tibetan",Lunanakha:"Sino-Tibetan","Mandarin Chinese":"Sino-Tibetan",Meitei:"Sino-Tibetan","Miju-Mishmi":"Sino-Tibetan",Mpi:"Sino-Tibetan",Na:"Sino-Tibetan",Namuyi:"Sino-Tibetan",Narua:"Sino-Tibetan",Naxi:"Sino-Tibetan","Northern Muji":"Sino-Tibetan",Nuosu:"Sino-Tibetan",Nupbikha:"Sino-Tibetan",Nyenkha:"Sino-Tibetan",Olekha:"Sino-Tibetan",Pahari:"Sino-Tibetan",Pattani:"Sino-Tibetan","Phana’":"Sino-Tibetan",Phula:"Sino-Tibetan",Phunoi:"Sino-Tibetan",Puma:"Sino-Tibetan",Puroik:"Sino-Tibetan",Raji:"Sino-Tibetan",Rawat:"Sino-Tibetan",Sani:"Sino-Tibetan",Sherdukpen:"Sino-Tibetan",Sherpa:"Sino-Tibetan",Shuhi:"Sino-Tibetan",Sila:"Sino-Tibetan",Singpho:"Sino-Tibetan",Sunwar:"Sino-Tibetan","Tawang Monpa":"Sino-Tibetan",Tseku:"Sino-Tibetan",Tshangla:"Sino-Tibetan",Usoi:"Sino-Tibetan","Western Minyag":"Sino-Tibetan","Wusa Nasu":"Sino-Tibetan","Xiang Chinese":"Sino-Tibetan",Yakkha:"Sino-Tibetan","Youle Jinuo":"Sino-Tibetan","Yue Chinese":"Sino-Tibetan",Zakhring:"Sino-Tibetan","Afghan Sign Language":"Sign Language","Albanian Sign Language":"Sign Language","Algerian Sign Language":"Sign Language","American Sign Language":"Sign Language","Armenian Sign Language":"Sign Language","British Sign Language":"Sign Language","Bulgarian Sign Language":"Sign Language","Cambodian Sign Language":"Sign language","Cuban Sign Language":"Sign Language","Egyptian Sign Language":"Sign Language","Greek Sign Language":"Sign Language","Guinean Sign Language":"Sign Language","Hong Kong Sign Language":"Sign Language","Icelandic Sign Language":"Sign Language","Iranian Sign Language":"Sign Language","Israeli Sign Language":"Sign Language","Jamaican Sign Language":"Sign Language","Jordanian Sign Language":"Sign Language","Laos Sign Language":"Sign Language","Libyan Sign Language":"Sign Language","Maltese Sign Language":"Sign Language","Mauritian Sign Language":"Sign Language","Moroccan Sign Language":"Sign Language","Mozambican Sign Language":"Sign Language","Myanmar Sign Language":"Sign language","Natural Sign Language":"Sign Language","Pakistan Sign Language":"Sign Language","Papua New Guinean Sign Language":"Sign language","Russian Sign Language":"Sign Language","Saudi Arabian Sign Language":"Sign Language","Sign Language of the Netherlands":"Sign Language","Solomon Islands Sign Language":"Sign Language","Sri Lankan Sign Language":"Sign Language","Swedish Sign Language":"Sign Language","Turkish Sign Language":"Sign Language","Northern Conchucos Ancash Quechua":"Quechuan","Northern Pastaza Quichua":"Quechuan",Hupdë:"Puinavean",Amahuaca:"Panoan",Korubo:"Panoan",Sharanahua:"Panoan","Shipibo-Conibo":"Panoan",Yaminahua:"Panoan",Yawanawa:"Panoan",Afitti:"Nilo-Saharan",Assangori:"Nilo-Saharan","Beli (South Sudan)":"Nilo-Saharan",Berta:"Nilo-Saharan",Burun:"Nilo-Saharan","Dar Daju Daju":"Nilo-Saharan","Dar Fur Daju":"Nilo-Saharan","Dar Sila Daju":"Nilo-Saharan",Dazaga:"Nilo-Saharan","Dendi (Benin)":"Nilo-Saharan",Dilling:"Nilo-Saharan",Fur:"Nilo-Saharan",Gbaya:"Nilo-Saharan",Ghulfan:"Nilo-Saharan",Gwama:"Nilo-Saharan","Humburi Senni Songhay":"Nilo-Saharan",Jopadhola:"Nilo-Saharan",Kadaru:"Nilo-Saharan",Kanga:"Nilo-Saharan",Karanga:"Nilo-Saharan",Karko:"Nilo-Saharan",Kebu:"Nilo-Saharan",Keiga:"Nilo-Saharan",Keliko:"Nilo-Saharan",Kendeje:"Nilo-Saharan",Kibet:"Nilo-Saharan","Komo (Sudan)":"Nilo-Saharan",Korandje:"Nilo-Saharan",Kulfa:"Nilo-Saharan",Kwegu:"Nilo-Saharan",Laarim:"Nilo-Saharan",Logorik:"Nilo-Saharan",Majang:"Nilo-Saharan","Manga Kanuri":"Nilo-Saharan",Mango:"Nilo-Saharan",Mararit:"Nilo-Saharan",Marfa:"Nilo-Saharan",Midob:"Nilo-Saharan","Mo’da":"Nilo-Saharan",Morom:"Nilo-Saharan",Moru:"Nilo-Saharan",Naba:"Nilo-Saharan",Nara:"Nilo-Saharan",Njalgulgule:"Nilo-Saharan",Nuer:"Nilo-Saharan","Nyamusa-Molo":"Nilo-Saharan",Nyangatom:"Nilo-Saharan","Olu’bo":"Nilo-Saharan",Opo:"Nilo-Saharan",Päri:"Nilo-Saharan","Sara Kaba Naa":"Nilo-Saharan",Surbakhal:"Nilo-Saharan",Tadaksahak:"Nilo-Saharan","Tama (Chad)":"Nilo-Saharan",Temein:"Nilo-Saharan",Thuri:"Nilo-Saharan","Tirmaga-Chai Suri":"Nilo-Saharan",Toposa:"Nilo-Saharan",Tumtum:"Nilo-Saharan","Wali (Sudan)":"Nilo-Saharan","Yerwa Kanuri":"Nilo-Saharan",Yulu:"Nilo-Saharan",Zaghawa:"Nilo-Saharan","Adamawa Fulfulde":"Niger-Congo",Akaselem:"Niger-Congo","Amba (Uganda)":"Niger-Congo",Anii:"Niger-Congo",Baangi:"Niger-Congo",Badyara:"Niger-Congo","Bago-Kusuntu":"Niger-Congo",Bai:"Niger-Congo","Bainouk-Gunyaamolo":"Niger-Congo",Bamanankan:"Niger-Congo","Banda-Mbrès":"Niger-Congo",Bandial:"Niger-Congo",Bankagooma:"Niger-Congo","Belanda Viri":"Niger-Congo",Bemba:"Niger-Congo",Bolgo:"Niger-Congo","Bon Gula":"Niger-Congo",Bua:"Niger-Congo",Chichewa:"Niger-Congo","Chung (Cameroon)":"Niger-Congo","Ci Gbe":"Niger-Congo",Degema:"Niger-Congo",Dek:"Niger-Congo",Dhimba:"Niger-Congo",Dogoso:"Niger-Congo","East Limba":"Niger-Congo",Engenni:"Niger-Congo",Epie:"Niger-Congo",Éwé:"Niger-Congo",Fania:"Niger-Congo",Foodo:"Niger-Congo",Fwe:"Niger-Congo",Gciriku:"Niger-Congo",Gwa:"Niger-Congo",Herero:"Niger-Congo",Ibuoro:"Niger-Congo","Jenaama Bozo":"Niger-Congo",Jita:"Niger-Congo",Jula:"Niger-Congo",Kabiyè:"Niger-Congo",Kadung:"Niger-Congo",Kakabe:"Niger-Congo",Kalamsé:"Niger-Congo","Kami (Tanzania)":"Niger-Congo","Kango (Bas-Uélé District)":"Niger-Congo",Kasem:"Niger-Congo","Kelengaxo Bozo":"Niger-Congo",Khe:"Niger-Congo",Khisa:"Niger-Congo",Kim:"Niger-Congo",Kinyarwanda:"Niger-Congo",Kipfokomu:"Niger-Congo",Kitharaka:"Niger-Congo",Kiyombe:"Niger-Congo",Ko:"Niger-Congo",Koalib:"Niger-Congo",Koke:"Niger-Congo",Konongo:"Niger-Congo","Koro Nulu":"Niger-Congo","Koro Zuba":"Niger-Congo",Kuhane:"Niger-Congo",Kunda:"Niger-Congo",Kuranko:"Niger-Congo",Kuria:"Niger-Congo",Kwangali:"Niger-Congo",Lame:"Niger-Congo",Laru:"Niger-Congo",Lopa:"Niger-Congo","Makhuwa-Meetto":"Niger-Congo","Makhuwa-Shirima":"Niger-Congo","Malawi Nyiha":"Niger-Congo",Mandinka:"Niger-Congo",Mankanya:"Niger-Congo",Mansoanka:"Niger-Congo",Mbukushu:"Niger-Congo","Mende (Sierra Leone)":"Niger-Congo",Miyobe:"Niger-Congo",Mushungulu:"Niger-Congo","Mwali Comorian":"Niger-Congo","Mwera (Chimwera)":"Niger-Congo",Ndemli:"Niger-Congo",Ndengereko:"Niger-Congo",Ndumu:"Niger-Congo",Ndunga:"Niger-Congo","Ndzwani Comorian":"Niger-Congo",Ngile:"Niger-Congo","Northwest Gbaya":"Niger-Congo",Notre:"Niger-Congo",Nyamwanga:"Niger-Congo",Nyankore:"Niger-Congo",Nyengo:"Niger-Congo",Okpamheri:"Niger-Congo",Osatu:"Niger-Congo","Pana (Burkina Faso)":"Niger-Congo",Pulaar:"Niger-Congo",Pular:"Niger-Congo",Rufiji:"Niger-Congo","Sankaran Maninka":"Niger-Congo",Sapo:"Niger-Congo","Senara Sénoufo":"Niger-Congo",Shanga:"Niger-Congo",Sininkere:"Niger-Congo","Southern Ngbandi":"Niger-Congo",Swahili:"Niger-Congo","Syenara Sénoufo":"Niger-Congo",Tagbu:"Niger-Congo",Tagoi:"Niger-Congo",Tegali:"Niger-Congo",Tem:"Niger-Congo","Tiéyaxo Bozo":"Niger-Congo",Tiyaa:"Niger-Congo",Tocho:"Niger-Congo","Tonga (Zambia)":"Niger-Congo",Totela:"Niger-Congo","Toura (Côte d’Ivoire)":"Niger-Congo",Tswa:"Niger-Congo",Tumbuka:"Niger-Congo",Ukaan:"Niger-Congo",Uneme:"Niger-Congo",Vai:"Niger-Congo",Vute:"Niger-Congo",Waama:"Niger-Congo",Warnang:"Niger-Congo",Wolof:"Niger-Congo",Yao:"Niger-Congo",Yauma:"Niger-Congo",Yom:"Niger-Congo","Zan Gula":"Niger-Congo",Zande:"Niger-Congo",Zigula:"Niger-Congo",Mamaindê:"Nambikwara",Aghul:"Nakh-Daghestanian",Akhvakh:"Nakh-Daghestanian",Andi:"Nakh-Daghestanian",Avar:"Nakh-Daghestanian",Bagvalal:"Nakh-Daghestanian",Botlikh:"Nakh-Daghestanian",Chamalal:"Nakh-Daghestanian",Chechen:"Nakh-Daghestanian",Dargwa:"Nakh-Daghestanian",Kaitag:"Nakh-Daghestanian",Karata:"Nakh-Daghestanian",Khvarshi:"Nakh-Daghestanian",Tindi:"Nakh-Daghestanian",Pirahã:"Muran",Bonan:"Mongolic","China Buriat":"Mongolic",Daur:"Mongolic","Kalmyk-Oirat":"Mongolic","Peripheral Mongolian":"Mongolic","Russia Buriat":"Mongolic",Tagdal:"Mixed language",Wutunhua:"Mixed language","Ashéninka Perené":"Maipurean",Baniwa:"Maipurean",Cabiyarí:"Maipurean",Curripaco:"Maipurean","Enawené-Nawé":"Maipurean",Kanamarí:"Maipurean",Mehináku:"Maipurean","Pichis Ashéninka":"Maipurean",Waurá:"Maipurean",Bangime:"Language isolate",Burushaski:"Language isolate","Ai-Cham":"Kra-Dai",Aiton:"Kra-Dai","Dai Zhuang":"Kra-Dai",Duoluo:"Kra-Dai","Green Gelao":"Kra-Dai","Guibian Zhuang":"Kra-Dai",Hlai:"Kra-Dai",Jiamao:"Kra-Dai",Kang:"Kra-Dai",Khün:"Kra-Dai",Kuan:"Kra-Dai",Lachi:"Kra-Dai","Laha (Viet Nam)":"Kra-Dai",Lao:"Kra-Dai",Lü:"Kra-Dai","Mak (China)":"Kra-Dai","Northeastern Thai":"Kra-Dai","Northern Dong":"Kra-Dai","Northern Thai":"Kra-Dai",Nyaw:"Kra-Dai",Phake:"Kra-Dai","Phu Thai":"Kra-Dai",Qabiao:"Kra-Dai",Qau:"Kra-Dai","Qiubei Zhuang":"Kra-Dai",Shan:"Kra-Dai","Southern Dong":"Kra-Dai",Sui:"Kra-Dai","T’en":"Kra-Dai","Tai Daeng":"Kra-Dai","Tai Dam":"Kra-Dai","Tai Hongjin":"Kra-Dai","Tai Nüa":"Kra-Dai","Tai Ya":"Kra-Dai","Tai Yo":"Kra-Dai","Ts’ün-Lao":"Kra-Dai","Yang Zhuang":"Kra-Dai",Yerong:"Kra-Dai",Yong:"Kra-Dai",Yoy:"Kra-Dai",Khoekhoe:"Khoe-Kwadi",Karajá:"Karajá","Pará Gavião":"Jean",Suyá:"Jean",Japanese:"Japonic","Oki-No-Erabu":"Japonic","Toku-No-Shima":"Japonic",Yaeyama:"Japonic",Yoron:"Japonic","Adivasi Oriya":"Indo-European",Afrikaans:"Indo-European","Alviri-Vidari":"Indo-European",Angika:"Indo-European",Assamese:"Indo-European",Bagheli:"Indo-European",Bagri:"Indo-European",Bashkardi:"Indo-European",Bateri:"Indo-European",Bengali:"Indo-European",Bhojpuri:"Indo-European",Bhunjia:"Indo-European",Bilaspuri:"Indo-European",Bosnian:"Indo-European","Braj Bhasha":"Indo-European",Brokskat:"Indo-European",Bundeli:"Indo-European",Catalan:"Indo-European",Chambeali:"Indo-European",Chhattisgarhi:"Indo-European",Dameli:"Indo-European",Dari:"Indo-European",Dhundari:"Indo-European",Dogri:"Indo-European",Domari:"Indo-European",Dutch:"Indo-European","Eastern Balochi":"Indo-European","Eastern Panjabi":"Indo-European","Eastern Yiddish":"Indo-European",English:"Indo-European",French:"Indo-European",Gaddi:"Indo-European",Garhwali:"Indo-European",Gawri:"Indo-European",Gowro:"Indo-European",Gujarati:"Indo-European",Gujari:"Indo-European",Halbi:"Indo-European",Haroti:"Indo-European",Haryanvi:"Indo-European",Hindi:"Indo-European","Indus Kohistani":"Indo-European","Iranian Persian":"Indo-European",Ishkashimi:"Indo-European",Kacchi:"Indo-European",Kalkoti:"Indo-European",Kanauji:"Indo-European",Kangri:"Indo-European",Karingani:"Indo-European",Kashmiri:"Indo-European",Kati:"Indo-European",Khunsari:"Indo-European",Konkani:"Indo-European",Kudmali:"Indo-European",Kumaoni:"Indo-European",Kumzari:"Indo-European",Laki:"Indo-European",Lasi:"Indo-European",Luwati:"Indo-European",Magahi:"Indo-European",Maithili:"Indo-European",Maldivian:"Indo-European",Malvi:"Indo-European",Marathi:"Indo-European","Marwari (India)":"Indo-European",Mewari:"Indo-European",Munji:"Indo-European",Nepali:"Indo-European",Nimadi:"Indo-European","Northern Kurdish":"Indo-European",Odia:"Indo-European","Pahari-Potwari":"Indo-European",Palula:"Indo-European",Panchpargania:"Indo-European",Pangwali:"Indo-European",Parachi:"Indo-European",Portuguese:"Indo-European",Russian:"Indo-European",Sadri:"Indo-European",Sanglechi:"Indo-European",Sarikoli:"Indo-European",Savi:"Indo-European",Semnani:"Indo-European",Serbian:"Indo-European",Shabak:"Indo-European",Shahrudi:"Indo-European",Shekhawati:"Indo-European",Shina:"Indo-European",Shughni:"Indo-European",Shumashti:"Indo-European",Sindhi:"Indo-European",Sivandi:"Indo-European",Soi:"Indo-European","Southern Balochi":"Indo-European",Spanish:"Indo-European",Tajik:"Indo-European",Talysh:"Indo-European",Urdu:"Indo-European",Ushojo:"Indo-European",Vaghri:"Indo-European","Vlax Romani":"Indo-European",Wagdi:"Indo-European",Wakhi:"Indo-European",Waneci:"Indo-European","Western Balochi":"Indo-European",Yadgha:"Indo-European","Bu-Nao Bunu":"Hmong-Mien","Central Mashan Miao":"Hmong-Mien","Chuanqiandian Cluster Miao":"Hmong-Mien","Eastern Xiangxi Miao":"Hmong-Mien","Iu Mien":"Hmong-Mien","Luopohe Miao":"Hmong-Mien","Northern Qiandong Miao":"Hmong-Mien","Pa-Hng":"Hmong-Mien","Southwestern Huishui Miao":"Hmong-Mien","Wunai Bunu":"Hmong-Mien","Younuo Bunu":"Hmong-Mien",Amarakaeri:"Harákmbut",Huachipaeri:"Harákmbut",Cuiba:"Guajiboan",Macaguán:"Guajiboan",Tlicho:"Eyak-Athabaskan",Kannada:"Dravidian",Kodava:"Dravidian","Korra Koraga":"Dravidian","Kota (India)":"Dravidian",Kudiya:"Dravidian",Malapandaram:"Dravidian",Malayalam:"Dravidian",Muthuvan:"Dravidian",Ravula:"Dravidian",Sholaga:"Dravidian",Tamil:"Dravidian",Telugu:"Dravidian",Tulu:"Dravidian",Vishavan:"Dravidian","Andaman Hindi Creole":"Creole","Cocos Islands Malay":"Creole","Juba Arabic":"Creole",Nubi:"Creole",Barí:"Chibchan","Barro Negro Tunebo":"Chibchan","Western Tunebo":"Chibchan",Ikpeng:"Cariban","Kuikúro-Kalapálo":"Cariban",Pemon:"Cariban",Trió:"Cariban","Waimiri-Atroarí":"Cariban",Waiwai:"Cariban",Yukpa:"Cariban",Borôro:"Bororoan",Chachi:"Barbacoan","Abai Sungai":"Austronesian",Ambelau:"Austronesian",Asilulu:"Austronesian",Balaesang:"Austronesian","Batak Alas-Kluet":"Austronesian","Batak Dairi":"Austronesian","Batak Karo":"Austronesian",Bonerate:"Austronesian",Bonggi:"Austronesian",Brunei:"Austronesian","Brunei Bisaya":"Austronesian",Buol:"Austronesian","Central Malay":"Austronesian","Central Sama":"Austronesian","Coastal Konjo":"Austronesian",Dampelas:"Austronesian","Dibabawon Manobo":"Austronesian",Dondo:"Austronesian",Gane:"Austronesian","Geser-Gorom":"Austronesian","Highland Konjo":"Austronesian",Hitu:"Austronesian",Iban:"Austronesian",Indonesian:"Austronesian","Kadazan Dusun":"Austronesian",Kiput:"Austronesian",Komodo:"Austronesian",Kompane:"Austronesian",Lahanan:"Austronesian","Lampung Nyo":"Austronesian","Larike-Wakasihu":"Austronesian",Lola:"Austronesian",Luhu:"Austronesian",Malay:"Austronesian",Mariri:"Austronesian",Moronene:"Austronesian",Rukai:"Austronesian","Sabah Bisaya":"Austronesian","Seit-Kaitetu":"Austronesian",Sula:"Austronesian","Tae’":"Austronesian",Tajio:"Austronesian",Tomini:"Austronesian",Tutong:"Austronesian",Ujir:"Austronesian",Aheu:"Austro-Asiatic",Alak:"Austro-Asiatic",Bit:"Austro-Asiatic","Bo (Laos)":"Austro-Asiatic",Bondo:"Austro-Asiatic",Brao:"Austro-Asiatic",Bugan:"Austro-Asiatic",Chong:"Austro-Asiatic",Chut:"Austro-Asiatic",Danau:"Austro-Asiatic",Halang:"Austro-Asiatic","Halang Doan":"Austro-Asiatic",Hu:"Austro-Asiatic",Hung:"Austro-Asiatic",Ir:"Austro-Asiatic",Kensiu:"Austro-Asiatic",Khmu:"Austro-Asiatic",Khua:"Austro-Asiatic",Khuen:"Austro-Asiatic",Koda:"Austro-Asiatic","Kon Keu":"Austro-Asiatic",Kriang:"Austro-Asiatic",Kuay:"Austro-Asiatic",Laven:"Austro-Asiatic",Maleng:"Austro-Asiatic","Man Met":"Austro-Asiatic",Mang:"Austro-Asiatic",Minriq:"Austro-Asiatic",Mlabri:"Austro-Asiatic",Nguôn:"Austro-Asiatic",Nyaheun:"Austro-Asiatic",Nyahkur:"Austro-Asiatic","O’du":"Austro-Asiatic",Ong:"Austro-Asiatic",Oy:"Austro-Asiatic",Pacoh:"Austro-Asiatic","Phong-Kniang":"Austro-Asiatic",Prai:"Austro-Asiatic",Puoc:"Austro-Asiatic",Rengao:"Austro-Asiatic",Rmeet:"Austro-Asiatic","Rumai Palaung":"Austro-Asiatic",Sapuan:"Austro-Asiatic","Shwe Palaung":"Austro-Asiatic","So (Laos)":"Austro-Asiatic",Sou:"Austro-Asiatic","Tai Loi":"Austro-Asiatic",Talieng:"Austro-Asiatic",Tareng:"Austro-Asiatic",Tho:"Austro-Asiatic",U:"Austro-Asiatic","Upper Ta’oih":"Austro-Asiatic",Vietnamese:"Austro-Asiatic","Western Katu":"Austro-Asiatic",Suruahá:"Arauan",Jarawa:"Andamanese",Öñge:"Andamanese",Sentinel:"Andamanese",Afar:"Afro-Asiatic","Alaba-K’abeena":"Afro-Asiatic",Alagwa:"Afro-Asiatic",Ale:"Afro-Asiatic","Algerian Arabic":"Afro-Asiatic",Amharic:"Afro-Asiatic",Arbore:"Afro-Asiatic","Baharna Arabic":"Afro-Asiatic",Barein:"Afro-Asiatic",Bedawiyet:"Afro-Asiatic",Bidiyo:"Afro-Asiatic",Bilen:"Afro-Asiatic",Birgit:"Afro-Asiatic",Boor:"Afro-Asiatic","Borana-Arsi-Guji Oromo":"Afro-Asiatic",Buduma:"Afro-Asiatic","Central Atlas Tamazight":"Afro-Asiatic","Chadian Arabic":"Afro-Asiatic",Chenoua:"Afro-Asiatic",Ciwogai:"Afro-Asiatic",Daasanach:"Afro-Asiatic",Dabarre:"Afro-Asiatic",Dangaléat:"Afro-Asiatic",Deno:"Afro-Asiatic",Diri:"Afro-Asiatic",Duwai:"Afro-Asiatic","Eastern Egyptian Bedawi Arabic":"Afro-Asiatic","Eastern Oromo":"Afro-Asiatic",Garre:"Afro-Asiatic",Geruma:"Afro-Asiatic",Giiwo:"Afro-Asiatic",Gorowa:"Afro-Asiatic","Gulf Arabic":"Afro-Asiatic","Hadrami Arabic":"Afro-Asiatic",Harsusi:"Afro-Asiatic",Hassaniyya:"Afro-Asiatic",Hausa:"Afro-Asiatic",Hebrew:"Afro-Asiatic","Hijazi Arabic":"Afro-Asiatic",Hobyót:"Afro-Asiatic",Hozo:"Afro-Asiatic",Jiiddu:"Afro-Asiatic",Jimi:"Afro-Asiatic",Jina:"Afro-Asiatic","Jonkor Bourmataguil":"Afro-Asiatic","Judeo-Iraqi Arabic":"Afro-Asiatic","Judeo-Moroccan Arabic":"Afro-Asiatic",Kabalai:"Afro-Asiatic",Kajakse:"Afro-Asiatic",Kariya:"Afro-Asiatic","Karo (Ethiopia)":"Afro-Asiatic",Kutto:"Afro-Asiatic","Levantine Arabic":"Afro-Asiatic",Libido:"Afro-Asiatic","Libyan Arabic":"Afro-Asiatic","Lishana Deni":"Afro-Asiatic",Maaka:"Afro-Asiatic",Maay:"Afro-Asiatic",Majera:"Afro-Asiatic",Male:"Afro-Asiatic",Maslam:"Afro-Asiatic",Masmaje:"Afro-Asiatic",Mburku:"Afro-Asiatic",Mehri:"Afro-Asiatic","Mesopotamian Arabic":"Afro-Asiatic",Migaama:"Afro-Asiatic",Mogum:"Afro-Asiatic","Moroccan Arabic":"Afro-Asiatic",Mositacha:"Afro-Asiatic",Mubi:"Afro-Asiatic",Mukulu:"Afro-Asiatic",Nafusi:"Afro-Asiatic","Najdi Arabic":"Afro-Asiatic",Nyam:"Afro-Asiatic","Omani Arabic":"Afro-Asiatic","Pa’a":"Afro-Asiatic",Saba:"Afro-Asiatic",Saho:"Afro-Asiatic","Sanaani Arabic":"Afro-Asiatic",Seze:"Afro-Asiatic",Shehri:"Afro-Asiatic",Shekkacho:"Afro-Asiatic",Sheko:"Afro-Asiatic","Shihhi Arabic":"Afro-Asiatic",Siwi:"Afro-Asiatic",Sokoro:"Afro-Asiatic",Soqotri:"Afro-Asiatic","South Levantine Arabic":"Afro-Asiatic","Standard Arabic":"Afro-Asiatic","Sudanese Arabic":"Afro-Asiatic","Ta’izzi-Adeni Arabic":"Afro-Asiatic","Tahaggart Tamahaq":"Afro-Asiatic",Taznatit:"Afro-Asiatic",Tigré:"Afro-Asiatic",Toram:"Afro-Asiatic",Tsamai:"Afro-Asiatic",Tumzabt:"Afro-Asiatic",Tunni:"Afro-Asiatic",Waata:"Afro-Asiatic","West Central Oromo":"Afro-Asiatic",Xamtanga:"Afro-Asiatic",Zumbun:"Afro-Asiatic"},Rl=[">",["to-number",["get","peoplePraying"],0],0],Fl={0:.25,8:.4,14:.5},ca={0:.1,8:.18,14:.22},ua={0:1.2,8:1.6,14:2},Mg=["interpolate",["linear"],["zoom"],0,["case",Rl,Fl[0],ca[0]],8,["case",Rl,Fl[8],ca[8]],14,["case",Rl,Fl[14],ca[14]]],Nk=["interpolate",["linear"],["zoom"],0,ua[0],8,ua[8],14,ua[14]],Og=["==",["to-number",["get","peoplePraying"],0],0],Ik={prayer:[Og],prayerProgress:[Og],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function Mk(e){const t=Ik[e]||[];if(!t.length)return Nk;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,ca[0],ua[0]],8,["case",o,ca[8],ua[8]],14,["case",o,ca[14],ua[14]]]}const Ok=[[/ sign language$/i,"Sign Language"]];function Dk(e){if(!e||typeof e!="string")return null;const t=e.trim(),o=t.split(",").map(a=>a.trim()).filter(Boolean);if(o.length>=2){const a=[...o].reverse().join(" ");if(Je[a])return Je[a];if(o.length>=3){const s=[o[1],o[0]].join(" ");if(Je[s])return Je[s]}}if(Je[t])return Je[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&Je[n])return Je[n];for(const[a,s]of Ok)if(a.test(t))return s;return null}function Gk(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=()=>{const J=t();return J?Ve(J):null},r=Ig({getMap:s,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=_e({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=_e({});function c(J,fe="languageFamily"){const V=s();if(!V||!(J!=null&&J.length))return;const Pe=Ck(fe),I=J.map(G=>{var re,ge,v,P,Y,H,se,le,j,ie,Ae,Ie,We,ft,at,St,Xt,$t,kt;return{type:"Feature",properties:{uniqueId:G.id||G.uniqueId,slug:G.slug||((re=G._normalized)==null?void 0:re.slug)||"",rop3:G.rop3||G.peopleGroupId,peopleId3:G.peopleId3||"",name:G.name,language:G.language,languageFamily:G.languageFamily||((ge=G._normalized)==null?void 0:ge.languageFamily)||Dk(G.language)||"Unknown",affinityBlock:G.affinityBlock||G.affbloc||G.Affbloc||((v=G._normalized)==null?void 0:v.affinityBlock)||"Unknown",affinityBlockLabel:G.affinityBlockLabel||((P=G._normalized)==null?void 0:P.affinityBlockLabel)||"",cluster:G.cluster||((Y=G._normalized)==null?void 0:Y.cluster)||"",clusterLabel:G.clusterLabel||((H=G._normalized)==null?void 0:H.clusterLabel)||"",peopleGroup:G.peopleGroup||((se=G._normalized)==null?void 0:se.peopleGroup)||"",peopleGroupLabel:G.peopleGroupLabel||((le=G._normalized)==null?void 0:le.peopleGroupLabel)||"",doxaRegion:G.doxaRegion||((j=G._normalized)==null?void 0:j.doxaRegion)||"Unknown",wagfBlock:G.wagfBlock||((ie=G._normalized)==null?void 0:ie.wagfBlock)||"",wagfBlockLabel:G.wagfBlockLabel||((Ae=G._normalized)==null?void 0:Ae.wagfBlockLabel)||"",wagfRegionLabel:G.wagfRegionLabel||((Ie=G._normalized)==null?void 0:Ie.wagfRegionLabel)||"",country:G.country,countryIso:G.countryIso,countryIsoLabel:G.countryIsoLabel,countryName:G.countryName,religion:G.religion,religionCode:G.religionCode,religionLabel:G.religionLabel,religionName:G.religionName,population:G.population,status:G.status,description:G.description||"",imageUrl:G.imageUrl||"",peoplePraying:Number(G.peoplePraying??((We=G._normalized)==null?void 0:We.peoplePraying)??0),engagementStatus:G.engagementStatus===!0||G.engagementStatus===1||!1,adoptionStatus:G.adoptionStatus===!0||G.adoptionStatus===1||!1,bible:G.bible||((ft=G._normalized)==null?void 0:ft.bible)||"Not Available",jesusFilm:G.jesusFilm||((at=G._normalized)==null?void 0:at.jesusFilm)||"Not Available",radio:G.radio||((St=G._normalized)==null?void 0:St.radio)||"Not Available",gospel:G.gospel||((Xt=G._normalized)==null?void 0:Xt.gospel)||"Not Available",audio:G.audio||(($t=G._normalized)==null?void 0:$t.audio)||"Not Available",stories:G.stories||((kt=G._normalized)==null?void 0:kt.stories)||"Not Available",lng:parseFloat(G.longitude||G.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(G.longitude||G.lng),parseFloat(G.latitude||G.lat)]}}}).filter(G=>!isNaN(G.geometry.coordinates[0])&&!isNaN(G.geometry.coordinates[1])),z=.04,N=G=>`${G.geometry.coordinates[0]},${G.geometry.coordinates[1]}`,Q=new Map;for(const G of I){const re=N(G);Q.has(re)||Q.set(re,[]),Q.get(re).push(G)}for(const G of Q.values()){if(G.length<2)continue;const[re,ge]=G[0].geometry.coordinates,v=G.length;for(let P=0;P",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),V.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":El("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,r.attachLanguageFamilyEvents()}function u(J,fe="doxa-regions"){const V=s();if(!V)return;V.getLayer("regions-fill")&&V.removeLayer("regions-fill"),V.getLayer("regions-border")&&V.removeLayer("regions-border"),V.getSource("regions")&&V.removeSource("regions");const Pe={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},I="#cccccc",z=J&&J.isoToRegion?J.isoToRegion:{},N=[],Q={};for(const[ge,v]of Object.entries(z)){const P=Pe[String(v).toLowerCase()];P&&N.push(ge,P),Q[v]||(Q[v]=[]),Q[v].push(ge)}l.value=Q;const ae=N.length?["match",["get","iso_3166_1_alpha_3"],...N,I]:I,G=V.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":V.getLayer("language-family-pins")?"language-family-pins":void 0,re=(()=>{var ge,v,P;try{return!!((P=(v=(ge=V.getContainer)==null?void 0:ge.call(V))==null?void 0:v.classList)!=null&&P.contains("maplibregl-map"))}catch{return!1}})();re?(V.addSource("regions",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${el(null)}/boundaries/world-adm0-web.geojson`).then(ge=>ge.json()).then(ge=>{for(const P of ge.features||[])P.properties&&P.properties.iso3&&(P.properties.iso_3166_1_alpha_3=P.properties.iso3);const v=V.getSource("regions");v&&v.setData(ge)}).catch(ge=>console.warn("[map-layers] region boundaries failed to load",ge))):V.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),V.addLayer({id:"regions-fill",type:"fill",source:"regions",...re?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":ae,"fill-opacity":fe==="none"?.1:.7,"fill-antialias":!0,...No(V,"fill"),"fill-opacity-transition":{duration:300}}},G),V.addLayer({id:"regions-border",type:"line",source:"regions",...re?{}:{"source-layer":"country_boundaries"},paint:{"line-color":ae,"line-width":1,"line-opacity":.9,...No(V,"line")}},G),i.value.regions=!0,r.attachRegionEvents()}function h(J,fe){const V=s();if(!V||!J||!(fe!=null&&fe.length))return;g();const Pe=fe.filter(ae=>{var re;return(ae.languageFamily||((re=ae._normalized)==null?void 0:re.languageFamily)||"Unknown")===J});if(Pe.length<2)return;const I=n(J),z=[],N=15,Q=[...Pe].sort((ae,G)=>(ae.longitude||ae.lng)-(G.longitude||G.lng));for(let ae=0;ae=",["get","peoplePraying"],Io],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const T=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function R(J,fe){const V=["interpolate",["linear"],["zoom"]];for(let Pe=0;Pe",["get","peoplePraying"],0],V=E();if(!x.every(I=>J.getLayer(I))){for(const I of x)if(J.getLayer(I))try{J.removeLayer(I)}catch{}J.addLayer({id:A,type:"circle",source:"language-families",filter:fe,paint:{"circle-radius":R(T,1),"circle-color":V,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...No(J)}},"language-family-pins");for(const I of _)J.addLayer({id:I,type:"circle",source:"language-families",filter:fe,paint:{"circle-radius":R(T,1),"circle-radius-transition":ue,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":V,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":ue,...No(J)}},"language-family-pins")}}function X(){const J=s();if(J)for(const fe of x)J.getLayer(fe)&&J.removeLayer(fe)}function M(J){const fe=s();if(!fe)return;const V=[">",["get","peoplePraying"],0],Pe=J?["all",V,J]:V;for(const I of x)if(fe.getLayer(I))try{fe.setFilter(I,Pe)}catch{}}function pe(){const J=s();if(J){if(D(),d&&(cancelAnimationFrame(d),d=null),f=!0,J.getLayer("language-family-pins"))try{J.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],Io],1,[">",["get","peoplePraying"],0],1,3])}catch{}ke(J),be()}}function be(){d&&(cancelAnimationFrame(d),d=null);const J=++k;let fe=performance.now(),V=-1/0;function Pe(I){if(!f||J!==k)return;const z=s();if(!z||!x.some(Q=>z.getLayer(Q))){d=null;return}if(I-V"u")return;const fe=typeof J.getContainer=="function"?J.getContainer():null;if(fe)try{y=new IntersectionObserver(V=>{for(const Pe of V)B=Pe.isIntersecting},{threshold:0}),y.observe(fe)}catch{y=null,B=!0}}function we(){if(y){try{y.disconnect()}catch{}y=null}B=!0}function me(){f=!1,d&&(cancelAnimationFrame(d),d=null),we();try{X();const J=s();J&&J.getLayer("language-family-pins")&&J.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:h,removeFamilyConnectionLines:g,updateLayerSource:L,removeLayer:w,hasLayer:m,setPaintProperty:b,mapEvents:r,startPrayerGlow:pe,stopPrayerGlow:me,syncGlowFilter:M,cleanup:$}}const vo={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0};function zk(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(vo==null?void 0:vo.center)||[20,10],defaultZoom:r=vo==null?void 0:vo.zoom}=e,i=()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}};function l(y){const E=i(),T=(R={})=>{const D={};for(const X of["center","zoom","bearing","pitch","padding"])R[X]!==void 0&&(D[X]=R[X]);return y.jumpTo(D)};return{flyTo:R=>E?T(R):y.flyTo(R),easeTo:R=>E?T(R):y.easeTo(R),fitBounds:(R,D={})=>y.fitBounds(R,E?{...D,animate:!1,duration:0}:D)}}const c={speed:.5,essential:!0,curve:1.2};function u(y,E,T={x:150,y:0}){const R=t();if(!R)return y;try{const D=R.getCanvas(),X=D.width,M=D.height,pe=R.project(y),be=window.devicePixelRatio||1,ke=(T.x||0)*be,we=(T.y||0)*be,me={x:pe.x-ke,y:pe.y-we},J=R.unproject(me);return[J.lng,J.lat]}catch{return y}}function h(y,E=[]){const T=t();if(!T)return;let R=null,D=5;const X=E.filter(pe=>pe.languageFamily===y);if(X.length>0){let pe=1/0,be=-1/0,ke=1/0,we=-1/0;if(X.forEach(me=>{me.longitude&&me.latitude&&(pe=Math.min(pe,me.longitude),be=Math.max(be,me.longitude),ke=Math.min(ke,me.latitude),we=Math.max(we,me.latitude))}),pe!==1/0){R=[(pe+be)/2,(ke+we)/2];const me=be-pe,J=we-ke,fe=Math.max(me,J);fe>50?D=2:fe>20?D=3:fe>10?D=4:fe>5?D=5:D=6}}if(!R)return;const M=u(R);l(T).flyTo({center:M,zoom:D,...c})}function g(y){const E=t();if(!E)return;let T=null,R=4;const D=Ek(y);if(D)T=D.center,R=D.zoom||4;else if(a!=null&&a.features){const M=a.features.find(pe=>{var be,ke;return((be=pe.properties)==null?void 0:be.region)===y||((ke=pe.properties)==null?void 0:ke.name)===y});M&&(T=L(M))}if(!T)return;const X=u(T);l(E).flyTo({center:X,zoom:R,...c})}function L(y){if(!y||!y.geometry)return null;const{type:E,coordinates:T}=y.geometry;let R=[];if(E==="Polygon"?R=T[0]||[]:E==="MultiPolygon"&&T.forEach(M=>{R=R.concat(M[0]||[])}),R.length===0)return null;let D=0,X=0;return R.forEach(M=>{D+=M[0],X+=M[1]}),[D/R.length,X/R.length]}function w(y,E={}){const T=t();if(!T)return;const R={center:y,...c,...E};l(T).flyTo(R)}function m(y,E,T={}){const R=t();if(!R||(y==null?void 0:y.longitude)==null||(y==null?void 0:y.latitude)==null)return;const D=E??Math.min(R.getZoom()+2,8);w([y.longitude,y.latitude],{...T,zoom:D})}function b(y,E={top:40,right:40,bottom:40,left:40},T={}){const R=t();if(!R||!y)return;const D=T.maxZoom??4,X=T.duration??900;l(R).fitBounds(y,{padding:E,maxZoom:D,duration:X,...c,...T})}function $(){const y=t();y&&l(y).flyTo({center:s,zoom:r,...c})}const d=80,f=800,k=5,A=5,p=110,_=1.2;function x(y){const E=y.filter(Number.isFinite).slice().sort((N,Q)=>N-Q),T=E.length;if(!T)return null;let R=-1,D=0;for(let N=0;NR&&(R=ae,D=N)}const X=(D+1)%T,M=new Array(T);for(let N=0;N0&&Q((N+180)%360+360)%360-180,J=me(ke),fe=24,V=360/fe,Pe=new Array(fe).fill(0);for(const N of E){let Q=Math.floor(((N+180)%360+360)%360/V);Q>=fe&&(Q=fe-1),Pe[Q]++}let I=0;for(let N=1;NPe[I]&&(I=N);return{center:me(-180+(I+.5)*V),minLng:J,maxLng:J+(we-ke),span:we-ke}}function C(y){try{const E=y.getContainer&&y.getContainer().clientWidth||0,T=E>0?Math.log2(E/512):_,R=typeof y.getMinZoom=="function"?y.getMinZoom():T;return Math.max(R,T)}catch{return _}}function W(y,E,T,R){l(y).easeTo({center:[E,(T+R)/2],zoom:C(y),duration:f,essential:!0})}function te(y,E,T){if(T>p)return!0;try{const R=typeof y.cameraForBounds=="function"?y.cameraForBounds(E,{padding:d,maxZoom:k}):null;return R==null?!0:typeof R.zoom=="number"&&R.zoom<=C(y)+.05}catch{return!1}}function Z(y,E){if(!Array.isArray(y))return y;switch(y[0]){case"get":return E==null?void 0:E[y[1]];case"literal":return y[1];case"has":return E!=null&&y[1]in E;case"!has":return E==null||!(y[1]in E);case"!":return!Z(y[1],E);case"coalesce":{for(let R=1;R2){const X=Number(Z(y[2],E));return Number.isFinite(X)?X:0}return NaN}case"to-string":{const R=Z(y[1],E);return R==null?"":String(R)}case"to-boolean":return!!Z(y[1],E);case"slice":{const R=Z(y[1],E),D=Z(y[2],E),X=y.length>3?Z(y[3],E):void 0;return typeof R!="string"?"":X!=null?R.slice(D,X):R.slice(D)}default:return y}}function q(y,E){if(y===!0)return!0;if(y===!1)return!1;if(!Array.isArray(y))return!!y;const T=y[0];if(T==="all"){for(let R=1;R"||T===">="||T==="<"||T==="<="){const R=typeof y[1]=="string"?E==null?void 0:E[y[1]]:Z(y[1],E),D=Z(y[2],E);switch(T){case"==":return R===D||R==null&&D==null;case"!=":return!(R===D||R==null&&D==null);case">":return R>D;case">=":return R>=D;case"<":return R{const G=(ae==null?void 0:ae.properties)||{};return G.region===N||G.name===N||G.id===N});if(Q){const ae=[];let G=1/0,re=-1/0;const ge=P=>{for(const Y of P)Array.isArray(Y[0])?ge(Y):Number.isFinite(Y[0])&&Number.isFinite(Y[1])&&(ae.push(Y[0]),Y[1]re&&(re=Y[1]))};(Pe=Q.geometry)!=null&&Pe.coordinates&&ge(Q.geometry.coordinates);const v=x(ae);if(v&&Number.isFinite(G)){const P=[[v.minLng,G],[v.maxLng,re]];te(T,P,v.span)?W(T,v.center,G,re):l(T).fitBounds(P,{padding:d,maxZoom:k,duration:f,essential:!0});return}}}const R=E.sourceId??"language-families";if(!T.getSource(R))return;const D=E.matchExpr??y.filter;if(!D)return;const X=ue(T,R);if(!X.length)return;const M=[];let pe=1/0,be=-1/0,ke=0,we=0,me=0;const J=new Set;for(const z of X){const N=z==null?void 0:z.properties;if(!q(D,N))continue;const Q=N==null?void 0:N.uniqueId;if(Q!=null){if(J.has(Q))continue;J.add(Q)}const ae=(I=z.geometry)==null?void 0:I.coordinates;if(!Array.isArray(ae)||ae.length<2)continue;const G=ae[0],re=ae[1];!Number.isFinite(G)||!Number.isFinite(re)||(ke===0&&(we=G,me=re),M.push(G),rebe&&(be=re),ke++)}if(ke===0)return;if(ke===1){l(T).flyTo({center:[we,me],zoom:A,duration:f,essential:!0});return}const fe=x(M)||{center:0,minLng:0,maxLng:0,span:0},V=[[fe.minLng,pe],[fe.maxLng,be]];if(te(T,V,fe.span)){W(T,fe.center,pe,be);return}try{l(T).fitBounds(V,{padding:d,maxZoom:k,duration:f,essential:!0})}catch{}}return{getOffsetCenter:u,slowFlyToFamily:h,slowFlyToRegion:g,flyTo:w,flyToCoords:m,fitBounds:b,resetView:$,zoomToLegendRow:B,calculateRegionCenterFromPolygon:L}}const xr="#1a1a1a",on="selected-pin-highlight";function Bk(e=xr){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=`
+ `}function b(h){const v=t();if(!v)return;const p=h||"language-family-pins";if(!v.getLayer(p))return;const k=f=>{try{const T=f.features[0],w=T.properties,H=T.geometry.coordinates.slice();for(;Math.abs(f.lngLat.lng-H[0])>180;)H[0]+=f.lngLat.lng>H[0]?360:-360;if(s&&s.legendMode!==void 0){s.selectPeopleGroup(T),s.isMobile&&s.legendState==="collapsed"&&s.setLegendState("open"),s.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new(yr(v)).Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(H).setHTML(c(w)).addTo(v)}catch(T){console.error(` [${o}] Pin click handler error:`,T)}};v.on("click",p,k),l.value.push({event:"click",layer:p,handler:k})}function m(){const h=t();if(!h)return;const v="regions-fill";if(!h.getLayer(v))return;const p=k=>{const f=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const T of f)if(h.getLayer(T)){const w=h.queryRenderedFeatures(k.point,{layers:[T]});if(w&&w.length>0)return}if(k.features&&k.features.length>0){const T=k.features[0].properties;new(yr(h)).Popup().setLngLat(k.lngLat).setHTML(u(T)).addTo(h)}};h.on("click",v,p),l.value.push({event:"click",layer:v,handler:p})}function L(){const h=t();if(!h)return;const v="clusters";if(!h.getLayer(v))return;const p=k=>{const f=h.queryRenderedFeatures(k.point,{layers:[v]});if(!f.length)return;const T=f[0].properties.cluster_id,w=f[0].source;h.getSource(w).getClusterExpansionZoom(T,(H,Q)=>{H||h.easeTo({center:f[0].geometry.coordinates,zoom:Q})})};h.on("click",v,p),l.value.push({event:"click",layer:v,handler:p})}function x(h){const v=t();if(!v||!v.getLayer(h))return;const p=()=>{v.getCanvas().style.cursor="pointer"},k=()=>{v.getCanvas().style.cursor=""};v.on("mouseenter",h,p),v.on("mouseleave",h,k),l.value.push({event:"mouseenter",layer:h,handler:p}),l.value.push({event:"mouseleave",layer:h,handler:k})}function _(){b(),x("language-family-pins"),b("language-family-pins-hitbox"),x("language-family-pins-hitbox"),L(),x("clusters")}function g(){m(),x("regions-fill")}function $(){const h=t();h&&(h.getLayer("language-family-pins")&&_(),h.getLayer("regions-fill")&&g(),h.getLayer("people-groups-pins")&&(b(),x("people-groups-pins")))}function d(){const h=t();if(h){for(const{event:v,layer:p,handler:k}of l.value)try{h.off(v,p,k)}catch{}l.value=[]}}return{attachAllEventHandlers:$,attachLanguageFamilyEvents:_,attachRegionEvents:g,attachPinClickHandler:b,attachRegionClickHandler:m,attachClusterClickHandler:L,attachCursorHandlers:x,detachAllEventHandlers:d,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const nt={Chamacoco:"Zamucoan",Ninam:"Yanomaman",Yagua:"Yaguan",Muinane:"Witotoan",Finnish:"Uralic","Hill Mari":"Uralic",Mansi:"Uralic","Meadow Mari":"Uralic","North Saami":"Uralic",Carabayo:"Unclassified",Kujarge:"Unclassified",Shabo:"Unclassified",Ainu:"Turkic",Kazakh:"Turkic","Khorasani Turkish":"Turkic",Kyrgyz:"Turkic","Northern Uzbek":"Turkic","South Azerbaijani":"Turkic",Turkish:"Turkic",Tuvan:"Turkic",Uyghur:"Turkic",Amundava:"Tupian",Araweté:"Tupian","Asurini of Xingú":"Tupian","Avá-Canoeiro":"Tupian",Awetí:"Tupian",Kamayurá:"Tupian",Karo:"Tupian",Morerebi:"Tupian",Tenharim:"Tupian","Uru-Eu-Wau-Wau":"Tupian","Uru-Pa-In":"Tupian",Wayampi:"Tupian","Zo’é":"Tupian",Evenki:"Tungusic",Xibe:"Tungusic",Carapana:"Tucanoan",Cubeo:"Tucanoan",Desano:"Tucanoan",Macuna:"Tucanoan",Piratapuyo:"Tucanoan",Siona:"Tucanoan",Siriano:"Tucanoan",Tucano:"Tucanoan",Tuyuca:"Tucanoan",Waimaha:"Tucanoan",Tay:"Trans-New Guinea",Adi:"Sino-Tibetan",Akha:"Sino-Tibetan","Amdo Tibetan":"Sino-Tibetan",Axi:"Sino-Tibetan",Biyo:"Sino-Tibetan","Boro (India)":"Sino-Tibetan",Brokkat:"Sino-Tibetan",Bugun:"Sino-Tibetan",Byangsi:"Sino-Tibetan","Central Lalo":"Sino-Tibetan","Central Tibetan":"Sino-Tibetan",Chak:"Sino-Tibetan",Chalikha:"Sino-Tibetan",Chaudangsi:"Sino-Tibetan",Chocangacakha:"Sino-Tibetan",Darlong:"Sino-Tibetan",Dhimal:"Sino-Tibetan","Digaro-Mishmi":"Sino-Tibetan",Dzalakha:"Sino-Tibetan","Eastern Nisu":"Sino-Tibetan",Ersu:"Sino-Tibetan",Gahri:"Sino-Tibetan",Gongduk:"Sino-Tibetan",Gyalsumdo:"Sino-Tibetan",Hani:"Sino-Tibetan","Idu-Mishmi":"Sino-Tibetan",Kaike:"Sino-Tibetan",Kanashi:"Sino-Tibetan",Katso:"Sino-Tibetan",Khamba:"Sino-Tibetan",Koireng:"Sino-Tibetan",Kucong:"Sino-Tibetan",Kurtokha:"Sino-Tibetan",Ladakhi:"Sino-Tibetan",Lakha:"Sino-Tibetan","Lang’e":"Sino-Tibetan",Lhokpu:"Sino-Tibetan",Lolopo:"Sino-Tibetan",Lunanakha:"Sino-Tibetan","Mandarin Chinese":"Sino-Tibetan",Meitei:"Sino-Tibetan","Miju-Mishmi":"Sino-Tibetan",Mpi:"Sino-Tibetan",Na:"Sino-Tibetan",Namuyi:"Sino-Tibetan",Narua:"Sino-Tibetan",Naxi:"Sino-Tibetan","Northern Muji":"Sino-Tibetan",Nuosu:"Sino-Tibetan",Nupbikha:"Sino-Tibetan",Nyenkha:"Sino-Tibetan",Olekha:"Sino-Tibetan",Pahari:"Sino-Tibetan",Pattani:"Sino-Tibetan","Phana’":"Sino-Tibetan",Phula:"Sino-Tibetan",Phunoi:"Sino-Tibetan",Puma:"Sino-Tibetan",Puroik:"Sino-Tibetan",Raji:"Sino-Tibetan",Rawat:"Sino-Tibetan",Sani:"Sino-Tibetan",Sherdukpen:"Sino-Tibetan",Sherpa:"Sino-Tibetan",Shuhi:"Sino-Tibetan",Sila:"Sino-Tibetan",Singpho:"Sino-Tibetan",Sunwar:"Sino-Tibetan","Tawang Monpa":"Sino-Tibetan",Tseku:"Sino-Tibetan",Tshangla:"Sino-Tibetan",Usoi:"Sino-Tibetan","Western Minyag":"Sino-Tibetan","Wusa Nasu":"Sino-Tibetan","Xiang Chinese":"Sino-Tibetan",Yakkha:"Sino-Tibetan","Youle Jinuo":"Sino-Tibetan","Yue Chinese":"Sino-Tibetan",Zakhring:"Sino-Tibetan","Afghan Sign Language":"Sign Language","Albanian Sign Language":"Sign Language","Algerian Sign Language":"Sign Language","American Sign Language":"Sign Language","Armenian Sign Language":"Sign Language","British Sign Language":"Sign Language","Bulgarian Sign Language":"Sign Language","Cambodian Sign Language":"Sign language","Cuban Sign Language":"Sign Language","Egyptian Sign Language":"Sign Language","Greek Sign Language":"Sign Language","Guinean Sign Language":"Sign Language","Hong Kong Sign Language":"Sign Language","Icelandic Sign Language":"Sign Language","Iranian Sign Language":"Sign Language","Israeli Sign Language":"Sign Language","Jamaican Sign Language":"Sign Language","Jordanian Sign Language":"Sign Language","Laos Sign Language":"Sign Language","Libyan Sign Language":"Sign Language","Maltese Sign Language":"Sign Language","Mauritian Sign Language":"Sign Language","Moroccan Sign Language":"Sign Language","Mozambican Sign Language":"Sign Language","Myanmar Sign Language":"Sign language","Natural Sign Language":"Sign Language","Pakistan Sign Language":"Sign Language","Papua New Guinean Sign Language":"Sign language","Russian Sign Language":"Sign Language","Saudi Arabian Sign Language":"Sign Language","Sign Language of the Netherlands":"Sign Language","Solomon Islands Sign Language":"Sign Language","Sri Lankan Sign Language":"Sign Language","Swedish Sign Language":"Sign Language","Turkish Sign Language":"Sign Language","Northern Conchucos Ancash Quechua":"Quechuan","Northern Pastaza Quichua":"Quechuan",Hupdë:"Puinavean",Amahuaca:"Panoan",Korubo:"Panoan",Sharanahua:"Panoan","Shipibo-Conibo":"Panoan",Yaminahua:"Panoan",Yawanawa:"Panoan",Afitti:"Nilo-Saharan",Assangori:"Nilo-Saharan","Beli (South Sudan)":"Nilo-Saharan",Berta:"Nilo-Saharan",Burun:"Nilo-Saharan","Dar Daju Daju":"Nilo-Saharan","Dar Fur Daju":"Nilo-Saharan","Dar Sila Daju":"Nilo-Saharan",Dazaga:"Nilo-Saharan","Dendi (Benin)":"Nilo-Saharan",Dilling:"Nilo-Saharan",Fur:"Nilo-Saharan",Gbaya:"Nilo-Saharan",Ghulfan:"Nilo-Saharan",Gwama:"Nilo-Saharan","Humburi Senni Songhay":"Nilo-Saharan",Jopadhola:"Nilo-Saharan",Kadaru:"Nilo-Saharan",Kanga:"Nilo-Saharan",Karanga:"Nilo-Saharan",Karko:"Nilo-Saharan",Kebu:"Nilo-Saharan",Keiga:"Nilo-Saharan",Keliko:"Nilo-Saharan",Kendeje:"Nilo-Saharan",Kibet:"Nilo-Saharan","Komo (Sudan)":"Nilo-Saharan",Korandje:"Nilo-Saharan",Kulfa:"Nilo-Saharan",Kwegu:"Nilo-Saharan",Laarim:"Nilo-Saharan",Logorik:"Nilo-Saharan",Majang:"Nilo-Saharan","Manga Kanuri":"Nilo-Saharan",Mango:"Nilo-Saharan",Mararit:"Nilo-Saharan",Marfa:"Nilo-Saharan",Midob:"Nilo-Saharan","Mo’da":"Nilo-Saharan",Morom:"Nilo-Saharan",Moru:"Nilo-Saharan",Naba:"Nilo-Saharan",Nara:"Nilo-Saharan",Njalgulgule:"Nilo-Saharan",Nuer:"Nilo-Saharan","Nyamusa-Molo":"Nilo-Saharan",Nyangatom:"Nilo-Saharan","Olu’bo":"Nilo-Saharan",Opo:"Nilo-Saharan",Päri:"Nilo-Saharan","Sara Kaba Naa":"Nilo-Saharan",Surbakhal:"Nilo-Saharan",Tadaksahak:"Nilo-Saharan","Tama (Chad)":"Nilo-Saharan",Temein:"Nilo-Saharan",Thuri:"Nilo-Saharan","Tirmaga-Chai Suri":"Nilo-Saharan",Toposa:"Nilo-Saharan",Tumtum:"Nilo-Saharan","Wali (Sudan)":"Nilo-Saharan","Yerwa Kanuri":"Nilo-Saharan",Yulu:"Nilo-Saharan",Zaghawa:"Nilo-Saharan","Adamawa Fulfulde":"Niger-Congo",Akaselem:"Niger-Congo","Amba (Uganda)":"Niger-Congo",Anii:"Niger-Congo",Baangi:"Niger-Congo",Badyara:"Niger-Congo","Bago-Kusuntu":"Niger-Congo",Bai:"Niger-Congo","Bainouk-Gunyaamolo":"Niger-Congo",Bamanankan:"Niger-Congo","Banda-Mbrès":"Niger-Congo",Bandial:"Niger-Congo",Bankagooma:"Niger-Congo","Belanda Viri":"Niger-Congo",Bemba:"Niger-Congo",Bolgo:"Niger-Congo","Bon Gula":"Niger-Congo",Bua:"Niger-Congo",Chichewa:"Niger-Congo","Chung (Cameroon)":"Niger-Congo","Ci Gbe":"Niger-Congo",Degema:"Niger-Congo",Dek:"Niger-Congo",Dhimba:"Niger-Congo",Dogoso:"Niger-Congo","East Limba":"Niger-Congo",Engenni:"Niger-Congo",Epie:"Niger-Congo",Éwé:"Niger-Congo",Fania:"Niger-Congo",Foodo:"Niger-Congo",Fwe:"Niger-Congo",Gciriku:"Niger-Congo",Gwa:"Niger-Congo",Herero:"Niger-Congo",Ibuoro:"Niger-Congo","Jenaama Bozo":"Niger-Congo",Jita:"Niger-Congo",Jula:"Niger-Congo",Kabiyè:"Niger-Congo",Kadung:"Niger-Congo",Kakabe:"Niger-Congo",Kalamsé:"Niger-Congo","Kami (Tanzania)":"Niger-Congo","Kango (Bas-Uélé District)":"Niger-Congo",Kasem:"Niger-Congo","Kelengaxo Bozo":"Niger-Congo",Khe:"Niger-Congo",Khisa:"Niger-Congo",Kim:"Niger-Congo",Kinyarwanda:"Niger-Congo",Kipfokomu:"Niger-Congo",Kitharaka:"Niger-Congo",Kiyombe:"Niger-Congo",Ko:"Niger-Congo",Koalib:"Niger-Congo",Koke:"Niger-Congo",Konongo:"Niger-Congo","Koro Nulu":"Niger-Congo","Koro Zuba":"Niger-Congo",Kuhane:"Niger-Congo",Kunda:"Niger-Congo",Kuranko:"Niger-Congo",Kuria:"Niger-Congo",Kwangali:"Niger-Congo",Lame:"Niger-Congo",Laru:"Niger-Congo",Lopa:"Niger-Congo","Makhuwa-Meetto":"Niger-Congo","Makhuwa-Shirima":"Niger-Congo","Malawi Nyiha":"Niger-Congo",Mandinka:"Niger-Congo",Mankanya:"Niger-Congo",Mansoanka:"Niger-Congo",Mbukushu:"Niger-Congo","Mende (Sierra Leone)":"Niger-Congo",Miyobe:"Niger-Congo",Mushungulu:"Niger-Congo","Mwali Comorian":"Niger-Congo","Mwera (Chimwera)":"Niger-Congo",Ndemli:"Niger-Congo",Ndengereko:"Niger-Congo",Ndumu:"Niger-Congo",Ndunga:"Niger-Congo","Ndzwani Comorian":"Niger-Congo",Ngile:"Niger-Congo","Northwest Gbaya":"Niger-Congo",Notre:"Niger-Congo",Nyamwanga:"Niger-Congo",Nyankore:"Niger-Congo",Nyengo:"Niger-Congo",Okpamheri:"Niger-Congo",Osatu:"Niger-Congo","Pana (Burkina Faso)":"Niger-Congo",Pulaar:"Niger-Congo",Pular:"Niger-Congo",Rufiji:"Niger-Congo","Sankaran Maninka":"Niger-Congo",Sapo:"Niger-Congo","Senara Sénoufo":"Niger-Congo",Shanga:"Niger-Congo",Sininkere:"Niger-Congo","Southern Ngbandi":"Niger-Congo",Swahili:"Niger-Congo","Syenara Sénoufo":"Niger-Congo",Tagbu:"Niger-Congo",Tagoi:"Niger-Congo",Tegali:"Niger-Congo",Tem:"Niger-Congo","Tiéyaxo Bozo":"Niger-Congo",Tiyaa:"Niger-Congo",Tocho:"Niger-Congo","Tonga (Zambia)":"Niger-Congo",Totela:"Niger-Congo","Toura (Côte d’Ivoire)":"Niger-Congo",Tswa:"Niger-Congo",Tumbuka:"Niger-Congo",Ukaan:"Niger-Congo",Uneme:"Niger-Congo",Vai:"Niger-Congo",Vute:"Niger-Congo",Waama:"Niger-Congo",Warnang:"Niger-Congo",Wolof:"Niger-Congo",Yao:"Niger-Congo",Yauma:"Niger-Congo",Yom:"Niger-Congo","Zan Gula":"Niger-Congo",Zande:"Niger-Congo",Zigula:"Niger-Congo",Mamaindê:"Nambikwara",Aghul:"Nakh-Daghestanian",Akhvakh:"Nakh-Daghestanian",Andi:"Nakh-Daghestanian",Avar:"Nakh-Daghestanian",Bagvalal:"Nakh-Daghestanian",Botlikh:"Nakh-Daghestanian",Chamalal:"Nakh-Daghestanian",Chechen:"Nakh-Daghestanian",Dargwa:"Nakh-Daghestanian",Kaitag:"Nakh-Daghestanian",Karata:"Nakh-Daghestanian",Khvarshi:"Nakh-Daghestanian",Tindi:"Nakh-Daghestanian",Pirahã:"Muran",Bonan:"Mongolic","China Buriat":"Mongolic",Daur:"Mongolic","Kalmyk-Oirat":"Mongolic","Peripheral Mongolian":"Mongolic","Russia Buriat":"Mongolic",Tagdal:"Mixed language",Wutunhua:"Mixed language","Ashéninka Perené":"Maipurean",Baniwa:"Maipurean",Cabiyarí:"Maipurean",Curripaco:"Maipurean","Enawené-Nawé":"Maipurean",Kanamarí:"Maipurean",Mehináku:"Maipurean","Pichis Ashéninka":"Maipurean",Waurá:"Maipurean",Bangime:"Language isolate",Burushaski:"Language isolate","Ai-Cham":"Kra-Dai",Aiton:"Kra-Dai","Dai Zhuang":"Kra-Dai",Duoluo:"Kra-Dai","Green Gelao":"Kra-Dai","Guibian Zhuang":"Kra-Dai",Hlai:"Kra-Dai",Jiamao:"Kra-Dai",Kang:"Kra-Dai",Khün:"Kra-Dai",Kuan:"Kra-Dai",Lachi:"Kra-Dai","Laha (Viet Nam)":"Kra-Dai",Lao:"Kra-Dai",Lü:"Kra-Dai","Mak (China)":"Kra-Dai","Northeastern Thai":"Kra-Dai","Northern Dong":"Kra-Dai","Northern Thai":"Kra-Dai",Nyaw:"Kra-Dai",Phake:"Kra-Dai","Phu Thai":"Kra-Dai",Qabiao:"Kra-Dai",Qau:"Kra-Dai","Qiubei Zhuang":"Kra-Dai",Shan:"Kra-Dai","Southern Dong":"Kra-Dai",Sui:"Kra-Dai","T’en":"Kra-Dai","Tai Daeng":"Kra-Dai","Tai Dam":"Kra-Dai","Tai Hongjin":"Kra-Dai","Tai Nüa":"Kra-Dai","Tai Ya":"Kra-Dai","Tai Yo":"Kra-Dai","Ts’ün-Lao":"Kra-Dai","Yang Zhuang":"Kra-Dai",Yerong:"Kra-Dai",Yong:"Kra-Dai",Yoy:"Kra-Dai",Khoekhoe:"Khoe-Kwadi",Karajá:"Karajá","Pará Gavião":"Jean",Suyá:"Jean",Japanese:"Japonic","Oki-No-Erabu":"Japonic","Toku-No-Shima":"Japonic",Yaeyama:"Japonic",Yoron:"Japonic","Adivasi Oriya":"Indo-European",Afrikaans:"Indo-European","Alviri-Vidari":"Indo-European",Angika:"Indo-European",Assamese:"Indo-European",Bagheli:"Indo-European",Bagri:"Indo-European",Bashkardi:"Indo-European",Bateri:"Indo-European",Bengali:"Indo-European",Bhojpuri:"Indo-European",Bhunjia:"Indo-European",Bilaspuri:"Indo-European",Bosnian:"Indo-European","Braj Bhasha":"Indo-European",Brokskat:"Indo-European",Bundeli:"Indo-European",Catalan:"Indo-European",Chambeali:"Indo-European",Chhattisgarhi:"Indo-European",Dameli:"Indo-European",Dari:"Indo-European",Dhundari:"Indo-European",Dogri:"Indo-European",Domari:"Indo-European",Dutch:"Indo-European","Eastern Balochi":"Indo-European","Eastern Panjabi":"Indo-European","Eastern Yiddish":"Indo-European",English:"Indo-European",French:"Indo-European",Gaddi:"Indo-European",Garhwali:"Indo-European",Gawri:"Indo-European",Gowro:"Indo-European",Gujarati:"Indo-European",Gujari:"Indo-European",Halbi:"Indo-European",Haroti:"Indo-European",Haryanvi:"Indo-European",Hindi:"Indo-European","Indus Kohistani":"Indo-European","Iranian Persian":"Indo-European",Ishkashimi:"Indo-European",Kacchi:"Indo-European",Kalkoti:"Indo-European",Kanauji:"Indo-European",Kangri:"Indo-European",Karingani:"Indo-European",Kashmiri:"Indo-European",Kati:"Indo-European",Khunsari:"Indo-European",Konkani:"Indo-European",Kudmali:"Indo-European",Kumaoni:"Indo-European",Kumzari:"Indo-European",Laki:"Indo-European",Lasi:"Indo-European",Luwati:"Indo-European",Magahi:"Indo-European",Maithili:"Indo-European",Maldivian:"Indo-European",Malvi:"Indo-European",Marathi:"Indo-European","Marwari (India)":"Indo-European",Mewari:"Indo-European",Munji:"Indo-European",Nepali:"Indo-European",Nimadi:"Indo-European","Northern Kurdish":"Indo-European",Odia:"Indo-European","Pahari-Potwari":"Indo-European",Palula:"Indo-European",Panchpargania:"Indo-European",Pangwali:"Indo-European",Parachi:"Indo-European",Portuguese:"Indo-European",Russian:"Indo-European",Sadri:"Indo-European",Sanglechi:"Indo-European",Sarikoli:"Indo-European",Savi:"Indo-European",Semnani:"Indo-European",Serbian:"Indo-European",Shabak:"Indo-European",Shahrudi:"Indo-European",Shekhawati:"Indo-European",Shina:"Indo-European",Shughni:"Indo-European",Shumashti:"Indo-European",Sindhi:"Indo-European",Sivandi:"Indo-European",Soi:"Indo-European","Southern Balochi":"Indo-European",Spanish:"Indo-European",Tajik:"Indo-European",Talysh:"Indo-European",Urdu:"Indo-European",Ushojo:"Indo-European",Vaghri:"Indo-European","Vlax Romani":"Indo-European",Wagdi:"Indo-European",Wakhi:"Indo-European",Waneci:"Indo-European","Western Balochi":"Indo-European",Yadgha:"Indo-European","Bu-Nao Bunu":"Hmong-Mien","Central Mashan Miao":"Hmong-Mien","Chuanqiandian Cluster Miao":"Hmong-Mien","Eastern Xiangxi Miao":"Hmong-Mien","Iu Mien":"Hmong-Mien","Luopohe Miao":"Hmong-Mien","Northern Qiandong Miao":"Hmong-Mien","Pa-Hng":"Hmong-Mien","Southwestern Huishui Miao":"Hmong-Mien","Wunai Bunu":"Hmong-Mien","Younuo Bunu":"Hmong-Mien",Amarakaeri:"Harákmbut",Huachipaeri:"Harákmbut",Cuiba:"Guajiboan",Macaguán:"Guajiboan",Tlicho:"Eyak-Athabaskan",Kannada:"Dravidian",Kodava:"Dravidian","Korra Koraga":"Dravidian","Kota (India)":"Dravidian",Kudiya:"Dravidian",Malapandaram:"Dravidian",Malayalam:"Dravidian",Muthuvan:"Dravidian",Ravula:"Dravidian",Sholaga:"Dravidian",Tamil:"Dravidian",Telugu:"Dravidian",Tulu:"Dravidian",Vishavan:"Dravidian","Andaman Hindi Creole":"Creole","Cocos Islands Malay":"Creole","Juba Arabic":"Creole",Nubi:"Creole",Barí:"Chibchan","Barro Negro Tunebo":"Chibchan","Western Tunebo":"Chibchan",Ikpeng:"Cariban","Kuikúro-Kalapálo":"Cariban",Pemon:"Cariban",Trió:"Cariban","Waimiri-Atroarí":"Cariban",Waiwai:"Cariban",Yukpa:"Cariban",Borôro:"Bororoan",Chachi:"Barbacoan","Abai Sungai":"Austronesian",Ambelau:"Austronesian",Asilulu:"Austronesian",Balaesang:"Austronesian","Batak Alas-Kluet":"Austronesian","Batak Dairi":"Austronesian","Batak Karo":"Austronesian",Bonerate:"Austronesian",Bonggi:"Austronesian",Brunei:"Austronesian","Brunei Bisaya":"Austronesian",Buol:"Austronesian","Central Malay":"Austronesian","Central Sama":"Austronesian","Coastal Konjo":"Austronesian",Dampelas:"Austronesian","Dibabawon Manobo":"Austronesian",Dondo:"Austronesian",Gane:"Austronesian","Geser-Gorom":"Austronesian","Highland Konjo":"Austronesian",Hitu:"Austronesian",Iban:"Austronesian",Indonesian:"Austronesian","Kadazan Dusun":"Austronesian",Kiput:"Austronesian",Komodo:"Austronesian",Kompane:"Austronesian",Lahanan:"Austronesian","Lampung Nyo":"Austronesian","Larike-Wakasihu":"Austronesian",Lola:"Austronesian",Luhu:"Austronesian",Malay:"Austronesian",Mariri:"Austronesian",Moronene:"Austronesian",Rukai:"Austronesian","Sabah Bisaya":"Austronesian","Seit-Kaitetu":"Austronesian",Sula:"Austronesian","Tae’":"Austronesian",Tajio:"Austronesian",Tomini:"Austronesian",Tutong:"Austronesian",Ujir:"Austronesian",Aheu:"Austro-Asiatic",Alak:"Austro-Asiatic",Bit:"Austro-Asiatic","Bo (Laos)":"Austro-Asiatic",Bondo:"Austro-Asiatic",Brao:"Austro-Asiatic",Bugan:"Austro-Asiatic",Chong:"Austro-Asiatic",Chut:"Austro-Asiatic",Danau:"Austro-Asiatic",Halang:"Austro-Asiatic","Halang Doan":"Austro-Asiatic",Hu:"Austro-Asiatic",Hung:"Austro-Asiatic",Ir:"Austro-Asiatic",Kensiu:"Austro-Asiatic",Khmu:"Austro-Asiatic",Khua:"Austro-Asiatic",Khuen:"Austro-Asiatic",Koda:"Austro-Asiatic","Kon Keu":"Austro-Asiatic",Kriang:"Austro-Asiatic",Kuay:"Austro-Asiatic",Laven:"Austro-Asiatic",Maleng:"Austro-Asiatic","Man Met":"Austro-Asiatic",Mang:"Austro-Asiatic",Minriq:"Austro-Asiatic",Mlabri:"Austro-Asiatic",Nguôn:"Austro-Asiatic",Nyaheun:"Austro-Asiatic",Nyahkur:"Austro-Asiatic","O’du":"Austro-Asiatic",Ong:"Austro-Asiatic",Oy:"Austro-Asiatic",Pacoh:"Austro-Asiatic","Phong-Kniang":"Austro-Asiatic",Prai:"Austro-Asiatic",Puoc:"Austro-Asiatic",Rengao:"Austro-Asiatic",Rmeet:"Austro-Asiatic","Rumai Palaung":"Austro-Asiatic",Sapuan:"Austro-Asiatic","Shwe Palaung":"Austro-Asiatic","So (Laos)":"Austro-Asiatic",Sou:"Austro-Asiatic","Tai Loi":"Austro-Asiatic",Talieng:"Austro-Asiatic",Tareng:"Austro-Asiatic",Tho:"Austro-Asiatic",U:"Austro-Asiatic","Upper Ta’oih":"Austro-Asiatic",Vietnamese:"Austro-Asiatic","Western Katu":"Austro-Asiatic",Suruahá:"Arauan",Jarawa:"Andamanese",Öñge:"Andamanese",Sentinel:"Andamanese",Afar:"Afro-Asiatic","Alaba-K’abeena":"Afro-Asiatic",Alagwa:"Afro-Asiatic",Ale:"Afro-Asiatic","Algerian Arabic":"Afro-Asiatic",Amharic:"Afro-Asiatic",Arbore:"Afro-Asiatic","Baharna Arabic":"Afro-Asiatic",Barein:"Afro-Asiatic",Bedawiyet:"Afro-Asiatic",Bidiyo:"Afro-Asiatic",Bilen:"Afro-Asiatic",Birgit:"Afro-Asiatic",Boor:"Afro-Asiatic","Borana-Arsi-Guji Oromo":"Afro-Asiatic",Buduma:"Afro-Asiatic","Central Atlas Tamazight":"Afro-Asiatic","Chadian Arabic":"Afro-Asiatic",Chenoua:"Afro-Asiatic",Ciwogai:"Afro-Asiatic",Daasanach:"Afro-Asiatic",Dabarre:"Afro-Asiatic",Dangaléat:"Afro-Asiatic",Deno:"Afro-Asiatic",Diri:"Afro-Asiatic",Duwai:"Afro-Asiatic","Eastern Egyptian Bedawi Arabic":"Afro-Asiatic","Eastern Oromo":"Afro-Asiatic",Garre:"Afro-Asiatic",Geruma:"Afro-Asiatic",Giiwo:"Afro-Asiatic",Gorowa:"Afro-Asiatic","Gulf Arabic":"Afro-Asiatic","Hadrami Arabic":"Afro-Asiatic",Harsusi:"Afro-Asiatic",Hassaniyya:"Afro-Asiatic",Hausa:"Afro-Asiatic",Hebrew:"Afro-Asiatic","Hijazi Arabic":"Afro-Asiatic",Hobyót:"Afro-Asiatic",Hozo:"Afro-Asiatic",Jiiddu:"Afro-Asiatic",Jimi:"Afro-Asiatic",Jina:"Afro-Asiatic","Jonkor Bourmataguil":"Afro-Asiatic","Judeo-Iraqi Arabic":"Afro-Asiatic","Judeo-Moroccan Arabic":"Afro-Asiatic",Kabalai:"Afro-Asiatic",Kajakse:"Afro-Asiatic",Kariya:"Afro-Asiatic","Karo (Ethiopia)":"Afro-Asiatic",Kutto:"Afro-Asiatic","Levantine Arabic":"Afro-Asiatic",Libido:"Afro-Asiatic","Libyan Arabic":"Afro-Asiatic","Lishana Deni":"Afro-Asiatic",Maaka:"Afro-Asiatic",Maay:"Afro-Asiatic",Majera:"Afro-Asiatic",Male:"Afro-Asiatic",Maslam:"Afro-Asiatic",Masmaje:"Afro-Asiatic",Mburku:"Afro-Asiatic",Mehri:"Afro-Asiatic","Mesopotamian Arabic":"Afro-Asiatic",Migaama:"Afro-Asiatic",Mogum:"Afro-Asiatic","Moroccan Arabic":"Afro-Asiatic",Mositacha:"Afro-Asiatic",Mubi:"Afro-Asiatic",Mukulu:"Afro-Asiatic",Nafusi:"Afro-Asiatic","Najdi Arabic":"Afro-Asiatic",Nyam:"Afro-Asiatic","Omani Arabic":"Afro-Asiatic","Pa’a":"Afro-Asiatic",Saba:"Afro-Asiatic",Saho:"Afro-Asiatic","Sanaani Arabic":"Afro-Asiatic",Seze:"Afro-Asiatic",Shehri:"Afro-Asiatic",Shekkacho:"Afro-Asiatic",Sheko:"Afro-Asiatic","Shihhi Arabic":"Afro-Asiatic",Siwi:"Afro-Asiatic",Sokoro:"Afro-Asiatic",Soqotri:"Afro-Asiatic","South Levantine Arabic":"Afro-Asiatic","Standard Arabic":"Afro-Asiatic","Sudanese Arabic":"Afro-Asiatic","Ta’izzi-Adeni Arabic":"Afro-Asiatic","Tahaggart Tamahaq":"Afro-Asiatic",Taznatit:"Afro-Asiatic",Tigré:"Afro-Asiatic",Toram:"Afro-Asiatic",Tsamai:"Afro-Asiatic",Tumzabt:"Afro-Asiatic",Tunni:"Afro-Asiatic",Waata:"Afro-Asiatic","West Central Oromo":"Afro-Asiatic",Xamtanga:"Afro-Asiatic",Zumbun:"Afro-Asiatic"},Fl=[">",["to-number",["get","peoplePraying"],0],0],Ml={0:.25,8:.4,14:.5},ca={0:.1,8:.18,14:.22},ua={0:1.2,8:1.6,14:2},zg=["interpolate",["linear"],["zoom"],0,["case",Fl,Ml[0],ca[0]],8,["case",Fl,Ml[8],ca[8]],14,["case",Fl,Ml[14],ca[14]]],Zk=["interpolate",["linear"],["zoom"],0,ua[0],8,ua[8],14,ua[14]],Gg=["==",["to-number",["get","peoplePraying"],0],0],Xk={prayer:[Gg],prayerProgress:[Gg],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function Qk(e){const t=Xk[e]||[];if(!t.length)return Zk;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,ca[0],ua[0]],8,["case",o,ca[8],ua[8]],14,["case",o,ca[14],ua[14]]]}const ex=[[/ sign language$/i,"Sign Language"]];function tx(e){if(!e||typeof e!="string")return null;const t=e.trim(),o=t.split(",").map(a=>a.trim()).filter(Boolean);if(o.length>=2){const a=[...o].reverse().join(" ");if(nt[a])return nt[a];if(o.length>=3){const s=[o[1],o[0]].join(" ");if(nt[s])return nt[s]}}if(nt[t])return nt[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&nt[n])return nt[n];for(const[a,s]of ex)if(a.test(t))return s;return null}function ox(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=()=>{const U=t();return U?Je(U):null},r=Dg({getMap:s,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=ye({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=ye({});function c(U,W="languageFamily"){const le=s();if(!le||!(U!=null&&U.length))return;const ke=Wk(W),R=U.map(z=>{var se,ie,S,P,q,X,pe,re,ee,de,Ae,Ne,Ve,it,Qe,Et,Kt,Ee,Ze;return{type:"Feature",properties:{uniqueId:z.id||z.uniqueId,slug:z.slug||((se=z._normalized)==null?void 0:se.slug)||"",rop3:z.rop3||z.peopleGroupId,peopleId3:z.peopleId3||"",name:z.name,language:z.language,languageFamily:z.languageFamily||((ie=z._normalized)==null?void 0:ie.languageFamily)||tx(z.language)||"Unknown",affinityBlock:z.affinityBlock||z.affbloc||z.Affbloc||((S=z._normalized)==null?void 0:S.affinityBlock)||"Unknown",affinityBlockLabel:z.affinityBlockLabel||((P=z._normalized)==null?void 0:P.affinityBlockLabel)||"",cluster:z.cluster||((q=z._normalized)==null?void 0:q.cluster)||"",clusterLabel:z.clusterLabel||((X=z._normalized)==null?void 0:X.clusterLabel)||"",peopleGroup:z.peopleGroup||((pe=z._normalized)==null?void 0:pe.peopleGroup)||"",peopleGroupLabel:z.peopleGroupLabel||((re=z._normalized)==null?void 0:re.peopleGroupLabel)||"",doxaRegion:z.doxaRegion||((ee=z._normalized)==null?void 0:ee.doxaRegion)||"Unknown",wagfBlock:z.wagfBlock||((de=z._normalized)==null?void 0:de.wagfBlock)||"",wagfBlockLabel:z.wagfBlockLabel||((Ae=z._normalized)==null?void 0:Ae.wagfBlockLabel)||"",wagfRegionLabel:z.wagfRegionLabel||((Ne=z._normalized)==null?void 0:Ne.wagfRegionLabel)||"",country:z.country,countryIso:z.countryIso,countryIsoLabel:z.countryIsoLabel,countryName:z.countryName,religion:z.religion,religionCode:z.religionCode,religionLabel:z.religionLabel,religionName:z.religionName,population:z.population,status:z.status,description:z.description||"",imageUrl:z.imageUrl||"",peoplePraying:Number(z.peoplePraying??((Ve=z._normalized)==null?void 0:Ve.peoplePraying)??0),engagementStatus:z.engagementStatus===!0||z.engagementStatus===1||!1,adoptionStatus:z.adoptionStatus===!0||z.adoptionStatus===1||!1,bible:z.bible||((it=z._normalized)==null?void 0:it.bible)||"Not Available",jesusFilm:z.jesusFilm||((Qe=z._normalized)==null?void 0:Qe.jesusFilm)||"Not Available",radio:z.radio||((Et=z._normalized)==null?void 0:Et.radio)||"Not Available",gospel:z.gospel||((Kt=z._normalized)==null?void 0:Kt.gospel)||"Not Available",audio:z.audio||((Ee=z._normalized)==null?void 0:Ee.audio)||"Not Available",stories:z.stories||((Ze=z._normalized)==null?void 0:Ze.stories)||"Not Available",lng:parseFloat(z.longitude||z.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(z.longitude||z.lng),parseFloat(z.latitude||z.lat)]}}}).filter(z=>!isNaN(z.geometry.coordinates[0])&&!isNaN(z.geometry.coordinates[1])),O=.04,F=z=>`${z.geometry.coordinates[0]},${z.geometry.coordinates[1]}`,V=new Map;for(const z of R){const se=F(z);V.has(se)||V.set(se,[]),V.get(se).push(z)}for(const z of V.values()){if(z.length<2)continue;const[se,ie]=z[0].geometry.coordinates,S=z.length;for(let P=0;P",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),le.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":Nl("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,r.attachLanguageFamilyEvents()}function u(U,W="doxa-regions"){const le=s();if(!le)return;le.getLayer("regions-fill")&&le.removeLayer("regions-fill"),le.getLayer("regions-border")&&le.removeLayer("regions-border"),le.getSource("regions")&&le.removeSource("regions");const ke={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},R="#cccccc",O=U&&U.isoToRegion?U.isoToRegion:{},F=[],V={};for(const[ie,S]of Object.entries(O)){const P=ke[String(S).toLowerCase()];P&&F.push(ie,P),V[S]||(V[S]=[]),V[S].push(ie)}l.value=V;const te=F.length?["match",["get","iso_3166_1_alpha_3"],...F,R]:R,z=le.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":le.getLayer("language-family-pins")?"language-family-pins":void 0,se=(()=>{var ie,S,P;try{return!!((P=(S=(ie=le.getContainer)==null?void 0:ie.call(le))==null?void 0:S.classList)!=null&&P.contains("maplibregl-map"))}catch{return!1}})();se?(le.addSource("regions",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${ol(null)}/boundaries/world-adm0-web.geojson`).then(ie=>ie.json()).then(ie=>{for(const P of ie.features||[])P.properties&&P.properties.iso3&&(P.properties.iso_3166_1_alpha_3=P.properties.iso3);const S=le.getSource("regions");S&&S.setData(ie)}).catch(ie=>console.warn("[map-layers] region boundaries failed to load",ie))):le.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),le.addLayer({id:"regions-fill",type:"fill",source:"regions",...se?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":te,"fill-opacity":W==="none"?.1:.7,"fill-antialias":!0,...Fo(le,"fill"),"fill-opacity-transition":{duration:300}}},z),le.addLayer({id:"regions-border",type:"line",source:"regions",...se?{}:{"source-layer":"country_boundaries"},paint:{"line-color":te,"line-width":1,"line-opacity":.9,...Fo(le,"line")}},z),i.value.regions=!0,r.attachRegionEvents()}function b(U,W){const le=s();if(!le||!U||!(W!=null&&W.length))return;m();const ke=W.filter(te=>{var se;return(te.languageFamily||((se=te._normalized)==null?void 0:se.languageFamily)||"Unknown")===U});if(ke.length<2)return;const R=n(U),O=[],F=15,V=[...ke].sort((te,z)=>(te.longitude||te.lng)-(z.longitude||z.lng));for(let te=0;te=",["get","peoplePraying"],Mo],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const C=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function E(U,W){const le=["interpolate",["linear"],["zoom"]];for(let ke=0;ke",["get","peoplePraying"],0],le=N();if(!T.every(R=>U.getLayer(R))){for(const R of T)if(U.getLayer(R))try{U.removeLayer(R)}catch{}U.addLayer({id:p,type:"circle",source:"language-families",filter:W,paint:{"circle-radius":E(C,1),"circle-color":le,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...Fo(U)}},"language-family-pins");for(const R of f)U.addLayer({id:R,type:"circle",source:"language-families",filter:W,paint:{"circle-radius":E(C,1),"circle-radius-transition":oe,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":le,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":oe,...Fo(U)}},"language-family-pins")}}function Y(){const U=s();if(U)for(const W of T)U.getLayer(W)&&U.removeLayer(W)}function B(U){const W=s();if(!W)return;const le=[">",["get","peoplePraying"],0],ke=U?["all",le,U]:le;for(const R of T)if(W.getLayer(R))try{W.setFilter(R,ke)}catch{}}function fe(){const U=s();if(U){if(j(),d&&(cancelAnimationFrame(d),d=null),h=!0,U.getLayer("language-family-pins"))try{U.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],Mo],1,[">",["get","peoplePraying"],0],1,3])}catch{}xe(U),_e()}}function _e(){d&&(cancelAnimationFrame(d),d=null);const U=++v;let W=performance.now(),le=-1/0;function ke(R){if(!h||U!==v)return;const O=s();if(!O||!T.some(V=>O.getLayer(V))){d=null;return}if(R-le"u")return;const W=typeof U.getContainer=="function"?U.getContainer():null;if(W)try{y=new IntersectionObserver(le=>{for(const ke of le)D=ke.isIntersecting},{threshold:0}),y.observe(W)}catch{y=null,D=!0}}function he(){if(y){try{y.disconnect()}catch{}y=null}D=!0}function ne(){h=!1,d&&(cancelAnimationFrame(d),d=null),he();try{Y();const U=s();U&&U.getLayer("language-family-pins")&&U.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:b,removeFamilyConnectionLines:m,updateLayerSource:L,removeLayer:x,hasLayer:_,setPaintProperty:g,mapEvents:r,startPrayerGlow:fe,stopPrayerGlow:ne,syncGlowFilter:B,cleanup:$}}const vo={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0};function nx(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(vo==null?void 0:vo.center)||[20,10],defaultZoom:r=vo==null?void 0:vo.zoom}=e,i=()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}};function l(y){const N=i(),C=(E={})=>{const j={};for(const Y of["center","zoom","bearing","pitch","padding"])E[Y]!==void 0&&(j[Y]=E[Y]);return y.jumpTo(j)};return{flyTo:E=>N?C(E):y.flyTo(E),easeTo:E=>N?C(E):y.easeTo(E),fitBounds:(E,j={})=>y.fitBounds(E,N?{...j,animate:!1,duration:0}:j)}}const c={speed:.5,essential:!0,curve:1.2};function u(y,N,C={x:150,y:0}){const E=t();if(!E)return y;try{const j=E.getCanvas(),Y=j.width,B=j.height,fe=E.project(y),_e=window.devicePixelRatio||1,xe=(C.x||0)*_e,he=(C.y||0)*_e,ne={x:fe.x-xe,y:fe.y-he},U=E.unproject(ne);return[U.lng,U.lat]}catch{return y}}function b(y,N=[]){const C=t();if(!C)return;let E=null,j=5;const Y=N.filter(fe=>fe.languageFamily===y);if(Y.length>0){let fe=1/0,_e=-1/0,xe=1/0,he=-1/0;if(Y.forEach(ne=>{ne.longitude&&ne.latitude&&(fe=Math.min(fe,ne.longitude),_e=Math.max(_e,ne.longitude),xe=Math.min(xe,ne.latitude),he=Math.max(he,ne.latitude))}),fe!==1/0){E=[(fe+_e)/2,(xe+he)/2];const ne=_e-fe,U=he-xe,W=Math.max(ne,U);W>50?j=2:W>20?j=3:W>10?j=4:W>5?j=5:j=6}}if(!E)return;const B=u(E);l(C).flyTo({center:B,zoom:j,...c})}function m(y){const N=t();if(!N)return;let C=null,E=4;const j=Vk(y);if(j)C=j.center,E=j.zoom||4;else if(a!=null&&a.features){const B=a.features.find(fe=>{var _e,xe;return((_e=fe.properties)==null?void 0:_e.region)===y||((xe=fe.properties)==null?void 0:xe.name)===y});B&&(C=L(B))}if(!C)return;const Y=u(C);l(N).flyTo({center:Y,zoom:E,...c})}function L(y){if(!y||!y.geometry)return null;const{type:N,coordinates:C}=y.geometry;let E=[];if(N==="Polygon"?E=C[0]||[]:N==="MultiPolygon"&&C.forEach(B=>{E=E.concat(B[0]||[])}),E.length===0)return null;let j=0,Y=0;return E.forEach(B=>{j+=B[0],Y+=B[1]}),[j/E.length,Y/E.length]}function x(y,N={}){const C=t();if(!C)return;const E={center:y,...c,...N};l(C).flyTo(E)}function _(y,N,C={}){const E=t();if(!E||(y==null?void 0:y.longitude)==null||(y==null?void 0:y.latitude)==null)return;const j=N??Math.min(E.getZoom()+2,8);x([y.longitude,y.latitude],{...C,zoom:j})}function g(y,N={top:40,right:40,bottom:40,left:40},C={}){const E=t();if(!E||!y)return;const j=C.maxZoom??4,Y=C.duration??900;l(E).fitBounds(y,{padding:N,maxZoom:j,duration:Y,...c,...C})}function $(){const y=t();y&&l(y).flyTo({center:s,zoom:r,...c})}const d=80,h=800,v=5,p=5,k=110,f=1.2;function T(y){const N=y.filter(Number.isFinite).slice().sort((F,V)=>F-V),C=N.length;if(!C)return null;let E=-1,j=0;for(let F=0;FE&&(E=te,j=F)}const Y=(j+1)%C,B=new Array(C);for(let F=0;F0&&V((F+180)%360+360)%360-180,U=ne(xe),W=24,le=360/W,ke=new Array(W).fill(0);for(const F of N){let V=Math.floor(((F+180)%360+360)%360/le);V>=W&&(V=W-1),ke[V]++}let R=0;for(let F=1;Fke[R]&&(R=F);return{center:ne(-180+(R+.5)*le),minLng:U,maxLng:U+(he-xe),span:he-xe}}function w(y){try{const N=y.getContainer&&y.getContainer().clientWidth||0,C=N>0?Math.log2(N/512):f,E=typeof y.getMinZoom=="function"?y.getMinZoom():C;return Math.max(E,C)}catch{return f}}function H(y,N,C,E){l(y).easeTo({center:[N,(C+E)/2],zoom:w(y),duration:h,essential:!0})}function Q(y,N,C){if(C>k)return!0;try{const E=typeof y.cameraForBounds=="function"?y.cameraForBounds(N,{padding:d,maxZoom:v}):null;return E==null?!0:typeof E.zoom=="number"&&E.zoom<=w(y)+.05}catch{return!1}}function K(y,N){if(!Array.isArray(y))return y;switch(y[0]){case"get":return N==null?void 0:N[y[1]];case"literal":return y[1];case"has":return N!=null&&y[1]in N;case"!has":return N==null||!(y[1]in N);case"!":return!K(y[1],N);case"coalesce":{for(let E=1;E2){const Y=Number(K(y[2],N));return Number.isFinite(Y)?Y:0}return NaN}case"to-string":{const E=K(y[1],N);return E==null?"":String(E)}case"to-boolean":return!!K(y[1],N);case"slice":{const E=K(y[1],N),j=K(y[2],N),Y=y.length>3?K(y[3],N):void 0;return typeof E!="string"?"":Y!=null?E.slice(j,Y):E.slice(j)}default:return y}}function M(y,N){if(y===!0)return!0;if(y===!1)return!1;if(!Array.isArray(y))return!!y;const C=y[0];if(C==="all"){for(let E=1;E"||C===">="||C==="<"||C==="<="){const E=typeof y[1]=="string"?N==null?void 0:N[y[1]]:K(y[1],N),j=K(y[2],N);switch(C){case"==":return E===j||E==null&&j==null;case"!=":return!(E===j||E==null&&j==null);case">":return E>j;case">=":return E>=j;case"<":return E{const z=(te==null?void 0:te.properties)||{};return z.region===F||z.name===F||z.id===F});if(V){const te=[];let z=1/0,se=-1/0;const ie=P=>{for(const q of P)Array.isArray(q[0])?ie(q):Number.isFinite(q[0])&&Number.isFinite(q[1])&&(te.push(q[0]),q[1]se&&(se=q[1]))};(ke=V.geometry)!=null&&ke.coordinates&&ie(V.geometry.coordinates);const S=T(te);if(S&&Number.isFinite(z)){const P=[[S.minLng,z],[S.maxLng,se]];Q(C,P,S.span)?H(C,S.center,z,se):l(C).fitBounds(P,{padding:d,maxZoom:v,duration:h,essential:!0});return}}}const E=N.sourceId??"language-families";if(!C.getSource(E))return;const j=N.matchExpr??y.filter;if(!j)return;const Y=oe(C,E);if(!Y.length)return;const B=[];let fe=1/0,_e=-1/0,xe=0,he=0,ne=0;const U=new Set;for(const O of Y){const F=O==null?void 0:O.properties;if(!M(j,F))continue;const V=F==null?void 0:F.uniqueId;if(V!=null){if(U.has(V))continue;U.add(V)}const te=(R=O.geometry)==null?void 0:R.coordinates;if(!Array.isArray(te)||te.length<2)continue;const z=te[0],se=te[1];!Number.isFinite(z)||!Number.isFinite(se)||(xe===0&&(he=z,ne=se),B.push(z),se_e&&(_e=se),xe++)}if(xe===0)return;if(xe===1){l(C).flyTo({center:[he,ne],zoom:p,duration:h,essential:!0});return}const W=T(B)||{center:0,minLng:0,maxLng:0,span:0},le=[[W.minLng,fe],[W.maxLng,_e]];if(Q(C,le,W.span)){H(C,W.center,fe,_e);return}try{l(C).fitBounds(le,{padding:d,maxZoom:v,duration:h,essential:!0})}catch{}}return{getOffsetCenter:u,slowFlyToFamily:b,slowFlyToRegion:m,flyTo:x,flyToCoords:_,fitBounds:g,resetView:$,zoomToLegendRow:D,calculateRegionCenterFromPolygon:L}}const Pr="#1a1a1a",on="selected-pin-highlight";function ax(e=Pr){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=`
