From 31f555a2d497a5ec9f2210bab6b43ae42217a254 Mon Sep 17 00:00:00 2001 From: corsacca Date: Wed, 24 Jun 2026 16:13:34 +0100 Subject: [PATCH] hide adoption UI and add country links to pray cards remove "Not Adopted" badge from research page cards hide Adoption tab on research map and rebuild bundle remove Adopt and Engage tiles from landing page drop step number from lone Pray tile on landing page add clickable country link to pray page cards --- app/components/public/UupgsList.vue | 17 +++++++---------- app/pages/index.vue | 17 ----------------- .../doxa-research-map/profiles/research-map.vue | 3 ++- public/js/doxa-research-map.js | 2 +- 4 files changed, 10 insertions(+), 29 deletions(-) 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