- ${r("popup.country.wagfBlock")}: ${U} + ${r("popup.country.wagfBlock")}: ${j}
${r("popup.country.country")}: ${P} (${w}) @@ -176,7 +176,7 @@ ${r("popup.country.uupgCount")}: ${G}
((T+180)%360+360)%360-180,ke=fe(be),$e=24,ne=360/$e,ee=new Array($e).fill(0);for(const T of L){let F=Math.floor(((T+180)%360+360)%360/ne);F>=$e&&(F=$e-1),ee[F]++}let de=0;for(let T=1;T<$e;T++)ee[T]>ee[de]&&(de=T);return{center:fe(-180+(de+.5)*ne),minLng:ke,maxLng:ke+(Le-be),span:Le-be}}function g(D){try{const L=D.getContainer&&D.getContainer().clientWidth||0,y=L>0?Math.log2(L/512):p,M=typeof D.getMinZoom=="function"?D.getMinZoom():y;return Math.max(M,y)}catch{return p}}function E(D,L,y,M){D.easeTo({center:[L,(y+M)/2],zoom:g(D),duration:$,essential:!0})}function S(D,L,y){if(y>w)return!0;try{const M=typeof D.cameraForBounds=="function"?D.cameraForBounds(L,{padding:_,maxZoom:h}):null;return M==null?!0:typeof M.zoom=="number"&&M.zoom<=g(D)+.05}catch{return!1}}function G(D,L){if(!Array.isArray(D))return D;switch(D[0]){case"get":return L==null?void 0:L[D[1]];case"literal":return D[1];case"has":return L!=null&&D[1]in L;case"!has":return L==null||!(D[1]in L);case"!":return!G(D[1],L);case"coalesce":{for(let M=1;M2){const q=Number(G(D[2],L));return Number.isFinite(q)?q:0}return NaN}case"to-string":{const M=G(D[1],L);return M==null?"":String(M)}case"to-boolean":return!!G(D[1],L);case"slice":{const M=G(D[1],L),z=G(D[2],L),q=D.length>3?G(D[3],L):void 0;return typeof M!="string"?"":q!=null?M.slice(z,q):M.slice(z)}default:return D}}function H(D,L){if(D===!0)return!0;if(D===!1)return!1;if(!Array.isArray(D))return!!D;const y=D[0];if(y==="all"){for(let M=1;M "||y===">="||y==="<"||y==="<="){const M=typeof D[1]=="string"?L==null?void 0:L[D[1]]:G(D[1],L),z=G(D[2],L);switch(y){case"==":return M===z||M==null&&z==null;case"!=":return!(M===z||M==null&&z==null);case">":return M>z;case">=":return M>=z;case"<":return M {const W=(O==null?void 0:O.properties)||{};return W.region===T||W.name===T||W.id===T});if(F){const O=[];let W=1/0,Y=-1/0;const I=te=>{for(const k of te)Array.isArray(k[0])?I(k):Number.isFinite(k[0])&&Number.isFinite(k[1])&&(O.push(k[0]),k[1] Y&&(Y=k[1]))};(ee=F.geometry)!=null&&ee.coordinates&&I(F.geometry.coordinates);const ue=P(O);if(ue&&Number.isFinite(W)){const te=[[ue.minLng,W],[ue.maxLng,Y]];S(y,te,ue.span)?E(y,ue.center,W,Y):y.fitBounds(te,{padding:_,maxZoom:h,duration:$,essential:!0});return}}}const M=L.sourceId??"language-families";if(!y.getSource(M))return;const z=L.matchExpr??D.filter;if(!z)return;const q=J(y,M);if(!q.length)return;const Q=[];let ie=1/0,j=-1/0,be=0,Le=0,fe=0;const ke=new Set;for(const Ce of q){const T=Ce==null?void 0:Ce.properties;if(!H(z,T))continue;const F=T==null?void 0:T.uniqueId;if(F!=null){if(ke.has(F))continue;ke.add(F)}const O=(de=Ce.geometry)==null?void 0:de.coordinates;if(!Array.isArray(O)||O.length<2)continue;const W=O[0],Y=O[1];!Number.isFinite(W)||!Number.isFinite(Y)||(be===0&&(Le=W,fe=Y),Q.push(W),Y j&&(j=Y),be++)}if(be===0)return;if(be===1){y.flyTo({center:[Le,fe],zoom:m,duration:$,essential:!0});return}const $e=P(Q)||{center:0,minLng:0,maxLng:0,span:0},ne=[[$e.minLng,ie],[$e.maxLng,j]];if(S(y,ne,$e.span)){E(y,$e.center,ie,j);return}try{y.fitBounds(ne,{padding:_,maxZoom:h,duration:$,essential:!0})}catch{}}return{getOffsetCenter:l,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:f,flyToCoords:A,fitBounds:v,resetView:b,zoomToLegendRow:U,calculateRegionCenterFromPolygon:d}}const cr="#1a1a1a",qo="selected-pin-highlight";function Ek(e=cr){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 d(m){const w=t();if(!w)return;const p=m||"language-family-pins";if(!w.getLayer(p))return;const P=g=>{try{const E=g.features[0],L=E.properties,G=E.geometry.coordinates.slice();for(;Math.abs(g.lngLat.lng-G[0])>180;)G[0]+=g.lngLat.lng>G[0]?360:-360;if(s&&s.legendMode!==void 0){s.selectPeopleGroup(E),s.isMobile&&s.legendState==="collapsed"&&s.setLegendState("open"),s.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new(lr(w)).Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(G).setHTML(c(L)).addTo(w)}catch(E){console.error(` [${o}] Pin click handler error:`,E)}};w.on("click",p,P),l.value.push({event:"click",layer:p,handler:P})}function f(){const m=t();if(!m)return;const w="regions-fill";if(!m.getLayer(w))return;const p=P=>{const g=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const E of g)if(m.getLayer(E)){const L=m.queryRenderedFeatures(P.point,{layers:[E]});if(L&&L.length>0)return}if(P.features&&P.features.length>0){const E=P.features[0].properties;new(lr(m)).Popup().setLngLat(P.lngLat).setHTML(u(E)).addTo(m)}};m.on("click",w,p),l.value.push({event:"click",layer:w,handler:p})}function A(){const m=t();if(!m)return;const w="clusters";if(!m.getLayer(w))return;const p=P=>{const g=m.queryRenderedFeatures(P.point,{layers:[w]});if(!g.length)return;const E=g[0].properties.cluster_id,L=g[0].source;m.getSource(L).getClusterExpansionZoom(E,(G,H)=>{G||m.easeTo({center:g[0].geometry.coordinates,zoom:H})})};m.on("click",w,p),l.value.push({event:"click",layer:w,handler:p})}function v(m){const w=t();if(!w||!w.getLayer(m))return;const p=()=>{w.getCanvas().style.cursor="pointer"},P=()=>{w.getCanvas().style.cursor=""};w.on("mouseenter",m,p),w.on("mouseleave",m,P),l.value.push({event:"mouseenter",layer:m,handler:p}),l.value.push({event:"mouseleave",layer:m,handler:P})}function b(){d(),v("language-family-pins"),d("language-family-pins-hitbox"),v("language-family-pins-hitbox"),A(),v("clusters")}function _(){f(),v("regions-fill")}function $(){const m=t();m&&(m.getLayer("language-family-pins")&&b(),m.getLayer("regions-fill")&&_(),m.getLayer("people-groups-pins")&&(d(),v("people-groups-pins")))}function h(){const m=t();if(m){for(const{event:w,layer:p,handler:P}of l.value)try{m.off(w,p,P)}catch{}l.value=[]}}return{attachAllEventHandlers:$,attachLanguageFamilyEvents:b,attachRegionEvents:_,attachPinClickHandler:d,attachRegionClickHandler:f,attachClusterClickHandler:A,attachCursorHandlers:v,detachAllEventHandlers:h,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const Ze={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"},pl=[">",["to-number",["get","peoplePraying"],0],0],dl={0:.25,8:.4,14:.5},oa={0:.1,8:.18,14:.22},na={0:1.2,8:1.6,14:2},rg=["interpolate",["linear"],["zoom"],0,["case",pl,dl[0],oa[0]],8,["case",pl,dl[8],oa[8]],14,["case",pl,dl[14],oa[14]]],wk=["interpolate",["linear"],["zoom"],0,na[0],8,na[8],14,na[14]],ig=["==",["to-number",["get","peoplePraying"],0],0],xk={prayer:[ig],prayerProgress:[ig],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function Sk(e){const t=xk[e]||[];if(!t.length)return wk;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,oa[0],na[0]],8,["case",o,oa[8],na[8]],14,["case",o,oa[14],na[14]]]}const Lk=[[/ sign language$/i,"Sign Language"]];function Ak(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(Ze[a])return Ze[a];if(o.length>=3){const s=[o[1],o[0]].join(" ");if(Ze[s])return Ze[s]}}if(Ze[t])return Ze[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&Ze[n])return Ze[n];for(const[a,s]of Lk)if(a.test(t))return s;return null}function Pk(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=()=>{const ne=t();return ne?Ke(ne):null},r=sg({getMap:s,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=he({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=he({});function c(ne,ee="languageFamily"){const de=s();if(!de||!(ne!=null&&ne.length))return;const Ce=V1(ee),T=ne.map(I=>{var ue,te,k,x,B,X,me,ce,Z,le,Ee,Te,qe,at,et,V,re,ve,Pe;return{type:"Feature",properties:{uniqueId:I.id||I.uniqueId,slug:I.slug||((ue=I._normalized)==null?void 0:ue.slug)||"",rop3:I.rop3||I.peopleGroupId,peopleId3:I.peopleId3||"",name:I.name,language:I.language,languageFamily:I.languageFamily||((te=I._normalized)==null?void 0:te.languageFamily)||Ak(I.language)||"Unknown",affinityBlock:I.affinityBlock||I.affbloc||I.Affbloc||((k=I._normalized)==null?void 0:k.affinityBlock)||"Unknown",affinityBlockLabel:I.affinityBlockLabel||((x=I._normalized)==null?void 0:x.affinityBlockLabel)||"",cluster:I.cluster||((B=I._normalized)==null?void 0:B.cluster)||"",clusterLabel:I.clusterLabel||((X=I._normalized)==null?void 0:X.clusterLabel)||"",peopleGroup:I.peopleGroup||((me=I._normalized)==null?void 0:me.peopleGroup)||"",peopleGroupLabel:I.peopleGroupLabel||((ce=I._normalized)==null?void 0:ce.peopleGroupLabel)||"",doxaRegion:I.doxaRegion||((Z=I._normalized)==null?void 0:Z.doxaRegion)||"Unknown",wagfBlock:I.wagfBlock||((le=I._normalized)==null?void 0:le.wagfBlock)||"",wagfBlockLabel:I.wagfBlockLabel||((Ee=I._normalized)==null?void 0:Ee.wagfBlockLabel)||"",wagfRegionLabel:I.wagfRegionLabel||((Te=I._normalized)==null?void 0:Te.wagfRegionLabel)||"",country:I.country,countryIso:I.countryIso,countryIsoLabel:I.countryIsoLabel,countryName:I.countryName,religion:I.religion,religionCode:I.religionCode,religionLabel:I.religionLabel,religionName:I.religionName,population:I.population,status:I.status,description:I.description||"",imageUrl:I.imageUrl||"",peoplePraying:Number(I.peoplePraying??((qe=I._normalized)==null?void 0:qe.peoplePraying)??0),engagementStatus:I.engagementStatus===!0||I.engagementStatus===1||!1,adoptionStatus:I.adoptionStatus===!0||I.adoptionStatus===1||!1,bible:I.bible||((at=I._normalized)==null?void 0:at.bible)||"Not Available",jesusFilm:I.jesusFilm||((et=I._normalized)==null?void 0:et.jesusFilm)||"Not Available",radio:I.radio||((V=I._normalized)==null?void 0:V.radio)||"Not Available",gospel:I.gospel||((re=I._normalized)==null?void 0:re.gospel)||"Not Available",audio:I.audio||((ve=I._normalized)==null?void 0:ve.audio)||"Not Available",stories:I.stories||((Pe=I._normalized)==null?void 0:Pe.stories)||"Not Available",lng:parseFloat(I.longitude||I.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(I.longitude||I.lng),parseFloat(I.latitude||I.lat)]}}}).filter(I=>!isNaN(I.geometry.coordinates[0])&&!isNaN(I.geometry.coordinates[1])),F=.04,O=I=>`${I.geometry.coordinates[0]},${I.geometry.coordinates[1]}`,W=new Map;for(const I of T){const ue=O(I);W.has(ue)||W.set(ue,[]),W.get(ue).push(I)}for(const I of W.values()){if(I.length<2)continue;const[ue,te]=I[0].geometry.coordinates,k=I.length;for(let x=0;x ",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),de.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":ul("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,r.attachLanguageFamilyEvents()}function u(ne,ee="doxa-regions"){const de=s();if(!de)return;de.getLayer("regions-fill")&&de.removeLayer("regions-fill"),de.getLayer("regions-border")&&de.removeLayer("regions-border"),de.getSource("regions")&&de.removeSource("regions");const Ce={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},T="#cccccc",F=ne&&ne.isoToRegion?ne.isoToRegion:{},O=[],W={};for(const[te,k]of Object.entries(F)){const x=Ce[String(k).toLowerCase()];x&&O.push(te,x),W[k]||(W[k]=[]),W[k].push(te)}l.value=W;const Y=O.length?["match",["get","iso_3166_1_alpha_3"],...O,T]:T,I=de.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":de.getLayer("language-family-pins")?"language-family-pins":void 0,ue=(()=>{var te,k,x;try{return!!((x=(k=(te=de.getContainer)==null?void 0:te.call(de))==null?void 0:k.classList)!=null&&x.contains("maplibregl-map"))}catch{return!1}})();ue?(de.addSource("regions",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${ng()}/boundaries/world-adm0.geojson`).then(te=>te.json()).then(te=>{for(const x of te.features||[])x.properties&&x.properties.iso3&&(x.properties.iso_3166_1_alpha_3=x.properties.iso3);const k=de.getSource("regions");k&&k.setData(te)}).catch(te=>console.warn("[map-layers] region boundaries failed to load",te))):de.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),de.addLayer({id:"regions-fill",type:"fill",source:"regions",...ue?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":Y,"fill-opacity":ee==="none"?.1:.7,"fill-antialias":!0,...Po(de,"fill"),"fill-opacity-transition":{duration:300}}},I),de.addLayer({id:"regions-border",type:"line",source:"regions",...ue?{}:{"source-layer":"country_boundaries"},paint:{"line-color":Y,"line-width":1,"line-opacity":.9,...Po(de,"line")}},I),i.value.regions=!0,r.attachRegionEvents()}function d(ne,ee){const de=s();if(!de||!ne||!(ee!=null&&ee.length))return;f();const Ce=ee.filter(Y=>{var ue;return(Y.languageFamily||((ue=Y._normalized)==null?void 0:ue.languageFamily)||"Unknown")===ne});if(Ce.length<2)return;const T=n(ne),F=[],O=15,W=[...Ce].sort((Y,I)=>(Y.longitude||Y.lng)-(I.longitude||I.lng));for(let Y=0;Y =",["get","peoplePraying"],Lo],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const z=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function q(ne,ee){const de=["interpolate",["linear"],["zoom"]];for(let Ce=0;Ce ",["get","peoplePraying"],0],de=M();if(!E.every(T=>ne.getLayer(T))){for(const T of E)if(ne.getLayer(T))try{ne.removeLayer(T)}catch{}ne.addLayer({id:p,type:"circle",source:"language-families",filter:ee,paint:{"circle-radius":q(z,1),"circle-color":de,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...Po(ne)}},"language-family-pins");for(const T of g)ne.addLayer({id:T,type:"circle",source:"language-families",filter:ee,paint:{"circle-radius":q(z,1),"circle-radius-transition":D,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":de,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":D,...Po(ne)}},"language-family-pins")}}function ie(){const ne=s();if(ne)for(const ee of E)ne.getLayer(ee)&&ne.removeLayer(ee)}function U(ne){const ee=s();if(!ee)return;const de=[">",["get","peoplePraying"],0],Ce=ne?["all",de,ne]:de;for(const T of E)if(ee.getLayer(T))try{ee.setFilter(T,Ce)}catch{}}function be(){const ne=s();if(ne){if(Q(),h&&(cancelAnimationFrame(h),h=null),m=!0,ne.getLayer("language-family-pins"))try{ne.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],Lo],1,[">",["get","peoplePraying"],0],1,3])}catch{}fe(ne),Se()}}function Se(){h&&(cancelAnimationFrame(h),h=null);const ne=++w;let ee=performance.now(),de=-1/0;function Ce(T){if(!m||ne!==w)return;const F=s();if(!F||!E.some(W=>F.getLayer(W))){h=null;return}if(T-de "u")return;const ee=typeof ne.getContainer=="function"?ne.getContainer():null;if(ee)try{y=new IntersectionObserver(de=>{for(const Ce of de)S=Ce.isIntersecting},{threshold:0}),y.observe(ee)}catch{y=null,S=!0}}function ke(){if(y){try{y.disconnect()}catch{}y=null}S=!0}function $e(){m=!1,h&&(cancelAnimationFrame(h),h=null),ke();try{ie();const ne=s();ne&&ne.getLayer("language-family-pins")&&ne.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:d,removeFamilyConnectionLines:f,updateLayerSource:A,removeLayer:v,hasLayer:b,setPaintProperty:_,mapEvents:r,startPrayerGlow:be,stopPrayerGlow:$e,syncGlowFilter:U,cleanup:$}}const uo={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0};function Ck(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(uo==null?void 0:uo.center)||[20,10],defaultZoom:r=uo==null?void 0:uo.zoom}=e,i={speed:.5,essential:!0,curve:1.2};function l(D,S,y={x:150,y:0}){const M=t();if(!M)return D;try{const z=M.getCanvas(),q=z.width,Q=z.height,ie=M.project(D),U=window.devicePixelRatio||1,be=(y.x||0)*U,Se=(y.y||0)*U,fe={x:ie.x-be,y:ie.y-Se},ke=M.unproject(fe);return[ke.lng,ke.lat]}catch{return D}}function c(D,S=[]){const y=t();if(!y)return;let M=null,z=5;const q=S.filter(ie=>ie.languageFamily===D);if(q.length>0){let ie=1/0,U=-1/0,be=1/0,Se=-1/0;if(q.forEach(fe=>{fe.longitude&&fe.latitude&&(ie=Math.min(ie,fe.longitude),U=Math.max(U,fe.longitude),be=Math.min(be,fe.latitude),Se=Math.max(Se,fe.latitude))}),ie!==1/0){M=[(ie+U)/2,(be+Se)/2];const fe=U-ie,ke=Se-be,$e=Math.max(fe,ke);$e>50?z=2:$e>20?z=3:$e>10?z=4:$e>5?z=5:z=6}}if(!M)return;const Q=l(M);y.flyTo({center:Q,zoom:z,...i})}function u(D){const S=t();if(!S)return;let y=null,M=4;const z=kk(D);if(z)y=z.center,M=z.zoom||4;else if(a!=null&&a.features){const Q=a.features.find(ie=>{var U,be;return((U=ie.properties)==null?void 0:U.region)===D||((be=ie.properties)==null?void 0:be.name)===D});Q&&(y=d(Q))}if(!y)return;const q=l(y);S.flyTo({center:q,zoom:M,...i})}function d(D){if(!D||!D.geometry)return null;const{type:S,coordinates:y}=D.geometry;let M=[];if(S==="Polygon"?M=y[0]||[]:S==="MultiPolygon"&&y.forEach(Q=>{M=M.concat(Q[0]||[])}),M.length===0)return null;let z=0,q=0;return M.forEach(Q=>{z+=Q[0],q+=Q[1]}),[z/M.length,q/M.length]}function f(D,S={}){const y=t();if(!y)return;const M={center:D,...i,...S};y.flyTo(M)}function A(D,S){const y=t();if(!y||(D==null?void 0:D.longitude)==null||(D==null?void 0:D.latitude)==null)return;const M=S??Math.min(y.getZoom()+2,8);f([D.longitude,D.latitude],{zoom:M})}function v(D,S={top:40,right:40,bottom:40,left:40},y={}){const M=t();if(!M||!D)return;const z=y.maxZoom??4,q=y.duration??900;M.fitBounds(D,{padding:S,maxZoom:z,duration:q,...i,...y})}function b(){const D=t();D&&D.flyTo({center:s,zoom:r,...i})}const _=80,$=800,h=5,m=5,w=110,p=1.2;function P(D){const S=D.filter(Number.isFinite).slice().sort((T,F)=>T-F),y=S.length;if(!y)return null;let M=-1,z=0;for(let T=0;T M&&(M=O,z=T)}const q=(z+1)%y,Q=new Array(y);for(let T=0;T 0&&F ((T+180)%360+360)%360-180,ke=fe(be),$e=24,ne=360/$e,ee=new Array($e).fill(0);for(const T of S){let F=Math.floor(((T+180)%360+360)%360/ne);F>=$e&&(F=$e-1),ee[F]++}let de=0;for(let T=1;T<$e;T++)ee[T]>ee[de]&&(de=T);return{center:fe(-180+(de+.5)*ne),minLng:ke,maxLng:ke+(Se-be),span:Se-be}}function g(D){try{const S=D.getContainer&&D.getContainer().clientWidth||0,y=S>0?Math.log2(S/512):p,M=typeof D.getMinZoom=="function"?D.getMinZoom():y;return Math.max(M,y)}catch{return p}}function E(D,S,y,M){D.easeTo({center:[S,(y+M)/2],zoom:g(D),duration:$,essential:!0})}function L(D,S,y){if(y>w)return!0;try{const M=typeof D.cameraForBounds=="function"?D.cameraForBounds(S,{padding:_,maxZoom:h}):null;return M==null?!0:typeof M.zoom=="number"&&M.zoom<=g(D)+.05}catch{return!1}}function G(D,S){if(!Array.isArray(D))return D;switch(D[0]){case"get":return S==null?void 0:S[D[1]];case"literal":return D[1];case"has":return S!=null&&D[1]in S;case"!has":return S==null||!(D[1]in S);case"!":return!G(D[1],S);case"coalesce":{for(let M=1;M2){const q=Number(G(D[2],S));return Number.isFinite(q)?q:0}return NaN}case"to-string":{const M=G(D[1],S);return M==null?"":String(M)}case"to-boolean":return!!G(D[1],S);case"slice":{const M=G(D[1],S),z=G(D[2],S),q=D.length>3?G(D[3],S):void 0;return typeof M!="string"?"":q!=null?M.slice(z,q):M.slice(z)}default:return D}}function H(D,S){if(D===!0)return!0;if(D===!1)return!1;if(!Array.isArray(D))return!!D;const y=D[0];if(y==="all"){for(let M=1;M "||y===">="||y==="<"||y==="<="){const M=typeof D[1]=="string"?S==null?void 0:S[D[1]]:G(D[1],S),z=G(D[2],S);switch(y){case"==":return M===z||M==null&&z==null;case"!=":return!(M===z||M==null&&z==null);case">":return M>z;case">=":return M>=z;case"<":return M {const W=(O==null?void 0:O.properties)||{};return W.region===T||W.name===T||W.id===T});if(F){const O=[];let W=1/0,Y=-1/0;const I=te=>{for(const k of te)Array.isArray(k[0])?I(k):Number.isFinite(k[0])&&Number.isFinite(k[1])&&(O.push(k[0]),k[1] Y&&(Y=k[1]))};(ee=F.geometry)!=null&&ee.coordinates&&I(F.geometry.coordinates);const ue=P(O);if(ue&&Number.isFinite(W)){const te=[[ue.minLng,W],[ue.maxLng,Y]];L(y,te,ue.span)?E(y,ue.center,W,Y):y.fitBounds(te,{padding:_,maxZoom:h,duration:$,essential:!0});return}}}const M=S.sourceId??"language-families";if(!y.getSource(M))return;const z=S.matchExpr??D.filter;if(!z)return;const q=J(y,M);if(!q.length)return;const Q=[];let ie=1/0,U=-1/0,be=0,Se=0,fe=0;const ke=new Set;for(const Ce of q){const T=Ce==null?void 0:Ce.properties;if(!H(z,T))continue;const F=T==null?void 0:T.uniqueId;if(F!=null){if(ke.has(F))continue;ke.add(F)}const O=(de=Ce.geometry)==null?void 0:de.coordinates;if(!Array.isArray(O)||O.length<2)continue;const W=O[0],Y=O[1];!Number.isFinite(W)||!Number.isFinite(Y)||(be===0&&(Se=W,fe=Y),Q.push(W),Y U&&(U=Y),be++)}if(be===0)return;if(be===1){y.flyTo({center:[Se,fe],zoom:m,duration:$,essential:!0});return}const $e=P(Q)||{center:0,minLng:0,maxLng:0,span:0},ne=[[$e.minLng,ie],[$e.maxLng,U]];if(L(y,ne,$e.span)){E(y,$e.center,ie,U);return}try{y.fitBounds(ne,{padding:_,maxZoom:h,duration:$,essential:!0})}catch{}}return{getOffsetCenter:l,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:f,flyToCoords:A,fitBounds:v,resetView:b,zoomToLegendRow:j,calculateRegionCenterFromPolygon:d}}const cr="#1a1a1a",qo="selected-pin-highlight";function Ek(e=cr){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=`