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