+`,"all-people-groups");const t=Fe("profileConfig"),n=Fe("mapboxToken"),o=Fe("dataSource"),a=Fe("dataStore"),s=Fe("mapStore"),i=Nm(t),r=he(()=>{var Y;return String(((Y=t==null?void 0:t.value)==null?void 0:Y.assetsBase)||"/assets").replace(/\/+$/,"")}),l=[{id:"doxa",label:"DOXA people groups",color:"#111827"},{id:"frontier",label:"Frontier — nothing started",color:"#e74c3c"},{id:"unreached",label:"Unreached — work beginning",color:"#f1c40f"},{id:"reached",label:"Reached — church is there",color:"#2ecc71"}],c=Object.fromEntries(l.map(Y=>[Y.id,Y.color])),u=fe({doxa:0,frontier:0,unreached:0,reached:0});function f(Y,D){if(D.has(String(Y.ROP3Code||"")))return"doxa";const j=Number(Y.GSEC);return!Number.isFinite(j)||j<=1?"frontier":j<=3?"unreached":"reached"}function m(){var j;let Y="";try{Y=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const D=(j=t==null?void 0:t.value)==null?void 0:j.utmSource;return encodeURIComponent(String(Y||D||"agwm"))}const k=fe(null),C=fe(!1),S=fe(null),{map:N,initializeMap:w,destroy:L}=Lm({containerRef:k,accessToken:n.value,provider:i,style:((ne=t==null?void 0:t.value)==null?void 0:ne.style)??"ink",center:[20,12],zoom:1.6}),_=new pc,b=ob({mapId:"all-people-groups",dataSourceId:o.value,dataSourceManager:_,dataStore:a,markRaw:Y=>Y});let y=[],$=new Map;function P(Y){return String(Y??"").replace(/[&<>"']/g,D=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[D])}async function F(){const[Y,D]=await Promise.all([fetch(`${r.value}/people-groups/people-groups-slim.json`).then(Q=>{if(!Q.ok)throw new Error(`people-groups-slim.json ${Q.status}`);return Q.json()}),b.loadData().then(()=>b.normalizedPeopleGroups.value||[]).catch(Q=>(console.warn("[all-people-groups] DOXA overlay unavailable (map still renders by GSEC):",Q),[]))]),j=new Set;for(const Q of D){const X=String(Q.peopleGroupId||Q.rop3||"");X&&(j.add(X),$.has(X)||$.set(X,{slug:Q.slug||"",name:Q.name||""}))}const H=[],V={doxa:0,frontier:0,unreached:0,reached:0};for(const Q of Y.rows||[]){const X=Number(Q.Lat),Z=Number(Q.Long);if(!Number.isFinite(X)||!Number.isFinite(Z)||X===0&&Z===0)continue;const re=f(Q,j);V[re]++,H.push({type:"Feature",geometry:{type:"Point",coordinates:[Z,X]},properties:{name:Q.Name||"",country:Q.CountryName||"",population:Number(Q.Population)||0,gsec:Q.GSEC,evangelical:Q.EvangelicalLevel||"",language:Q.LanguageName||"",religion:Q.ReligionName||"",rop3:String(Q.ROP3Code||""),category:re}})}return u.value=V,y=H,{type:"FeatureCollection",features:H}}function v(Y){const D=N.value;D.addSource("apg",{type:"geojson",data:Y}),D.addLayer({id:"apg-pins",type:"circle",source:"apg",paint:{"circle-color":["match",["get","category"],"doxa",c.doxa,"frontier",c.frontier,"unreached",c.unreached,c.reached],"circle-stroke-color":"#ffffff","circle-stroke-width":["interpolate",["linear"],["zoom"],0,.4,6,.8,12,1.1],"circle-stroke-opacity":.85,"circle-radius":["interpolate",["linear"],["zoom"],0,2.2,4,3.4,8,6,12,9],"circle-opacity":.92,"circle-sort-key":["match",["get","category"],"doxa",4,"frontier",3,"unreached",2,1]}}),D.on("mouseenter","apg-pins",()=>{D.getCanvas().style.cursor="pointer"}),D.on("mouseleave","apg-pins",()=>{D.getCanvas().style.cursor=""}),D.on("click","apg-pins",j=>{const H=j.features&&j.features[0];if(!H)return;const V=H.properties,Q=V.category==="doxa"?$.get(V.rop3):null,X=l.find(ke=>ke.id===V.category),Z=Q&&Q.slug?`
Pray for them →`:"",re=i==="maplibre"?window.maplibregl:window.mapboxgl;new re.Popup({closeButton:!0,maxWidth:"290px"}).setLngLat(j.lngLat).setHTML(`
${P(V.name)} ${P(X.label.split(" — ")[0])}
${P(V.country)} · pop ${Number(V.population).toLocaleString()}
${P(V.evangelical||"GSEC "+V.gsec)}
${P(V.language)}${V.religion?" · "+P(V.religion):""}
${Z}
-
`).addTo(D)})}const q=fe(null);function ie(Y){const D=N.value;if(!D||!D.getLayer("apg-pins"))return;if(q.value===Y){q.value=null,D.setFilter("apg-pins",null),D.fitBounds([[-170,-55],[179,72]],{padding:20,duration:900});return}q.value=Y,D.setFilter("apg-pins",["==",["get","category"],Y]);let j=180,H=85,V=-180,Q=-85,X=0;for(const Z of y){if(Z.properties.category!==Y)continue;const[re,ke]=Z.geometry.coordinates;re
V&&(V=re),keQ&&(Q=ke),X++}X&&D.fitBounds([[j,H],[V,Q]],{padding:60,duration:900,maxZoom:6})}Un(async()=>{const Y=F().catch(D=>(S.value=String((D==null?void 0:D.message)||D),null));try{await w()}catch(D){S.value=String((D==null?void 0:D.message)||D);return}if(!N.value){S.value="Map failed to initialize — check token and container";return}N.value.once("style.load",async()=>{var D;try{const j=await Y;if(!j)return;try{N.value.setProjection("mercator")}catch{}v(j),(D=s==null?void 0:s.registerMap)==null||D.call(s,"all-people-groups",N.value),C.value=!0}catch(j){S.value=String((j==null?void 0:j.message)||j)}})}),Ea(()=>{var Y;(Y=s==null?void 0:s.unregisterMap)==null||Y.call(s,"all-people-groups"),L()});const W=he(()=>u.value.doxa+u.value.frontier+u.value.unreached+u.value.reached);return(Y,D)=>(qe(),Lt("div",ab,[!C.value&&!S.value?(qe(),Lt("div",sb,"Loading every people group…")):bn("",!0),S.value?(qe(),Lt("div",ib,"The map could not be loaded. "+Zt(S.value),1)):bn("",!0),Le("div",{ref_key:"mapContainer",ref:k,class:"apg-canvas"},null,512),C.value?(qe(),Lt("div",rb,[D[0]||(D[0]=Le("div",{class:"apg-legend-title"},"All People Groups",-1)),Le("div",lb,Zt(W.value.toLocaleString())+" group–country locations",1),(qe(),Lt(Ye,null,Mu(l,j=>Le("div",{key:j.id,class:wn(["apg-row",{active:q.value===j.id}]),onClick:H=>ie(j.id)},[Le("span",{class:"apg-dot",style:go({background:j.color})},null,4),Ct(" "+Zt(j.label)+" ",1),Le("span",ub,Zt((u.value[j.id]||0).toLocaleString()),1)],10,cb)),64)),D[1]||(D[1]=Le("div",{class:"apg-hint"},"Click a row to see all of them · click again for everything",-1))])):bn("",!0)]))}}},Symbol.toStringTag,{value:"Module"}))})();
+ `).addTo(D)})}const q=fe(null);function ie(Y){const D=N.value;if(!D||!D.getLayer("apg-pins"))return;if(q.value===Y){q.value=null,D.setFilter("apg-pins",null),D.fitBounds([[-170,-55],[179,72]],{padding:20,duration:900});return}q.value=Y,D.setFilter("apg-pins",["==",["get","category"],Y]);let j=180,H=85,V=-180,Q=-85,X=0;for(const Z of y){if(Z.properties.category!==Y)continue;const[re,ke]=Z.geometry.coordinates;re