l!=null&&l!==!0),s=typeof(e==null?void 0:e.getFeatureState)=="function",i=l=>{if(!(!s||l==null))try{return e.getFeatureState({source:t,id:l})}catch{return}};for(const l of Ci(e,t)){const c=l&&l.properties;if(!c)continue;const u=c[n],p=i(u);r.length&&!r.every(h=>ur(h,c,p))||u!=null&&a.add(String(u))}return a}const Yv=Object.freeze(Object.defineProperty({__proto__:null,matchesExpression:ur,readSourceFeatures:Ci,resolveExpr:fo,selectedPinIds:Vv},Symbol.toStringTag,{value:"Module"})),Qo={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0};function Zv(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:r=(Qo==null?void 0:Qo.center)||[20,10],defaultZoom:s=Qo==null?void 0:Qo.zoom}=e,i=()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}};function l(v){const I=i(),P=(E={})=>{const U={};for(const C of["center","zoom","bearing","pitch","padding"])E[C]!==void 0&&(U[C]=E[C]);return v.jumpTo(U)};return{flyTo:E=>I?P(E):v.flyTo(E),easeTo:E=>I?P(E):v.easeTo(E),fitBounds:(E,U={})=>v.fitBounds(E,I?{...U,animate:!1,duration:0}:U)}}const c={speed:.5,essential:!0,curve:1.2};function u(v,I,P={x:150,y:0}){const E=t();if(!E)return v;try{const U=E.getCanvas(),C=U.width,D=U.height,N=E.project(v),W=window.devicePixelRatio||1,O=(P.x||0)*W,ae=(P.y||0)*W,pe={x:N.x-O,y:N.y-ae},_e=E.unproject(pe);return[_e.lng,_e.lat]}catch{return v}}function p(v,I=[]){const P=t();if(!P)return;let E=null,U=5;const C=I.filter(N=>N.languageFamily===v);if(C.length>0){let N=1/0,W=-1/0,O=1/0,ae=-1/0;if(C.forEach(pe=>{pe.longitude&&pe.latitude&&(N=Math.min(N,pe.longitude),W=Math.max(W,pe.longitude),O=Math.min(O,pe.latitude),ae=Math.max(ae,pe.latitude))}),N!==1/0){E=[(N+W)/2,(O+ae)/2];const pe=W-N,_e=ae-O,Se=Math.max(pe,_e);Se>50?U=2:Se>20?U=3:Se>10?U=4:Se>5?U=5:U=6}}if(!E)return;const D=u(E);l(P).flyTo({center:D,zoom:U,...c})}function h(v){const I=t();if(!I)return;let P=null,E=4;const U=zv(v);if(U)P=U.center,E=U.zoom||4;else if(a!=null&&a.features){const D=a.features.find(N=>{var W,O;return((W=N.properties)==null?void 0:W.region)===v||((O=N.properties)==null?void 0:O.name)===v});D&&(P=x(D))}if(!P)return;const C=u(P);l(I).flyTo({center:C,zoom:E,...c})}function x(v){if(!v||!v.geometry)return null;const{type:I,coordinates:P}=v.geometry;let E=[];if(I==="Polygon"?E=P[0]||[]:I==="MultiPolygon"&&P.forEach(D=>{E=E.concat(D[0]||[])}),E.length===0)return null;let U=0,C=0;return E.forEach(D=>{U+=D[0],C+=D[1]}),[U/E.length,C/E.length]}function k(v,I={}){const P=t();if(!P)return;const E={center:v,...c,...I};l(P).flyTo(E)}function $(v,I,P={}){const E=t();if(!E||(v==null?void 0:v.longitude)==null||(v==null?void 0:v.latitude)==null)return;const U=I??Math.min(E.getZoom()+2,8);k([v.longitude,v.latitude],{...P,zoom:U})}function b(v,I={top:40,right:40,bottom:40,left:40},P={}){const E=t();if(!E||!v)return;const U=P.maxZoom??4,C=P.duration??900;l(E).fitBounds(v,{padding:I,maxZoom:U,duration:C,...c,...P})}function m(){const v=t();v&&l(v).flyTo({center:r,zoom:s,...c})}const d=80,_=800,g=5,y=5,f=110,w=1.2;function A(v){const I=v.filter(Number.isFinite).slice().sort((ke,R)=>ke-R),P=I.length;if(!P)return null;let E=-1,U=0;for(let ke=0;keE&&(E=j,U=ke)}const C=(U+1)%P,D=new Array(P);for(let ke=0;ke
0&&R((ke+180)%360+360)%360-180,_e=pe(O),Se=24,xe=360/Se,ee=new Array(Se).fill(0);for(const ke of I){let R=Math.floor(((ke+180)%360+360)%360/xe);R>=Se&&(R=Se-1),ee[R]++}let Z=0;for(let ke=1;keee[Z]&&(Z=ke);return{center:pe(-180+(Z+.5)*xe),minLng:_e,maxLng:_e+(ae-O),span:ae-O}}function S(v){try{const I=v.getContainer&&v.getContainer().clientWidth||0,P=I>0?Math.log2(I/512):w,E=typeof v.getMinZoom=="function"?v.getMinZoom():P;return Math.max(E,P)}catch{return w}}function G(v,I,P,E){l(v).easeTo({center:[I,(P+E)/2],zoom:S(v),duration:_,essential:!0})}function q(v,I,P){if(P>f)return!0;try{const E=typeof v.cameraForBounds=="function"?v.cameraForBounds(I,{padding:d,maxZoom:g}):null;return E==null?!0:typeof E.zoom=="number"&&E.zoom<=S(v)+.05}catch{return!1}}function K(v,I={}){var ee,Z;const P=t();if(!P||!v)return;if(I.regionPolygonSource&&P.getSource(I.regionPolygonSource)){const le=Ci(P,I.regionPolygonSource),ke=v.id??v.label,R=le.find(j=>{const B=(j==null?void 0:j.properties)||{};return B.region===ke||B.name===ke||B.id===ke});if(R){const j=[];let B=1/0,Y=-1/0;const ne=se=>{for(const fe of se)Array.isArray(fe[0])?ne(fe):Number.isFinite(fe[0])&&Number.isFinite(fe[1])&&(j.push(fe[0]),fe[1]Y&&(Y=fe[1]))};(ee=R.geometry)!=null&&ee.coordinates&&ne(R.geometry.coordinates);const H=A(j);if(H&&Number.isFinite(B)){const se=[[H.minLng,B],[H.maxLng,Y]];q(P,se,H.span)?G(P,H.center,B,Y):l(P).fitBounds(se,{padding:d,maxZoom:g,duration:_,essential:!0});return}}}const E=I.sourceId??"language-families";if(!P.getSource(E))return;const U=I.matchExpr??v.filter;if(!U)return;const C=Ci(P,E);if(!C.length)return;const D=[];let N=1/0,W=-1/0,O=0,ae=0,pe=0;const _e=new Set;for(const le of C){const ke=le==null?void 0:le.properties;if(!ur(U,ke))continue;const R=ke==null?void 0:ke.uniqueId;if(R!=null){if(_e.has(R))continue;_e.add(R)}const j=(Z=le.geometry)==null?void 0:Z.coordinates;if(!Array.isArray(j)||j.length<2)continue;const B=j[0],Y=j[1];!Number.isFinite(B)||!Number.isFinite(Y)||(O===0&&(ae=B,pe=Y),D.push(B),YW&&(W=Y),O++)}if(O===0)return;if(O===1){l(P).flyTo({center:[ae,pe],zoom:y,duration:_,essential:!0});return}const Se=A(D)||{center:0,minLng:0,maxLng:0,span:0},xe=[[Se.minLng,N],[Se.maxLng,W]];if(q(P,xe,Se.span)){G(P,Se.center,N,W);return}try{l(P).fitBounds(xe,{padding:d,maxZoom:g,duration:_,essential:!0})}catch{}}return{getOffsetCenter:u,slowFlyToFamily:p,slowFlyToRegion:h,flyTo:k,flyToCoords:$,fitBounds:b,resetView:m,zoomToLegendRow:K,calculateRegionCenterFromPolygon:x}}const Ti="#1a1a1a",Bn="selected-pin-highlight";function Jv(e=Ti){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 p(_){const g=t();if(!g)return;const y=_||"language-family-pins";if(!g.getLayer(y))return;const f=w=>{try{const A=w.features[0],S=A.properties,G=A.geometry.coordinates.slice();for(;Math.abs(w.lngLat.lng-G[0])>180;)G[0]+=w.lngLat.lng>G[0]?360:-360;if(r&&r.legendMode!==void 0){r.selectPeopleGroup(A),r.isMobile&&r.legendState==="collapsed"&&r.setLegendState("open"),r.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new(wi(g)).Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(G).setHTML(c(S)).addTo(g)}catch(A){console.error(` [${o}] Pin click handler error:`,A)}};g.on("click",y,f),l.value.push({event:"click",layer:y,handler:f})}function h(){const _=t();if(!_)return;const g="regions-fill";if(!_.getLayer(g))return;const y=f=>{const w=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const A of w)if(_.getLayer(A)){const S=_.queryRenderedFeatures(f.point,{layers:[A]});if(S&&S.length>0)return}if(f.features&&f.features.length>0){const A=f.features[0].properties;new(wi(_)).Popup().setLngLat(f.lngLat).setHTML(u(A)).addTo(_)}};_.on("click",g,y),l.value.push({event:"click",layer:g,handler:y})}function x(){const _=t();if(!_)return;const g="clusters";if(!_.getLayer(g))return;const y=f=>{const w=_.queryRenderedFeatures(f.point,{layers:[g]});if(!w.length)return;const A=w[0].properties.cluster_id,S=w[0].source;_.getSource(S).getClusterExpansionZoom(A,(G,q)=>{G||_.easeTo({center:w[0].geometry.coordinates,zoom:q})})};_.on("click",g,y),l.value.push({event:"click",layer:g,handler:y})}function k(_){const g=t();if(!g||!g.getLayer(_))return;const y=()=>{g.getCanvas().style.cursor="pointer"},f=()=>{g.getCanvas().style.cursor=""};g.on("mouseenter",_,y),g.on("mouseleave",_,f),l.value.push({event:"mouseenter",layer:_,handler:y}),l.value.push({event:"mouseleave",layer:_,handler:f})}function $(){p("language-family-pins-hitbox"),k("language-family-pins"),k("language-family-pins-hitbox"),x(),k("clusters")}function b(){h(),k("regions-fill")}function m(){const _=t();_&&(_.getLayer("language-family-pins")&&$(),_.getLayer("regions-fill")&&b(),_.getLayer("people-groups-pins")&&(p("people-groups-pins"),k("people-groups-pins")))}function d(){const _=t();if(_){for(const{event:g,layer:y,handler:f}of l.value)try{_.off(g,y,f)}catch{}l.value=[]}}return{attachAllEventHandlers:m,attachLanguageFamilyEvents:$,attachRegionEvents:b,attachPinClickHandler:p,attachRegionClickHandler:h,attachClusterClickHandler:x,attachCursorHandlers:k,detachAllEventHandlers:d,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const wt={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"},Vc=[">",["to-number",["get","peoplePraying"],0],0],Yc={0:.25,8:.4,14:.5},lr={0:.1,8:.18,14:.22},cr={0:1.2,8:1.6,14:2},lf=["interpolate",["linear"],["zoom"],0,["case",Vc,Yc[0],lr[0]],8,["case",Vc,Yc[8],lr[8]],14,["case",Vc,Yc[14],lr[14]]],Bv=["interpolate",["linear"],["zoom"],0,cr[0],8,cr[8],14,cr[14]],cf=["==",["to-number",["get","peoplePraying"],0],0],Gv={prayer:[cf],prayerProgress:[cf],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function Hv(e){const t=Gv[e]||[];if(!t.length)return Bv;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,lr[0],cr[0]],8,["case",o,lr[8],cr[8]],14,["case",o,lr[14],cr[14]]]}const Uv=[[/ sign language$/i,"Sign Language"]];function Wv(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(wt[a])return wt[a];if(o.length>=3){const r=[o[1],o[0]].join(" ");if(wt[r])return wt[r]}}if(wt[t])return wt[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&wt[n])return wt[n];for(const[a,r]of Uv)if(a.test(t))return r;return null}function qv(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,r=()=>{const Q=t();return Q?gt(Q):null},s=sf({getMap:r,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=we({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=we({});function c(Q,Z="languageFamily"){const le=r();if(!le||!(Q!=null&&Q.length))return;const ke=Iv(Z),R=Q.map(H=>{var se,fe,M,L,J,ce,be,ve,X,ie,Fe,Ie,lt,ht,kt,Re,De,Oe,Je;return{type:"Feature",properties:{uniqueId:H.id||H.uniqueId,slug:H.slug||((se=H._normalized)==null?void 0:se.slug)||"",rop3:H.rop3||H.peopleGroupId,peopleId3:H.peopleId3||"",name:H.name,language:H.language,languageFamily:H.languageFamily||((fe=H._normalized)==null?void 0:fe.languageFamily)||Wv(H.language)||"Unknown",affinityBlock:H.affinityBlock||H.affbloc||H.Affbloc||((M=H._normalized)==null?void 0:M.affinityBlock)||"Unknown",affinityBlockLabel:H.affinityBlockLabel||((L=H._normalized)==null?void 0:L.affinityBlockLabel)||"",cluster:H.cluster||((J=H._normalized)==null?void 0:J.cluster)||"",clusterLabel:H.clusterLabel||((ce=H._normalized)==null?void 0:ce.clusterLabel)||"",peopleGroup:H.peopleGroup||((be=H._normalized)==null?void 0:be.peopleGroup)||"",peopleGroupLabel:H.peopleGroupLabel||((ve=H._normalized)==null?void 0:ve.peopleGroupLabel)||"",doxaRegion:H.doxaRegion||((X=H._normalized)==null?void 0:X.doxaRegion)||"Unknown",wagfBlock:H.wagfBlock||((ie=H._normalized)==null?void 0:ie.wagfBlock)||"",wagfBlockLabel:H.wagfBlockLabel||((Fe=H._normalized)==null?void 0:Fe.wagfBlockLabel)||"",wagfRegionLabel:H.wagfRegionLabel||((Ie=H._normalized)==null?void 0:Ie.wagfRegionLabel)||"",country:H.country,countryIso:H.countryIso,countryIsoLabel:H.countryIsoLabel,countryName:H.countryName,religion:H.religion,religionCode:H.religionCode,religionLabel:H.religionLabel,religionName:H.religionName,population:H.population,status:H.status,description:H.description||"",imageUrl:H.imageUrl||"",peoplePraying:Number(H.peoplePraying??((lt=H._normalized)==null?void 0:lt.peoplePraying)??0),engagementStatus:H.engagementStatus===!0||H.engagementStatus===1||!1,adoptionStatus:H.adoptionStatus===!0||H.adoptionStatus===1||!1,bible:H.bible||((ht=H._normalized)==null?void 0:ht.bible)||"Not Available",jesusFilm:H.jesusFilm||((kt=H._normalized)==null?void 0:kt.jesusFilm)||"Not Available",radio:H.radio||((Re=H._normalized)==null?void 0:Re.radio)||"Not Available",gospel:H.gospel||((De=H._normalized)==null?void 0:De.gospel)||"Not Available",audio:H.audio||((Oe=H._normalized)==null?void 0:Oe.audio)||"Not Available",stories:H.stories||((Je=H._normalized)==null?void 0:Je.stories)||"Not Available",lng:parseFloat(H.longitude||H.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(H.longitude||H.lng),parseFloat(H.latitude||H.lat)]}}}).filter(H=>!isNaN(H.geometry.coordinates[0])&&!isNaN(H.geometry.coordinates[1])),j=.04,B=H=>`${H.geometry.coordinates[0]},${H.geometry.coordinates[1]}`,Y=new Map;for(const H of R){const se=B(H);Y.has(se)||Y.set(se,[]),Y.get(se).push(H)}for(const H of Y.values()){if(H.length<2)continue;const[se,fe]=H[0].geometry.coordinates,M=H.length;for(let L=0;L",["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":Kc("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,s.attachLanguageFamilyEvents()}function u(Q,Z="doxa-regions"){const le=r();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",j=Q&&Q.isoToRegion?Q.isoToRegion:{},B=[],Y={};for(const[fe,M]of Object.entries(j)){const L=ke[String(M).toLowerCase()];L&&B.push(fe,L),Y[M]||(Y[M]=[]),Y[M].push(fe)}l.value=Y;const ne=B.length?["match",["get","iso_3166_1_alpha_3"],...B,R]:R,H=le.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":le.getLayer("language-family-pins")?"language-family-pins":void 0,se=(()=>{var fe,M,L;try{return!!((L=(M=(fe=le.getContainer)==null?void 0:fe.call(le))==null?void 0:M.classList)!=null&&L.contains("maplibregl-map"))}catch{return!1}})();se?(le.addSource("regions",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),Xa(`${Xr(null)}/boundaries/world-adm0-web.geojson`).then(fe=>fe.json()).then(fe=>{for(const L of fe.features||[])L.properties&&L.properties.iso3&&(L.properties.iso_3166_1_alpha_3=L.properties.iso3);const M=le.getSource("regions");M&&M.setData(fe)}).catch(fe=>console.warn("[map-layers] region boundaries failed to load",fe))):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":ne,"fill-opacity":Z==="none"?.1:.7,"fill-antialias":!0,...mn(le,"fill"),"fill-opacity-transition":{duration:300}}},H),le.addLayer({id:"regions-border",type:"line",source:"regions",...se?{}:{"source-layer":"country_boundaries"},paint:{"line-color":ne,"line-width":1,"line-opacity":.9,...mn(le,"line")}},H),i.value.regions=!0,s.attachRegionEvents()}function p(Q,Z){const le=r();if(!le||!Q||!(Z!=null&&Z.length))return;h();const ke=Z.filter(ne=>{var se;return(ne.languageFamily||((se=ne._normalized)==null?void 0:se.languageFamily)||"Unknown")===Q});if(ke.length<2)return;const R=n(Q),j=[],B=15,Y=[...ke].sort((ne,H)=>(ne.longitude||ne.lng)-(H.longitude||H.lng));for(let ne=0;ne=",["get","peoplePraying"],bn],"#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 D(Q,Z){const le=["interpolate",["linear"],["zoom"]];for(let ke=0;ke",["get","peoplePraying"],0],le=U();if(!A.every(R=>Q.getLayer(R))){for(const R of A)if(Q.getLayer(R))try{Q.removeLayer(R)}catch{}Q.addLayer({id:y,type:"circle",source:"language-families",filter:Z,paint:{"circle-radius":D(C,1),"circle-color":le,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...mn(Q)}},"language-family-pins");for(const R of w)Q.addLayer({id:R,type:"circle",source:"language-families",filter:Z,paint:{"circle-radius":D(C,1),"circle-radius-transition":I,"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":I,...mn(Q)}},"language-family-pins")}}function W(){const Q=r();if(Q)for(const Z of A)Q.getLayer(Z)&&Q.removeLayer(Z)}function O(Q){const Z=r();if(!Z)return;const le=[">",["get","peoplePraying"],0],ke=Q?["all",le,Q]:le;for(const R of A)if(Z.getLayer(R))try{Z.setFilter(R,ke)}catch{}}function ae(){const Q=r();if(Q){if(N(),d&&(cancelAnimationFrame(d),d=null),_=!0,Q.getLayer("language-family-pins"))try{Q.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],bn],1,[">",["get","peoplePraying"],0],1,3])}catch{}_e(Q),pe()}}function pe(){d&&(cancelAnimationFrame(d),d=null);const Q=++g;let Z=performance.now(),le=-1/0;function ke(R){if(!_||Q!==g)return;const j=r();if(!j||!A.some(Y=>j.getLayer(Y))){d=null;return}if(R-le"u")return;const Z=typeof Q.getContainer=="function"?Q.getContainer():null;if(Z)try{E=new IntersectionObserver(le=>{for(const ke of le)P=ke.isIntersecting},{threshold:0}),E.observe(Z)}catch{E=null,P=!0}}function Se(){if(E){try{E.disconnect()}catch{}E=null}P=!0}function xe(){_=!1,d&&(cancelAnimationFrame(d),d=null),Se();try{W();const Q=r();Q&&Q.getLayer("language-family-pins")&&Q.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:p,removeFamilyConnectionLines:h,updateLayerSource:x,removeLayer:k,hasLayer:$,setPaintProperty:b,mapEvents:s,startPrayerGlow:ae,stopPrayerGlow:xe,syncGlowFilter:O,cleanup:m}}function fo(e,t,o){if(!Array.isArray(e))return e;switch(e[0]){case"get":return t==null?void 0:t[e[1]];case"literal":return e[1];case"feature-state":return o==null?void 0:o[e[1]];case"has":return t!=null&&e[1]in t;case"!has":return t==null||!(e[1]in t);case"!":return!fo(e[1],t,o);case"coalesce":{for(let a=1;a2){const s=Number(fo(e[2],t,o));return Number.isFinite(s)?s:0}return NaN}case"to-string":{const a=fo(e[1],t,o);return a==null?"":String(a)}case"to-boolean":return!!fo(e[1],t,o);case"slice":{const a=fo(e[1],t,o),r=fo(e[2],t,o),s=e.length>3?fo(e[3],t,o):void 0;return typeof a!="string"?"":s!=null?a.slice(r,s):a.slice(r)}default:return e}}function ur(e,t,o){if(e===!0)return!0;if(e===!1)return!1;if(!Array.isArray(e))return!!e;const n=e[0];if(n==="all"){for(let a=1;a"||n===">="||n==="<"||n==="<="){const a=typeof e[1]=="string"?t==null?void 0:t[e[1]]:fo(e[1],t,o),r=fo(e[2],t,o);switch(n){case"==":return a===r||a==null&&r==null;case"!=":return!(a===r||a==null&&r==null);case">":return a>r;case">=":return a>=r;case"<":return al!=null&&l!==!0),s=typeof(e==null?void 0:e.getFeatureState)=="function",i=l=>{if(!(!s||l==null))try{return e.getFeatureState({source:t,id:l})}catch{return}};for(const l of Ci(e,t)){const c=l&&l.properties;if(!c)continue;const u=c[n],p=i(u);r.length&&!r.every(h=>ur(h,c,p))||u!=null&&a.add(String(u))}return a}const Vv=Object.freeze(Object.defineProperty({__proto__:null,matchesExpression:ur,readSourceFeatures:Ci,resolveExpr:fo,selectedPinIds:Kv},Symbol.toStringTag,{value:"Module"})),Qo={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0};function Yv(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:r=(Qo==null?void 0:Qo.center)||[20,10],defaultZoom:s=Qo==null?void 0:Qo.zoom}=e,i=()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}};function l(v){const I=i(),P=(E={})=>{const U={};for(const C of["center","zoom","bearing","pitch","padding"])E[C]!==void 0&&(U[C]=E[C]);return v.jumpTo(U)};return{flyTo:E=>I?P(E):v.flyTo(E),easeTo:E=>I?P(E):v.easeTo(E),fitBounds:(E,U={})=>v.fitBounds(E,I?{...U,animate:!1,duration:0}:U)}}const c={speed:.5,essential:!0,curve:1.2};function u(v,I,P={x:150,y:0}){const E=t();if(!E)return v;try{const U=E.getCanvas(),C=U.width,D=U.height,N=E.project(v),W=window.devicePixelRatio||1,O=(P.x||0)*W,ae=(P.y||0)*W,pe={x:N.x-O,y:N.y-ae},_e=E.unproject(pe);return[_e.lng,_e.lat]}catch{return v}}function p(v,I=[]){const P=t();if(!P)return;let E=null,U=5;const C=I.filter(N=>N.languageFamily===v);if(C.length>0){let N=1/0,W=-1/0,O=1/0,ae=-1/0;if(C.forEach(pe=>{pe.longitude&&pe.latitude&&(N=Math.min(N,pe.longitude),W=Math.max(W,pe.longitude),O=Math.min(O,pe.latitude),ae=Math.max(ae,pe.latitude))}),N!==1/0){E=[(N+W)/2,(O+ae)/2];const pe=W-N,_e=ae-O,Se=Math.max(pe,_e);Se>50?U=2:Se>20?U=3:Se>10?U=4:Se>5?U=5:U=6}}if(!E)return;const D=u(E);l(P).flyTo({center:D,zoom:U,...c})}function h(v){const I=t();if(!I)return;let P=null,E=4;const U=Ov(v);if(U)P=U.center,E=U.zoom||4;else if(a!=null&&a.features){const D=a.features.find(N=>{var W,O;return((W=N.properties)==null?void 0:W.region)===v||((O=N.properties)==null?void 0:O.name)===v});D&&(P=x(D))}if(!P)return;const C=u(P);l(I).flyTo({center:C,zoom:E,...c})}function x(v){if(!v||!v.geometry)return null;const{type:I,coordinates:P}=v.geometry;let E=[];if(I==="Polygon"?E=P[0]||[]:I==="MultiPolygon"&&P.forEach(D=>{E=E.concat(D[0]||[])}),E.length===0)return null;let U=0,C=0;return E.forEach(D=>{U+=D[0],C+=D[1]}),[U/E.length,C/E.length]}function k(v,I={}){const P=t();if(!P)return;const E={center:v,...c,...I};l(P).flyTo(E)}function $(v,I,P={}){const E=t();if(!E||(v==null?void 0:v.longitude)==null||(v==null?void 0:v.latitude)==null)return;const U=I??Math.min(E.getZoom()+2,8);k([v.longitude,v.latitude],{...P,zoom:U})}function b(v,I={top:40,right:40,bottom:40,left:40},P={}){const E=t();if(!E||!v)return;const U=P.maxZoom??4,C=P.duration??900;l(E).fitBounds(v,{padding:I,maxZoom:U,duration:C,...c,...P})}function m(){const v=t();v&&l(v).flyTo({center:r,zoom:s,...c})}const d=80,_=800,g=5,y=5,f=110,w=1.2;function A(v){const I=v.filter(Number.isFinite).slice().sort((ke,R)=>ke-R),P=I.length;if(!P)return null;let E=-1,U=0;for(let ke=0;keE&&(E=j,U=ke)}const C=(U+1)%P,D=new Array(P);for(let ke=0;ke
0&&R((ke+180)%360+360)%360-180,_e=pe(O),Se=24,xe=360/Se,Q=new Array(Se).fill(0);for(const ke of I){let R=Math.floor(((ke+180)%360+360)%360/xe);R>=Se&&(R=Se-1),Q[R]++}let Z=0;for(let ke=1;keQ[Z]&&(Z=ke);return{center:pe(-180+(Z+.5)*xe),minLng:_e,maxLng:_e+(ae-O),span:ae-O}}function S(v){try{const I=v.getContainer&&v.getContainer().clientWidth||0,P=I>0?Math.log2(I/512):w,E=typeof v.getMinZoom=="function"?v.getMinZoom():P;return Math.max(E,P)}catch{return w}}function G(v,I,P,E){l(v).easeTo({center:[I,(P+E)/2],zoom:S(v),duration:_,essential:!0})}function q(v,I,P){if(P>f)return!0;try{const E=typeof v.cameraForBounds=="function"?v.cameraForBounds(I,{padding:d,maxZoom:g}):null;return E==null?!0:typeof E.zoom=="number"&&E.zoom<=S(v)+.05}catch{return!1}}function K(v,I={}){var Q,Z;const P=t();if(!P||!v)return;if(I.regionPolygonSource&&P.getSource(I.regionPolygonSource)){const le=Ci(P,I.regionPolygonSource),ke=v.id??v.label,R=le.find(j=>{const B=(j==null?void 0:j.properties)||{};return B.region===ke||B.name===ke||B.id===ke});if(R){const j=[];let B=1/0,Y=-1/0;const ne=se=>{for(const fe of se)Array.isArray(fe[0])?ne(fe):Number.isFinite(fe[0])&&Number.isFinite(fe[1])&&(j.push(fe[0]),fe[1]Y&&(Y=fe[1]))};(Q=R.geometry)!=null&&Q.coordinates&&ne(R.geometry.coordinates);const H=A(j);if(H&&Number.isFinite(B)){const se=[[H.minLng,B],[H.maxLng,Y]];q(P,se,H.span)?G(P,H.center,B,Y):l(P).fitBounds(se,{padding:d,maxZoom:g,duration:_,essential:!0});return}}}const E=I.sourceId??"language-families";if(!P.getSource(E))return;const U=I.matchExpr??v.filter;if(!U)return;const C=Ci(P,E);if(!C.length)return;const D=[];let N=1/0,W=-1/0,O=0,ae=0,pe=0;const _e=new Set;for(const le of C){const ke=le==null?void 0:le.properties;if(!ur(U,ke))continue;const R=ke==null?void 0:ke.uniqueId;if(R!=null){if(_e.has(R))continue;_e.add(R)}const j=(Z=le.geometry)==null?void 0:Z.coordinates;if(!Array.isArray(j)||j.length<2)continue;const B=j[0],Y=j[1];!Number.isFinite(B)||!Number.isFinite(Y)||(O===0&&(ae=B,pe=Y),D.push(B),YW&&(W=Y),O++)}if(O===0)return;if(O===1){l(P).flyTo({center:[ae,pe],zoom:y,duration:_,essential:!0});return}const Se=A(D)||{center:0,minLng:0,maxLng:0,span:0},xe=[[Se.minLng,N],[Se.maxLng,W]];if(q(P,xe,Se.span)){G(P,Se.center,N,W);return}try{l(P).fitBounds(xe,{padding:d,maxZoom:g,duration:_,essential:!0})}catch{}}return{getOffsetCenter:u,slowFlyToFamily:p,slowFlyToRegion:h,flyTo:k,flyToCoords:$,fitBounds:b,resetView:m,zoomToLegendRow:K,calculateRegionCenterFromPolygon:x}}const Ti="#1a1a1a",Bn="selected-pin-highlight";function Zv(e=Ti){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=`
