+`,"all-people-groups");const t=De("profileConfig"),o=De("mapboxToken"),n=De("dataSource"),a=De("dataStore"),s=De("mapStore"),i=ye(()=>{var q;return((q=t.value)==null?void 0:q.isDark)===!0}),r=ou(t),l=ye(()=>Zu((t==null?void 0:t.value)||{})),{t:c,locale:u}=Jc("allPeopleGroups"),g=ye(()=>{const q=u;return(q&&typeof q=="object"&&"value"in q?q.value:q)||"en"}),f=q=>{try{return Number(q).toLocaleString(g.value)}catch{return Number(q).toLocaleString()}},w=[{id:"doxa",color:"#111827"},{id:"frontier",color:"#e0392b"},{id:"unreached",color:"#e6a800"},{id:"reached",color:"#23a45a"}],A=Object.fromEntries(w.map(q=>[q.id,q.color])),v=ce({doxa:0,frontier:0,unreached:0,reached:0}),I=ce(!1);function N(q,te){if(te.has(String(q.ROP3Code||"")))return"doxa";const Y=Number(q.GSEC);return!Number.isFinite(Y)||Y<=1?"frontier":Y<=3?"unreached":"reached"}function k(){var Y;let q="";try{q=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const te=(Y=t==null?void 0:t.value)==null?void 0:Y.utmSource;return encodeURIComponent(String(q||te||"agwm"))}const $=ce(null),m=ce(!1),T=ce(null),{map:P,initializeMap:b,destroy:E}=Vm({containerRef:$,accessToken:o.value,provider:r,style:((fe=t==null?void 0:t.value)==null?void 0:fe.style)??"paper",center:[20,12],zoom:1.6}),y=new od,U=Nb({mapId:"all-people-groups",dataSourceId:n.value,dataSourceManager:y,dataStore:a,markRaw:q=>q});let Z=[],H=new Map;function Q(q){return String(q??"").replace(/[&<>"']/g,te=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[te])}async function ie(){const q=l.value,te=await fetch(`${q}/people-groups/people-groups-points.json`);if(te.ok){const X=await te.json(),ge=X.dicts||{};return(X.rows||[]).map(_e=>({lng:_e[0],lat:_e[1],gsec:_e[2],rop3:_e[3],name:_e[4],country:(ge.country||[])[_e[5]]||"",population:_e[6],language:(ge.language||[])[_e[7]]||"",religion:(ge.religion||[])[_e[8]]||"",evangelical:(ge.evangelical||[])[_e[9]]||""}))}const Y=await fetch(`${q}/people-groups/people-groups-slim.json`);if(!Y.ok)throw new Error(`people-groups-points.json ${te.status}`);return((await Y.json()).rows||[]).map(X=>({lng:Number(X.Long),lat:Number(X.Lat),gsec:X.GSEC,rop3:String(X.ROP3Code||""),name:X.Name||"",country:X.CountryName||"",population:Number(X.Population)||0,language:X.LanguageName||"",religion:X.ReligionName||"",evangelical:X.EvangelicalLevel||""}))}function G(q,te){const Y=[],me={doxa:0,frontier:0,unreached:0,reached:0};for(const X of q){const ge=Number(X.lat),_e=Number(X.lng);if(!Number.isFinite(ge)||!Number.isFinite(_e)||ge===0&&_e===0)continue;const de=N({ROP3Code:X.rop3,GSEC:X.gsec},te);me[de]++,Y.push({type:"Feature",geometry:{type:"Point",coordinates:[_e,ge]},properties:{name:X.name,country:X.country,population:Number(X.population)||0,gsec:X.gsec,evangelical:X.evangelical,language:X.language,religion:X.religion,rop3:String(X.rop3||""),category:de}})}return v.value=me,Z=Y,{type:"FeatureCollection",features:Y}}async function V(){let q=[];try{await U.loadData(),q=U.normalizedPeopleGroups.value||[]}catch(Y){console.warn("[all-people-groups] DOXA overlay unavailable (map still renders by GSEC):",Y)}const te=new Set;for(const Y of q){const me=String(Y.peopleGroupId||Y.rop3||Y.peopleGroupCountry||"");me&&(te.add(me),H.has(me)||H.set(me,{slug:Y.slug||"",name:Y.name||""}))}return te}function z(q){const te=P.value;te.addSource("apg",{type:"geojson",data:q}),te.addLayer({id:"apg-pins",type:"circle",source:"apg",layout:{"circle-sort-key":["match",["get","category"],"doxa",4,"frontier",3,"unreached",2,1]},paint:{"circle-color":["match",["get","category"],"doxa",A.doxa,"frontier",A.frontier,"unreached",A.unreached,A.reached],"circle-stroke-color":"#1f2937","circle-stroke-width":["interpolate",["linear"],["zoom"],0,.3,6,.6,12,1],"circle-stroke-opacity":.55,"circle-radius":["interpolate",["linear"],["zoom"],0,2.2,4,3.4,8,6,12,9],"circle-opacity":.92}}),te.on("mouseenter","apg-pins",()=>{te.getCanvas().style.cursor="pointer"}),te.on("mouseleave","apg-pins",()=>{te.getCanvas().style.cursor=""}),te.on("click","apg-pins",Y=>{const me=Y.features&&Y.features[0];if(!me)return;const X=me.properties,ge=X.category==="doxa"?H.get(X.rop3):null,_e=w.find(Ie=>Ie.id===X.category),de=ge&&ge.slug?`
${Q(c("pray"))}`:"",re=La(r);new re.Popup({closeButton:!0,maxWidth:"290px"}).setLngLat(Y.lngLat).setHTML(`
${Q(X.name)} ${Q(c(_e.id).split(" — ")[0])}
${Q(X.country)} · ${Q(c("population",{n:f(X.population)}))}
${Q(X.evangelical||"GSEC "+X.gsec)}
${Q(X.language)}${X.religion?" · "+Q(X.religion):""}
${de}
-
`).addTo(te)})}const D=ce(null);function ee(W){const te=P.value;if(!te||!te.getLayer("apg-pins"))return;if(D.value===W){D.value=null,te.setFilter("apg-pins",null),te.fitBounds([[-170,-55],[179,72]],{padding:20,duration:900});return}D.value=W,te.setFilter("apg-pins",["==",["get","category"],W]);let Y=180,me=85,X=-180,ge=-85,_e=0;for(const de of Z){if(de.properties.category!==W)continue;const[re,Ie]=de.geometry.coordinates;re
X&&(X=re),Iege&&(ge=Ie),_e++}_e&&te.fitBounds([[Y,me],[X,ge]],{padding:60,duration:900,maxZoom:6})}Mo(async()=>{const W=ie().catch(Y=>(T.value=String((Y==null?void 0:Y.message)||Y),null)),te=V();try{await b()}catch(Y){T.value=String((Y==null?void 0:Y.message)||Y);return}if(!P.value){$.value&&(T.value="Map failed to initialize — check token and container");return}P.value.once("style.load",async()=>{var Y;try{const me=await W;if(!me||!P.value)return;Im(P.value,"mercator"),z(G(me,new Set)),(Y=s==null?void 0:s.registerMap)==null||Y.call(s,"all-people-groups",P.value),m.value=!0;const X=await te;X.size&&P.value&&P.value.getSource("apg")&&P.value.getSource("apg").setData(G(me,X)),I.value=!0}catch(me){T.value=String((me==null?void 0:me.message)||me)}})}),rn(()=>{var W;(W=s==null?void 0:s.unregisterMap)==null||W.call(s,"all-people-groups"),E()});const pe=ye(()=>v.value.doxa+v.value.frontier+v.value.unreached+v.value.reached);return(W,te)=>(we(),Oe("div",c_,[!m.value&&!T.value?(we(),Oe("div",u_,Re(Je(c)("loading")),1)):zt("",!0),T.value?(we(),Oe("div",d_,Re(Je(c)("loadError"))+" "+Re(T.value),1)):zt("",!0),ae("div",{ref_key:"mapContainer",ref:$,class:"apg-canvas"},null,512),xe(Db,{"has-geocoder":!1},{default:Xn(()=>[xe(l_,{"is-dark":i.value,"embed-path":__},null,8,["is-dark"])]),_:1}),m.value?(we(),Oe("div",p_,[ae("div",g_,Re(Je(c)("title")),1),ae("div",h_,Re(Je(c)("locations",{n:f(pe.value)})),1),(we(),Oe(Ke,null,is(w,Y=>ae("div",{key:Y.id,class:ot(["apg-row",{active:D.value===Y.id}]),onClick:me=>ee(Y.id)},[ae("span",{class:"apg-dot",style:Vo({background:Y.color})},null,4),mt(" "+Re(Je(c)(Y.id))+" ",1),ae("span",m_,Re(Y.id==="doxa"&&!I.value?"…":f(v.value[Y.id]||0)),1)],10,f_)),64)),ae("div",b_,Re(Je(c)("hint")),1)])):zt("",!0)]))}}},Symbol.toStringTag,{value:"Module"}))})();
+ `).addTo(te)})}const D=ce(null);function ee(q){const te=P.value;if(!te||!te.getLayer("apg-pins"))return;if(D.value===q){D.value=null,te.setFilter("apg-pins",null),te.fitBounds([[-170,-55],[179,72]],{padding:20,duration:900});return}D.value=q,te.setFilter("apg-pins",["==",["get","category"],q]);let Y=180,me=85,X=-180,ge=-85,_e=0;for(const de of Z){if(de.properties.category!==q)continue;const[re,Ie]=de.geometry.coordinates;re