diff --git a/app/components/public/UupgsList.vue b/app/components/public/UupgsList.vue index 3f18ccea..22a2d475 100644 --- a/app/components/public/UupgsList.vue +++ b/app/components/public/UupgsList.vue @@ -349,7 +349,7 @@ function filterUUPGs() { newItem.wagf_region_label = highlightedValue } else if (parentKey === 'rop1' && !props.useSelectCard) { newItem.rop1_label = highlightedValue - } else if (parentKey === 'country_code' && !props.useSelectCard) { + } else if (parentKey === 'country_code') { newItem.country_label = highlightedValue } else if (parentKey === 'wagf_region' && !props.useSelectCard) { // do nothing @@ -592,6 +592,12 @@ const showMore = computed(() => hasMore())

+

+ +

-
-
- - {{ (uupg.adopted_by_churches && uupg.adopted_by_churches > 0) ? t.adopted : t.not_adopted }} -
-

{{ uupg.location_description }}

{{ t.full_profile }} diff --git a/app/pages/index.vue b/app/pages/index.vue index ad9665a8..f97ab9b9 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -135,29 +135,12 @@ useTextHighlight()

{{ t('A simple path to faithful obedience') }}

-
1

{{ t('Pray') }}

{{ t('Receive daily prayer points and join believers worldwide in prayer for the unengaged peoples.') }}

{{ t('Join') }}
-
-
2
-
-

{{ t('Adopt') }}

-

{{ t('Churches and networks take ownership – praying, giving, and preparing the way for gospel workers.') }}

-
- {{ t('Contact Us') }} -
-
-
3
-
-

{{ t('Engage') }}

-

{{ t('God raises up men and women to go, serve, and proclaim Christ among the nations.') }}

-
- {{ t('Commit') }} -
diff --git a/embeddables/micro-frontends/1040-maps/app-profiles/doxa-research-map/profiles/research-map.vue b/embeddables/micro-frontends/1040-maps/app-profiles/doxa-research-map/profiles/research-map.vue index 6c7072b2..cff28ce4 100644 --- a/embeddables/micro-frontends/1040-maps/app-profiles/doxa-research-map/profiles/research-map.vue +++ b/embeddables/micro-frontends/1040-maps/app-profiles/doxa-research-map/profiles/research-map.vue @@ -359,6 +359,7 @@ const uiStore = inject('uiStore') // stays warm; flip `doxaRegions: true` to bring it back). const FEATURES = { doxaRegions: true, + adoption: false, // Adoption tab hidden per UX request; wiring kept warm (flip to true to restore) hamburgerMenu: false, // canonical default — emit/listen mismatch + drawer surplus // Per QA building-round-1 R3 A4: clear the geocoder text on tab switch by // default; flip to true to preserve the previous tab's query when returning. @@ -371,7 +372,7 @@ const FEATURES = { // than the previous alphabetical Engagement-before-Adoption.) const ALL_TABS = [ { id: 'prayer', label: 'Prayer', colorStrategy: 'prayerProgress', legend: 'prayer', popup: 'pray', feature: null }, - { id: 'adoption', label: 'Adoption', colorStrategy: 'adoption', legend: 'adoption', popup: 'adopt', feature: null }, + { id: 'adoption', label: 'Adoption', colorStrategy: 'adoption', legend: 'adoption', popup: 'adopt', feature: 'adoption' }, { id: 'engagement', label: 'Engagement', colorStrategy: 'engagement', legend: 'engagement', popup: 'pray', feature: null, sepAfter: true }, { id: 'affinity-blocks', label: 'People Groups', colorStrategy: 'affinityBlock', legend: 'affinity-block', popup: 'pray', feature: null }, { id: 'doxa-regions', label: 'Regions', colorStrategy: 'doxaRegion', legend: 'doxa-regions', popup: 'pray', feature: 'doxaRegions' }, diff --git a/public/js/doxa-research-map.js b/public/js/doxa-research-map.js index 448ec711..0bce57d1 100644 --- a/public/js/doxa-research-map.js +++ b/public/js/doxa-research-map.js @@ -1470,7 +1470,7 @@ var use=Object.defineProperty;var fse=(Oo,SA,Au)=>SA in Oo?use(Oo,SA,{enumerable .map-scroll-edge { position:absolute;top:0;bottom:0;width:40px;z-index:2;touch-action:pan-y;pointer-events:auto;background:transparent; } .map-scroll-edge--left { left:0; } .map-scroll-edge--right { right:0; } -`,"research-map");const c=Wt("profileConfig"),u=Wt("mapboxToken"),h=Wt("dataSource");Wt("colorSet");const f=Wt("instanceId",null),p=Wt("mapStore"),v=Wt("dataStore"),b=Wt("uiStore"),m={doxaRegions:!0,hamburgerMenu:!1,geocoderPersistAcrossTabs:!1},y=[{id:"prayer",label:"Prayer",colorStrategy:"prayerProgress",legend:"prayer",popup:"pray",feature:null},{id:"adoption",label:"Adoption",colorStrategy:"adoption",legend:"adoption",popup:"adopt",feature:null},{id:"engagement",label:"Engagement",colorStrategy:"engagement",legend:"engagement",popup:"pray",feature:null,sepAfter:!0},{id:"affinity-blocks",label:"People Groups",colorStrategy:"affinityBlock",legend:"affinity-block",popup:"pray",feature:null},{id:"doxa-regions",label:"Regions",colorStrategy:"doxaRegion",legend:"doxa-regions",popup:"pray",feature:"doxaRegions"},{id:"language-families",label:"Languages",colorStrategy:"languageFamily",legend:"language-family",popup:"pray",feature:null},{id:"religion",label:"Religions",colorStrategy:"religion",legend:"religion",popup:"pray",feature:null}].filter(ne=>!ne.feature||m[ne.feature]),B=Oe(()=>y),F=Oe(()=>!0),S=Je(null),k=Oe(()=>B.value.find(ne=>ne.id===S.value)??B.value[0]),T=Oe(()=>{var ne;return((ne=k.value)==null?void 0:ne.legend)??"default"}),C=Oe(()=>{var ne;return((ne=k.value)==null?void 0:ne.popup)??"pray"}),D=Oe(()=>{var ne,he;return((ne=k.value)==null?void 0:ne.id)==="language-families"?"Search language family, language, dialect/variety":((he=k.value)==null?void 0:he.id)==="affinity-blocks"?"Search affinity bloc, cluster, people group":""}),I=(f==null?void 0:f.value)||f||"research-map-"+Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,8);La("mapId",I);const E=Je(null),P=Je(null),H=Je(null),O=new Map;nr(()=>S==null?void 0:S.value,async(ne,he)=>{var Re,lt,kt,Zt,tt;if(he!==void 0&&ne!==he){he&&O.set(he,b.legendState);const ie=O.get(ne)||(b.isMobile?"collapsed":"open");ie==="fullyOpen"?(Re=b.fullyOpenLegend)==null||Re.call(b):ie==="open"?(lt=b.openLegend)==null||lt.call(b):(kt=b.collapseLegend)==null||kt.call(b)}await bu();const Ie=(Zt=P.value)==null?void 0:Zt.querySelector(".rm-tab.active");(tt=Ie==null?void 0:Ie.scrollIntoView)==null||tt.call(Ie,{inline:"center",block:"nearest",behavior:"smooth"})});const z=Je(null),J=Je(!1),{map:ee,initializeMap:pe,destroy:ge}=wO({containerRef:z,accessToken:u.value,style:((aa=c==null?void 0:c.value)==null?void 0:aa.style)??"mapbox://styles/mapbox/light-v11",center:((Ca=c==null?void 0:c.value)==null?void 0:Ca.center)??vo.center??[20,10],zoom:((ia=c==null?void 0:c.value)==null?void 0:ia.zoom)??vo.zoom??1.8,pitch:((Rn=c==null?void 0:c.value)==null?void 0:Rn.pitch)??vo.pitch??0,bearing:((Cn=c==null?void 0:c.value)==null?void 0:Cn.bearing)??vo.bearing??0}),we=new R8({sourcesConfig:bC}),L=w8({mapId:I,dataSourceId:h.value,dataSourceManager:we,dataStore:v,markRaw:ne=>ne}),K=h8({getMap:()=>ee.value,mapId:I,getLanguageFamilyColor:ne=>{var Ie,Re;const he=zu((Ie=k.value)==null?void 0:Ie.colorStrategy);return((Re=he==null?void 0:he.colors)==null?void 0:Re[ne])??(he==null?void 0:he.fallback)??"#7c8cf8"},getNormalizedPeopleGroups:()=>L.normalizedPeopleGroups.value||[]});gC({getMap:()=>ee.value,mapId:I,getLanguageFamilyColor:()=>"#7c8cf8",getNormalizedPeopleGroups:()=>L.normalizedPeopleGroups.value||[]});const W=g8({getMap:()=>ee.value,mapId:I,mapStore:p,defaultCenter:((Ma=c==null?void 0:c.value)==null?void 0:Ma.center)??[20,10],defaultZoom:((rn=c==null?void 0:c.value)==null?void 0:rn.zoom)??1.8}),se=m8({getMap:()=>ee.value});let re=null,ue=null;function me(){return re?Promise.resolve(re):(ue||(ue=Pi(()=>Promise.resolve().then(()=>Q7),void 0).then(ne=>(re=ne.useMapClustering({getMap:()=>ee.value,mapId:I,mapStore:p,getPeopleGroups:()=>L.normalizedPeopleGroups.value||[],getClusterColor:()=>{var he,Ie;return((Ie=zu((he=k.value)==null?void 0:he.colorStrategy))==null?void 0:Ie.fallback)??"#7c8cf8"}}),re))),ue)}const Z={setData(ne){var he;(he=re==null?void 0:re.setData)==null||he.call(re,ne)},applyFilters(ne){var he;(he=re==null?void 0:re.applyFilters)==null||he.call(re,ne)},refreshColors(){var ne;(ne=re==null?void 0:re.refreshColors)==null||ne.call(re)},cleanup(){var ne;(ne=re==null?void 0:re.cleanup)==null||ne.call(re)},async setEnabled(ne){var he,Ie;(Ie=(he=await me()).setEnabled)==null||Ie.call(he,ne)},async setMode(ne){var he,Ie;(Ie=(he=await me()).setMode)==null||Ie.call(he,ne)},_pendingSelectionFilter:null,setSelectionFilter(ne){this._pendingSelectionFilter=ne||null,re!=null&&re.setSelectionFilter&&re.setSelectionFilter(ne)},flushSelectionFilter(){re!=null&&re.setSelectionFilter&&re.setSelectionFilter(this._pendingSelectionFilter)}},xe=qu({});La("legendRows",xe.rows),La("normalizedPeopleGroups",L.normalizedPeopleGroups);const ae=hD(I);gD(ae),ae.activeTab.value=1;function Q(ne){return ne==="affinity-block"?0:ne==="language-family"?1:0}nr(T,ne=>{ae.activeTab.value=Q(ne)});const G={get value(){return L.normalizedPeopleGroups.value||[]}},{langTree:q}=wm(G),N=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor (e.g. Indo-European, Afro-Asiatic)."},{id:"language",label:"Language",info:"A language is a system of communication used by a people (e.g. Arabic, Bengali, Hindi)."},{id:"dialect",label:"Dialect/Variety",info:"A dialect/variety is a regional or social form of a language (e.g. Arabic, Sudanese; Pakistan Sign Language)."}],{affinityTree:fe}=IC(G),_e=[{id:"bloc",label:"Affinity Bloc",info:"Affinity Bloc (field: rop1) — broadest grouping by cultural/linguistic/geographic kinship. 16 blocs total. Examples: Malay Peoples, South Asian Peoples, Deaf, Arab World."},{id:"cluster",label:"Cluster",info:'Cluster (field: imb_reg_of_people_2, ROP 2) — finer-grained grouping inside a bloc. 194 clusters total. Suffix "(Cluster)" appears on each row to distinguish from PG/PGIC. Example: Borneo-Kalimantan within Malay Peoples.'},{id:"group",label:"People Group",info:'People Group (field: imb_reg_of_people_25, ROP 2.5) — abstract ethnolinguistic identity, country-agnostic. Suffix "(PG)" on each row. 1,736 PGs total; 131 of them have rows in multiple countries (e.g. Deaf in 123 countries). Example: Abai Sungai (PG) is one ROP25 code regardless of where its people live.'},{id:"pgic",label:"PG in Country",info:'PGIC = People Group In Country (field: imb_reg_of_people_3 + country_code) — one row per (people group, country) pair. Suffix "(PGIC)" on each row. 2,106 rows total. Example: "Abai Sungai, Malaysia (PGIC)" is the Abai Sungai PG specifically as it exists in Malaysia.'}],{regionsTree:Ee}=UC(G),be=[{id:"region",label:"WAGF Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"WAGF Block",info:'WAGF block — the organizational sub-grouping within each region (e.g. "South East Asia", "West Africa").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their block."}],j=qu(Hd(()=>T.value),yh);function $(ne){const he=[];for(const Ie of ne){he.push({id:Ie.key,label:Ie.label,color:Ie.color,count:Ie.count??0,pop:Ie.population??0,filter:Ie.filterKey?["==",["get","_flat_filter"],Ie.filterKey]:null,children:[]});for(const Re of Ie.children||[])he.push({id:Re.key,label:Re.label,color:Re.color,count:Re.count??0,pop:Re.population??0,filter:Re.filterKey?["==",["get","_flat_filter"],Re.filterKey]:null,children:[]})}return he}const de=Oe(()=>["prayer","engagement","adoption","religion"].includes(T.value)),Be=Oe(()=>de.value?$(j.items.value):T.value==="affinity-block"?fe.value:T.value==="doxa-regions"?Ee.value:q.value),Me=Oe(()=>de.value?null:T.value==="affinity-block"?_e:T.value==="doxa-regions"?be:N),Pe=Oe(()=>de.value),ye=Oe(()=>T.value==="religion"?"UUPG Religions":T.value==="prayer"?"Prayer Status":T.value==="engagement"?"Engagement Status":T.value==="adoption"?"Adoption Status":de.value?"Status":""),Le=Oe(()=>b.legendState!=="collapsed");function Ve(ne){ne?b.openLegend():b.collapseLegend()}const Ge=Oe(()=>de.value?"Legend":T.value==="affinity-block"?"People Groups":T.value==="doxa-regions"?"WAGF Regions":"Languages");function Ze(ne,he){var Ie;for(const Re of ne){if(he(Re))return Re;if((Ie=Re.children)!=null&&Ie.length){const lt=Ze(Re.children,he);if(lt)return lt}}return null}La("onSemanticTreeSelect",ne=>Ut(ne)),La("getActivePinColor",ne=>{var Ie,Re;const he=zu(((Ie=k.value)==null?void 0:Ie.colorStrategy)??"languageFamily");return((Re=he==null?void 0:he.getColor)==null?void 0:Re.call(he,ne))??"#1a1a1a"});function rt(ne,he){if(!ne||!he)return null;const Ie=ne.id;if(he==="prayer"){const Re=["to-number",["get","peoplePraying"]];if(Ie==="noPrayer")return["==",Re,0];if(Ie==="fullPrayer")return[">=",Re,Zo];if(Ie==="hasPrayer")return["all",[">",Re,0],["<",Re,Zo]]}else if(he==="engagement"){if(Ie==="hasEngagement")return["==",["get","engagementStatus"],!0];if(Ie==="notEngaged")return["==",["get","engagementStatus"],!1]}else if(he==="adoption"){if(Ie==="hasAdoption")return["==",["get","adoptionStatus"],!0];if(Ie==="notAdopted")return["==",["get","adoptionStatus"],!1]}else if(he==="religion")return["==",["slice",["coalesce",["get","religion"],""],0,1],Ie];return null}function Ut(ne){var Re,lt,kt,Zt,tt,ie,ke,Xe;const he=ee.value;if(ne){const ut=de.value?rt(ne,T.value):null,nt=((Re=k.value)==null?void 0:Re.id)==="doxa-regions",Nt=ut?{matchExpr:ut}:{};nt&&(Nt.regionPolygonSource="regions"),(lt=W.zoomToLegendRow)==null||lt.call(W,ne,Object.keys(Nt).length?Nt:void 0)}if(!ne){if(de.value){const ut=T.value;ut==="prayer"?b.setPrayerFilter(null):ut==="engagement"?b.setEngagementFilter(null):ut==="adoption"?b.setAdoptionFilter(null):ut==="religion"&&b.setReligionFilter(null)}if(he&&he.getLayer("language-family-pins")){try{he.setFilter("language-family-pins",null)}catch{}a(he,null),he.setPaintProperty("language-family-pins","circle-opacity",1),he.setPaintProperty("language-family-pins","circle-stroke-opacity",1),he.getLayer("language-family-pins-shadow")&&he.setPaintProperty("language-family-pins-shadow","circle-opacity",1),K.syncGlowFilter(null)}he&&he.getLayer("regions-fill")&&(he.setPaintProperty("regions-fill","fill-opacity",.2),he.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),he.setPaintProperty("regions-border","line-width",.6)),p.selectedFamily&&p.selectFamily(null),p.selectedLanguage&&p.selectLanguage(null),p.selectedDialect&&((kt=p.selectDialect)==null||kt.call(p,null)),p.selectedRegion&&((Zt=p.selectRegion)==null||Zt.call(p,null)),n();return}if(de.value){const ut=T.value;ut==="prayer"?b.setPrayerFilter(ne.id):ut==="engagement"?b.setEngagementFilter(ne.id):ut==="adoption"?b.setAdoptionFilter(ne.id):ut==="religion"&&b.setReligionFilter(ne.id);return}if(he&&he.getLayer("language-family-pins")&&ne.filter){try{he.setFilter("language-family-pins",ne.filter)}catch{}a(he,ne.filter),he.setPaintProperty("language-family-pins","circle-opacity",1),he.setPaintProperty("language-family-pins","circle-stroke-opacity",1),K.syncGlowFilter(ne.filter)}const Ie=String(ne.id||"");if(Ie.startsWith("fam:"))(tt=p.selectFamily)==null||tt.call(p,ne.label);else if(Ie.startsWith("lang:"))(ie=p.selectLanguage)==null||ie.call(p,ne.label);else if(Ie.startsWith("dial:"))(ke=p.selectDialect)==null||ke.call(p,{key:Ie.slice(5),originalLabels:ne.originalLabels||[]});else if(Ie.startsWith("bloc:")||Ie.startsWith("cluster:")||Ie.startsWith("pg:")||Ie.startsWith("pgic:")){if(he&&he.getLayer("language-family-pins")&&ne.filter){try{he.setFilter("language-family-pins",null)}catch{}a(he,ne.filter),he.setPaintProperty("language-family-pins","circle-opacity",["case",ne.filter,1,0]),he.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",ne.filter,1,0]),he.getLayer("language-family-pins-shadow")&&he.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",ne.filter,1,0]),K.syncGlowFilter(ne.filter)}}else if(Ie.startsWith("region:")||Ie.startsWith("block:")||Ie.startsWith("country:")){if(he&&he.getLayer("language-family-pins")&&ne.filter){try{he.setFilter("language-family-pins",ne.filter)}catch{}a(he,ne.filter),he.setPaintProperty("language-family-pins","circle-opacity",1),he.setPaintProperty("language-family-pins","circle-stroke-opacity",1)}if(Ie.startsWith("region:")&&((Xe=p.selectRegion)==null||Xe.call(p,Ie.slice(7))),he&&he.getLayer("regions-fill")){const ut=ne.isoCodes||[];if(ut.length){const nt=["literal",ut];he.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],nt],.3,.02]),he.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],nt],"#111827","rgba(60,60,80,0.15)"]),he.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],nt],2.5,.3])}else he.setPaintProperty("regions-fill","fill-opacity",.2),he.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),he.setPaintProperty("regions-border","line-width",.6)}}}nr(()=>b.theme,ne=>{ae.theme.value=ne==="dark"?"dark":"light"},{immediate:!0});function St(ne,he){var Re,lt;if(!he){const kt=ae.selection.value;kt&&((Re=kt.id)!=null&&Re.startsWith(ne+":"))&&(ae.selection.value=null);return}const Ie=ae.selection.value;Ie&&((lt=Ie.id)!=null&<.startsWith(ne+":"))&&Ie.label===he.label||(ae.selection.value=he)}nr(()=>p.selectedFamily,ne=>{if(!ne)return St("fam",null);const he=Ze(q.value,Ie=>Ie.id.startsWith("fam:")&&Ie.label===ne);he&&St("fam",{...he,depth:0})}),nr(()=>p.selectedLanguage,ne=>{if(!ne)return St("lang",null);const he=Ze(q.value,Ie=>Ie.id.startsWith("lang:")&&Ie.label===ne);he&&St("lang",{...he,depth:1})}),nr(()=>p.selectedDialect,ne=>{if(!(ne!=null&&ne.key))return St("dial",null);const he=`dial:${ne.key}`,Ie=Ze(q.value,Re=>Re.id===he);Ie&&St("dial",{...Ie,depth:2})}),nr(()=>p.selectedRegion,ne=>{if(!ne)return St("region",null);const he=Ze(Ee.value,Ie=>Ie.id===`region:${ne}`);he&&St("region",{...he,depth:0})});const Lt=Je(null);async function vt(){Lt.value||(Lt.value=await o()),dt.value=!0}const Ot=Je(!1),dt=Je(!1),Mt=Oe(()=>p.selectedFeature),it=Oe(()=>b.theme==="dark");function It(){var lt;const ne=ee.value;if(!ne||!ne.getLayer("language-family-pins"))return;const he=((lt=k.value)==null?void 0:lt.id)==="doxa-regions",Re=it.value?"#ffffff":he?"rgba(255,255,255,0.9)":"rgba(0,0,0,0.2)";ne.setPaintProperty("language-family-pins","circle-stroke-color",Re)}nr(it,It,{immediate:!1}),nr(()=>{var ne;return(ne=k.value)==null?void 0:ne.id},It);function Ar(){if(!ee.value)return;b.toggleTheme();const ne=b.theme==="dark"?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11";ee.value.setStyle(ne),ee.value.once("style.load",()=>{var Ie,Re,lt,kt;const he=L.normalizedPeopleGroups.value;he!=null&&he.length&&(K.addLanguageFamilyLayer(he,((Ie=k.value)==null?void 0:Ie.colorStrategy)??"languageFamily"),((Re=k.value)==null?void 0:Re.id)==="doxa-regions"&&ee.value.getLayer("language-family-pins")&&ee.value.setPaintProperty("language-family-pins","circle-color","#a30000")),((lt=k.value)==null?void 0:lt.id)==="prayer"&&K.startPrayerGlow(),_t.value=!1,((kt=k.value)==null?void 0:kt.id)==="doxa-regions"&&rr()})}const _t=Je(!1);let Bt=null;async function rr(){if(!_t.value)return Bt||(Bt=(async()=>{var ne,he,Ie;try{const Re=await((ne=L.loadRegionsData)==null?void 0:ne.call(L));Re&&ee.value&&((he=K.addRegionsLayer)==null||he.call(K,Re,"doxa-regions"),ee.value.getLayer("regions-fill")&&((Ie=k.value)==null?void 0:Ie.id)!=="doxa-regions"&&(ee.value.setLayoutProperty("regions-fill","visibility","none"),ee.value.setLayoutProperty("regions-border","visibility","none")),ee.value.getLayer("language-family-pins")&&ee.value.moveLayer("language-family-pins")),_t.value=!0,L.regionsData.value=null}catch(Re){console.warn("[research-map] regions layer failed:",Re)}finally{Bt=null}})(),Bt)}function to(ne){var Re,lt,kt;if(ne===S.value)return;S.value=ne,(Re=b.setActiveTab)==null||Re.call(b,ne),n();const he=B.value.find(Zt=>Zt.id===ne);if(!he||!ee.value)return;he.id==="doxa-regions"&&rr();const Ie=zu(he.colorStrategy);if(ee.value.getLayer("language-family-pins")&&(Ie!=null&&Ie.buildColorExpression)){const Zt=he.id==="doxa-regions"?"#a30000":Ie.buildColorExpression();ee.value.setPaintProperty("language-family-pins","circle-color",Zt),ot(ee.value),he.id==="prayer"?K.startPrayerGlow():K.stopPrayerGlow();const tt=he.id==="doxa-regions";ee.value.getLayer("regions-fill")&&(ee.value.setLayoutProperty("regions-fill","visibility",tt?"visible":"none"),ee.value.setLayoutProperty("regions-border","visibility",tt?"visible":"none")),ee.value.getLayer("language-family-pins")&&ee.value.moveLayer("language-family-pins")}(lt=xe.refresh)==null||lt.call(xe),(kt=Z.refreshColors)==null||kt.call(Z)}function Gr(ne){var Ie,Re;const he=ne==null?void 0:ne.detail;!he||he.mapId!==I||(he.center&&Array.isArray(he.center)?(Ie=W.flyToCoords)==null||Ie.call(W,{longitude:he.center[0],latitude:he.center[1]},he.zoom??4):he.bounds&&((Re=W.fitBounds)==null||Re.call(W,he.bounds,60)))}function Xa(ne){var ie,ke,Xe;const he=ne==null?void 0:ne.detail;if(!he||(cr(he),!((ie=he.coords)!=null&&ie.length)))return;const Ie=he.coords;if(Ie.length===1){(ke=W.flyToCoords)==null||ke.call(W,{longitude:Ie[0][0],latitude:Ie[0][1]},3);return}let Re=1/0,lt=-1/0,kt=1/0,Zt=-1/0;for(const[ut,nt]of Ie)utlt&&(lt=ut),ntZt&&(Zt=nt);const tt=he.kind==="region"?2.2:3;(Xe=W.fitBounds)==null||Xe.call(W,[[Re,kt],[lt,Zt]],60,{maxZoom:tt})}const Qr={family:null,language:null,dialect:null,region:null,prayer:null,engagement:null,adoption:null};function ot(ne){ne.setPaintProperty("language-family-pins","circle-opacity",1),ne.setPaintProperty("language-family-pins","circle-stroke-opacity",1),ne.getLayer("language-family-pins-shadow")&&ne.setPaintProperty("language-family-pins-shadow","circle-opacity",1),ne.setFilter("language-family-pins",null),a(ne,null),K.syncGlowFilter(null),ne.getLayer("regions-fill")&&(ne.setPaintProperty("regions-fill","fill-opacity",.2),ne.setPaintProperty("regions-fill","fill-outline-color",null)),ne.getLayer("regions-border")&&(ne.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),ne.setPaintProperty("regions-border","line-width",.6)),Qr.family=Qr.language=Qr.dialect=Qr.region=null,Qr.prayer=Qr.engagement=Qr.adoption=null,b.prayerFilter&&b.setPrayerFilter(null),b.engagementFilter&&b.setEngagementFilter(null),b.adoptionFilter&&b.setAdoptionFilter(null),b.religionFilter&&b.setReligionFilter(null),Z.setSelectionFilter(null),p.selectedFamily&&p.selectFamily(null),p.selectedLanguage&&p.selectLanguage(null),p.selectedDialect&&p.selectDialect(null);try{ae&&ae.selection&&ae.selection.value&&(ae.selection.value=null)}catch{}}let wn=null,Ba=0;function cr(ne){var tt,ie,ke,Xe,ut;const he=ee.value;if(!he||!he.getLayer("language-family-pins"))return;let Ie,Re,lt;if(ne.kind==="family")lt="family",Ie="languageFamily",Re=ne.familyKey;else if(ne.kind==="language")lt="language",Ie="language",Re=ne.languageKey;else if(ne.kind==="region")lt="region",Ie="doxaRegion",Re=ne.regionKey;else if(ne.kind==="prayer")lt="prayer",Ie=ne.property||"peoplePraying",Re=ne.expectedValue;else if(ne.kind==="engagement")lt="engagement",Ie=ne.property||"engagementStatus",Re=ne.expectedValue;else if(ne.kind==="adoption")lt="adoption",Ie=ne.property||"adoptionStatus",Re=ne.expectedValue;else if(ne.kind==="religion")lt="religion",Ie=ne.property||"religion",Re=ne.expectedValue;else if(ne.kind==="dialect")lt="dialect",Ie="language",Re=ne.dialectKey||"";else{ot(he),n();for(const nt of Object.keys(Qr))Qr[nt]=null;wn=null,Ba=0;return}const kt=Date.now(),Zt=`${lt}|${Re}`;if(!(wn===Zt&&kt-Ba<80)){if(wn=Zt,Ba=kt,Qr[lt]===Re){ot(he),n(),wn=null,Ba=0;return}for(const nt of Object.keys(Qr))Qr[nt]=null;if(Qr[lt]=Re,lt==="family"?(tt=p.selectFamily)==null||tt.call(p,Re):lt==="region"?(ie=p.selectRegion)==null||ie.call(p,Re):lt==="language"?(ke=p.selectLanguage)==null||ke.call(p,Re):lt==="dialect"&&((Xe=p.selectDialect)==null||Xe.call(p,{key:Re,originalLabels:ne.originalLabels||[]})),Z.setSelectionFilter({property:Ie,value:Re}),lt==="region"){if(he.setFilter("language-family-pins",["==",["get","doxaRegion"],Re]),a(he,["==",["get","doxaRegion"],Re]),he.setPaintProperty("language-family-pins","circle-opacity",1),he.setPaintProperty("language-family-pins","circle-stroke-opacity",1),he.getLayer("regions-fill")){const nt=((ut=K.regionIsoMap)==null?void 0:ut.value)||{},Nt=Or=>String(Or).toLowerCase().replace(/[^a-z]/g,""),Dn=Nt(Re);let Pr=nt[Re]||[];if(!Pr.length){for(const[Or,pA]of Object.entries(nt))if(Nt(Or)===Dn){Pr=pA;break}}if(Pr.length){const Or=["literal",Pr];he.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],Or],.3,.02]),he.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],Or],"#111827","rgba(60,60,80,0.15)"]),he.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],Or],2.5,.3])}else he.setPaintProperty("regions-fill","fill-opacity",.2),he.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),he.setPaintProperty("regions-border","line-width",.6)}}else{he.setFilter("language-family-pins",null);let nt;if(lt==="prayer"){const Nt=["to-number",["get",Ie]];Re==="noPrayer"?nt=["==",Nt,0]:Re==="fullPrayer"?nt=[">=",Nt,Zo]:Re==="hasPrayer"?nt=["all",[">",Nt,0],["<",Nt,Zo]]:nt=["==",["get",Ie],Re]}else if(lt==="engagement")nt=["==",["get",Ie],Re==="hasEngagement"];else if(lt==="adoption")nt=["==",["get",Ie],Re==="hasAdoption"];else if(lt==="religion")nt=["==",["slice",["coalesce",["get",Ie],""],0,1],Re];else if(ne.filterExpr)nt=ne.filterExpr;else if(lt==="language")nt=["any",["==",["get",Ie],Re],["==",["slice",["get",Ie],0,Re.length+1],Re+","],["in"," "+Re,["get",Ie]]];else if(lt==="dialect"){const Nt=ne.originalLabels||[];Nt.length===1?nt=["==",["get",Ie],Nt[0]]:Nt.length>1?nt=["in",["get",Ie],["literal",Nt]]:nt=["==",["get",Ie],Re]}else nt=["==",["get",Ie],Re];he.setPaintProperty("language-family-pins","circle-opacity",["case",nt,1,0]),he.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",nt,1,0]),he.getLayer("language-family-pins-shadow")&&he.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",nt,1,0]),a(he,nt),K.syncGlowFilter(nt),he.getLayer("regions-fill")&&(he.setPaintProperty("regions-fill","fill-opacity",.2),he.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),he.setPaintProperty("regions-border","line-width",.6))}}}function Yn(ne){!ne||!p||p.selectFeature(ne)}function Lr(ne){var lt,kt,Zt,tt;const he=ee.value;if(!ne||!he||!he.getLayer(Yu))return;let Ie=null;switch(ne.kind){case"country":Ie="countryName";break;case"language-family":Ie="languageFamily";break;case"language":Ie="language";break;case"dialect":Ie="language";break;case"religion":Ie="religionName";break;case"region":Ie="doxaRegion";break;case"affinity-bloc":Ie="affinityBlock";break;case"cluster":Ie="cluster";break;case"people-group":Ie="peopleGroup";break}const Re=ne.label;if(!(!Ie||Re==null||Re==="")){try{let ie;if(ne.kind==="language")ie=["any",["==",["get",Ie],Re],["==",["slice",["get",Ie],0,Re.length+1],Re+","],["in"," "+Re,["get",Ie]]];else if(ne.kind==="dialect"){const ke=Array.isArray(ne.originalLabels)?ne.originalLabels:[];ke.length===1?ie=["==",["get",Ie],ke[0]]:ke.length>1?ie=["in",["get",Ie],["literal",ke]]:ie=["==",["get",Ie],Re]}else if(ne.kind==="affinity-bloc"){const ke=ne.blocCode||((lt=ne.properties)==null?void 0:lt.blocCode)||"";ie=ke?["==",["get","affinityBlock"],ke]:["==",["get","affinityBlockLabel"],Re]}else if(ne.kind==="cluster"){const ke=ne.clusterCode||((kt=ne.properties)==null?void 0:kt.clusterCode)||"",Xe=ne.blocCode||((Zt=ne.properties)==null?void 0:Zt.blocCode)||"";ie=ke&&Xe?["all",["==",["get","affinityBlock"],Xe],["==",["get","cluster"],ke]]:["==",["get","clusterLabel"],Re]}else ie=["==",["get",Ie],Re];he.setFilter(Yu,ie)}catch{}if(Z.setSelectionFilter({property:Ie,value:Re}),ne.kind==="language-family"||ne.kind==="family")p.selectFamily(ne.label),p.setActiveLegendTab("family"),n(),i();else if(ne.kind==="language")p.selectLanguage(ne.label),p.setActiveLegendTab("language"),n(),i();else if(ne.kind==="dialect"){const ie=Array.isArray(ne.originalLabels)?ne.originalLabels:[],ke=ne.familyDerived||"",Xe=ne.baseLang||"",ut=ne.dialectLabel||"",nt=`${ke}__${Xe}__${ut}`;(tt=p.selectDialect)==null||tt.call(p,{key:nt,originalLabels:ie}),p.setActiveLegendTab("dialect"),n(),i()}else if(ne.kind==="affinity-bloc"||ne.kind==="cluster"||ne.kind==="people-group"){let ie=null;if(ne.kind==="affinity-bloc"){const ke=ne.blocCode||"";ie={id:`bloc:${ke}`,label:ne.label,depth:0,filter:ke?["==",["get","affinityBlock"],ke]:null}}else if(ne.kind==="cluster"){const ke=ne.blocCode||"",Xe=ne.clusterCode||"";ie={id:`cluster:${ke}__${Xe}`,label:ne.label,depth:1,filter:Xe?["==",["get","cluster"],Xe]:null}}else if(ne.kind==="people-group"){const ke=ne.blocCode||"",Xe=ne.clusterCode||"",ut=ne.peopleGroupCode||"";ie={id:`pg:${ke}__${Xe}__${ut}`,label:ne.label,depth:2,filter:ut?["==",["get","peopleGroup"],ut]:null}}if(ie&&ie.filter){try{he.setFilter(Yu,null)}catch{}Ut(ie),ae&&ae.selection&&(ae.selection.value=ie)}n(),i()}}}function tn(){var he;if(r)return;const ne=ee.value;if(ne&&ne.getLayer(Yu))try{ne.setFilter(Yu,null)}catch{}Z.setSelectionFilter(null),p.selectFamily(null),p.selectLanguage(null),(he=p.selectDialect)==null||he.call(p,null)}nr(()=>p.filters,()=>{var ne,he;(ne=K.applyFilters)==null||ne.call(K,p.filters),(he=Z.applyFilters)==null||he.call(Z,p.filters)},{deep:!0}),nr(()=>p.selectedRegion,ne=>{cr(ne?{kind:"region",regionKey:ne}:{kind:null})}),nr(()=>p.selectedFamily,ne=>{ne?cr({kind:"family",familyKey:ne}):!p.selectedLanguage&&!p.selectedDialect&&cr({kind:null})}),nr(()=>p.selectedLanguage,ne=>{ne?cr({kind:"language",languageKey:ne}):!p.selectedFamily&&!p.selectedDialect&&cr({kind:null})}),nr(()=>p.selectedDialect,ne=>{ne!=null&&ne.key?cr({kind:"dialect",dialectKey:ne.key,originalLabels:ne.originalLabels||[]}):!p.selectedFamily&&!p.selectedLanguage&&cr({kind:null})}),nr(()=>b.prayerFilter,ne=>{cr(ne?{kind:"prayer",property:"peoplePraying",expectedValue:ne}:{kind:null})}),nr(()=>b.engagementFilter,ne=>{cr(ne?{kind:"engagement",property:"engagementStatus",expectedValue:ne}:{kind:null})}),nr(()=>b.adoptionFilter,ne=>{cr(ne?{kind:"adoption",property:"adoptionStatus",expectedValue:ne}:{kind:null})}),nr(()=>b.religionFilter,ne=>{cr(ne?{kind:"religion",property:"religion",expectedValue:ne}:{kind:null})}),nr(()=>p.showClusters,async ne=>{var he,Ie,Re,lt;ne?(await((he=Z.setMode)==null?void 0:he.call(Z,"mst")),(Ie=Z.flushSelectionFilter)==null||Ie.call(Z),await((Re=Z.setEnabled)==null?void 0:Re.call(Z,!0))):await((lt=Z.setEnabled)==null?void 0:lt.call(Z,!1))});async function Bn(ne){var he,Ie,Re,lt,kt,Zt,tt;p.registerMap(I,ee.value);try{ee.value.setProjection("mercator")}catch{}ne!=null&&ne.length&&(K.addLanguageFamilyLayer(ne,((he=k.value)==null?void 0:he.colorStrategy)??"languageFamily"),((Ie=k.value)==null?void 0:Ie.id)==="doxa-regions"&&((Re=ee.value)!=null&&Re.getLayer("language-family-pins"))&&ee.value.setPaintProperty("language-family-pins","circle-color","#4b5563"),((lt=k.value)==null?void 0:lt.id)==="prayer"&&K.startPrayerGlow(),(kt=Z.setData)==null||kt.call(Z,ne),(Zt=xe.build)==null||Zt.call(xe,ne),se.initialize()),((tt=k.value)==null?void 0:tt.id)==="doxa-regions"&&(typeof window<"u"&&window.requestIdleCallback?ke=>window.requestIdleCallback(ke,{timeout:2e3}):ke=>setTimeout(ke,800))(()=>{rr()}),p.setMapReady(I),J.value=!0}let Vr=null;function Mn(ne){const he=E.value;he&&(ne>=700?(he.style.setProperty("--map-btn-size","40px"),he.style.setProperty("--map-toolbar-gap","8px"),he.style.setProperty("--map-font-md","13px"),he.style.setProperty("--map-font-sm","11px"),he.style.setProperty("--map-legend-width","380px")):ne>=500?(he.style.setProperty("--map-btn-size","36px"),he.style.setProperty("--map-toolbar-gap","6px"),he.style.setProperty("--map-font-md","12px"),he.style.setProperty("--map-font-sm","10px"),he.style.setProperty("--map-legend-width","360px")):(he.style.setProperty("--map-btn-size","32px"),he.style.setProperty("--map-toolbar-gap","5px"),he.style.setProperty("--map-font-md","11px"),he.style.setProperty("--map-font-sm","10px"),he.style.setProperty("--map-legend-width","280px")))}return Ri(async()=>{var he,Ie,Re,lt;(he=b.init)==null||he.call(b),S.value=((Ie=B.value[0])==null?void 0:Ie.id)??"doxa-regions",b.isMobile?(Re=b.collapseLegend)==null||Re.call(b):(lt=b.openLegend)==null||lt.call(b),E.value&&(Mn(E.value.getBoundingClientRect().width),typeof ResizeObserver<"u"&&(Vr=new ResizeObserver(kt=>{for(const Zt of kt)Mn(Zt.contentRect.width)}),Vr.observe(E.value))),window.addEventListener("doxa:legend-row-click",Gr),window.addEventListener("legend:highlight",Xa);const ne=L.loadData().catch(kt=>(console.error("[research-map] data load failed:",kt),{normalizedPeopleGroups:[]}));await pe(),ee.value&&ee.value.once("style.load",async()=>{const{normalizedPeopleGroups:kt}=await ne;await Bn(kt)})}),jo(()=>{var ne,he,Ie,Re;window.removeEventListener("doxa:legend-row-click",Gr),window.removeEventListener("legend:highlight",Xa),Vr&&(Vr.disconnect(),Vr=null),(he=(ne=Lt.value)==null?void 0:ne.cleanup)==null||he.call(ne),K.stopPrayerGlow(),(Ie=Z.cleanup)==null||Ie.call(Z),(Re=se.cleanup)==null||Re.call(se),p.unregisterMap(I),ge()}),(ne,he)=>(Qe(),$e("div",{ref_key:"rmRoot",ref:E,class:Dt(["rm-root",{"rm-dark":it.value,"dsm-dark":it.value}])},[F.value?(Qe(),$e("div",{key:0,ref_key:"tabBar",ref:P,class:"rm-tab-bar"},[(Qe(!0),$e(Jt,null,Ia(B.value,Ie=>(Qe(),$e(Jt,{key:Ie.id},[oe("button",{class:Dt(["rm-tab",{active:S.value===Ie.id}]),onClick:Re=>to(Ie.id)},ct(Ie.label),11,BH),Ie.sepAfter?(Qe(),$e("div",CH)):ht("",!0)],64))),128))],512)):ht("",!0),oe("div",_H,[J.value?ht("",!0):(Qe(),$e("div",xH,"Research map loading…")),oe("div",{ref_key:"mapContainer",ref:z,class:"rm-map-canvas"},null,512),he[4]||(he[4]=oe("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),he[5]||(he[5]=oe("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),J.value&&et(ee)?(Qe(),br(yR,{key:1,ref_key:"geocoderRef",ref:H,"map-instance":et(ee),"access-token":et(u),"data-source-id":et(h),"is-dark":it.value,placeholder:D.value,onPeopleGroupResult:Yn,onAggregateResult:Lr,onClear:tn},null,8,["map-instance","access-token","data-source-id","is-dark","placeholder"])):ht("",!0),ht("",!0),J.value&&et(ee)?(Qe(),br(KM,{key:3},{default:ni(()=>[yr(GM,{map:et(ee),"is-dark":it.value},null,8,["map","is-dark"]),yr(VM,{map:et(ee),"is-dark":it.value},null,8,["map","is-dark"]),yr(zM,{map:et(ee),"is-dark":it.value},null,8,["map","is-dark"]),yr(YM,{"map-container":z.value,"is-dark":it.value},null,8,["map-container","is-dark"]),yr(JM,{"is-dark":it.value,onToggle:Ar},null,8,["is-dark"]),yr(NR,{"is-dark":it.value},null,8,["is-dark"])]),_:1})):ht("",!0),J.value?(Qe(),br($M,{key:4,"legend-type":T.value,"is-dark":it.value},null,8,["legend-type","is-dark"])):ht("",!0),J.value?(Qe(),br(zR,{key:5,"is-open":Ot.value,onClose:he[1]||(he[1]=Ie=>Ot.value=!1),onOpenPoster:vt},{default:ni(()=>[yr(dD)]),_:1},8,["is-open"])):ht("",!0),oe("div",FH,[J.value&&et(b).legendMode==="detail"&&et(b).selectedPeopleGroup?(Qe(),br(kM,{key:0,"legend-type":T.value,"popup-action":C.value,"initially-collapsed":!1,"is-dark":it.value},null,8,["legend-type","popup-action","is-dark"])):ht("",!0),yi(oe("div",null,[J.value?(Qe(),br(LC,{key:0,nodes:Be.value,tabs:Me.value,title:Ge.value,hideTabs:Pe.value,columnLabel:ye.value,open:Le.value,onSelect:Ut,"onUpdate:open":Ve},null,8,["nodes","tabs","title","hideTabs","columnLabel","open"])):ht("",!0)],512),[[jk,!(et(b).legendMode==="detail"&&et(b).selectedPeopleGroup)]])]),oe("div",EH,[J.value?(Qe(),br(et(A),{key:0,"legend-type":T.value,"popup-action":C.value,"is-dark":it.value},null,8,["legend-type","popup-action","is-dark"])):ht("",!0)]),J.value&&Mt.value?(Qe(),br(et(s),{key:6,feature:Mt.value,action:C.value,dark:it.value,onClose:he[2]||(he[2]=Ie=>et(p).selectFeature(null))},null,8,["feature","action","dark"])):ht("",!0),dt.value?(Qe(),br(et(l),{key:7,poster:Lt.value,"legend-rows":et(xe).rows,"active-tab":k.value,onClose:he[3]||(he[3]=Ie=>dt.value=!1)},null,8,["poster","legend-rows","active-tab"])):ht("",!0)])],2))}}},Symbol.toStringTag,{value:"Module"})),LH={class:"legend-sheet-root"},IH=["src","alt"],UH={key:0,class:"pull-tab-handle"},TH=["aria-label"],kH=["aria-label"],NH=["aria-label"],QH={class:"collapsed-detail-title"},PH={class:"legend-content"},OH=["aria-label"],MH=["aria-label"],TC=Object.freeze(Object.defineProperty({__proto__:null,default:Ga({__name:"LegendMobile",props:{legendType:{type:String,required:!0},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:t=>["pray","adopt","none"].includes(t)},disableCollapse:{type:Boolean,default:!1},showTotal:{type:Boolean,default:!1}},setup(t){const{t:e}=fa();ii(` +`,"research-map");const c=Wt("profileConfig"),u=Wt("mapboxToken"),h=Wt("dataSource");Wt("colorSet");const f=Wt("instanceId",null),p=Wt("mapStore"),v=Wt("dataStore"),b=Wt("uiStore"),m={doxaRegions:!0,adoption:!1,hamburgerMenu:!1,geocoderPersistAcrossTabs:!1},y=[{id:"prayer",label:"Prayer",colorStrategy:"prayerProgress",legend:"prayer",popup:"pray",feature:null},{id:"adoption",label:"Adoption",colorStrategy:"adoption",legend:"adoption",popup:"adopt",feature:"adoption"},{id:"engagement",label:"Engagement",colorStrategy:"engagement",legend:"engagement",popup:"pray",feature:null,sepAfter:!0},{id:"affinity-blocks",label:"People Groups",colorStrategy:"affinityBlock",legend:"affinity-block",popup:"pray",feature:null},{id:"doxa-regions",label:"Regions",colorStrategy:"doxaRegion",legend:"doxa-regions",popup:"pray",feature:"doxaRegions"},{id:"language-families",label:"Languages",colorStrategy:"languageFamily",legend:"language-family",popup:"pray",feature:null},{id:"religion",label:"Religions",colorStrategy:"religion",legend:"religion",popup:"pray",feature:null}].filter(ne=>!ne.feature||m[ne.feature]),B=Oe(()=>y),F=Oe(()=>!0),S=Je(null),k=Oe(()=>B.value.find(ne=>ne.id===S.value)??B.value[0]),T=Oe(()=>{var ne;return((ne=k.value)==null?void 0:ne.legend)??"default"}),C=Oe(()=>{var ne;return((ne=k.value)==null?void 0:ne.popup)??"pray"}),D=Oe(()=>{var ne,he;return((ne=k.value)==null?void 0:ne.id)==="language-families"?"Search language family, language, dialect/variety":((he=k.value)==null?void 0:he.id)==="affinity-blocks"?"Search affinity bloc, cluster, people group":""}),I=(f==null?void 0:f.value)||f||"research-map-"+Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,8);La("mapId",I);const E=Je(null),P=Je(null),H=Je(null),O=new Map;nr(()=>S==null?void 0:S.value,async(ne,he)=>{var Re,lt,kt,Zt,tt;if(he!==void 0&&ne!==he){he&&O.set(he,b.legendState);const ie=O.get(ne)||(b.isMobile?"collapsed":"open");ie==="fullyOpen"?(Re=b.fullyOpenLegend)==null||Re.call(b):ie==="open"?(lt=b.openLegend)==null||lt.call(b):(kt=b.collapseLegend)==null||kt.call(b)}await bu();const Ie=(Zt=P.value)==null?void 0:Zt.querySelector(".rm-tab.active");(tt=Ie==null?void 0:Ie.scrollIntoView)==null||tt.call(Ie,{inline:"center",block:"nearest",behavior:"smooth"})});const z=Je(null),J=Je(!1),{map:ee,initializeMap:pe,destroy:ge}=wO({containerRef:z,accessToken:u.value,style:((aa=c==null?void 0:c.value)==null?void 0:aa.style)??"mapbox://styles/mapbox/light-v11",center:((Ca=c==null?void 0:c.value)==null?void 0:Ca.center)??vo.center??[20,10],zoom:((ia=c==null?void 0:c.value)==null?void 0:ia.zoom)??vo.zoom??1.8,pitch:((Rn=c==null?void 0:c.value)==null?void 0:Rn.pitch)??vo.pitch??0,bearing:((Cn=c==null?void 0:c.value)==null?void 0:Cn.bearing)??vo.bearing??0}),we=new R8({sourcesConfig:bC}),L=w8({mapId:I,dataSourceId:h.value,dataSourceManager:we,dataStore:v,markRaw:ne=>ne}),K=h8({getMap:()=>ee.value,mapId:I,getLanguageFamilyColor:ne=>{var Ie,Re;const he=zu((Ie=k.value)==null?void 0:Ie.colorStrategy);return((Re=he==null?void 0:he.colors)==null?void 0:Re[ne])??(he==null?void 0:he.fallback)??"#7c8cf8"},getNormalizedPeopleGroups:()=>L.normalizedPeopleGroups.value||[]});gC({getMap:()=>ee.value,mapId:I,getLanguageFamilyColor:()=>"#7c8cf8",getNormalizedPeopleGroups:()=>L.normalizedPeopleGroups.value||[]});const W=g8({getMap:()=>ee.value,mapId:I,mapStore:p,defaultCenter:((Ma=c==null?void 0:c.value)==null?void 0:Ma.center)??[20,10],defaultZoom:((rn=c==null?void 0:c.value)==null?void 0:rn.zoom)??1.8}),se=m8({getMap:()=>ee.value});let re=null,ue=null;function me(){return re?Promise.resolve(re):(ue||(ue=Pi(()=>Promise.resolve().then(()=>Q7),void 0).then(ne=>(re=ne.useMapClustering({getMap:()=>ee.value,mapId:I,mapStore:p,getPeopleGroups:()=>L.normalizedPeopleGroups.value||[],getClusterColor:()=>{var he,Ie;return((Ie=zu((he=k.value)==null?void 0:he.colorStrategy))==null?void 0:Ie.fallback)??"#7c8cf8"}}),re))),ue)}const Z={setData(ne){var he;(he=re==null?void 0:re.setData)==null||he.call(re,ne)},applyFilters(ne){var he;(he=re==null?void 0:re.applyFilters)==null||he.call(re,ne)},refreshColors(){var ne;(ne=re==null?void 0:re.refreshColors)==null||ne.call(re)},cleanup(){var ne;(ne=re==null?void 0:re.cleanup)==null||ne.call(re)},async setEnabled(ne){var he,Ie;(Ie=(he=await me()).setEnabled)==null||Ie.call(he,ne)},async setMode(ne){var he,Ie;(Ie=(he=await me()).setMode)==null||Ie.call(he,ne)},_pendingSelectionFilter:null,setSelectionFilter(ne){this._pendingSelectionFilter=ne||null,re!=null&&re.setSelectionFilter&&re.setSelectionFilter(ne)},flushSelectionFilter(){re!=null&&re.setSelectionFilter&&re.setSelectionFilter(this._pendingSelectionFilter)}},xe=qu({});La("legendRows",xe.rows),La("normalizedPeopleGroups",L.normalizedPeopleGroups);const ae=hD(I);gD(ae),ae.activeTab.value=1;function Q(ne){return ne==="affinity-block"?0:ne==="language-family"?1:0}nr(T,ne=>{ae.activeTab.value=Q(ne)});const G={get value(){return L.normalizedPeopleGroups.value||[]}},{langTree:q}=wm(G),N=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor (e.g. Indo-European, Afro-Asiatic)."},{id:"language",label:"Language",info:"A language is a system of communication used by a people (e.g. Arabic, Bengali, Hindi)."},{id:"dialect",label:"Dialect/Variety",info:"A dialect/variety is a regional or social form of a language (e.g. Arabic, Sudanese; Pakistan Sign Language)."}],{affinityTree:fe}=IC(G),_e=[{id:"bloc",label:"Affinity Bloc",info:"Affinity Bloc (field: rop1) — broadest grouping by cultural/linguistic/geographic kinship. 16 blocs total. Examples: Malay Peoples, South Asian Peoples, Deaf, Arab World."},{id:"cluster",label:"Cluster",info:'Cluster (field: imb_reg_of_people_2, ROP 2) — finer-grained grouping inside a bloc. 194 clusters total. Suffix "(Cluster)" appears on each row to distinguish from PG/PGIC. Example: Borneo-Kalimantan within Malay Peoples.'},{id:"group",label:"People Group",info:'People Group (field: imb_reg_of_people_25, ROP 2.5) — abstract ethnolinguistic identity, country-agnostic. Suffix "(PG)" on each row. 1,736 PGs total; 131 of them have rows in multiple countries (e.g. Deaf in 123 countries). Example: Abai Sungai (PG) is one ROP25 code regardless of where its people live.'},{id:"pgic",label:"PG in Country",info:'PGIC = People Group In Country (field: imb_reg_of_people_3 + country_code) — one row per (people group, country) pair. Suffix "(PGIC)" on each row. 2,106 rows total. Example: "Abai Sungai, Malaysia (PGIC)" is the Abai Sungai PG specifically as it exists in Malaysia.'}],{regionsTree:Ee}=UC(G),be=[{id:"region",label:"WAGF Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"WAGF Block",info:'WAGF block — the organizational sub-grouping within each region (e.g. "South East Asia", "West Africa").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their block."}],j=qu(Hd(()=>T.value),yh);function $(ne){const he=[];for(const Ie of ne){he.push({id:Ie.key,label:Ie.label,color:Ie.color,count:Ie.count??0,pop:Ie.population??0,filter:Ie.filterKey?["==",["get","_flat_filter"],Ie.filterKey]:null,children:[]});for(const Re of Ie.children||[])he.push({id:Re.key,label:Re.label,color:Re.color,count:Re.count??0,pop:Re.population??0,filter:Re.filterKey?["==",["get","_flat_filter"],Re.filterKey]:null,children:[]})}return he}const de=Oe(()=>["prayer","engagement","adoption","religion"].includes(T.value)),Be=Oe(()=>de.value?$(j.items.value):T.value==="affinity-block"?fe.value:T.value==="doxa-regions"?Ee.value:q.value),Me=Oe(()=>de.value?null:T.value==="affinity-block"?_e:T.value==="doxa-regions"?be:N),Pe=Oe(()=>de.value),ye=Oe(()=>T.value==="religion"?"UUPG Religions":T.value==="prayer"?"Prayer Status":T.value==="engagement"?"Engagement Status":T.value==="adoption"?"Adoption Status":de.value?"Status":""),Le=Oe(()=>b.legendState!=="collapsed");function Ve(ne){ne?b.openLegend():b.collapseLegend()}const Ge=Oe(()=>de.value?"Legend":T.value==="affinity-block"?"People Groups":T.value==="doxa-regions"?"WAGF Regions":"Languages");function Ze(ne,he){var Ie;for(const Re of ne){if(he(Re))return Re;if((Ie=Re.children)!=null&&Ie.length){const lt=Ze(Re.children,he);if(lt)return lt}}return null}La("onSemanticTreeSelect",ne=>Ut(ne)),La("getActivePinColor",ne=>{var Ie,Re;const he=zu(((Ie=k.value)==null?void 0:Ie.colorStrategy)??"languageFamily");return((Re=he==null?void 0:he.getColor)==null?void 0:Re.call(he,ne))??"#1a1a1a"});function rt(ne,he){if(!ne||!he)return null;const Ie=ne.id;if(he==="prayer"){const Re=["to-number",["get","peoplePraying"]];if(Ie==="noPrayer")return["==",Re,0];if(Ie==="fullPrayer")return[">=",Re,Zo];if(Ie==="hasPrayer")return["all",[">",Re,0],["<",Re,Zo]]}else if(he==="engagement"){if(Ie==="hasEngagement")return["==",["get","engagementStatus"],!0];if(Ie==="notEngaged")return["==",["get","engagementStatus"],!1]}else if(he==="adoption"){if(Ie==="hasAdoption")return["==",["get","adoptionStatus"],!0];if(Ie==="notAdopted")return["==",["get","adoptionStatus"],!1]}else if(he==="religion")return["==",["slice",["coalesce",["get","religion"],""],0,1],Ie];return null}function Ut(ne){var Re,lt,kt,Zt,tt,ie,ke,Xe;const he=ee.value;if(ne){const ut=de.value?rt(ne,T.value):null,nt=((Re=k.value)==null?void 0:Re.id)==="doxa-regions",Nt=ut?{matchExpr:ut}:{};nt&&(Nt.regionPolygonSource="regions"),(lt=W.zoomToLegendRow)==null||lt.call(W,ne,Object.keys(Nt).length?Nt:void 0)}if(!ne){if(de.value){const ut=T.value;ut==="prayer"?b.setPrayerFilter(null):ut==="engagement"?b.setEngagementFilter(null):ut==="adoption"?b.setAdoptionFilter(null):ut==="religion"&&b.setReligionFilter(null)}if(he&&he.getLayer("language-family-pins")){try{he.setFilter("language-family-pins",null)}catch{}a(he,null),he.setPaintProperty("language-family-pins","circle-opacity",1),he.setPaintProperty("language-family-pins","circle-stroke-opacity",1),he.getLayer("language-family-pins-shadow")&&he.setPaintProperty("language-family-pins-shadow","circle-opacity",1),K.syncGlowFilter(null)}he&&he.getLayer("regions-fill")&&(he.setPaintProperty("regions-fill","fill-opacity",.2),he.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),he.setPaintProperty("regions-border","line-width",.6)),p.selectedFamily&&p.selectFamily(null),p.selectedLanguage&&p.selectLanguage(null),p.selectedDialect&&((kt=p.selectDialect)==null||kt.call(p,null)),p.selectedRegion&&((Zt=p.selectRegion)==null||Zt.call(p,null)),n();return}if(de.value){const ut=T.value;ut==="prayer"?b.setPrayerFilter(ne.id):ut==="engagement"?b.setEngagementFilter(ne.id):ut==="adoption"?b.setAdoptionFilter(ne.id):ut==="religion"&&b.setReligionFilter(ne.id);return}if(he&&he.getLayer("language-family-pins")&&ne.filter){try{he.setFilter("language-family-pins",ne.filter)}catch{}a(he,ne.filter),he.setPaintProperty("language-family-pins","circle-opacity",1),he.setPaintProperty("language-family-pins","circle-stroke-opacity",1),K.syncGlowFilter(ne.filter)}const Ie=String(ne.id||"");if(Ie.startsWith("fam:"))(tt=p.selectFamily)==null||tt.call(p,ne.label);else if(Ie.startsWith("lang:"))(ie=p.selectLanguage)==null||ie.call(p,ne.label);else if(Ie.startsWith("dial:"))(ke=p.selectDialect)==null||ke.call(p,{key:Ie.slice(5),originalLabels:ne.originalLabels||[]});else if(Ie.startsWith("bloc:")||Ie.startsWith("cluster:")||Ie.startsWith("pg:")||Ie.startsWith("pgic:")){if(he&&he.getLayer("language-family-pins")&&ne.filter){try{he.setFilter("language-family-pins",null)}catch{}a(he,ne.filter),he.setPaintProperty("language-family-pins","circle-opacity",["case",ne.filter,1,0]),he.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",ne.filter,1,0]),he.getLayer("language-family-pins-shadow")&&he.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",ne.filter,1,0]),K.syncGlowFilter(ne.filter)}}else if(Ie.startsWith("region:")||Ie.startsWith("block:")||Ie.startsWith("country:")){if(he&&he.getLayer("language-family-pins")&&ne.filter){try{he.setFilter("language-family-pins",ne.filter)}catch{}a(he,ne.filter),he.setPaintProperty("language-family-pins","circle-opacity",1),he.setPaintProperty("language-family-pins","circle-stroke-opacity",1)}if(Ie.startsWith("region:")&&((Xe=p.selectRegion)==null||Xe.call(p,Ie.slice(7))),he&&he.getLayer("regions-fill")){const ut=ne.isoCodes||[];if(ut.length){const nt=["literal",ut];he.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],nt],.3,.02]),he.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],nt],"#111827","rgba(60,60,80,0.15)"]),he.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],nt],2.5,.3])}else he.setPaintProperty("regions-fill","fill-opacity",.2),he.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),he.setPaintProperty("regions-border","line-width",.6)}}}nr(()=>b.theme,ne=>{ae.theme.value=ne==="dark"?"dark":"light"},{immediate:!0});function St(ne,he){var Re,lt;if(!he){const kt=ae.selection.value;kt&&((Re=kt.id)!=null&&Re.startsWith(ne+":"))&&(ae.selection.value=null);return}const Ie=ae.selection.value;Ie&&((lt=Ie.id)!=null&<.startsWith(ne+":"))&&Ie.label===he.label||(ae.selection.value=he)}nr(()=>p.selectedFamily,ne=>{if(!ne)return St("fam",null);const he=Ze(q.value,Ie=>Ie.id.startsWith("fam:")&&Ie.label===ne);he&&St("fam",{...he,depth:0})}),nr(()=>p.selectedLanguage,ne=>{if(!ne)return St("lang",null);const he=Ze(q.value,Ie=>Ie.id.startsWith("lang:")&&Ie.label===ne);he&&St("lang",{...he,depth:1})}),nr(()=>p.selectedDialect,ne=>{if(!(ne!=null&&ne.key))return St("dial",null);const he=`dial:${ne.key}`,Ie=Ze(q.value,Re=>Re.id===he);Ie&&St("dial",{...Ie,depth:2})}),nr(()=>p.selectedRegion,ne=>{if(!ne)return St("region",null);const he=Ze(Ee.value,Ie=>Ie.id===`region:${ne}`);he&&St("region",{...he,depth:0})});const Lt=Je(null);async function vt(){Lt.value||(Lt.value=await o()),dt.value=!0}const Ot=Je(!1),dt=Je(!1),Mt=Oe(()=>p.selectedFeature),it=Oe(()=>b.theme==="dark");function It(){var lt;const ne=ee.value;if(!ne||!ne.getLayer("language-family-pins"))return;const he=((lt=k.value)==null?void 0:lt.id)==="doxa-regions",Re=it.value?"#ffffff":he?"rgba(255,255,255,0.9)":"rgba(0,0,0,0.2)";ne.setPaintProperty("language-family-pins","circle-stroke-color",Re)}nr(it,It,{immediate:!1}),nr(()=>{var ne;return(ne=k.value)==null?void 0:ne.id},It);function Ar(){if(!ee.value)return;b.toggleTheme();const ne=b.theme==="dark"?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11";ee.value.setStyle(ne),ee.value.once("style.load",()=>{var Ie,Re,lt,kt;const he=L.normalizedPeopleGroups.value;he!=null&&he.length&&(K.addLanguageFamilyLayer(he,((Ie=k.value)==null?void 0:Ie.colorStrategy)??"languageFamily"),((Re=k.value)==null?void 0:Re.id)==="doxa-regions"&&ee.value.getLayer("language-family-pins")&&ee.value.setPaintProperty("language-family-pins","circle-color","#a30000")),((lt=k.value)==null?void 0:lt.id)==="prayer"&&K.startPrayerGlow(),_t.value=!1,((kt=k.value)==null?void 0:kt.id)==="doxa-regions"&&rr()})}const _t=Je(!1);let Bt=null;async function rr(){if(!_t.value)return Bt||(Bt=(async()=>{var ne,he,Ie;try{const Re=await((ne=L.loadRegionsData)==null?void 0:ne.call(L));Re&&ee.value&&((he=K.addRegionsLayer)==null||he.call(K,Re,"doxa-regions"),ee.value.getLayer("regions-fill")&&((Ie=k.value)==null?void 0:Ie.id)!=="doxa-regions"&&(ee.value.setLayoutProperty("regions-fill","visibility","none"),ee.value.setLayoutProperty("regions-border","visibility","none")),ee.value.getLayer("language-family-pins")&&ee.value.moveLayer("language-family-pins")),_t.value=!0,L.regionsData.value=null}catch(Re){console.warn("[research-map] regions layer failed:",Re)}finally{Bt=null}})(),Bt)}function to(ne){var Re,lt,kt;if(ne===S.value)return;S.value=ne,(Re=b.setActiveTab)==null||Re.call(b,ne),n();const he=B.value.find(Zt=>Zt.id===ne);if(!he||!ee.value)return;he.id==="doxa-regions"&&rr();const Ie=zu(he.colorStrategy);if(ee.value.getLayer("language-family-pins")&&(Ie!=null&&Ie.buildColorExpression)){const Zt=he.id==="doxa-regions"?"#a30000":Ie.buildColorExpression();ee.value.setPaintProperty("language-family-pins","circle-color",Zt),ot(ee.value),he.id==="prayer"?K.startPrayerGlow():K.stopPrayerGlow();const tt=he.id==="doxa-regions";ee.value.getLayer("regions-fill")&&(ee.value.setLayoutProperty("regions-fill","visibility",tt?"visible":"none"),ee.value.setLayoutProperty("regions-border","visibility",tt?"visible":"none")),ee.value.getLayer("language-family-pins")&&ee.value.moveLayer("language-family-pins")}(lt=xe.refresh)==null||lt.call(xe),(kt=Z.refreshColors)==null||kt.call(Z)}function Gr(ne){var Ie,Re;const he=ne==null?void 0:ne.detail;!he||he.mapId!==I||(he.center&&Array.isArray(he.center)?(Ie=W.flyToCoords)==null||Ie.call(W,{longitude:he.center[0],latitude:he.center[1]},he.zoom??4):he.bounds&&((Re=W.fitBounds)==null||Re.call(W,he.bounds,60)))}function Xa(ne){var ie,ke,Xe;const he=ne==null?void 0:ne.detail;if(!he||(cr(he),!((ie=he.coords)!=null&&ie.length)))return;const Ie=he.coords;if(Ie.length===1){(ke=W.flyToCoords)==null||ke.call(W,{longitude:Ie[0][0],latitude:Ie[0][1]},3);return}let Re=1/0,lt=-1/0,kt=1/0,Zt=-1/0;for(const[ut,nt]of Ie)utlt&&(lt=ut),ntZt&&(Zt=nt);const tt=he.kind==="region"?2.2:3;(Xe=W.fitBounds)==null||Xe.call(W,[[Re,kt],[lt,Zt]],60,{maxZoom:tt})}const Qr={family:null,language:null,dialect:null,region:null,prayer:null,engagement:null,adoption:null};function ot(ne){ne.setPaintProperty("language-family-pins","circle-opacity",1),ne.setPaintProperty("language-family-pins","circle-stroke-opacity",1),ne.getLayer("language-family-pins-shadow")&&ne.setPaintProperty("language-family-pins-shadow","circle-opacity",1),ne.setFilter("language-family-pins",null),a(ne,null),K.syncGlowFilter(null),ne.getLayer("regions-fill")&&(ne.setPaintProperty("regions-fill","fill-opacity",.2),ne.setPaintProperty("regions-fill","fill-outline-color",null)),ne.getLayer("regions-border")&&(ne.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),ne.setPaintProperty("regions-border","line-width",.6)),Qr.family=Qr.language=Qr.dialect=Qr.region=null,Qr.prayer=Qr.engagement=Qr.adoption=null,b.prayerFilter&&b.setPrayerFilter(null),b.engagementFilter&&b.setEngagementFilter(null),b.adoptionFilter&&b.setAdoptionFilter(null),b.religionFilter&&b.setReligionFilter(null),Z.setSelectionFilter(null),p.selectedFamily&&p.selectFamily(null),p.selectedLanguage&&p.selectLanguage(null),p.selectedDialect&&p.selectDialect(null);try{ae&&ae.selection&&ae.selection.value&&(ae.selection.value=null)}catch{}}let wn=null,Ba=0;function cr(ne){var tt,ie,ke,Xe,ut;const he=ee.value;if(!he||!he.getLayer("language-family-pins"))return;let Ie,Re,lt;if(ne.kind==="family")lt="family",Ie="languageFamily",Re=ne.familyKey;else if(ne.kind==="language")lt="language",Ie="language",Re=ne.languageKey;else if(ne.kind==="region")lt="region",Ie="doxaRegion",Re=ne.regionKey;else if(ne.kind==="prayer")lt="prayer",Ie=ne.property||"peoplePraying",Re=ne.expectedValue;else if(ne.kind==="engagement")lt="engagement",Ie=ne.property||"engagementStatus",Re=ne.expectedValue;else if(ne.kind==="adoption")lt="adoption",Ie=ne.property||"adoptionStatus",Re=ne.expectedValue;else if(ne.kind==="religion")lt="religion",Ie=ne.property||"religion",Re=ne.expectedValue;else if(ne.kind==="dialect")lt="dialect",Ie="language",Re=ne.dialectKey||"";else{ot(he),n();for(const nt of Object.keys(Qr))Qr[nt]=null;wn=null,Ba=0;return}const kt=Date.now(),Zt=`${lt}|${Re}`;if(!(wn===Zt&&kt-Ba<80)){if(wn=Zt,Ba=kt,Qr[lt]===Re){ot(he),n(),wn=null,Ba=0;return}for(const nt of Object.keys(Qr))Qr[nt]=null;if(Qr[lt]=Re,lt==="family"?(tt=p.selectFamily)==null||tt.call(p,Re):lt==="region"?(ie=p.selectRegion)==null||ie.call(p,Re):lt==="language"?(ke=p.selectLanguage)==null||ke.call(p,Re):lt==="dialect"&&((Xe=p.selectDialect)==null||Xe.call(p,{key:Re,originalLabels:ne.originalLabels||[]})),Z.setSelectionFilter({property:Ie,value:Re}),lt==="region"){if(he.setFilter("language-family-pins",["==",["get","doxaRegion"],Re]),a(he,["==",["get","doxaRegion"],Re]),he.setPaintProperty("language-family-pins","circle-opacity",1),he.setPaintProperty("language-family-pins","circle-stroke-opacity",1),he.getLayer("regions-fill")){const nt=((ut=K.regionIsoMap)==null?void 0:ut.value)||{},Nt=Or=>String(Or).toLowerCase().replace(/[^a-z]/g,""),Dn=Nt(Re);let Pr=nt[Re]||[];if(!Pr.length){for(const[Or,pA]of Object.entries(nt))if(Nt(Or)===Dn){Pr=pA;break}}if(Pr.length){const Or=["literal",Pr];he.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],Or],.3,.02]),he.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],Or],"#111827","rgba(60,60,80,0.15)"]),he.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],Or],2.5,.3])}else he.setPaintProperty("regions-fill","fill-opacity",.2),he.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),he.setPaintProperty("regions-border","line-width",.6)}}else{he.setFilter("language-family-pins",null);let nt;if(lt==="prayer"){const Nt=["to-number",["get",Ie]];Re==="noPrayer"?nt=["==",Nt,0]:Re==="fullPrayer"?nt=[">=",Nt,Zo]:Re==="hasPrayer"?nt=["all",[">",Nt,0],["<",Nt,Zo]]:nt=["==",["get",Ie],Re]}else if(lt==="engagement")nt=["==",["get",Ie],Re==="hasEngagement"];else if(lt==="adoption")nt=["==",["get",Ie],Re==="hasAdoption"];else if(lt==="religion")nt=["==",["slice",["coalesce",["get",Ie],""],0,1],Re];else if(ne.filterExpr)nt=ne.filterExpr;else if(lt==="language")nt=["any",["==",["get",Ie],Re],["==",["slice",["get",Ie],0,Re.length+1],Re+","],["in"," "+Re,["get",Ie]]];else if(lt==="dialect"){const Nt=ne.originalLabels||[];Nt.length===1?nt=["==",["get",Ie],Nt[0]]:Nt.length>1?nt=["in",["get",Ie],["literal",Nt]]:nt=["==",["get",Ie],Re]}else nt=["==",["get",Ie],Re];he.setPaintProperty("language-family-pins","circle-opacity",["case",nt,1,0]),he.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",nt,1,0]),he.getLayer("language-family-pins-shadow")&&he.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",nt,1,0]),a(he,nt),K.syncGlowFilter(nt),he.getLayer("regions-fill")&&(he.setPaintProperty("regions-fill","fill-opacity",.2),he.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),he.setPaintProperty("regions-border","line-width",.6))}}}function Yn(ne){!ne||!p||p.selectFeature(ne)}function Lr(ne){var lt,kt,Zt,tt;const he=ee.value;if(!ne||!he||!he.getLayer(Yu))return;let Ie=null;switch(ne.kind){case"country":Ie="countryName";break;case"language-family":Ie="languageFamily";break;case"language":Ie="language";break;case"dialect":Ie="language";break;case"religion":Ie="religionName";break;case"region":Ie="doxaRegion";break;case"affinity-bloc":Ie="affinityBlock";break;case"cluster":Ie="cluster";break;case"people-group":Ie="peopleGroup";break}const Re=ne.label;if(!(!Ie||Re==null||Re==="")){try{let ie;if(ne.kind==="language")ie=["any",["==",["get",Ie],Re],["==",["slice",["get",Ie],0,Re.length+1],Re+","],["in"," "+Re,["get",Ie]]];else if(ne.kind==="dialect"){const ke=Array.isArray(ne.originalLabels)?ne.originalLabels:[];ke.length===1?ie=["==",["get",Ie],ke[0]]:ke.length>1?ie=["in",["get",Ie],["literal",ke]]:ie=["==",["get",Ie],Re]}else if(ne.kind==="affinity-bloc"){const ke=ne.blocCode||((lt=ne.properties)==null?void 0:lt.blocCode)||"";ie=ke?["==",["get","affinityBlock"],ke]:["==",["get","affinityBlockLabel"],Re]}else if(ne.kind==="cluster"){const ke=ne.clusterCode||((kt=ne.properties)==null?void 0:kt.clusterCode)||"",Xe=ne.blocCode||((Zt=ne.properties)==null?void 0:Zt.blocCode)||"";ie=ke&&Xe?["all",["==",["get","affinityBlock"],Xe],["==",["get","cluster"],ke]]:["==",["get","clusterLabel"],Re]}else ie=["==",["get",Ie],Re];he.setFilter(Yu,ie)}catch{}if(Z.setSelectionFilter({property:Ie,value:Re}),ne.kind==="language-family"||ne.kind==="family")p.selectFamily(ne.label),p.setActiveLegendTab("family"),n(),i();else if(ne.kind==="language")p.selectLanguage(ne.label),p.setActiveLegendTab("language"),n(),i();else if(ne.kind==="dialect"){const ie=Array.isArray(ne.originalLabels)?ne.originalLabels:[],ke=ne.familyDerived||"",Xe=ne.baseLang||"",ut=ne.dialectLabel||"",nt=`${ke}__${Xe}__${ut}`;(tt=p.selectDialect)==null||tt.call(p,{key:nt,originalLabels:ie}),p.setActiveLegendTab("dialect"),n(),i()}else if(ne.kind==="affinity-bloc"||ne.kind==="cluster"||ne.kind==="people-group"){let ie=null;if(ne.kind==="affinity-bloc"){const ke=ne.blocCode||"";ie={id:`bloc:${ke}`,label:ne.label,depth:0,filter:ke?["==",["get","affinityBlock"],ke]:null}}else if(ne.kind==="cluster"){const ke=ne.blocCode||"",Xe=ne.clusterCode||"";ie={id:`cluster:${ke}__${Xe}`,label:ne.label,depth:1,filter:Xe?["==",["get","cluster"],Xe]:null}}else if(ne.kind==="people-group"){const ke=ne.blocCode||"",Xe=ne.clusterCode||"",ut=ne.peopleGroupCode||"";ie={id:`pg:${ke}__${Xe}__${ut}`,label:ne.label,depth:2,filter:ut?["==",["get","peopleGroup"],ut]:null}}if(ie&&ie.filter){try{he.setFilter(Yu,null)}catch{}Ut(ie),ae&&ae.selection&&(ae.selection.value=ie)}n(),i()}}}function tn(){var he;if(r)return;const ne=ee.value;if(ne&&ne.getLayer(Yu))try{ne.setFilter(Yu,null)}catch{}Z.setSelectionFilter(null),p.selectFamily(null),p.selectLanguage(null),(he=p.selectDialect)==null||he.call(p,null)}nr(()=>p.filters,()=>{var ne,he;(ne=K.applyFilters)==null||ne.call(K,p.filters),(he=Z.applyFilters)==null||he.call(Z,p.filters)},{deep:!0}),nr(()=>p.selectedRegion,ne=>{cr(ne?{kind:"region",regionKey:ne}:{kind:null})}),nr(()=>p.selectedFamily,ne=>{ne?cr({kind:"family",familyKey:ne}):!p.selectedLanguage&&!p.selectedDialect&&cr({kind:null})}),nr(()=>p.selectedLanguage,ne=>{ne?cr({kind:"language",languageKey:ne}):!p.selectedFamily&&!p.selectedDialect&&cr({kind:null})}),nr(()=>p.selectedDialect,ne=>{ne!=null&&ne.key?cr({kind:"dialect",dialectKey:ne.key,originalLabels:ne.originalLabels||[]}):!p.selectedFamily&&!p.selectedLanguage&&cr({kind:null})}),nr(()=>b.prayerFilter,ne=>{cr(ne?{kind:"prayer",property:"peoplePraying",expectedValue:ne}:{kind:null})}),nr(()=>b.engagementFilter,ne=>{cr(ne?{kind:"engagement",property:"engagementStatus",expectedValue:ne}:{kind:null})}),nr(()=>b.adoptionFilter,ne=>{cr(ne?{kind:"adoption",property:"adoptionStatus",expectedValue:ne}:{kind:null})}),nr(()=>b.religionFilter,ne=>{cr(ne?{kind:"religion",property:"religion",expectedValue:ne}:{kind:null})}),nr(()=>p.showClusters,async ne=>{var he,Ie,Re,lt;ne?(await((he=Z.setMode)==null?void 0:he.call(Z,"mst")),(Ie=Z.flushSelectionFilter)==null||Ie.call(Z),await((Re=Z.setEnabled)==null?void 0:Re.call(Z,!0))):await((lt=Z.setEnabled)==null?void 0:lt.call(Z,!1))});async function Bn(ne){var he,Ie,Re,lt,kt,Zt,tt;p.registerMap(I,ee.value);try{ee.value.setProjection("mercator")}catch{}ne!=null&&ne.length&&(K.addLanguageFamilyLayer(ne,((he=k.value)==null?void 0:he.colorStrategy)??"languageFamily"),((Ie=k.value)==null?void 0:Ie.id)==="doxa-regions"&&((Re=ee.value)!=null&&Re.getLayer("language-family-pins"))&&ee.value.setPaintProperty("language-family-pins","circle-color","#4b5563"),((lt=k.value)==null?void 0:lt.id)==="prayer"&&K.startPrayerGlow(),(kt=Z.setData)==null||kt.call(Z,ne),(Zt=xe.build)==null||Zt.call(xe,ne),se.initialize()),((tt=k.value)==null?void 0:tt.id)==="doxa-regions"&&(typeof window<"u"&&window.requestIdleCallback?ke=>window.requestIdleCallback(ke,{timeout:2e3}):ke=>setTimeout(ke,800))(()=>{rr()}),p.setMapReady(I),J.value=!0}let Vr=null;function Mn(ne){const he=E.value;he&&(ne>=700?(he.style.setProperty("--map-btn-size","40px"),he.style.setProperty("--map-toolbar-gap","8px"),he.style.setProperty("--map-font-md","13px"),he.style.setProperty("--map-font-sm","11px"),he.style.setProperty("--map-legend-width","380px")):ne>=500?(he.style.setProperty("--map-btn-size","36px"),he.style.setProperty("--map-toolbar-gap","6px"),he.style.setProperty("--map-font-md","12px"),he.style.setProperty("--map-font-sm","10px"),he.style.setProperty("--map-legend-width","360px")):(he.style.setProperty("--map-btn-size","32px"),he.style.setProperty("--map-toolbar-gap","5px"),he.style.setProperty("--map-font-md","11px"),he.style.setProperty("--map-font-sm","10px"),he.style.setProperty("--map-legend-width","280px")))}return Ri(async()=>{var he,Ie,Re,lt;(he=b.init)==null||he.call(b),S.value=((Ie=B.value[0])==null?void 0:Ie.id)??"doxa-regions",b.isMobile?(Re=b.collapseLegend)==null||Re.call(b):(lt=b.openLegend)==null||lt.call(b),E.value&&(Mn(E.value.getBoundingClientRect().width),typeof ResizeObserver<"u"&&(Vr=new ResizeObserver(kt=>{for(const Zt of kt)Mn(Zt.contentRect.width)}),Vr.observe(E.value))),window.addEventListener("doxa:legend-row-click",Gr),window.addEventListener("legend:highlight",Xa);const ne=L.loadData().catch(kt=>(console.error("[research-map] data load failed:",kt),{normalizedPeopleGroups:[]}));await pe(),ee.value&&ee.value.once("style.load",async()=>{const{normalizedPeopleGroups:kt}=await ne;await Bn(kt)})}),jo(()=>{var ne,he,Ie,Re;window.removeEventListener("doxa:legend-row-click",Gr),window.removeEventListener("legend:highlight",Xa),Vr&&(Vr.disconnect(),Vr=null),(he=(ne=Lt.value)==null?void 0:ne.cleanup)==null||he.call(ne),K.stopPrayerGlow(),(Ie=Z.cleanup)==null||Ie.call(Z),(Re=se.cleanup)==null||Re.call(se),p.unregisterMap(I),ge()}),(ne,he)=>(Qe(),$e("div",{ref_key:"rmRoot",ref:E,class:Dt(["rm-root",{"rm-dark":it.value,"dsm-dark":it.value}])},[F.value?(Qe(),$e("div",{key:0,ref_key:"tabBar",ref:P,class:"rm-tab-bar"},[(Qe(!0),$e(Jt,null,Ia(B.value,Ie=>(Qe(),$e(Jt,{key:Ie.id},[oe("button",{class:Dt(["rm-tab",{active:S.value===Ie.id}]),onClick:Re=>to(Ie.id)},ct(Ie.label),11,BH),Ie.sepAfter?(Qe(),$e("div",CH)):ht("",!0)],64))),128))],512)):ht("",!0),oe("div",_H,[J.value?ht("",!0):(Qe(),$e("div",xH,"Research map loading…")),oe("div",{ref_key:"mapContainer",ref:z,class:"rm-map-canvas"},null,512),he[4]||(he[4]=oe("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),he[5]||(he[5]=oe("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),J.value&&et(ee)?(Qe(),br(yR,{key:1,ref_key:"geocoderRef",ref:H,"map-instance":et(ee),"access-token":et(u),"data-source-id":et(h),"is-dark":it.value,placeholder:D.value,onPeopleGroupResult:Yn,onAggregateResult:Lr,onClear:tn},null,8,["map-instance","access-token","data-source-id","is-dark","placeholder"])):ht("",!0),ht("",!0),J.value&&et(ee)?(Qe(),br(KM,{key:3},{default:ni(()=>[yr(GM,{map:et(ee),"is-dark":it.value},null,8,["map","is-dark"]),yr(VM,{map:et(ee),"is-dark":it.value},null,8,["map","is-dark"]),yr(zM,{map:et(ee),"is-dark":it.value},null,8,["map","is-dark"]),yr(YM,{"map-container":z.value,"is-dark":it.value},null,8,["map-container","is-dark"]),yr(JM,{"is-dark":it.value,onToggle:Ar},null,8,["is-dark"]),yr(NR,{"is-dark":it.value},null,8,["is-dark"])]),_:1})):ht("",!0),J.value?(Qe(),br($M,{key:4,"legend-type":T.value,"is-dark":it.value},null,8,["legend-type","is-dark"])):ht("",!0),J.value?(Qe(),br(zR,{key:5,"is-open":Ot.value,onClose:he[1]||(he[1]=Ie=>Ot.value=!1),onOpenPoster:vt},{default:ni(()=>[yr(dD)]),_:1},8,["is-open"])):ht("",!0),oe("div",FH,[J.value&&et(b).legendMode==="detail"&&et(b).selectedPeopleGroup?(Qe(),br(kM,{key:0,"legend-type":T.value,"popup-action":C.value,"initially-collapsed":!1,"is-dark":it.value},null,8,["legend-type","popup-action","is-dark"])):ht("",!0),yi(oe("div",null,[J.value?(Qe(),br(LC,{key:0,nodes:Be.value,tabs:Me.value,title:Ge.value,hideTabs:Pe.value,columnLabel:ye.value,open:Le.value,onSelect:Ut,"onUpdate:open":Ve},null,8,["nodes","tabs","title","hideTabs","columnLabel","open"])):ht("",!0)],512),[[jk,!(et(b).legendMode==="detail"&&et(b).selectedPeopleGroup)]])]),oe("div",EH,[J.value?(Qe(),br(et(A),{key:0,"legend-type":T.value,"popup-action":C.value,"is-dark":it.value},null,8,["legend-type","popup-action","is-dark"])):ht("",!0)]),J.value&&Mt.value?(Qe(),br(et(s),{key:6,feature:Mt.value,action:C.value,dark:it.value,onClose:he[2]||(he[2]=Ie=>et(p).selectFeature(null))},null,8,["feature","action","dark"])):ht("",!0),dt.value?(Qe(),br(et(l),{key:7,poster:Lt.value,"legend-rows":et(xe).rows,"active-tab":k.value,onClose:he[3]||(he[3]=Ie=>dt.value=!1)},null,8,["poster","legend-rows","active-tab"])):ht("",!0)])],2))}}},Symbol.toStringTag,{value:"Module"})),LH={class:"legend-sheet-root"},IH=["src","alt"],UH={key:0,class:"pull-tab-handle"},TH=["aria-label"],kH=["aria-label"],NH=["aria-label"],QH={class:"collapsed-detail-title"},PH={class:"legend-content"},OH=["aria-label"],MH=["aria-label"],TC=Object.freeze(Object.defineProperty({__proto__:null,default:Ga({__name:"LegendMobile",props:{legendType:{type:String,required:!0},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:t=>["pray","adopt","none"].includes(t)},disableCollapse:{type:Boolean,default:!1},showTotal:{type:Boolean,default:!1}},setup(t){const{t:e}=fa();ii(` /* ── Mobile bottom sheet — chrome only. The TABLE (title + column labels + data rows) is rendered by LegendRows, the SAME component desktop uses, with all the same default CSS. Mobile