diff --git a/public/dx-maps/all-people-groups/all-people-groups.js b/public/dx-maps/all-people-groups/all-people-groups.js index c38c676a2..35df2fdd4 100644 --- a/public/dx-maps/all-people-groups/all-people-groups.js +++ b/public/dx-maps/all-people-groups/all-people-groups.js @@ -79,7 +79,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(z,H)=>c.value?dp((fe(),Te("div",{key:0,ref_key:"hintEl",ref:w,class:Xe(["pin-hint",{dark:r.value}]),role:"status"},[te("span",Sm,[H[0]||(H[0]=te("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),ut(" "+Me(l.value)+" ",1),te("button",{class:"pin-hint-x",type:"button","aria-label":t("aria.dismissHint","Dismiss hint"),onClick:M},"×",8,Tm)])],2)),[[Sg,u.value&&b.value]]):gt("",!0)}},Cm=".lsn-bar[data-v-9a589f6f]{display:flex;align-items:flex-start;gap:8px;flex:none;margin:0;padding-block:8px;padding-inline:12px 8px;background:#fff8e1;border-block-end:1px solid #f0d68a;color:#4a3b00;font:400 13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}.lsn-bar__text[data-v-9a589f6f]{flex:1 1 auto;margin:0}.lsn-bar__x[data-v-9a589f6f]{flex:none;min-width:24px;min-height:24px;padding:0;border:0;border-radius:4px;background:transparent;color:inherit;font:600 18px/1 system-ui,sans-serif;cursor:pointer}.lsn-bar__x[data-v-9a589f6f]:focus-visible{outline:2px solid #1a73e8;outline-offset:2px}.lsn-block[data-v-9a589f6f]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;min-height:200px;padding:24px;background:#f7f7f5;color:#333;text-align:center;font:400 15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.lsn-block__text[data-v-9a589f6f]{max-width:28em;margin:0}",iu=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Mm={key:0,class:"lsn-block",role:"status"},Em={class:"lsn-block__text"},Nm={key:0},xm={key:1,class:"lsn-bar",role:"note"},Pm={class:"lsn-bar__text"},Im=["aria-label","title"],ru=iu({__name:"LargerScreenNotice",props:{mode:{type:String,required:!0},label:{type:String,default:""},locale:{type:String,default:""}},emits:["dismiss"],setup(e){const t=e,o=(i,r)=>qt(i,t.locale||void 0)||r,n=ce(()=>o("messages.largerScreenNotice","This experimental map is built for larger screens. It opens here, but parts of it may not fit or work well on a phone.")),a=ce(()=>o("messages.noticeDismiss","Dismiss")),s=ce(()=>o("messages.desktopOnlyNotice","{label} only supports desktop — open this page on a desktop to use it.").split("{label}"));return(i,r)=>e.mode==="desktop-only"?(fe(),Te("div",Mm,[te("p",Em,[ut(Me(s.value[0]),1),s.value.length>1?(fe(),Te("bdi",Nm,Me(e.label),1)):gt("",!0),ut(Me(s.value[1]||""),1)])])):(fe(),Te("div",xm,[te("p",Pm,Me(n.value),1),te("button",{type:"button",class:"lsn-bar__x","aria-label":a.value,title:a.value,onClick:r[0]||(r[0]=l=>i.$emit("dismiss"))},"×",8,Im)]))}},[["styles",[Cm]],["__scopeId","data-v-9a589f6f"]]),Fm="(max-width: 639.98px)";function Om(e){for(let t=e;t;t=t.parentNode||t.host)if(t.nodeType===1&&t.hasAttribute("data-doxa-gallery"))return!0;return!1}function Dm(e){var l;const t=ce(()=>{var u;const c=(u=e.value)==null?void 0:u.mobile;return c==="desktop-only"||c==="larger-screens"?c:null});let o=null;try{o=Kg()}catch{o=null}const n=o?Om(o):!1,a=oe(!1);if(typeof window<"u"&&typeof window.matchMedia=="function"){const c=window.matchMedia(Fm);a.value=c.matches;const u=f=>{a.value=f.matches};(l=c.addEventListener)==null||l.call(c,"change",u),Fo(()=>{var f;return(f=c.removeEventListener)==null?void 0:f.call(c,"change",u)})}const s=ce(()=>{var c;return`dx-maps:larger-screens-dismissed:${((c=e.value)==null?void 0:c.profile)||""}`}),i=oe(!1);lt(s,c=>{try{i.value=sessionStorage.getItem(c)==="1"}catch{i.value=!1}},{immediate:!0});function r(){i.value=!0;try{sessionStorage.setItem(s.value,"1")}catch{}}return{flag:t,blocked:ce(()=>t.value==="desktop-only"&&a.value&&!n),advise:ce(()=>t.value==="larger-screens"&&a.value&&!n&&!i.value),dismiss:r,label:ce(()=>{var c,u;return String(((c=e.value)==null?void 0:c.mobileLabel)||((u=e.value)==null?void 0:u.profile)||"")})}}let Rm=0;const zm=Ms("ui",{state:()=>({_storeInstanceId:++Rm,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:s=!1}=e,i={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:s,createdAt:Date.now()};return this.toasts.push(i),!s&&n>0&&setTimeout(()=>{this.removeToast(i.id)},n),i.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),Hm=Ms("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusteringMode:"off",clusterPinOpacity:.6,clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const s=t.getCenter();s&&(a=[s.lng,s.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),jm=Ms("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=tn({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=tn({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),lu={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},Bm=".profile-loader[data-locale-pending][data-v-b5256f00] .stl-tabs,.profile-loader[data-locale-pending][data-v-b5256f00] .stl-title,.profile-loader[data-locale-pending][data-v-b5256f00] .stl-rows,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-title,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-content,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-reopen-label,.profile-loader[data-locale-pending][data-v-b5256f00] .lt-btn-text,.profile-loader[data-locale-pending][data-v-b5256f00] .rd-topbar,.profile-loader[data-locale-pending][data-v-b5256f00] .rd-exportbar{visibility:hidden}.profile-loader[data-v-b5256f00]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-loader.has-screen-notice[data-v-b5256f00]{display:flex;flex-direction:column}.profile-loader.has-screen-notice[data-v-b5256f00]>:not(.lsn-bar){flex:1 1 auto;min-height:0;position:relative!important;inset:auto!important}.profile-error[data-v-b5256f00]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Wm=["dir","data-locale-pending"],Um={key:0,class:"profile-error"},Km={key:1,class:"profile-error"},Gm=iu({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var G;const o=e,n=De("profileConfig",null),a=ce(()=>{var q;if(!o.profileConfig)return null;let M;try{M=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(M&&M.assetsBase===void 0){const Z=(q=n==null?void 0:n.value)==null?void 0:q.assetsBase;typeof Z=="string"&&Z&&(M.assetsBase=Z)}return M}),s=ce(()=>{var M;return((M=a.value)==null?void 0:M.profile)||null}),i=of(),r=ce(()=>{var q;const M=(q=a.value)==null?void 0:q.tk;return typeof M=="string"&&M?M:i.value||""});lt(()=>{var M;return(M=a.value)==null?void 0:M.tk},M=>{typeof M=="string"&&M&&xs(M)},{immediate:!0}),lt(()=>{var M;return(M=a.value)==null?void 0:M.tokenUrl},M=>{var q;M&&!((q=a.value)!=null&&q.tk)&&!i.value&&nf(M)},{immediate:!0});const l=ce(()=>{var M;return((M=a.value)==null?void 0:M.dataSource)||lu.activeSource||"doxa-csv"}),c=ce(()=>{var M;return((M=a.value)==null?void 0:M.colorSet)||"default"}),u=ce(()=>!1),f=ce(()=>{var M;return((M=a.value)==null?void 0:M.pinHint)!==!1}),b=ce(()=>{var q,Z;const M=(((q=a.value)==null?void 0:q.locale)||((Z=a.value)==null?void 0:Z.lang)||Xc()||"").split("-")[0].toLowerCase();return Sn.includes(M)?M:""}),v=De("appI18n",null);wr(()=>{b.value&&(v&&(v.global.locale.value=b.value),Qc(b.value),Qs(v,b.value).catch(()=>{}))});const k=ce(()=>{var M,q;return b.value||((q=(M=v==null?void 0:v.global)==null?void 0:M.locale)==null?void 0:q.value)||"en"}),A=ce(()=>La.has(k.value)?"rtl":"ltr"),{blocked:x,advise:P,dismiss:w,label:$}=Dm(a),_=oe(!1);wr(M=>{const q=k.value;if(!La.has(q)){_.value=!1;return}let Z=!0;M(()=>{Z=!1}),_.value=!0,fm(q).finally(()=>{Z&&(_.value=!1)})});const S=ce(()=>{var M;return((M=a.value)==null?void 0:M.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),E=De("profileModules",null);if(!E)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const T=ce(()=>{if(!s.value)return null;const M=`./${s.value}.vue`;return E[M]?wm(E[M]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(E)),null)});rt("mapboxToken",r),rt("dataSource",l),rt("colorSet",c),rt("profileConfig",a),rt("instanceId",S),rt("lang",k);const I=zm(),y=Hm(),U=jm();try{const M=typeof localStorage<"u"?localStorage.getItem("theme"):null;M&&((G=I.setTheme)==null||G.call(I,M))}catch{}return rt("uiStore",I),rt("mapStore",y),rt("dataStore",U),(M,q)=>(fe(),Te("div",{class:Xe(["profile-loader",{"has-screen-notice":Oe(P)}]),dir:A.value,"data-locale-pending":_.value?"":null},[a.value?T.value?Oe(x)?(fe(),Mt(ru,{key:2,mode:"desktop-only",label:Oe($),locale:k.value},null,8,["label","locale"])):(fe(),Te(Be,{key:3},[Oe(P)?(fe(),Mt(ru,{key:0,mode:"larger-screens",locale:k.value,onDismiss:Oe(w)},null,8,["locale","onDismiss"])):gt("",!0),(fe(),Mt(Ir(T.value)))],64)):(fe(),Te("div",Km,[te("p",null,[q[1]||(q[1]=ut("⚠️ Profile ",-1)),te("strong",null,'"'+Me(s.value)+'"',1),q[2]||(q[2]=ut(" not found.",-1))])])):(fe(),Te("div",Um,[...q[0]||(q[0]=[te("p",null,[ut("⚠️ "),te("strong",null,"doxa-map"),ut(": missing or invalid "),te("code",null,"profile-config"),ut(" prop.")],-1),te("p",null,[ut("Example: "),te("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),T.value&&u.value?(fe(),Mt(Ir(Oe(null)),{key:4})):gt("",!0),T.value&&f.value?(fe(),Mt(Lm,{key:5})):gt("",!0)],10,Wm))}},[["styles",[Bm]],["__scopeId","data-v-b5256f00"]]);function cu(e,t,o){var a;const n=(a=e==null?void 0:e._context)==null?void 0:a.provides;if(n&&t in n){n[t]=o;return}e.provide(t,o)}function qm(e,t){var a;const o=(a=e==null?void 0:e._context)==null?void 0:a.provides,n=o?Object.getPrototypeOf(o):null;n&&Object.setPrototypeOf(o,null);try{return t()}finally{n&&Object.setPrototypeOf(o,n)}}function Vm({profileModules:e={},configureApp:t=null}={}){return Wg(Gm,{configureApp(o){const n=Jg();qm(o,()=>o.use(n));const a=hm();o.use(a),cu(o,"appI18n",a),cu(o,"profileModules",e),t&&t(o,{pinia:n,i18n:a})}})}const Ym=Vm({profileModules:Object.assign({"./all-people-groups.vue":()=>bd(()=>Promise.resolve().then(()=>q_),void 0)})});typeof customElements<"u"&&!customElements.get("all-people-groups")&&customElements.define("all-people-groups",Ym);const Jm="rgba(120, 128, 134, 0.28)",uu="36px",du=()=>{};function Xm(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return du;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return du;const a=w=>w.classList.contains("map-scroll-edge--left");for(const w of n)w.style.background=`linear-gradient(${a(w)?"to right":"to left"}, ${Jm} ${uu}, transparent ${uu})`,w.style.opacity="0",w.style.transition="opacity 0.16s ease",w.style.userSelect="none",w.style.webkitUserSelect="none";const s=w=>{w.style.opacity="1"},i=w=>{w.style.opacity="0"},r=()=>n.find(w=>!a(w))||null,l=new Set;let c=!1,u=null;const f=()=>{for(const w of n)l.has(w)||i(w)},b=()=>{const w=r();w&&(s(w),u&&clearTimeout(u),u=setTimeout(f,250))},v=()=>b(),k=w=>{if(!(w.touches&&w.touches.length===1))return;const $=w.target;$&&$.classList&&$.classList.contains("map-scroll-edge")||b()},A=()=>{u&&clearTimeout(u),f()};e.addEventListener("wheel",v,{passive:!0}),e.addEventListener("touchmove",k,{passive:!0}),e.addEventListener("touchend",A,{passive:!0}),e.addEventListener("touchcancel",A,{passive:!0});const x=()=>{c||b()};typeof window<"u"&&window.addEventListener("scroll",x,{passive:!0});const P=[];for(const w of n){const $=()=>{l.add(w),s(w)},_=()=>{l.delete(w),i(w)},S=()=>{c=!0,s(w)},E=()=>{c=!1,i(w)};w.addEventListener("mouseenter",$),w.addEventListener("mouseleave",_),w.addEventListener("touchstart",S,{passive:!0}),w.addEventListener("touchend",E,{passive:!0}),P.push(()=>{w.removeEventListener("mouseenter",$),w.removeEventListener("mouseleave",_),w.removeEventListener("touchstart",S),w.removeEventListener("touchend",E)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",v),e.removeEventListener("touchmove",k),e.removeEventListener("touchend",A),e.removeEventListener("touchcancel",A),typeof window<"u"&&window.removeEventListener("scroll",x);for(const $ of P)$();for(const $ of n)i($)}}const Zm=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function Qm(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=Zm[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}function eb(e,t){if(!e||!Array.isArray(t))return[];const o=[];for(const n of t)if(!(!n||!n.layer||!n.prop))try{if(!e.getLayer(n.layer))continue;e.setPaintProperty(n.layer,n.prop,n.value),o.push(n.layer+"."+n.prop)}catch{}return o}const tb=["mapbox","maplibre"],ob="auto";function pu(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function gu(e,{token:t}={}){const o=pu(e);return fu(o)||"maplibre"}function fu(e){const t=pu(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,s=String(o||n||a||ob).toLowerCase().trim();return tb.includes(s)?s:""}function nb(e,t){if(!e||!t||typeof e.setProjection!="function")return!1;const o=typeof window<"u"?window.maplibregl:null,n=!!(o&&o.Map&&e instanceof o.Map);try{return e.setProjection(n?{type:t}:t),!0}catch{return!1}}const Tn={mapboxGlJs:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",integrity:"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ"},mapboxGlCss:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css",integrity:"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV"},maplibreGlJs:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js",integrity:"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp"},maplibreGlCss:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css",integrity:"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK"},mapboxGeocoderJs:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js",integrity:"sha384-Lx9WK8XhZk57czwxt6B6nyaDHB5Ayrcrsu4Fw4bCp/Ot/QLOsUZ0xYqLOpOOSXZw"},mapboxGeocoderCss:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css",integrity:"sha384-1KNhwJNCQTr0DCi/5/OnQcFytgycxTahxNZaqKbAtqmY8bUhu26qxXqvDGXXwplS"},maplibreGeocoderJs:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.min.js",integrity:"sha384-RGV5vfoJd7alk8HE+71IyVfu19ciH1FKA15+AuXs6OeBM2npXrmTPFqG23yMiHXi"},maplibreGeocoderCss:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.css",integrity:"sha384-UkDpPApjTpHJHpcJiSNAmbobh30W0/dmt0DoKm4V8CWYRYvQ/Jhd/ijFz0tFdVnH"},d3:{url:"https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js",integrity:"sha384-CjloA8y00+1SDAUkjs099PVfnY2KmDC2BZnws9kh8D/lX1s46w6EPhpXdqMfjK6i"}};function ei(e,t){const o=Object.values(Tn).find(n=>n.url===t);return o&&(e.integrity=o.integrity,e.crossOrigin="anonymous"),e}const hu={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",maplibre:"https://cdn.jsdelivr.net/npm/@mapbox/mapbox-gl-rtl-text@0.3.0/dist/mapbox-gl-rtl-text.js"};function ab(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function sb(e){if(typeof window>"u")return!1;const t=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let o=!1;for(const n of t)if(!(!n||!n.setRTLTextPlugin))try{if(ab(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(hu.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(hu.mapbox,null,!0);o=!0}catch{}return o}const ib=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,mu=new WeakMap;function rb(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function bu(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!rb(e))return typeof e.setLanguage=="function"&&e.setLanguage(o),0;const n=e.getStyle&&e.getStyle();if(!n||!Array.isArray(n.layers))return 0;let a=mu.get(e);a||(a=new Map,mu.set(e,a));let s=0;for(const i of n.layers){if(i.type!=="symbol"||!i.layout||i.layout["text-field"]==null)continue;const r=i.layout["text-field"],l=JSON.stringify(r);if(l.startsWith('["coalesce",["get","name:')){if(!a.has(i.id))continue}else{if(!ib.test(l))continue;a.set(i.id,r)}const c=["coalesce",["get","name:"+o],["get","name_"+o],["get","name:latin"],["get","name_en"],["get","name"]];e.setLayoutProperty(i.id,"text-field",c),s++}return s}catch{return 0}}const Ko={mapbox:{global:"mapboxgl",js:Tn.mapboxGlJs.url,css:Tn.mapboxGlCss.url},maplibre:{global:"maplibregl",js:Tn.maplibreGlJs.url,css:Tn.maplibreGlCss.url}},lb={"Map.Title":"map","Marker.Title":"marker","Popup.Close":"closePopup","NavigationControl.ZoomIn":"zoomIn","NavigationControl.ZoomOut":"zoomOut","NavigationControl.ResetBearing":"resetBearing","AttributionControl.ToggleAttribution":"toggleAttribution","AttributionControl.MapFeedback":"mapFeedback","FullscreenControl.Enter":"enterFullscreen","FullscreenControl.Exit":"exitFullscreen","GeolocateControl.FindMyLocation":"findMyLocation","GeolocateControl.LocationNotAvailable":"locationNotAvailable","GlobeControl.Enable":"enableGlobe","GlobeControl.Disable":"disableGlobe","CooperativeGesturesHandler.WindowsHelpText":"ctrlScroll","CooperativeGesturesHandler.MacHelpText":"cmdScroll","CooperativeGesturesHandler.MobileHelpText":"twoFingers","ScrollZoomBlocker.CtrlMessage":"ctrlScroll","ScrollZoomBlocker.CmdMessage":"cmdScroll","TouchPanBlocker.Message":"twoFingers"};function _u(e,t){const o={};for(const[a,s]of Object.entries(lb)){const i=qt(`mapui.${s}`,e);i&&(o[a]=i)}const n=qt(t==="maplibre"?"mapui.maplibreLogo":"mapui.mapboxHomepage",e);return n&&(o["LogoControl.Title"]=n),o}function $u(e){if(typeof window>"u")return;const t=window,o=()=>{try{const n=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");n&&(n.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",o),o();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const cb=Ko.mapbox.css,ub="https://tiles.openfreemap.org/styles/liberty",db="https://tiles.openfreemap.org/styles/fiord";function Ea(e){var o;const t=((o=Ko[e])==null?void 0:o.global)||Ko.mapbox.global;return typeof window<"u"?window[t]:void 0}async function yu(e){const t=Ko[e]||Ko.mapbox;if(Ea(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,ei(n,t.css),document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(Ea(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const s=document.createElement("script");s.src=t.js,ei(s,t.js),s.async=!1,s.addEventListener("load",n,{once:!0}),s.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(s)})}async function pb(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=i=>new Promise(r=>setTimeout(r,i)),a=o.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(i=>{a.addEventListener("load",i,{once:!0}),a.addEventListener("error",i,{once:!0})}),n(2e3)]);return}const s=document.createElement("link");s.rel="stylesheet",s.href=t,ei(s,t),await Promise.race([new Promise(i=>{s.addEventListener("load",i,{once:!0}),s.addEventListener("error",i,{once:!0}),o.prepend(s)}),n(2e3)])}function gb(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?db:ub}const fb=85.0511,ti=-2,hb=0,mb=-60;function Au(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function bb(e,t,o,n){if(!e||e<=0||!t||t<=0)return hb;const a=Math.log2(e/512),s=Au(n)-Au(fb),i=Math.log2(t/(512*s)),r=Math.max(a,i);return Math.max(ti,Math.min(r,(o??18)-1))}function _b({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a=void 0,center:s=[20,10],zoom:i=2,bounds:r=void 0,fitBoundsOptions:l=void 0,minZoom:c=void 0,skipWorldFloor:u=!1,maxZoom:f=18,pitch:b=0,bearing:v=0,renderWorldCopies:k=!0,showEdgeBorders:A=!0,southCutoff:x=mb,maxBounds:P=void 0}){const w=Vn(null),$=oe(!1);let _=null,S=null,E=null,T=null;try{T=De("profileConfig",null)}catch{}const I=!a&&!fu(T);a=a||gu(T,{token:t});let y=a==="maplibre";typeof document<"u"&&yu(a).catch(()=>{});let U=null;try{U=De("lang",null)}catch{}const G=()=>{const Z=U&&typeof U=="object"&&"value"in U?U.value:U;if(typeof Z=="string"&&Z)return Z;const j=T&&typeof T=="object"&&"value"in T?T.value:T;if(j&&(j.locale||j.lang))return String(j.locale||j.lang);try{const J=new URLSearchParams(location.search);return J.get("lang")||J.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function M(){var Ue;if(I&&!y&&!t&&typeof window<"u"&&window.__doxaMapTokenPending){if(await window.__doxaMapTokenPending,!e.value)return;typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN||(a="maplibre",y=!0)}const Z=Qm(o,a),j=Z.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const J=()=>!e.value;if(await yu(a),J())return;const z=Ea(a);if(!z){console.error(`[useMapInstance] ${y?"maplibregl":"mapboxgl"} is not available. Add the ${y?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(sb(z),!y){if(!t&&typeof window<"u"&&window.__doxaMapTokenPending&&(await window.__doxaMapTokenPending,J()))return;if(!t&&typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN&&(t=window.MAP_TOKEN),!t){typeof window<"u"&&!window.__doxaNoTokenWarned&&(window.__doxaNoTokenWarned=!0,console.warn('No Mapbox access token provided. Pass "tk" in profile-config JSON or set window.MAP_TOKEN.'));return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}if(await pb(e.value,y?Ko.maplibre.css:cb),J()||(await new Promise(pe=>requestAnimationFrame(pe)),J()))return;const H=e.value,Q=H.clientWidth,re=H.clientHeight;if(Q===0||re===0){console.error(`[useMapInstance] Container has ZERO dimensions (${Q}×${re}). Map will be invisible. Check that parent elements have CSS sizing.`);let pe=H.parentElement,le=0;for(;pe&&le<5;)pe=pe.parentElement,le++}const de=t;y||(z.accessToken=de);const me=()=>typeof window<"u"&&window.innerWidth>=1024,Ne=(pe,le)=>{if(u)return typeof c=="number"?c:ti;if(!me())return ti;const V=bb(pe,le,f,x);return typeof c=="number"?Math.max(c,V):V},ke=Ne(H.clientWidth,H.clientHeight),Ve=Z.lightPreset||(()=>{var pe;try{const le=typeof n=="function"?n():n;return(pe=le==null?void 0:le.basemap)==null?void 0:pe.lightPreset}catch{return}})();if(y){w.value=new z.Map({container:e.value,style:gb(j,Ve),locale:_u(G(),"maplibre"),center:s,zoom:i,minZoom:ke,maxZoom:f,pitch:b,bearing:v,dragRotate:!1,renderWorldCopies:k,...r?{bounds:r,...l?{fitBoundsOptions:l}:{}}:{},...P?{maxBounds:P}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),$u(w.value);try{e.value.__doxaMap=w.value}catch{}}else{const pe=typeof n=="function"?n():n;w.value=new z.Map({accessToken:de,container:e.value,style:j,locale:_u(G(),"mapbox"),...pe?{config:pe}:{},center:s,zoom:i,minZoom:ke,maxZoom:f,pitch:b,bearing:v,dragRotate:!1,touchPitch:!1,renderWorldCopies:k,...r?{bounds:r,...l?{fitBoundsOptions:l}:{}}:{},...P?{maxBounds:P}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),$u(w.value);try{e.value.__doxaMap=w.value}catch{}}try{let pe=!1;w.value.on("error",le=>{var h,m;const V=((h=le==null?void 0:le.error)==null?void 0:h.status)??(le==null?void 0:le.status),p=String(((m=le==null?void 0:le.error)==null?void 0:m.url)||(le==null?void 0:le.sourceId)||"");V!==401&&V!==403||pe||(pe=!0,console.error(`[doxa-maps] Mapbox returned ${V} for a TILE request while the style loaded fine. That is a URL RESTRICTION on the access token, not a bad token and not a bug in this map. Add this page's origin (${typeof location<"u"?location.origin:"this origin"}) to the token's URL restrictions in the Mapbox account. The map will keep its data layer and stay blank underneath until then.`+(p?` First failing request: ${p.slice(0,120)}`:"")))})}catch{}try{w.value.touchZoomRotate.disableRotation()}catch{}E=Xm(((Ue=e.value)==null?void 0:Ue.parentElement)||null,{enabled:A});let xe=ke,$e=null;_=()=>{const pe=w.value;if(!pe)return;const le=Ne(H.clientWidth,H.clientHeight);le!==xe&&(xe=le,pe.setMinZoom(le)),pe.getZoom(){$e=null;const V=w.value;if(!V)return;const p=Ne(H.clientWidth,H.clientHeight);if(V.getZoom(){$e&&(clearTimeout($e),$e=null)},w.value.on("resize",_),typeof window<"u"&&(window.addEventListener("resize",_),window.addEventListener("orientationchange",_)),w.value.on("style.load",()=>{if(w.value&&bu(w.value,G()),Z.paint&&w.value){const pe=eb(w.value,Z.paint);console.info("[useMapInstance] style paint applied ("+a+"):",pe.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var pe;(pe=w.value)==null||pe.resize(),w.value&&w.value.setMinZoom(Ne(H.clientWidth,H.clientHeight)),$.value=!0})})}function q(){if(w.value){if(_&&(w.value.off("resize",_),typeof window<"u"&&(window.removeEventListener("resize",_),window.removeEventListener("orientationchange",_)),_=null),S){try{S()}catch{}S=null}E&&(E(),E=null);try{const j=typeof window<"u"?window:null;j&&j.__doxaLogoOwner===w.value&&(j.__doxaLogoOwner=null)}catch{}const Z=w.value;w.value.remove();try{e&&e.value&&e.value.__doxaMap===Z&&(e.value.__doxaMap=null)}catch{}w.value=null,$.value=!1}}if(U&&typeof U=="object"&&"value"in U)try{lt(U,()=>{w.value&&$.value&&bu(w.value,G())})}catch{}return{map:w,isMapReady:$,initializeMap:M,destroy:q}}const wu="doxa-prayed-local",$b=7*24*60*60*1e3;function yb(){try{const e=localStorage.getItem(wu);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function Ab(e){try{localStorage.setItem(wu,JSON.stringify(e))}catch{}}function wb(){const e=Date.now(),t=yb();let o=!1;for(const[n,a]of Object.entries(t))(typeof a!="number"||e-a>$b)&&(delete t[n],o=!0);return o&&Ab(t),new Set(Object.keys(t))}function kb(e){const t=wb();return!t.size||!Array.isArray(e)?e:e.map(o=>(Number(o&&o.peoplePraying)||0)>0||!o||!t.has(o.slug)?o:{...o,peoplePraying:1})}const ro={Chamacoco:"Zamucoan",Ninam:"Yanomaman",Yagua:"Yaguan",Muinane:"Witotoan",Finnish:"Uralic","Hill Mari":"Uralic",Mansi:"Uralic","Meadow Mari":"Uralic","North Saami":"Uralic",Carabayo:"Unclassified",Kujarge:"Unclassified",Shabo:"Unclassified",Ainu:"Turkic",Kazakh:"Turkic","Khorasani Turkish":"Turkic",Kyrgyz:"Turkic","Northern Uzbek":"Turkic","South Azerbaijani":"Turkic",Turkish:"Turkic",Tuvan:"Turkic",Uyghur:"Turkic",Amundava:"Tupian",Araweté:"Tupian","Asurini of Xingú":"Tupian","Avá-Canoeiro":"Tupian",Awetí:"Tupian",Kamayurá:"Tupian",Karo:"Tupian",Morerebi:"Tupian",Tenharim:"Tupian","Uru-Eu-Wau-Wau":"Tupian","Uru-Pa-In":"Tupian",Wayampi:"Tupian","Zo’é":"Tupian",Evenki:"Tungusic",Xibe:"Tungusic",Carapana:"Tucanoan",Cubeo:"Tucanoan",Desano:"Tucanoan",Macuna:"Tucanoan",Piratapuyo:"Tucanoan",Siona:"Tucanoan",Siriano:"Tucanoan",Tucano:"Tucanoan",Tuyuca:"Tucanoan",Waimaha:"Tucanoan",Tay:"Trans-New Guinea",Adi:"Sino-Tibetan",Akha:"Sino-Tibetan","Amdo Tibetan":"Sino-Tibetan",Axi:"Sino-Tibetan",Biyo:"Sino-Tibetan","Boro (India)":"Sino-Tibetan",Brokkat:"Sino-Tibetan",Bugun:"Sino-Tibetan",Byangsi:"Sino-Tibetan","Central Lalo":"Sino-Tibetan","Central Tibetan":"Sino-Tibetan",Chak:"Sino-Tibetan",Chalikha:"Sino-Tibetan",Chaudangsi:"Sino-Tibetan",Chocangacakha:"Sino-Tibetan",Darlong:"Sino-Tibetan",Dhimal:"Sino-Tibetan","Digaro-Mishmi":"Sino-Tibetan",Dzalakha:"Sino-Tibetan","Eastern Nisu":"Sino-Tibetan",Ersu:"Sino-Tibetan",Gahri:"Sino-Tibetan",Gongduk:"Sino-Tibetan",Gyalsumdo:"Sino-Tibetan",Hani:"Sino-Tibetan","Idu-Mishmi":"Sino-Tibetan",Kaike:"Sino-Tibetan",Kanashi:"Sino-Tibetan",Katso:"Sino-Tibetan",Khamba:"Sino-Tibetan",Koireng:"Sino-Tibetan",Kucong:"Sino-Tibetan",Kurtokha:"Sino-Tibetan",Ladakhi:"Sino-Tibetan",Lakha:"Sino-Tibetan","Lang’e":"Sino-Tibetan",Lhokpu:"Sino-Tibetan",Lolopo:"Sino-Tibetan",Lunanakha:"Sino-Tibetan","Mandarin Chinese":"Sino-Tibetan",Meitei:"Sino-Tibetan","Miju-Mishmi":"Sino-Tibetan",Mpi:"Sino-Tibetan",Na:"Sino-Tibetan",Namuyi:"Sino-Tibetan",Narua:"Sino-Tibetan",Naxi:"Sino-Tibetan","Northern Muji":"Sino-Tibetan",Nuosu:"Sino-Tibetan",Nupbikha:"Sino-Tibetan",Nyenkha:"Sino-Tibetan",Olekha:"Sino-Tibetan",Pahari:"Sino-Tibetan",Pattani:"Sino-Tibetan","Phana’":"Sino-Tibetan",Phula:"Sino-Tibetan",Phunoi:"Sino-Tibetan",Puma:"Sino-Tibetan",Puroik:"Sino-Tibetan",Raji:"Sino-Tibetan",Rawat:"Sino-Tibetan",Sani:"Sino-Tibetan",Sherdukpen:"Sino-Tibetan",Sherpa:"Sino-Tibetan",Shuhi:"Sino-Tibetan",Sila:"Sino-Tibetan",Singpho:"Sino-Tibetan",Sunwar:"Sino-Tibetan","Tawang Monpa":"Sino-Tibetan",Tseku:"Sino-Tibetan",Tshangla:"Sino-Tibetan",Usoi:"Sino-Tibetan","Western Minyag":"Sino-Tibetan","Wusa Nasu":"Sino-Tibetan","Xiang Chinese":"Sino-Tibetan",Yakkha:"Sino-Tibetan","Youle Jinuo":"Sino-Tibetan","Yue Chinese":"Sino-Tibetan",Zakhring:"Sino-Tibetan","Afghan Sign Language":"Sign Language","Albanian Sign Language":"Sign Language","Algerian Sign Language":"Sign Language","American Sign Language":"Sign Language","Armenian Sign Language":"Sign Language","British Sign Language":"Sign Language","Bulgarian Sign Language":"Sign Language","Cambodian Sign Language":"Sign language","Cuban Sign Language":"Sign Language","Egyptian Sign Language":"Sign Language","Greek Sign Language":"Sign Language","Guinean Sign Language":"Sign Language","Hong Kong Sign Language":"Sign Language","Icelandic Sign Language":"Sign Language","Iranian Sign Language":"Sign Language","Israeli Sign Language":"Sign Language","Jamaican Sign Language":"Sign Language","Jordanian Sign Language":"Sign Language","Laos Sign Language":"Sign Language","Libyan Sign Language":"Sign Language","Maltese Sign Language":"Sign Language","Mauritian Sign Language":"Sign Language","Moroccan Sign Language":"Sign Language","Mozambican Sign Language":"Sign Language","Myanmar Sign Language":"Sign language","Natural Sign Language":"Sign Language","Pakistan Sign Language":"Sign Language","Papua New Guinean Sign Language":"Sign language","Russian Sign Language":"Sign Language","Saudi Arabian Sign Language":"Sign Language","Sign Language of the Netherlands":"Sign Language","Solomon Islands Sign Language":"Sign Language","Sri Lankan Sign Language":"Sign Language","Swedish Sign Language":"Sign Language","Turkish Sign Language":"Sign Language","Northern Conchucos Ancash Quechua":"Quechuan","Northern Pastaza Quichua":"Quechuan",Hupdë:"Puinavean",Amahuaca:"Panoan",Korubo:"Panoan",Sharanahua:"Panoan","Shipibo-Conibo":"Panoan",Yaminahua:"Panoan",Yawanawa:"Panoan",Afitti:"Nilo-Saharan",Assangori:"Nilo-Saharan","Beli (South Sudan)":"Nilo-Saharan",Berta:"Nilo-Saharan",Burun:"Nilo-Saharan","Dar Daju Daju":"Nilo-Saharan","Dar Fur Daju":"Nilo-Saharan","Dar Sila Daju":"Nilo-Saharan",Dazaga:"Nilo-Saharan","Dendi (Benin)":"Nilo-Saharan",Dilling:"Nilo-Saharan",Fur:"Nilo-Saharan",Gbaya:"Nilo-Saharan",Ghulfan:"Nilo-Saharan",Gwama:"Nilo-Saharan","Humburi Senni Songhay":"Nilo-Saharan",Jopadhola:"Nilo-Saharan",Kadaru:"Nilo-Saharan",Kanga:"Nilo-Saharan",Karanga:"Nilo-Saharan",Karko:"Nilo-Saharan",Kebu:"Nilo-Saharan",Keiga:"Nilo-Saharan",Keliko:"Nilo-Saharan",Kendeje:"Nilo-Saharan",Kibet:"Nilo-Saharan","Komo (Sudan)":"Nilo-Saharan",Korandje:"Nilo-Saharan",Kulfa:"Nilo-Saharan",Kwegu:"Nilo-Saharan",Laarim:"Nilo-Saharan",Logorik:"Nilo-Saharan",Majang:"Nilo-Saharan","Manga Kanuri":"Nilo-Saharan",Mango:"Nilo-Saharan",Mararit:"Nilo-Saharan",Marfa:"Nilo-Saharan",Midob:"Nilo-Saharan","Mo’da":"Nilo-Saharan",Morom:"Nilo-Saharan",Moru:"Nilo-Saharan",Naba:"Nilo-Saharan",Nara:"Nilo-Saharan",Njalgulgule:"Nilo-Saharan",Nuer:"Nilo-Saharan","Nyamusa-Molo":"Nilo-Saharan",Nyangatom:"Nilo-Saharan","Olu’bo":"Nilo-Saharan",Opo:"Nilo-Saharan",Päri:"Nilo-Saharan","Sara Kaba Naa":"Nilo-Saharan",Surbakhal:"Nilo-Saharan",Tadaksahak:"Nilo-Saharan","Tama (Chad)":"Nilo-Saharan",Temein:"Nilo-Saharan",Thuri:"Nilo-Saharan","Tirmaga-Chai Suri":"Nilo-Saharan",Toposa:"Nilo-Saharan",Tumtum:"Nilo-Saharan","Wali (Sudan)":"Nilo-Saharan","Yerwa Kanuri":"Nilo-Saharan",Yulu:"Nilo-Saharan",Zaghawa:"Nilo-Saharan","Adamawa Fulfulde":"Niger-Congo",Akaselem:"Niger-Congo","Amba (Uganda)":"Niger-Congo",Anii:"Niger-Congo",Baangi:"Niger-Congo",Badyara:"Niger-Congo","Bago-Kusuntu":"Niger-Congo",Bai:"Niger-Congo","Bainouk-Gunyaamolo":"Niger-Congo",Bamanankan:"Niger-Congo","Banda-Mbrès":"Niger-Congo",Bandial:"Niger-Congo",Bankagooma:"Niger-Congo","Belanda Viri":"Niger-Congo",Bemba:"Niger-Congo",Bolgo:"Niger-Congo","Bon Gula":"Niger-Congo",Bua:"Niger-Congo",Chichewa:"Niger-Congo","Chung (Cameroon)":"Niger-Congo","Ci Gbe":"Niger-Congo",Degema:"Niger-Congo",Dek:"Niger-Congo",Dhimba:"Niger-Congo",Dogoso:"Niger-Congo","East Limba":"Niger-Congo",Engenni:"Niger-Congo",Epie:"Niger-Congo",Éwé:"Niger-Congo",Fania:"Niger-Congo",Foodo:"Niger-Congo",Fwe:"Niger-Congo",Gciriku:"Niger-Congo",Gwa:"Niger-Congo",Herero:"Niger-Congo",Ibuoro:"Niger-Congo","Jenaama Bozo":"Niger-Congo",Jita:"Niger-Congo",Jula:"Niger-Congo",Kabiyè:"Niger-Congo",Kadung:"Niger-Congo",Kakabe:"Niger-Congo",Kalamsé:"Niger-Congo","Kami (Tanzania)":"Niger-Congo","Kango (Bas-Uélé District)":"Niger-Congo",Kasem:"Niger-Congo","Kelengaxo Bozo":"Niger-Congo",Khe:"Niger-Congo",Khisa:"Niger-Congo",Kim:"Niger-Congo",Kinyarwanda:"Niger-Congo",Kipfokomu:"Niger-Congo",Kitharaka:"Niger-Congo",Kiyombe:"Niger-Congo",Ko:"Niger-Congo",Koalib:"Niger-Congo",Koke:"Niger-Congo",Konongo:"Niger-Congo","Koro Nulu":"Niger-Congo","Koro Zuba":"Niger-Congo",Kuhane:"Niger-Congo",Kunda:"Niger-Congo",Kuranko:"Niger-Congo",Kuria:"Niger-Congo",Kwangali:"Niger-Congo",Lame:"Niger-Congo",Laru:"Niger-Congo",Lopa:"Niger-Congo","Makhuwa-Meetto":"Niger-Congo","Makhuwa-Shirima":"Niger-Congo","Malawi Nyiha":"Niger-Congo",Mandinka:"Niger-Congo",Mankanya:"Niger-Congo",Mansoanka:"Niger-Congo",Mbukushu:"Niger-Congo","Mende (Sierra Leone)":"Niger-Congo",Miyobe:"Niger-Congo",Mushungulu:"Niger-Congo","Mwali Comorian":"Niger-Congo","Mwera (Chimwera)":"Niger-Congo",Ndemli:"Niger-Congo",Ndengereko:"Niger-Congo",Ndumu:"Niger-Congo",Ndunga:"Niger-Congo","Ndzwani Comorian":"Niger-Congo",Ngile:"Niger-Congo","Northwest Gbaya":"Niger-Congo",Notre:"Niger-Congo",Nyamwanga:"Niger-Congo",Nyankore:"Niger-Congo",Nyengo:"Niger-Congo",Okpamheri:"Niger-Congo",Osatu:"Niger-Congo","Pana (Burkina Faso)":"Niger-Congo",Pulaar:"Niger-Congo",Pular:"Niger-Congo",Rufiji:"Niger-Congo","Sankaran Maninka":"Niger-Congo",Sapo:"Niger-Congo","Senara Sénoufo":"Niger-Congo",Shanga:"Niger-Congo",Sininkere:"Niger-Congo","Southern Ngbandi":"Niger-Congo",Swahili:"Niger-Congo","Syenara Sénoufo":"Niger-Congo",Tagbu:"Niger-Congo",Tagoi:"Niger-Congo",Tegali:"Niger-Congo",Tem:"Niger-Congo","Tiéyaxo Bozo":"Niger-Congo",Tiyaa:"Niger-Congo",Tocho:"Niger-Congo","Tonga (Zambia)":"Niger-Congo",Totela:"Niger-Congo","Toura (Côte d’Ivoire)":"Niger-Congo",Tswa:"Niger-Congo",Tumbuka:"Niger-Congo",Ukaan:"Niger-Congo",Uneme:"Niger-Congo",Vai:"Niger-Congo",Vute:"Niger-Congo",Waama:"Niger-Congo",Warnang:"Niger-Congo",Wolof:"Niger-Congo",Yao:"Niger-Congo",Yauma:"Niger-Congo",Yom:"Niger-Congo","Zan Gula":"Niger-Congo",Zande:"Niger-Congo",Zigula:"Niger-Congo",Mamaindê:"Nambikwara",Aghul:"Nakh-Daghestanian",Akhvakh:"Nakh-Daghestanian",Andi:"Nakh-Daghestanian",Avar:"Nakh-Daghestanian",Bagvalal:"Nakh-Daghestanian",Botlikh:"Nakh-Daghestanian",Chamalal:"Nakh-Daghestanian",Chechen:"Nakh-Daghestanian",Dargwa:"Nakh-Daghestanian",Kaitag:"Nakh-Daghestanian",Karata:"Nakh-Daghestanian",Khvarshi:"Nakh-Daghestanian",Tindi:"Nakh-Daghestanian",Pirahã:"Muran",Bonan:"Mongolic","China Buriat":"Mongolic",Daur:"Mongolic","Kalmyk-Oirat":"Mongolic","Peripheral Mongolian":"Mongolic","Russia Buriat":"Mongolic",Tagdal:"Mixed language",Wutunhua:"Mixed language","Ashéninka Perené":"Maipurean",Baniwa:"Maipurean",Cabiyarí:"Maipurean",Curripaco:"Maipurean","Enawené-Nawé":"Maipurean",Kanamarí:"Maipurean",Mehináku:"Maipurean","Pichis Ashéninka":"Maipurean",Waurá:"Maipurean",Bangime:"Language isolate",Burushaski:"Language isolate","Ai-Cham":"Kra-Dai",Aiton:"Kra-Dai","Dai Zhuang":"Kra-Dai",Duoluo:"Kra-Dai","Green Gelao":"Kra-Dai","Guibian Zhuang":"Kra-Dai",Hlai:"Kra-Dai",Jiamao:"Kra-Dai",Kang:"Kra-Dai",Khün:"Kra-Dai",Kuan:"Kra-Dai",Lachi:"Kra-Dai","Laha (Viet Nam)":"Kra-Dai",Lao:"Kra-Dai",Lü:"Kra-Dai","Mak (China)":"Kra-Dai","Northeastern Thai":"Kra-Dai","Northern Dong":"Kra-Dai","Northern Thai":"Kra-Dai",Nyaw:"Kra-Dai",Phake:"Kra-Dai","Phu Thai":"Kra-Dai",Qabiao:"Kra-Dai",Qau:"Kra-Dai","Qiubei Zhuang":"Kra-Dai",Shan:"Kra-Dai","Southern Dong":"Kra-Dai",Sui:"Kra-Dai","T’en":"Kra-Dai","Tai Daeng":"Kra-Dai","Tai Dam":"Kra-Dai","Tai Hongjin":"Kra-Dai","Tai Nüa":"Kra-Dai","Tai Ya":"Kra-Dai","Tai Yo":"Kra-Dai","Ts’ün-Lao":"Kra-Dai","Yang Zhuang":"Kra-Dai",Yerong:"Kra-Dai",Yong:"Kra-Dai",Yoy:"Kra-Dai",Khoekhoe:"Khoe-Kwadi",Karajá:"Karajá","Pará Gavião":"Jean",Suyá:"Jean",Japanese:"Japonic","Oki-No-Erabu":"Japonic","Toku-No-Shima":"Japonic",Yaeyama:"Japonic",Yoron:"Japonic","Adivasi Oriya":"Indo-European",Afrikaans:"Indo-European","Alviri-Vidari":"Indo-European",Angika:"Indo-European",Assamese:"Indo-European",Bagheli:"Indo-European",Bagri:"Indo-European",Bashkardi:"Indo-European",Bateri:"Indo-European",Bengali:"Indo-European",Bhojpuri:"Indo-European",Bhunjia:"Indo-European",Bilaspuri:"Indo-European",Bosnian:"Indo-European","Braj Bhasha":"Indo-European",Brokskat:"Indo-European",Bundeli:"Indo-European",Catalan:"Indo-European",Chambeali:"Indo-European",Chhattisgarhi:"Indo-European",Dameli:"Indo-European",Dari:"Indo-European",Dhundari:"Indo-European",Dogri:"Indo-European",Domari:"Indo-European",Dutch:"Indo-European","Eastern Balochi":"Indo-European","Eastern Panjabi":"Indo-European","Eastern Yiddish":"Indo-European",English:"Indo-European",French:"Indo-European",Gaddi:"Indo-European",Garhwali:"Indo-European",Gawri:"Indo-European",Gowro:"Indo-European",Gujarati:"Indo-European",Gujari:"Indo-European",Halbi:"Indo-European",Haroti:"Indo-European",Haryanvi:"Indo-European",Hindi:"Indo-European","Indus Kohistani":"Indo-European","Iranian Persian":"Indo-European",Ishkashimi:"Indo-European",Kacchi:"Indo-European",Kalkoti:"Indo-European",Kanauji:"Indo-European",Kangri:"Indo-European",Karingani:"Indo-European",Kashmiri:"Indo-European",Kati:"Indo-European",Khunsari:"Indo-European",Konkani:"Indo-European",Kudmali:"Indo-European",Kumaoni:"Indo-European",Kumzari:"Indo-European",Laki:"Indo-European",Lasi:"Indo-European",Luwati:"Indo-European",Magahi:"Indo-European",Maithili:"Indo-European",Maldivian:"Indo-European",Malvi:"Indo-European",Marathi:"Indo-European","Marwari (India)":"Indo-European",Mewari:"Indo-European",Munji:"Indo-European",Nepali:"Indo-European",Nimadi:"Indo-European","Northern Kurdish":"Indo-European",Odia:"Indo-European","Pahari-Potwari":"Indo-European",Palula:"Indo-European",Panchpargania:"Indo-European",Pangwali:"Indo-European",Parachi:"Indo-European",Portuguese:"Indo-European",Russian:"Indo-European",Sadri:"Indo-European",Sanglechi:"Indo-European",Sarikoli:"Indo-European",Savi:"Indo-European",Semnani:"Indo-European",Serbian:"Indo-European",Shabak:"Indo-European",Shahrudi:"Indo-European",Shekhawati:"Indo-European",Shina:"Indo-European",Shughni:"Indo-European",Shumashti:"Indo-European",Sindhi:"Indo-European",Sivandi:"Indo-European",Soi:"Indo-European","Southern Balochi":"Indo-European",Spanish:"Indo-European",Tajik:"Indo-European",Talysh:"Indo-European",Urdu:"Indo-European",Ushojo:"Indo-European",Vaghri:"Indo-European","Vlax Romani":"Indo-European",Wagdi:"Indo-European",Wakhi:"Indo-European",Waneci:"Indo-European","Western Balochi":"Indo-European",Yadgha:"Indo-European","Bu-Nao Bunu":"Hmong-Mien","Central Mashan Miao":"Hmong-Mien","Chuanqiandian Cluster Miao":"Hmong-Mien","Eastern Xiangxi Miao":"Hmong-Mien","Iu Mien":"Hmong-Mien","Luopohe Miao":"Hmong-Mien","Northern Qiandong Miao":"Hmong-Mien","Pa-Hng":"Hmong-Mien","Southwestern Huishui Miao":"Hmong-Mien","Wunai Bunu":"Hmong-Mien","Younuo Bunu":"Hmong-Mien",Amarakaeri:"Harákmbut",Huachipaeri:"Harákmbut",Cuiba:"Guajiboan",Macaguán:"Guajiboan",Tlicho:"Eyak-Athabaskan",Kannada:"Dravidian",Kodava:"Dravidian","Korra Koraga":"Dravidian","Kota (India)":"Dravidian",Kudiya:"Dravidian",Malapandaram:"Dravidian",Malayalam:"Dravidian",Muthuvan:"Dravidian",Ravula:"Dravidian",Sholaga:"Dravidian",Tamil:"Dravidian",Telugu:"Dravidian",Tulu:"Dravidian",Vishavan:"Dravidian","Andaman Hindi Creole":"Creole","Cocos Islands Malay":"Creole","Juba Arabic":"Creole",Nubi:"Creole",Barí:"Chibchan","Barro Negro Tunebo":"Chibchan","Western Tunebo":"Chibchan",Ikpeng:"Cariban","Kuikúro-Kalapálo":"Cariban",Pemon:"Cariban",Trió:"Cariban","Waimiri-Atroarí":"Cariban",Waiwai:"Cariban",Yukpa:"Cariban",Borôro:"Bororoan",Chachi:"Barbacoan","Abai Sungai":"Austronesian",Ambelau:"Austronesian",Asilulu:"Austronesian",Balaesang:"Austronesian","Batak Alas-Kluet":"Austronesian","Batak Dairi":"Austronesian","Batak Karo":"Austronesian",Bonerate:"Austronesian",Bonggi:"Austronesian",Brunei:"Austronesian","Brunei Bisaya":"Austronesian",Buol:"Austronesian","Central Malay":"Austronesian","Central Sama":"Austronesian","Coastal Konjo":"Austronesian",Dampelas:"Austronesian","Dibabawon Manobo":"Austronesian",Dondo:"Austronesian",Gane:"Austronesian","Geser-Gorom":"Austronesian","Highland Konjo":"Austronesian",Hitu:"Austronesian",Iban:"Austronesian",Indonesian:"Austronesian","Kadazan Dusun":"Austronesian",Kiput:"Austronesian",Komodo:"Austronesian",Kompane:"Austronesian",Lahanan:"Austronesian","Lampung Nyo":"Austronesian","Larike-Wakasihu":"Austronesian",Lola:"Austronesian",Luhu:"Austronesian",Malay:"Austronesian",Mariri:"Austronesian",Moronene:"Austronesian",Rukai:"Austronesian","Sabah Bisaya":"Austronesian","Seit-Kaitetu":"Austronesian",Sula:"Austronesian","Tae’":"Austronesian",Tajio:"Austronesian",Tomini:"Austronesian",Tutong:"Austronesian",Ujir:"Austronesian",Aheu:"Austro-Asiatic",Alak:"Austro-Asiatic",Bit:"Austro-Asiatic","Bo (Laos)":"Austro-Asiatic",Bondo:"Austro-Asiatic",Brao:"Austro-Asiatic",Bugan:"Austro-Asiatic",Chong:"Austro-Asiatic",Chut:"Austro-Asiatic",Danau:"Austro-Asiatic",Halang:"Austro-Asiatic","Halang Doan":"Austro-Asiatic",Hu:"Austro-Asiatic",Hung:"Austro-Asiatic",Ir:"Austro-Asiatic",Kensiu:"Austro-Asiatic",Khmu:"Austro-Asiatic",Khua:"Austro-Asiatic",Khuen:"Austro-Asiatic",Koda:"Austro-Asiatic","Kon Keu":"Austro-Asiatic",Kriang:"Austro-Asiatic",Kuay:"Austro-Asiatic",Laven:"Austro-Asiatic",Maleng:"Austro-Asiatic","Man Met":"Austro-Asiatic",Mang:"Austro-Asiatic",Minriq:"Austro-Asiatic",Mlabri:"Austro-Asiatic",Nguôn:"Austro-Asiatic",Nyaheun:"Austro-Asiatic",Nyahkur:"Austro-Asiatic","O’du":"Austro-Asiatic",Ong:"Austro-Asiatic",Oy:"Austro-Asiatic",Pacoh:"Austro-Asiatic","Phong-Kniang":"Austro-Asiatic",Prai:"Austro-Asiatic",Puoc:"Austro-Asiatic",Rengao:"Austro-Asiatic",Rmeet:"Austro-Asiatic","Rumai Palaung":"Austro-Asiatic",Sapuan:"Austro-Asiatic","Shwe Palaung":"Austro-Asiatic","So (Laos)":"Austro-Asiatic",Sou:"Austro-Asiatic","Tai Loi":"Austro-Asiatic",Talieng:"Austro-Asiatic",Tareng:"Austro-Asiatic",Tho:"Austro-Asiatic",U:"Austro-Asiatic","Upper Ta’oih":"Austro-Asiatic",Vietnamese:"Austro-Asiatic","Western Katu":"Austro-Asiatic",Suruahá:"Arauan",Jarawa:"Andamanese",Öñge:"Andamanese",Sentinel:"Andamanese",Afar:"Afro-Asiatic","Alaba-K’abeena":"Afro-Asiatic",Alagwa:"Afro-Asiatic",Ale:"Afro-Asiatic","Algerian Arabic":"Afro-Asiatic",Amharic:"Afro-Asiatic",Arbore:"Afro-Asiatic","Baharna Arabic":"Afro-Asiatic",Barein:"Afro-Asiatic",Bedawiyet:"Afro-Asiatic",Bidiyo:"Afro-Asiatic",Bilen:"Afro-Asiatic",Birgit:"Afro-Asiatic",Boor:"Afro-Asiatic","Borana-Arsi-Guji Oromo":"Afro-Asiatic",Buduma:"Afro-Asiatic","Central Atlas Tamazight":"Afro-Asiatic","Chadian Arabic":"Afro-Asiatic",Chenoua:"Afro-Asiatic",Ciwogai:"Afro-Asiatic",Daasanach:"Afro-Asiatic",Dabarre:"Afro-Asiatic",Dangaléat:"Afro-Asiatic",Deno:"Afro-Asiatic",Diri:"Afro-Asiatic",Duwai:"Afro-Asiatic","Eastern Egyptian Bedawi Arabic":"Afro-Asiatic","Eastern Oromo":"Afro-Asiatic",Garre:"Afro-Asiatic",Geruma:"Afro-Asiatic",Giiwo:"Afro-Asiatic",Gorowa:"Afro-Asiatic","Gulf Arabic":"Afro-Asiatic","Hadrami Arabic":"Afro-Asiatic",Harsusi:"Afro-Asiatic",Hassaniyya:"Afro-Asiatic",Hausa:"Afro-Asiatic",Hebrew:"Afro-Asiatic","Hijazi Arabic":"Afro-Asiatic",Hobyót:"Afro-Asiatic",Hozo:"Afro-Asiatic",Jiiddu:"Afro-Asiatic",Jimi:"Afro-Asiatic",Jina:"Afro-Asiatic","Jonkor Bourmataguil":"Afro-Asiatic","Judeo-Iraqi Arabic":"Afro-Asiatic","Judeo-Moroccan Arabic":"Afro-Asiatic",Kabalai:"Afro-Asiatic",Kajakse:"Afro-Asiatic",Kariya:"Afro-Asiatic","Karo (Ethiopia)":"Afro-Asiatic",Kutto:"Afro-Asiatic","Levantine Arabic":"Afro-Asiatic",Libido:"Afro-Asiatic","Libyan Arabic":"Afro-Asiatic","Lishana Deni":"Afro-Asiatic",Maaka:"Afro-Asiatic",Maay:"Afro-Asiatic",Majera:"Afro-Asiatic",Male:"Afro-Asiatic",Maslam:"Afro-Asiatic",Masmaje:"Afro-Asiatic",Mburku:"Afro-Asiatic",Mehri:"Afro-Asiatic","Mesopotamian Arabic":"Afro-Asiatic",Migaama:"Afro-Asiatic",Mogum:"Afro-Asiatic","Moroccan Arabic":"Afro-Asiatic",Mositacha:"Afro-Asiatic",Mubi:"Afro-Asiatic",Mukulu:"Afro-Asiatic",Nafusi:"Afro-Asiatic","Najdi Arabic":"Afro-Asiatic",Nyam:"Afro-Asiatic","Omani Arabic":"Afro-Asiatic","Pa’a":"Afro-Asiatic",Saba:"Afro-Asiatic",Saho:"Afro-Asiatic","Sanaani Arabic":"Afro-Asiatic",Seze:"Afro-Asiatic",Shehri:"Afro-Asiatic",Shekkacho:"Afro-Asiatic",Sheko:"Afro-Asiatic","Shihhi Arabic":"Afro-Asiatic",Siwi:"Afro-Asiatic",Sokoro:"Afro-Asiatic",Soqotri:"Afro-Asiatic","South Levantine Arabic":"Afro-Asiatic","Standard Arabic":"Afro-Asiatic","Sudanese Arabic":"Afro-Asiatic","Ta’izzi-Adeni Arabic":"Afro-Asiatic","Tahaggart Tamahaq":"Afro-Asiatic",Taznatit:"Afro-Asiatic",Tigré:"Afro-Asiatic",Toram:"Afro-Asiatic",Tsamai:"Afro-Asiatic",Tumzabt:"Afro-Asiatic",Tunni:"Afro-Asiatic",Waata:"Afro-Asiatic","West Central Oromo":"Afro-Asiatic",Xamtanga:"Afro-Asiatic",Zumbun:"Afro-Asiatic"},ku={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"},oi="languageFamily",vb="#000000",lo={"Indo-European":"#e74c3c",Dravidian:"#ff9800","Afro-Asiatic":"#27ae60","Sino-Tibetan":"#3498db","Niger-Congo":"#9b59b6",Unclassified:"#95a5a6","Nilo-Saharan":"#e91e63","Khoe-Kwadi":"#00bcd4","Austro-Asiatic":"#00bcd4","Kra-Dai":"#8e44ad",Austronesian:"#ff69b4","Hmong-Mien":"#f44336",Turkic:"#ffc107","Nakh-Daghestanian":"#009688",Mongolic:"#795548",Uralic:"#607d8b",Tungusic:"#4caf50",Japonic:"#ff5722",Cariban:"#673ab7",Tupian:"#03a9f4",Tucanoan:"#8bc34a",Maipurean:"#ffc107",Panoan:"#cddc39",Guajiboan:"#9e9e9e",Chibchan:"#ff7043",Quechuan:"#ab47bc",Jean:"#26a69a",Harákmbut:"#7e57c2",Nambikwara:"#42a5f5",Muran:"#66bb6a",Karajá:"#ffa726",Bororoan:"#ef5350",Arauan:"#5c6bc0",Yanomaman:"#26c6da",Yaguan:"#d4e157",Witotoan:"#78909c",Zamucoan:"#8d6e63",Puinavean:"#aed581",Barbacoan:"#4db6ac","Eyak-Athabaskan":"#7986cb","Trans-New Guinea":"#ba68c8",Andamanese:"#4dd0e1","Atlantic-Congo":"#7D3C98",Mande:"#B9770E","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},Sb=lo;function ni(e){return lo[e]||vb}const Tb=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(lo))t[e(o)]=o;return t})(),Lb={"tai-kadai":"Kra-Dai",none:"Unknown"};function ai(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return Lb[o]||Tb[o]||t}function vu(e){var t;return ni(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function si(){const e=["match",["get",oi]];return Object.entries(lo).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const Su=si,Cb=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Sb,PALETTE:lo,PROPERTY_KEY:oi,applyColor:si,buildColorExpression:Su,canonicalFamilyName:ai,default:{name:"Language Family",propertyKey:oi,palette:lo,colors:lo,getColor:vu,applyColor:si,buildColorExpression:Su,getLanguageFamilyColor:ni,canonicalFamilyName:ai},defaultFamilyColor:"#95a5a6",getColor:vu,getLanguageFamilyColor:ni,languageFamilyColors:lo},Symbol.toStringTag,{value:"Module"})),Tu="adoptionStatus",Vt={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Mb=Vt,ii={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},Eb=ii;function Lu(e){var n;const t=e.adoptionStatus??((n=e._raw)==null?void 0:n.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Vt.hasAdoption:Vt.notAdopted}function ri({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Vt.hasAdoption,["==",t,1],Vt.hasAdoption,Vt.notAdopted]}const Cu=ri,Nb=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Mb,ADOPTION_LABELS:Eb,LABELS:ii,PALETTE:Vt,PROPERTY_KEY:Tu,applyColor:ri,buildColorExpression:Cu,default:{name:"Adoption Progress",propertyKey:Tu,palette:Vt,colors:Vt,labels:ii,getColor:Lu,applyColor:ri,buildColorExpression:Cu},getColor:Lu},Symbol.toStringTag,{value:"Module"})),li="affinityBlock",Go="#95a5a6",Yt={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf",A018:"Tibetan Peoples",A019:"Himalayan Peoples"},Na={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000",A018:"#6C3483",A019:"#A569BD"},co=Na,Mu=Object.entries(Yt).reduce((e,[t,o])=>(e[o]=t,e),{}),ci=Object.entries(Yt).reduce((e,[t,o])=>(e[o]=co[t],e),{}),Eu=Yt;function ui(e){return Yt[e]||"Unknown"}function di(e){return co[e]||Go}function Nu(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?co[e]||Go:ci[e]||Go:Go}function xu(){return Object.entries(Yt).map(([e,t])=>({code:e,name:t,color:co[e]}))}function Pu(e){return{code:e,name:Yt[e]||"Unknown",color:co[e]||Go}}function Iu(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return di(t)}function Fu(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return ui(t)}function pi(){const e=["match",["get",li]];return Object.entries(co).forEach(([t,o])=>{e.push(t,o)}),e.push(Go),e}const Ou=pi,xb=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:co,AFFINITY_BLOCK_COLORS_BY_NAME:ci,AFFINITY_BLOCK_NAMES:Yt,AFFINITY_BLOCK_NAME_TO_CODE:Mu,NAMES:Eu,PALETTE:Na,PROPERTY_KEY:li,affinityBlockCodeLookup:Yt,affinityBlockCodeToColor:co,affinityBlockCodeToName:Yt,affinityBlockColors:ci,affinityBlockNameToCode:Mu,applyColor:pi,buildColorExpression:Ou,default:{name:"Affinity Block",propertyKey:li,palette:Na,colors:Na,names:Eu,getColor:Iu,applyColor:pi,buildColorExpression:Ou,getName:Fu,getAffinityBlockName:ui,getAffinityBlockColor:Nu,getAffinityBlockColorByCode:di,getAffinityBlocksArray:xu,getAffinityBlockData:Pu},getAffinityBlockColor:Nu,getAffinityBlockColorByCode:di,getAffinityBlockData:Pu,getAffinityBlockName:ui,getAffinityBlocksArray:xu,getColor:Iu,getName:Fu},Symbol.toStringTag,{value:"Module"}));function Pb(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(fi),e}const Hu=bi,Fb=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:Ib,PALETTE:xa,PROPERTY_KEY:gi,REGION_COLOR_ALIASES:mi,SLUG_PALETTE:Pa,applyColor:bi,buildColorExpression:Hu,default:{name:"DOXA Region",propertyKey:gi,palette:xa,colors:xa,slugColors:Pa,aliases:mi,fallback:fi,getColor:zu,applyColor:bi,buildColorExpression:Hu,getRegionColor:Ru,getRegionColorBySlug:hi},getColor:zu,getRegionColor:Ru,getRegionColorBySlug:hi},Symbol.toStringTag,{value:"Module"})),ju="engagementStatus",Jt={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Ob=Jt,_i={notEngaged:"Unengaged",hasEngagement:"Engaged"},Db=_i;function Bu(e){var n;const t=e.engagementStatus??((n=e._raw)==null?void 0:n.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Jt.hasEngagement:Jt.notEngaged}function $i({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Jt.hasEngagement,["==",t,1],Jt.hasEngagement,Jt.notEngaged]}const Wu=$i,Rb=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Ob,ENGAGEMENT_LABELS:Db,LABELS:_i,PALETTE:Jt,PROPERTY_KEY:ju,applyColor:$i,buildColorExpression:Wu,default:{name:"Engagement Progress",propertyKey:ju,palette:Jt,colors:Jt,labels:_i,getColor:Bu,applyColor:$i,buildColorExpression:Wu},getColor:Bu},Symbol.toStringTag,{value:"Module"})),Uu="peoplePraying",Ia=144,uo={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},zb=uo,yi={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},Hb=yi;function Fa(e){var n;const t=(e==null?void 0:e.peoplePraying)??((n=e==null?void 0:e._raw)==null?void 0:n.people_praying)??null,o=Number(t)||0;return o>=Ia?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function Ai(e){return uo[Fa(e)]}function Ku(e){var o;const t=(e==null?void 0:e.peoplePraying)??((o=e==null?void 0:e._raw)==null?void 0:o.people_praying)??null;return t!==null&&t>0}function Gu(e){return Fa(e)==="fullPrayer"}function qu(e){return Ai(e)}function wi({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Ia],uo.fullPrayer,[">",t,0],uo.hasPrayer,uo.noPrayer]}const Vu=wi,jb=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Ia,LABELS:yi,PALETTE:uo,PRAYER_COLORS:zb,PRAYER_LABELS:Hb,PROPERTY_KEY:Uu,applyColor:wi,buildColorExpression:Vu,checkHasFullPrayer:Gu,checkHasPrayer:Ku,default:{name:"Prayer Progress",propertyKey:Uu,palette:uo,colors:uo,labels:yi,threshold:Ia,getColor:qu,applyColor:wi,buildColorExpression:Vu,getPrayerLevel:Fa,getPrayerColor:Ai,checkHasPrayer:Ku,checkHasFullPrayer:Gu},getColor:qu,getPrayerColor:Ai,getPrayerLevel:Fa},Symbol.toStringTag,{value:"Module"})),Yu="religion",ki="#94a3b8",Oa={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},mt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function Ju(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return Oa[t]?t:"U"}function Xu(e){var o,n,a;const t=(e==null?void 0:e.religion)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.religion)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return mt[Ju(t)]||ki}function vi(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",mt.C,"M",mt.M,"H",mt.H,"B",mt.B,"E",mt.E,"J",mt.J,"S",mt.S,"N",mt.N,"O",mt.O,ki]}const Zu=vi,Bb={name:"Religion",propertyKey:Yu,palette:mt,families:Oa,getColor:Xu,applyColor:vi,buildColorExpression:Zu,fallback:ki};function Wb(e){const t=String(e||""),o=Oa[t]||t;return o?qt("religion.family."+o)||o:""}const Ub=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:mt,PROPERTY_KEY:Yu,RELIGION_FAMILIES:Oa,applyColor:vi,buildColorExpression:Zu,default:Bb,getColor:Xu,getReligionFamily:Ju,religionFamilyLabel:Wb},Symbol.toStringTag,{value:"Module"})),Qu="resourceType",po={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},Kb=po,Ln=["bible","jesusFilm","radio","gospel","audio","stories"],Si={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},Gb=Si;function Cn(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function ed(e){var t;for(const o of Ln)if((e[o]||((t=e._raw)==null?void 0:t[Cn(o)]))==="Available")return po.hasResources;return po.noResources}function td(e){var t;for(const o of Ln)if((e[o]||((t=e._raw)==null?void 0:t[Cn(o)]))==="Available")return!0;return!1}function od(e){var t;for(const o of Ln)if((e[o]||((t=e._raw)==null?void 0:t[Cn(o)]))==="Available")return o;return"noResources"}function Ti(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],po.hasResources,po.noResources]}const nd=Ti,qb=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Si,PALETTE:po,PROPERTY_KEY:Qu,RESOURCE_COLORS:Kb,RESOURCE_NAMES:Gb,RESOURCE_PRIORITY:Ln,applyColor:Ti,buildColorExpression:nd,default:{name:"Gospel Resources",propertyKey:Qu,palette:po,colors:po,names:Si,priority:Ln,getColor:ed,applyColor:Ti,buildColorExpression:nd,hasAnyResource:td,getResourceType:od,getCSVColumn:Cn},getCSVColumn:Cn,getColor:ed,getResourceType:od,hasAnyResource:td},Symbol.toStringTag,{value:"Module"})),ad="region",Li="#6d766e",sd={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},Mn={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Ci=Object.keys(Mn);function id(e){var o,n,a;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.wagf_region);return Mn[t]||Li}function Mi(){const e=["match",["coalesce",["get","region"],""]];for(const t of Ci)e.push(t,Mn[t]);return e.push(Li),e}const rd=Mi,Vb=Object.assign({"./adoption.js":Nb,"./affinity-block.js":xb,"./doxa-region.js":Fb,"./engagement.js":Rb,"./language-family.js":Cb,"./prayer-progress.js":jb,"./religion.js":Ub,"./resource.js":qb,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Mn,PROPERTY_KEY:ad,REGION_ORDER:Ci,WAGF_REGIONS:sd,applyColor:Mi,buildColorExpression:rd,default:{name:"WAGF Region",propertyKey:ad,palette:Mn,regions:sd,order:Ci,getColor:id,applyColor:Mi,buildColorExpression:rd,fallback:Li},getColor:id},Symbol.toStringTag,{value:"Module"}))}),Yb=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),Jb=e=>e.replace(/-/g,"_").toUpperCase(),Xb={...{STATUS:"status",CUSTOM:"custom"}};function Zb(e){for(const t of Object.keys(e).sort()){const o=t.split("/").pop().replace(/\.js$/,"");if(o.startsWith("_")||o.startsWith(".")||!e[t].default)continue;const a=Yb(o);Xb[Jb(o)]=a}}Zb(Vb);function Ei(e){return e==null?"":typeof e=="object"?e.label||e.value||"":String(e)}const Qb=[[/ sign language$/i,"Sign Language"]];function e_(e){var r,l;const t=Ei(e.languageFamily);if(t)return t;const o=String(((l=(r=e._raw)==null?void 0:r.primary_language)==null?void 0:l.value)||(e.language&&typeof e.language=="object"?e.language.value:"")||"").trim().toLowerCase();if(o&&ku[o])return ku[o];const n=Ei(e.language||e.primary_language);if(!n||typeof n!="string")return"";const a=n.trim(),s=a.split(",").map(c=>c.trim()).filter(Boolean);if(s.length>=2){const c=[...s].reverse().join(" ");if(ro[c])return ro[c];if(s.length>=3){const u=[s[1],s[0]].join(" ");if(ro[u])return ro[u]}}if(ro[a])return ro[a];const i=a.replace(/\s*\(.*?\)\s*$/,"").trim();if(i!==a&&ro[i])return ro[i];for(const[c,u]of Qb)if(c.test(a))return u;return""}function t_(e){const{mapId:t="unknown",dataSourceId:o="doxa-csv",dataSourceManager:n=null,dataStore:a=null,markRaw:s=T=>T}=e;n||console.error("useMapData: dataSourceManager is required!");const i=oe(!1),r=oe(null),l=oe(!1),c=oe([]),u=oe([]);ft()&&rt("normalizedPeopleGroups",u);const f=oe(null),b=oe([]),v=oe([]),k=oe([]),A=oe(null);async function x(){if(!n)throw new Error("dataSourceManager is required for useMapData");i.value=!0,r.value=null;try{if(await n.init(),a&&a.hasSourceData&&a.hasSourceData(o)){const j=a.getSourceData(o);u.value=s(j.normalizedData||[])}else{const j=await n.setActiveSource(o);for(const J of j){const z=Ei(J.language||J.primary_language);z&&(J.language=z);const H=e_(J);J.languageFamily=ai(H)}u.value=s(j),a&&a.cacheSourceData&&a.cacheSourceData(o,{normalizedData:j,timestamp:Date.now()})}c.value=s(kb(u.value.map(j=>({id:j.uniqueId,slug:j.slug||"",rop3:j.peopleGroupId,peopleId3:j.peopleId3,name:j.name,language:j.language,languageFamily:j.languageFamily,country:j.country,population:j.population,status:j.engagementStatus||j.status,latitude:j.latitude,longitude:j.longitude,lng:j.longitude,lat:j.latitude,description:j.description,imageUrl:j.imageUrl,doxaRegion:j.doxaRegion||j.wagfRegion||"",peoplePraying:j.peoplePraying??null,_normalized:j}))));const T=n.getDataByLanguageFamily();b.value=Object.entries(T).map(([j,J])=>{const z=J.reduce((H,Q)=>{const re=parseInt(Q.population)||0;return H+re},0);return{name:j,count:J.length,peopleGroupCount:J.length,population:z,groups:J}}).sort((j,J)=>J.count-j.count);const I=n.getDataByRegion();v.value=Object.entries(I).map(([j,J])=>{const z=J.reduce((H,Q)=>{const re=parseInt(Q.population)||0;return H+re},0);return{name:j,count:J.length,peopleGroupCount:J.length,population:z,groups:J}}).sort((j,J)=>j.name.localeCompare(J.name));const y={bible:{count:0,population:0,groups:[]},jesusFilm:{count:0,population:0,groups:[]},radio:{count:0,population:0,groups:[]},gospel:{count:0,population:0,groups:[]},audio:{count:0,population:0,groups:[]},stories:{count:0,population:0,groups:[]},hasResources:{count:0,population:0,groups:[]},noResources:{count:0,population:0,groups:[]}};u.value.forEach(j=>{const J=parseInt(j.population)||0;let z=!1;j.bible==="Available"&&(y.bible.count++,y.bible.population+=J,y.bible.groups.push(j),z=!0),j.jesusFilm==="Available"&&(y.jesusFilm.count++,y.jesusFilm.population+=J,y.jesusFilm.groups.push(j),z=!0),j.radio==="Available"&&(y.radio.count++,y.radio.population+=J,y.radio.groups.push(j),z=!0),j.gospel==="Available"&&(y.gospel.count++,y.gospel.population+=J,y.gospel.groups.push(j),z=!0),j.audio==="Available"&&(y.audio.count++,y.audio.population+=J,y.audio.groups.push(j),z=!0),j.stories==="Available"&&(y.stories.count++,y.stories.population+=J,y.stories.groups.push(j),z=!0),z?(y.hasResources.count++,y.hasResources.population+=J,y.hasResources.groups.push(j)):(y.noResources.count++,y.noResources.population+=J,y.noResources.groups.push(j))});const U=u.value.length,G=u.value.reduce((j,J)=>j+(parseInt(J.population)||0),0),M={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},q={bible:{count:U-y.bible.count,population:G-y.bible.population},jesusFilm:{count:U-y.jesusFilm.count,population:G-y.jesusFilm.population},radio:{count:U-y.radio.count,population:G-y.radio.population},gospel:{count:U-y.gospel.count,population:G-y.gospel.population},audio:{count:U-y.audio.count,population:G-y.audio.population},stories:{count:U-y.stories.count,population:G-y.stories.population}},Z="#2c3e50";return k.value=[{name:M.bible,key:"bible",count:y.bible.count,population:y.bible.population,isParent:!0,children:[{name:"No Bible",key:"noBible",count:q.bible.count,population:q.bible.population,color:Z}]},{name:M.jesusFilm,key:"jesusFilm",count:y.jesusFilm.count,population:y.jesusFilm.population,isParent:!0,children:[{name:"No Jesus Film",key:"noJesusFilm",count:q.jesusFilm.count,population:q.jesusFilm.population,color:Z}]},{name:M.radio,key:"radio",count:y.radio.count,population:y.radio.population,isParent:!0,children:[{name:"No Radio",key:"noRadio",count:q.radio.count,population:q.radio.population,color:Z}]},{name:M.gospel,key:"gospel",count:y.gospel.count,population:y.gospel.population,isParent:!0,children:[{name:"No Gospel",key:"noGospel",count:q.gospel.count,population:q.gospel.population,color:Z}]},{name:M.audio,key:"audio",count:y.audio.count,population:y.audio.population,isParent:!0,children:[{name:"No Audio",key:"noAudio",count:q.audio.count,population:q.audio.population,color:Z}]},{name:M.stories,key:"stories",count:y.stories.count,population:y.stories.population,isParent:!0,children:[{name:"No Stories",key:"noStories",count:q.stories.count,population:q.stories.population,color:Z}]},{name:M.hasResources,key:"hasResources",count:y.hasResources.count,population:y.hasResources.population,isParent:!0,children:[{name:M.noResources,key:"noResources",count:y.noResources.count,population:y.noResources.population,color:Z}]}],A.value=n.getStats(),l.value=!0,{peopleGroups:c.value,normalizedPeopleGroups:u.value,languageFamiliesData:b.value,doxaRegionsData:v.value,resourcesData:k.value,stats:A.value}}catch(T){throw console.error(`Failed to load data for map "${t}":`,T),r.value=T.message||"Failed to load data",T}finally{i.value=!1}}async function P(){var T,I,y;try{const U={},G=u.value||[];for(const M of G){const q=M.countryIso||((I=(T=M._raw)==null?void 0:T.country_code)==null?void 0:I.value)||"",Z=(y=M._raw)==null?void 0:y.wagf_region,j=M.doxaRegion||M.wagfRegion||(Z&&typeof Z=="object"?Z.value:"")||"";q&&j&&!U[q]&&(U[q]=j)}return f.value={isoToRegion:U},f.value}catch(U){throw console.error(`Error building regions data for map "${t}":`,U),r.value=U.message||"Failed to build regions",U}}function w(){return n?n.getDataByLanguageFamily():{}}function $(){return n?n.getDataByRegion():{}}function _(T){return w()[T]||[]}function S(T){return $()[T]||[]}function E(){c.value=[],u.value=[],f.value=null,b.value=[],v.value=[],k.value=[],A.value=null,l.value=!1,r.value=null}return{isLoading:i,isInitialized:l,error:r,peopleGroups:c,normalizedPeopleGroups:u,regionsData:f,languageFamiliesData:b,doxaRegionsData:v,resourcesData:k,stats:A,loadData:x,loadRegionsData:P,getDataByLanguageFamily:w,getDataByRegion:$,getPeopleGroupsByFamily:_,getPeopleGroupsByRegion:S,clearData:E}}const Ni={};function o_(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Lo&&Lo.tagName.toUpperCase()==="SCRIPT"&&Lo.src||new URL("all-people-groups.js",document.baseURI).href}<"u"&&(Ni==null?void 0:Ni.VITE_API_BASE_URL)||""}const xi={default:"doxa",lists:[{id:"doxa",aliases:["2000","project-2000"],label:"Project 2000: DOXA's people groups",definition:"The people groups DOXA serves, as its live list gives them",source:"doxa",filter:null},{id:"unreached",aliases:["7000","project-7000"],label:"Project 7000: unreached people groups",definition:"IMB Lostness Priority 0-2 (Frontier, Pioneer or Expanding Unreached: under 2% evangelical)",source:"imb",filter:{lostness:[0,1,2]}},{id:"frontier",aliases:["4700","project-4700"],label:"Project 4700: frontier people groups",definition:"IMB Lostness Priority 0 (Frontier Unreached: 0.1% evangelical or less)",source:"imb",filter:{lostness:[0]}},{id:"frontier-500k",aliases:["700","project-700"],label:"Project 700: frontier people groups of 500,000 or more",definition:"IMB Lostness Priority 0 and Population of at least 500,000",source:"imb",filter:{lostness:[0],minPopulation:5e5}},{id:"unengaged",aliases:[],label:"Unengaged unreached people groups",definition:"IMB Lostness Priority 0-2 and Engagement Status Unengaged",source:"imb",filter:{lostness:[0,1,2],engagement:["Unengaged"]}}]},n_=Lo&&Lo.tagName.toUpperCase()==="SCRIPT"&&Lo.src||new URL("all-people-groups.js",document.baseURI).href,go=e=>String(e||"").trim().replace(/\/+$/,"");function ld(){try{const t=String(n_||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function a_(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return go(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return go(o)}return go(ld()||"")}function cd(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=go(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=go((e==null?void 0:e.treeBase)||"")||go(ld()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return go(new URL(o+"/assets",n).href)}catch{return go(o+"/assets")}return"./assets"}function s_({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",s=e||(n==null?void 0:n.shareUrl);if(typeof s=="string"&&s.trim())return s.trim();const i=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(i){if(/^https?:\/\//i.test(i))return i;if(i.startsWith("/"))return a?window.location.origin+i:i;const r=a_(n),l=i.replace(/^\.\//,"");if(r)return r+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const Da=xi.default,Pi=new Map;for(const e of xi.lists){Pi.set(e.id,e);for(const t of e.aliases||[])Pi.set(String(t).toLowerCase(),e)}function i_(e){return Pi.get(String(e??"").toLowerCase().trim())||null}function ud(e){let t=e;if(t&&typeof t=="object"&&"value"in t&&!("list"in t)&&!("profile"in t)&&(t=t.value),typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return t&&typeof t=="object"?t:null}const dd=new Set;function r_(e){const t=ud(e),o=t==null?void 0:t.list,n=typeof location<"u"?new URLSearchParams(location.search).get("list"):null,a=typeof window<"u"?window.MAP_LIST:void 0,s=o||n||a||Da,i=i_(s);return i?i.id:(dd.has(s)||(dd.add(s),console.warn(`[list] unknown people-group list "${s}", showing "${Da}". Known: ${xi.lists.map(r=>r.id).join(", ")}`)),Da)}const Ra=new Map;function l_(e,t){const o=`${cd(ud(t))}/people-groups/lists/${e}.json`;return Ra.has(o)||Ra.set(o,fetch(o).then(n=>{if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.json()}).then(n=>new Set(Array.isArray(n==null?void 0:n.slugs)?n.slugs:[])).catch(n=>{throw Ra.delete(o),new Error(`list "${e}" membership ${o}: ${n.message}`)})),Ra.get(o)}async function pd(e,t,{key:o=n=>n==null?void 0:n.slug}={}){const n=r_(t);if(n===Da||!Array.isArray(e))return e;try{const a=await l_(n,t);return e.filter(s=>a.has(o(s)))}catch(a){return console.error(`[list] ${a.message}. Showing no people groups rather than the wrong list.`),[]}}class gd{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.profileConfig=t.profileConfig||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=lu,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",s=!1,i=[],r=!0;for(let l=0;lc.value?dp((fe(),Te("div",{key:0,ref_key:"hintEl",ref:w,class:Xe(["pin-hint",{dark:r.value}]),role:"status"},[te("span",Sm,[H[0]||(H[0]=te("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),ut(" "+Me(l.value)+" ",1),te("button",{class:"pin-hint-x",type:"button","aria-label":t("aria.dismissHint","Dismiss hint"),onClick:M},"×",8,Tm)])],2)),[[Sg,u.value&&b.value]]):gt("",!0)}},Cm=".lsn-bar[data-v-9a589f6f]{display:flex;align-items:flex-start;gap:8px;flex:none;margin:0;padding-block:8px;padding-inline:12px 8px;background:#fff8e1;border-block-end:1px solid #f0d68a;color:#4a3b00;font:400 13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}.lsn-bar__text[data-v-9a589f6f]{flex:1 1 auto;margin:0}.lsn-bar__x[data-v-9a589f6f]{flex:none;min-width:24px;min-height:24px;padding:0;border:0;border-radius:4px;background:transparent;color:inherit;font:600 18px/1 system-ui,sans-serif;cursor:pointer}.lsn-bar__x[data-v-9a589f6f]:focus-visible{outline:2px solid #1a73e8;outline-offset:2px}.lsn-block[data-v-9a589f6f]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;min-height:200px;padding:24px;background:#f7f7f5;color:#333;text-align:center;font:400 15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.lsn-block__text[data-v-9a589f6f]{max-width:28em;margin:0}",iu=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Mm={key:0,class:"lsn-block",role:"status"},Em={class:"lsn-block__text"},Nm={key:0},xm={key:1,class:"lsn-bar",role:"note"},Pm={class:"lsn-bar__text"},Im=["aria-label","title"],ru=iu({__name:"LargerScreenNotice",props:{mode:{type:String,required:!0},label:{type:String,default:""},locale:{type:String,default:""}},emits:["dismiss"],setup(e){const t=e,o=(i,r)=>qt(i,t.locale||void 0)||r,n=ce(()=>o("messages.largerScreenNotice","This experimental map is built for larger screens. It opens here, but parts of it may not fit or work well on a phone.")),a=ce(()=>o("messages.noticeDismiss","Dismiss")),s=ce(()=>o("messages.desktopOnlyNotice","{label} only supports desktop — open this page on a desktop to use it.").split("{label}"));return(i,r)=>e.mode==="desktop-only"?(fe(),Te("div",Mm,[te("p",Em,[ut(Me(s.value[0]),1),s.value.length>1?(fe(),Te("bdi",Nm,Me(e.label),1)):gt("",!0),ut(Me(s.value[1]||""),1)])])):(fe(),Te("div",xm,[te("p",Pm,Me(n.value),1),te("button",{type:"button",class:"lsn-bar__x","aria-label":a.value,title:a.value,onClick:r[0]||(r[0]=l=>i.$emit("dismiss"))},"×",8,Im)]))}},[["styles",[Cm]],["__scopeId","data-v-9a589f6f"]]),Fm="(max-width: 639.98px)";function Om(e){for(let t=e;t;t=t.parentNode||t.host)if(t.nodeType===1&&t.hasAttribute("data-doxa-gallery"))return!0;return!1}function Dm(e){var l;const t=ce(()=>{var u;const c=(u=e.value)==null?void 0:u.mobile;return c==="desktop-only"||c==="larger-screens"?c:null});let o=null;try{o=Kg()}catch{o=null}const n=o?Om(o):!1,a=oe(!1);if(typeof window<"u"&&typeof window.matchMedia=="function"){const c=window.matchMedia(Fm);a.value=c.matches;const u=f=>{a.value=f.matches};(l=c.addEventListener)==null||l.call(c,"change",u),Fo(()=>{var f;return(f=c.removeEventListener)==null?void 0:f.call(c,"change",u)})}const s=ce(()=>{var c;return`dx-maps:larger-screens-dismissed:${((c=e.value)==null?void 0:c.profile)||""}`}),i=oe(!1);lt(s,c=>{try{i.value=sessionStorage.getItem(c)==="1"}catch{i.value=!1}},{immediate:!0});function r(){i.value=!0;try{sessionStorage.setItem(s.value,"1")}catch{}}return{flag:t,blocked:ce(()=>t.value==="desktop-only"&&a.value&&!n),advise:ce(()=>t.value==="larger-screens"&&a.value&&!n&&!i.value),dismiss:r,label:ce(()=>{var c,u;return String(((c=e.value)==null?void 0:c.mobileLabel)||((u=e.value)==null?void 0:u.profile)||"")})}}let Rm=0;const zm=Ms("ui",{state:()=>({_storeInstanceId:++Rm,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){const t=e&&!this.selectedPeopleGroup;this.selectedPeopleGroup=e,e?(t&&(this._legendStateBeforeDetail=this.legendState),this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this._legendStateBeforeDetail&&(this.legendState=this._legendStateBeforeDetail),this._legendStateBeforeDetail=null,this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:s=!1}=e,i={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:s,createdAt:Date.now()};return this.toasts.push(i),!s&&n>0&&setTimeout(()=>{this.removeToast(i.id)},n),i.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),Hm=Ms("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusteringMode:"off",clusterPinOpacity:.6,clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const s=t.getCenter();s&&(a=[s.lng,s.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),jm=Ms("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=tn({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=tn({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),lu={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},Bm=".profile-loader[data-locale-pending][data-v-b5256f00] .stl-tabs,.profile-loader[data-locale-pending][data-v-b5256f00] .stl-title,.profile-loader[data-locale-pending][data-v-b5256f00] .stl-rows,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-title,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-content,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-reopen-label,.profile-loader[data-locale-pending][data-v-b5256f00] .lt-btn-text,.profile-loader[data-locale-pending][data-v-b5256f00] .rd-topbar,.profile-loader[data-locale-pending][data-v-b5256f00] .rd-exportbar{visibility:hidden}.profile-loader[data-v-b5256f00]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-loader.has-screen-notice[data-v-b5256f00]{display:flex;flex-direction:column}.profile-loader.has-screen-notice[data-v-b5256f00]>:not(.lsn-bar){flex:1 1 auto;min-height:0;position:relative!important;inset:auto!important}.profile-error[data-v-b5256f00]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Wm=["dir","data-locale-pending"],Um={key:0,class:"profile-error"},Km={key:1,class:"profile-error"},Gm=iu({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var G;const o=e,n=De("profileConfig",null),a=ce(()=>{var q;if(!o.profileConfig)return null;let M;try{M=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(M&&M.assetsBase===void 0){const Z=(q=n==null?void 0:n.value)==null?void 0:q.assetsBase;typeof Z=="string"&&Z&&(M.assetsBase=Z)}return M}),s=ce(()=>{var M;return((M=a.value)==null?void 0:M.profile)||null}),i=of(),r=ce(()=>{var q;const M=(q=a.value)==null?void 0:q.tk;return typeof M=="string"&&M?M:i.value||""});lt(()=>{var M;return(M=a.value)==null?void 0:M.tk},M=>{typeof M=="string"&&M&&xs(M)},{immediate:!0}),lt(()=>{var M;return(M=a.value)==null?void 0:M.tokenUrl},M=>{var q;M&&!((q=a.value)!=null&&q.tk)&&!i.value&&nf(M)},{immediate:!0});const l=ce(()=>{var M;return((M=a.value)==null?void 0:M.dataSource)||lu.activeSource||"doxa-csv"}),c=ce(()=>{var M;return((M=a.value)==null?void 0:M.colorSet)||"default"}),u=ce(()=>!1),f=ce(()=>{var M;return((M=a.value)==null?void 0:M.pinHint)!==!1}),b=ce(()=>{var q,Z;const M=(((q=a.value)==null?void 0:q.locale)||((Z=a.value)==null?void 0:Z.lang)||Xc()||"").split("-")[0].toLowerCase();return Sn.includes(M)?M:""}),v=De("appI18n",null);wr(()=>{b.value&&(v&&(v.global.locale.value=b.value),Qc(b.value),Qs(v,b.value).catch(()=>{}))});const k=ce(()=>{var M,q;return b.value||((q=(M=v==null?void 0:v.global)==null?void 0:M.locale)==null?void 0:q.value)||"en"}),A=ce(()=>La.has(k.value)?"rtl":"ltr"),{blocked:x,advise:P,dismiss:w,label:$}=Dm(a),_=oe(!1);wr(M=>{const q=k.value;if(!La.has(q)){_.value=!1;return}let Z=!0;M(()=>{Z=!1}),_.value=!0,fm(q).finally(()=>{Z&&(_.value=!1)})});const S=ce(()=>{var M;return((M=a.value)==null?void 0:M.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),E=De("profileModules",null);if(!E)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const T=ce(()=>{if(!s.value)return null;const M=`./${s.value}.vue`;return E[M]?wm(E[M]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(E)),null)});rt("mapboxToken",r),rt("dataSource",l),rt("colorSet",c),rt("profileConfig",a),rt("instanceId",S),rt("lang",k);const I=zm(),y=Hm(),U=jm();try{const M=typeof localStorage<"u"?localStorage.getItem("theme"):null;M&&((G=I.setTheme)==null||G.call(I,M))}catch{}return rt("uiStore",I),rt("mapStore",y),rt("dataStore",U),(M,q)=>(fe(),Te("div",{class:Xe(["profile-loader",{"has-screen-notice":Oe(P)}]),dir:A.value,"data-locale-pending":_.value?"":null},[a.value?T.value?Oe(x)?(fe(),Mt(ru,{key:2,mode:"desktop-only",label:Oe($),locale:k.value},null,8,["label","locale"])):(fe(),Te(Be,{key:3},[Oe(P)?(fe(),Mt(ru,{key:0,mode:"larger-screens",locale:k.value,onDismiss:Oe(w)},null,8,["locale","onDismiss"])):gt("",!0),(fe(),Mt(Ir(T.value)))],64)):(fe(),Te("div",Km,[te("p",null,[q[1]||(q[1]=ut("⚠️ Profile ",-1)),te("strong",null,'"'+Me(s.value)+'"',1),q[2]||(q[2]=ut(" not found.",-1))])])):(fe(),Te("div",Um,[...q[0]||(q[0]=[te("p",null,[ut("⚠️ "),te("strong",null,"doxa-map"),ut(": missing or invalid "),te("code",null,"profile-config"),ut(" prop.")],-1),te("p",null,[ut("Example: "),te("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),T.value&&u.value?(fe(),Mt(Ir(Oe(null)),{key:4})):gt("",!0),T.value&&f.value?(fe(),Mt(Lm,{key:5})):gt("",!0)],10,Wm))}},[["styles",[Bm]],["__scopeId","data-v-b5256f00"]]);function cu(e,t,o){var a;const n=(a=e==null?void 0:e._context)==null?void 0:a.provides;if(n&&t in n){n[t]=o;return}e.provide(t,o)}function qm(e,t){var a;const o=(a=e==null?void 0:e._context)==null?void 0:a.provides,n=o?Object.getPrototypeOf(o):null;n&&Object.setPrototypeOf(o,null);try{return t()}finally{n&&Object.setPrototypeOf(o,n)}}function Vm({profileModules:e={},configureApp:t=null}={}){return Wg(Gm,{configureApp(o){const n=Jg();qm(o,()=>o.use(n));const a=hm();o.use(a),cu(o,"appI18n",a),cu(o,"profileModules",e),t&&t(o,{pinia:n,i18n:a})}})}const Ym=Vm({profileModules:Object.assign({"./all-people-groups.vue":()=>bd(()=>Promise.resolve().then(()=>q_),void 0)})});typeof customElements<"u"&&!customElements.get("all-people-groups")&&customElements.define("all-people-groups",Ym);const Jm="rgba(120, 128, 134, 0.28)",uu="36px",du=()=>{};function Xm(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return du;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return du;const a=w=>w.classList.contains("map-scroll-edge--left");for(const w of n)w.style.background=`linear-gradient(${a(w)?"to right":"to left"}, ${Jm} ${uu}, transparent ${uu})`,w.style.opacity="0",w.style.transition="opacity 0.16s ease",w.style.userSelect="none",w.style.webkitUserSelect="none";const s=w=>{w.style.opacity="1"},i=w=>{w.style.opacity="0"},r=()=>n.find(w=>!a(w))||null,l=new Set;let c=!1,u=null;const f=()=>{for(const w of n)l.has(w)||i(w)},b=()=>{const w=r();w&&(s(w),u&&clearTimeout(u),u=setTimeout(f,250))},v=()=>b(),k=w=>{if(!(w.touches&&w.touches.length===1))return;const $=w.target;$&&$.classList&&$.classList.contains("map-scroll-edge")||b()},A=()=>{u&&clearTimeout(u),f()};e.addEventListener("wheel",v,{passive:!0}),e.addEventListener("touchmove",k,{passive:!0}),e.addEventListener("touchend",A,{passive:!0}),e.addEventListener("touchcancel",A,{passive:!0});const x=()=>{c||b()};typeof window<"u"&&window.addEventListener("scroll",x,{passive:!0});const P=[];for(const w of n){const $=()=>{l.add(w),s(w)},_=()=>{l.delete(w),i(w)},S=()=>{c=!0,s(w)},E=()=>{c=!1,i(w)};w.addEventListener("mouseenter",$),w.addEventListener("mouseleave",_),w.addEventListener("touchstart",S,{passive:!0}),w.addEventListener("touchend",E,{passive:!0}),P.push(()=>{w.removeEventListener("mouseenter",$),w.removeEventListener("mouseleave",_),w.removeEventListener("touchstart",S),w.removeEventListener("touchend",E)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",v),e.removeEventListener("touchmove",k),e.removeEventListener("touchend",A),e.removeEventListener("touchcancel",A),typeof window<"u"&&window.removeEventListener("scroll",x);for(const $ of P)$();for(const $ of n)i($)}}const Zm=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function Qm(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=Zm[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}function eb(e,t){if(!e||!Array.isArray(t))return[];const o=[];for(const n of t)if(!(!n||!n.layer||!n.prop))try{if(!e.getLayer(n.layer))continue;e.setPaintProperty(n.layer,n.prop,n.value),o.push(n.layer+"."+n.prop)}catch{}return o}const tb=["mapbox","maplibre"],ob="auto";function pu(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function gu(e,{token:t}={}){const o=pu(e);return fu(o)||"maplibre"}function fu(e){const t=pu(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,s=String(o||n||a||ob).toLowerCase().trim();return tb.includes(s)?s:""}function nb(e,t){if(!e||!t||typeof e.setProjection!="function")return!1;const o=typeof window<"u"?window.maplibregl:null,n=!!(o&&o.Map&&e instanceof o.Map);try{return e.setProjection(n?{type:t}:t),!0}catch{return!1}}const Tn={mapboxGlJs:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",integrity:"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ"},mapboxGlCss:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css",integrity:"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV"},maplibreGlJs:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js",integrity:"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp"},maplibreGlCss:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css",integrity:"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK"},mapboxGeocoderJs:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js",integrity:"sha384-Lx9WK8XhZk57czwxt6B6nyaDHB5Ayrcrsu4Fw4bCp/Ot/QLOsUZ0xYqLOpOOSXZw"},mapboxGeocoderCss:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css",integrity:"sha384-1KNhwJNCQTr0DCi/5/OnQcFytgycxTahxNZaqKbAtqmY8bUhu26qxXqvDGXXwplS"},maplibreGeocoderJs:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.min.js",integrity:"sha384-RGV5vfoJd7alk8HE+71IyVfu19ciH1FKA15+AuXs6OeBM2npXrmTPFqG23yMiHXi"},maplibreGeocoderCss:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.css",integrity:"sha384-UkDpPApjTpHJHpcJiSNAmbobh30W0/dmt0DoKm4V8CWYRYvQ/Jhd/ijFz0tFdVnH"},d3:{url:"https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js",integrity:"sha384-CjloA8y00+1SDAUkjs099PVfnY2KmDC2BZnws9kh8D/lX1s46w6EPhpXdqMfjK6i"}};function ei(e,t){const o=Object.values(Tn).find(n=>n.url===t);return o&&(e.integrity=o.integrity,e.crossOrigin="anonymous"),e}const hu={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",maplibre:"https://cdn.jsdelivr.net/npm/@mapbox/mapbox-gl-rtl-text@0.3.0/dist/mapbox-gl-rtl-text.js"};function ab(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function sb(e){if(typeof window>"u")return!1;const t=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let o=!1;for(const n of t)if(!(!n||!n.setRTLTextPlugin))try{if(ab(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(hu.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(hu.mapbox,null,!0);o=!0}catch{}return o}const ib=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,mu=new WeakMap;function rb(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function bu(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!rb(e))return typeof e.setLanguage=="function"&&e.setLanguage(o),0;const n=e.getStyle&&e.getStyle();if(!n||!Array.isArray(n.layers))return 0;let a=mu.get(e);a||(a=new Map,mu.set(e,a));let s=0;for(const i of n.layers){if(i.type!=="symbol"||!i.layout||i.layout["text-field"]==null)continue;const r=i.layout["text-field"],l=JSON.stringify(r);if(l.startsWith('["coalesce",["get","name:')){if(!a.has(i.id))continue}else{if(!ib.test(l))continue;a.set(i.id,r)}const c=["coalesce",["get","name:"+o],["get","name_"+o],["get","name:latin"],["get","name_en"],["get","name"]];e.setLayoutProperty(i.id,"text-field",c),s++}return s}catch{return 0}}const Ko={mapbox:{global:"mapboxgl",js:Tn.mapboxGlJs.url,css:Tn.mapboxGlCss.url},maplibre:{global:"maplibregl",js:Tn.maplibreGlJs.url,css:Tn.maplibreGlCss.url}},lb={"Map.Title":"map","Marker.Title":"marker","Popup.Close":"closePopup","NavigationControl.ZoomIn":"zoomIn","NavigationControl.ZoomOut":"zoomOut","NavigationControl.ResetBearing":"resetBearing","AttributionControl.ToggleAttribution":"toggleAttribution","AttributionControl.MapFeedback":"mapFeedback","FullscreenControl.Enter":"enterFullscreen","FullscreenControl.Exit":"exitFullscreen","GeolocateControl.FindMyLocation":"findMyLocation","GeolocateControl.LocationNotAvailable":"locationNotAvailable","GlobeControl.Enable":"enableGlobe","GlobeControl.Disable":"disableGlobe","CooperativeGesturesHandler.WindowsHelpText":"ctrlScroll","CooperativeGesturesHandler.MacHelpText":"cmdScroll","CooperativeGesturesHandler.MobileHelpText":"twoFingers","ScrollZoomBlocker.CtrlMessage":"ctrlScroll","ScrollZoomBlocker.CmdMessage":"cmdScroll","TouchPanBlocker.Message":"twoFingers"};function _u(e,t){const o={};for(const[a,s]of Object.entries(lb)){const i=qt(`mapui.${s}`,e);i&&(o[a]=i)}const n=qt(t==="maplibre"?"mapui.maplibreLogo":"mapui.mapboxHomepage",e);return n&&(o["LogoControl.Title"]=n),o}function $u(e){if(typeof window>"u")return;const t=window,o=()=>{try{const n=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");n&&(n.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",o),o();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const cb=Ko.mapbox.css,ub="https://tiles.openfreemap.org/styles/liberty",db="https://tiles.openfreemap.org/styles/fiord";function Ea(e){var o;const t=((o=Ko[e])==null?void 0:o.global)||Ko.mapbox.global;return typeof window<"u"?window[t]:void 0}async function yu(e){const t=Ko[e]||Ko.mapbox;if(Ea(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,ei(n,t.css),document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(Ea(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const s=document.createElement("script");s.src=t.js,ei(s,t.js),s.async=!1,s.addEventListener("load",n,{once:!0}),s.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(s)})}async function pb(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=i=>new Promise(r=>setTimeout(r,i)),a=o.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(i=>{a.addEventListener("load",i,{once:!0}),a.addEventListener("error",i,{once:!0})}),n(2e3)]);return}const s=document.createElement("link");s.rel="stylesheet",s.href=t,ei(s,t),await Promise.race([new Promise(i=>{s.addEventListener("load",i,{once:!0}),s.addEventListener("error",i,{once:!0}),o.prepend(s)}),n(2e3)])}function gb(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?db:ub}const fb=85.0511,ti=-2,hb=0,mb=-60;function Au(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function bb(e,t,o,n){if(!e||e<=0||!t||t<=0)return hb;const a=Math.log2(e/512),s=Au(n)-Au(fb),i=Math.log2(t/(512*s)),r=Math.max(a,i);return Math.max(ti,Math.min(r,(o??18)-1))}function _b({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a=void 0,center:s=[20,10],zoom:i=2,bounds:r=void 0,fitBoundsOptions:l=void 0,minZoom:c=void 0,skipWorldFloor:u=!1,maxZoom:f=18,pitch:b=0,bearing:v=0,renderWorldCopies:k=!0,showEdgeBorders:A=!0,southCutoff:x=mb,maxBounds:P=void 0}){const w=Vn(null),$=oe(!1);let _=null,S=null,E=null,T=null;try{T=De("profileConfig",null)}catch{}const I=!a&&!fu(T);a=a||gu(T,{token:t});let y=a==="maplibre";typeof document<"u"&&yu(a).catch(()=>{});let U=null;try{U=De("lang",null)}catch{}const G=()=>{const Z=U&&typeof U=="object"&&"value"in U?U.value:U;if(typeof Z=="string"&&Z)return Z;const j=T&&typeof T=="object"&&"value"in T?T.value:T;if(j&&(j.locale||j.lang))return String(j.locale||j.lang);try{const J=new URLSearchParams(location.search);return J.get("lang")||J.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function M(){var Ue;if(I&&!y&&!t&&typeof window<"u"&&window.__doxaMapTokenPending){if(await window.__doxaMapTokenPending,!e.value)return;typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN||(a="maplibre",y=!0)}const Z=Qm(o,a),j=Z.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const J=()=>!e.value;if(await yu(a),J())return;const z=Ea(a);if(!z){console.error(`[useMapInstance] ${y?"maplibregl":"mapboxgl"} is not available. Add the ${y?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(sb(z),!y){if(!t&&typeof window<"u"&&window.__doxaMapTokenPending&&(await window.__doxaMapTokenPending,J()))return;if(!t&&typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN&&(t=window.MAP_TOKEN),!t){typeof window<"u"&&!window.__doxaNoTokenWarned&&(window.__doxaNoTokenWarned=!0,console.warn('No Mapbox access token provided. Pass "tk" in profile-config JSON or set window.MAP_TOKEN.'));return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}if(await pb(e.value,y?Ko.maplibre.css:cb),J()||(await new Promise(pe=>requestAnimationFrame(pe)),J()))return;const H=e.value,Q=H.clientWidth,re=H.clientHeight;if(Q===0||re===0){console.error(`[useMapInstance] Container has ZERO dimensions (${Q}×${re}). Map will be invisible. Check that parent elements have CSS sizing.`);let pe=H.parentElement,le=0;for(;pe&&le<5;)pe=pe.parentElement,le++}const de=t;y||(z.accessToken=de);const me=()=>typeof window<"u"&&window.innerWidth>=1024,Ne=(pe,le)=>{if(u)return typeof c=="number"?c:ti;if(!me())return ti;const V=bb(pe,le,f,x);return typeof c=="number"?Math.max(c,V):V},ke=Ne(H.clientWidth,H.clientHeight),Ve=Z.lightPreset||(()=>{var pe;try{const le=typeof n=="function"?n():n;return(pe=le==null?void 0:le.basemap)==null?void 0:pe.lightPreset}catch{return}})();if(y){w.value=new z.Map({container:e.value,style:gb(j,Ve),locale:_u(G(),"maplibre"),center:s,zoom:i,minZoom:ke,maxZoom:f,pitch:b,bearing:v,dragRotate:!1,renderWorldCopies:k,...r?{bounds:r,...l?{fitBoundsOptions:l}:{}}:{},...P?{maxBounds:P}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),$u(w.value);try{e.value.__doxaMap=w.value}catch{}}else{const pe=typeof n=="function"?n():n;w.value=new z.Map({accessToken:de,container:e.value,style:j,locale:_u(G(),"mapbox"),...pe?{config:pe}:{},center:s,zoom:i,minZoom:ke,maxZoom:f,pitch:b,bearing:v,dragRotate:!1,touchPitch:!1,renderWorldCopies:k,...r?{bounds:r,...l?{fitBoundsOptions:l}:{}}:{},...P?{maxBounds:P}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),$u(w.value);try{e.value.__doxaMap=w.value}catch{}}try{let pe=!1;w.value.on("error",le=>{var h,m;const V=((h=le==null?void 0:le.error)==null?void 0:h.status)??(le==null?void 0:le.status),p=String(((m=le==null?void 0:le.error)==null?void 0:m.url)||(le==null?void 0:le.sourceId)||"");V!==401&&V!==403||pe||(pe=!0,console.error(`[doxa-maps] Mapbox returned ${V} for a TILE request while the style loaded fine. That is a URL RESTRICTION on the access token, not a bad token and not a bug in this map. Add this page's origin (${typeof location<"u"?location.origin:"this origin"}) to the token's URL restrictions in the Mapbox account. The map will keep its data layer and stay blank underneath until then.`+(p?` First failing request: ${p.slice(0,120)}`:"")))})}catch{}try{w.value.touchZoomRotate.disableRotation()}catch{}E=Xm(((Ue=e.value)==null?void 0:Ue.parentElement)||null,{enabled:A});let xe=ke,$e=null;_=()=>{const pe=w.value;if(!pe)return;const le=Ne(H.clientWidth,H.clientHeight);le!==xe&&(xe=le,pe.setMinZoom(le)),pe.getZoom(){$e=null;const V=w.value;if(!V)return;const p=Ne(H.clientWidth,H.clientHeight);if(V.getZoom(){$e&&(clearTimeout($e),$e=null)},w.value.on("resize",_),typeof window<"u"&&(window.addEventListener("resize",_),window.addEventListener("orientationchange",_)),w.value.on("style.load",()=>{if(w.value&&bu(w.value,G()),Z.paint&&w.value){const pe=eb(w.value,Z.paint);console.info("[useMapInstance] style paint applied ("+a+"):",pe.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var pe;(pe=w.value)==null||pe.resize(),w.value&&w.value.setMinZoom(Ne(H.clientWidth,H.clientHeight)),$.value=!0})})}function q(){if(w.value){if(_&&(w.value.off("resize",_),typeof window<"u"&&(window.removeEventListener("resize",_),window.removeEventListener("orientationchange",_)),_=null),S){try{S()}catch{}S=null}E&&(E(),E=null);try{const j=typeof window<"u"?window:null;j&&j.__doxaLogoOwner===w.value&&(j.__doxaLogoOwner=null)}catch{}const Z=w.value;w.value.remove();try{e&&e.value&&e.value.__doxaMap===Z&&(e.value.__doxaMap=null)}catch{}w.value=null,$.value=!1}}if(U&&typeof U=="object"&&"value"in U)try{lt(U,()=>{w.value&&$.value&&bu(w.value,G())})}catch{}return{map:w,isMapReady:$,initializeMap:M,destroy:q}}const wu="doxa-prayed-local",$b=7*24*60*60*1e3;function yb(){try{const e=localStorage.getItem(wu);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function Ab(e){try{localStorage.setItem(wu,JSON.stringify(e))}catch{}}function wb(){const e=Date.now(),t=yb();let o=!1;for(const[n,a]of Object.entries(t))(typeof a!="number"||e-a>$b)&&(delete t[n],o=!0);return o&&Ab(t),new Set(Object.keys(t))}function kb(e){const t=wb();return!t.size||!Array.isArray(e)?e:e.map(o=>(Number(o&&o.peoplePraying)||0)>0||!o||!t.has(o.slug)?o:{...o,peoplePraying:1})}const ro={Chamacoco:"Zamucoan",Ninam:"Yanomaman",Yagua:"Yaguan",Muinane:"Witotoan",Finnish:"Uralic","Hill Mari":"Uralic",Mansi:"Uralic","Meadow Mari":"Uralic","North Saami":"Uralic",Carabayo:"Unclassified",Kujarge:"Unclassified",Shabo:"Unclassified",Ainu:"Turkic",Kazakh:"Turkic","Khorasani Turkish":"Turkic",Kyrgyz:"Turkic","Northern Uzbek":"Turkic","South Azerbaijani":"Turkic",Turkish:"Turkic",Tuvan:"Turkic",Uyghur:"Turkic",Amundava:"Tupian",Araweté:"Tupian","Asurini of Xingú":"Tupian","Avá-Canoeiro":"Tupian",Awetí:"Tupian",Kamayurá:"Tupian",Karo:"Tupian",Morerebi:"Tupian",Tenharim:"Tupian","Uru-Eu-Wau-Wau":"Tupian","Uru-Pa-In":"Tupian",Wayampi:"Tupian","Zo’é":"Tupian",Evenki:"Tungusic",Xibe:"Tungusic",Carapana:"Tucanoan",Cubeo:"Tucanoan",Desano:"Tucanoan",Macuna:"Tucanoan",Piratapuyo:"Tucanoan",Siona:"Tucanoan",Siriano:"Tucanoan",Tucano:"Tucanoan",Tuyuca:"Tucanoan",Waimaha:"Tucanoan",Tay:"Trans-New Guinea",Adi:"Sino-Tibetan",Akha:"Sino-Tibetan","Amdo Tibetan":"Sino-Tibetan",Axi:"Sino-Tibetan",Biyo:"Sino-Tibetan","Boro (India)":"Sino-Tibetan",Brokkat:"Sino-Tibetan",Bugun:"Sino-Tibetan",Byangsi:"Sino-Tibetan","Central Lalo":"Sino-Tibetan","Central Tibetan":"Sino-Tibetan",Chak:"Sino-Tibetan",Chalikha:"Sino-Tibetan",Chaudangsi:"Sino-Tibetan",Chocangacakha:"Sino-Tibetan",Darlong:"Sino-Tibetan",Dhimal:"Sino-Tibetan","Digaro-Mishmi":"Sino-Tibetan",Dzalakha:"Sino-Tibetan","Eastern Nisu":"Sino-Tibetan",Ersu:"Sino-Tibetan",Gahri:"Sino-Tibetan",Gongduk:"Sino-Tibetan",Gyalsumdo:"Sino-Tibetan",Hani:"Sino-Tibetan","Idu-Mishmi":"Sino-Tibetan",Kaike:"Sino-Tibetan",Kanashi:"Sino-Tibetan",Katso:"Sino-Tibetan",Khamba:"Sino-Tibetan",Koireng:"Sino-Tibetan",Kucong:"Sino-Tibetan",Kurtokha:"Sino-Tibetan",Ladakhi:"Sino-Tibetan",Lakha:"Sino-Tibetan","Lang’e":"Sino-Tibetan",Lhokpu:"Sino-Tibetan",Lolopo:"Sino-Tibetan",Lunanakha:"Sino-Tibetan","Mandarin Chinese":"Sino-Tibetan",Meitei:"Sino-Tibetan","Miju-Mishmi":"Sino-Tibetan",Mpi:"Sino-Tibetan",Na:"Sino-Tibetan",Namuyi:"Sino-Tibetan",Narua:"Sino-Tibetan",Naxi:"Sino-Tibetan","Northern Muji":"Sino-Tibetan",Nuosu:"Sino-Tibetan",Nupbikha:"Sino-Tibetan",Nyenkha:"Sino-Tibetan",Olekha:"Sino-Tibetan",Pahari:"Sino-Tibetan",Pattani:"Sino-Tibetan","Phana’":"Sino-Tibetan",Phula:"Sino-Tibetan",Phunoi:"Sino-Tibetan",Puma:"Sino-Tibetan",Puroik:"Sino-Tibetan",Raji:"Sino-Tibetan",Rawat:"Sino-Tibetan",Sani:"Sino-Tibetan",Sherdukpen:"Sino-Tibetan",Sherpa:"Sino-Tibetan",Shuhi:"Sino-Tibetan",Sila:"Sino-Tibetan",Singpho:"Sino-Tibetan",Sunwar:"Sino-Tibetan","Tawang Monpa":"Sino-Tibetan",Tseku:"Sino-Tibetan",Tshangla:"Sino-Tibetan",Usoi:"Sino-Tibetan","Western Minyag":"Sino-Tibetan","Wusa Nasu":"Sino-Tibetan","Xiang Chinese":"Sino-Tibetan",Yakkha:"Sino-Tibetan","Youle Jinuo":"Sino-Tibetan","Yue Chinese":"Sino-Tibetan",Zakhring:"Sino-Tibetan","Afghan Sign Language":"Sign Language","Albanian Sign Language":"Sign Language","Algerian Sign Language":"Sign Language","American Sign Language":"Sign Language","Armenian Sign Language":"Sign Language","British Sign Language":"Sign Language","Bulgarian Sign Language":"Sign Language","Cambodian Sign Language":"Sign language","Cuban Sign Language":"Sign Language","Egyptian Sign Language":"Sign Language","Greek Sign Language":"Sign Language","Guinean Sign Language":"Sign Language","Hong Kong Sign Language":"Sign Language","Icelandic Sign Language":"Sign Language","Iranian Sign Language":"Sign Language","Israeli Sign Language":"Sign Language","Jamaican Sign Language":"Sign Language","Jordanian Sign Language":"Sign Language","Laos Sign Language":"Sign Language","Libyan Sign Language":"Sign Language","Maltese Sign Language":"Sign Language","Mauritian Sign Language":"Sign Language","Moroccan Sign Language":"Sign Language","Mozambican Sign Language":"Sign Language","Myanmar Sign Language":"Sign language","Natural Sign Language":"Sign Language","Pakistan Sign Language":"Sign Language","Papua New Guinean Sign Language":"Sign language","Russian Sign Language":"Sign Language","Saudi Arabian Sign Language":"Sign Language","Sign Language of the Netherlands":"Sign Language","Solomon Islands Sign Language":"Sign Language","Sri Lankan Sign Language":"Sign Language","Swedish Sign Language":"Sign Language","Turkish Sign Language":"Sign Language","Northern Conchucos Ancash Quechua":"Quechuan","Northern Pastaza Quichua":"Quechuan",Hupdë:"Puinavean",Amahuaca:"Panoan",Korubo:"Panoan",Sharanahua:"Panoan","Shipibo-Conibo":"Panoan",Yaminahua:"Panoan",Yawanawa:"Panoan",Afitti:"Nilo-Saharan",Assangori:"Nilo-Saharan","Beli (South Sudan)":"Nilo-Saharan",Berta:"Nilo-Saharan",Burun:"Nilo-Saharan","Dar Daju Daju":"Nilo-Saharan","Dar Fur Daju":"Nilo-Saharan","Dar Sila Daju":"Nilo-Saharan",Dazaga:"Nilo-Saharan","Dendi (Benin)":"Nilo-Saharan",Dilling:"Nilo-Saharan",Fur:"Nilo-Saharan",Gbaya:"Nilo-Saharan",Ghulfan:"Nilo-Saharan",Gwama:"Nilo-Saharan","Humburi Senni Songhay":"Nilo-Saharan",Jopadhola:"Nilo-Saharan",Kadaru:"Nilo-Saharan",Kanga:"Nilo-Saharan",Karanga:"Nilo-Saharan",Karko:"Nilo-Saharan",Kebu:"Nilo-Saharan",Keiga:"Nilo-Saharan",Keliko:"Nilo-Saharan",Kendeje:"Nilo-Saharan",Kibet:"Nilo-Saharan","Komo (Sudan)":"Nilo-Saharan",Korandje:"Nilo-Saharan",Kulfa:"Nilo-Saharan",Kwegu:"Nilo-Saharan",Laarim:"Nilo-Saharan",Logorik:"Nilo-Saharan",Majang:"Nilo-Saharan","Manga Kanuri":"Nilo-Saharan",Mango:"Nilo-Saharan",Mararit:"Nilo-Saharan",Marfa:"Nilo-Saharan",Midob:"Nilo-Saharan","Mo’da":"Nilo-Saharan",Morom:"Nilo-Saharan",Moru:"Nilo-Saharan",Naba:"Nilo-Saharan",Nara:"Nilo-Saharan",Njalgulgule:"Nilo-Saharan",Nuer:"Nilo-Saharan","Nyamusa-Molo":"Nilo-Saharan",Nyangatom:"Nilo-Saharan","Olu’bo":"Nilo-Saharan",Opo:"Nilo-Saharan",Päri:"Nilo-Saharan","Sara Kaba Naa":"Nilo-Saharan",Surbakhal:"Nilo-Saharan",Tadaksahak:"Nilo-Saharan","Tama (Chad)":"Nilo-Saharan",Temein:"Nilo-Saharan",Thuri:"Nilo-Saharan","Tirmaga-Chai Suri":"Nilo-Saharan",Toposa:"Nilo-Saharan",Tumtum:"Nilo-Saharan","Wali (Sudan)":"Nilo-Saharan","Yerwa Kanuri":"Nilo-Saharan",Yulu:"Nilo-Saharan",Zaghawa:"Nilo-Saharan","Adamawa Fulfulde":"Niger-Congo",Akaselem:"Niger-Congo","Amba (Uganda)":"Niger-Congo",Anii:"Niger-Congo",Baangi:"Niger-Congo",Badyara:"Niger-Congo","Bago-Kusuntu":"Niger-Congo",Bai:"Niger-Congo","Bainouk-Gunyaamolo":"Niger-Congo",Bamanankan:"Niger-Congo","Banda-Mbrès":"Niger-Congo",Bandial:"Niger-Congo",Bankagooma:"Niger-Congo","Belanda Viri":"Niger-Congo",Bemba:"Niger-Congo",Bolgo:"Niger-Congo","Bon Gula":"Niger-Congo",Bua:"Niger-Congo",Chichewa:"Niger-Congo","Chung (Cameroon)":"Niger-Congo","Ci Gbe":"Niger-Congo",Degema:"Niger-Congo",Dek:"Niger-Congo",Dhimba:"Niger-Congo",Dogoso:"Niger-Congo","East Limba":"Niger-Congo",Engenni:"Niger-Congo",Epie:"Niger-Congo",Éwé:"Niger-Congo",Fania:"Niger-Congo",Foodo:"Niger-Congo",Fwe:"Niger-Congo",Gciriku:"Niger-Congo",Gwa:"Niger-Congo",Herero:"Niger-Congo",Ibuoro:"Niger-Congo","Jenaama Bozo":"Niger-Congo",Jita:"Niger-Congo",Jula:"Niger-Congo",Kabiyè:"Niger-Congo",Kadung:"Niger-Congo",Kakabe:"Niger-Congo",Kalamsé:"Niger-Congo","Kami (Tanzania)":"Niger-Congo","Kango (Bas-Uélé District)":"Niger-Congo",Kasem:"Niger-Congo","Kelengaxo Bozo":"Niger-Congo",Khe:"Niger-Congo",Khisa:"Niger-Congo",Kim:"Niger-Congo",Kinyarwanda:"Niger-Congo",Kipfokomu:"Niger-Congo",Kitharaka:"Niger-Congo",Kiyombe:"Niger-Congo",Ko:"Niger-Congo",Koalib:"Niger-Congo",Koke:"Niger-Congo",Konongo:"Niger-Congo","Koro Nulu":"Niger-Congo","Koro Zuba":"Niger-Congo",Kuhane:"Niger-Congo",Kunda:"Niger-Congo",Kuranko:"Niger-Congo",Kuria:"Niger-Congo",Kwangali:"Niger-Congo",Lame:"Niger-Congo",Laru:"Niger-Congo",Lopa:"Niger-Congo","Makhuwa-Meetto":"Niger-Congo","Makhuwa-Shirima":"Niger-Congo","Malawi Nyiha":"Niger-Congo",Mandinka:"Niger-Congo",Mankanya:"Niger-Congo",Mansoanka:"Niger-Congo",Mbukushu:"Niger-Congo","Mende (Sierra Leone)":"Niger-Congo",Miyobe:"Niger-Congo",Mushungulu:"Niger-Congo","Mwali Comorian":"Niger-Congo","Mwera (Chimwera)":"Niger-Congo",Ndemli:"Niger-Congo",Ndengereko:"Niger-Congo",Ndumu:"Niger-Congo",Ndunga:"Niger-Congo","Ndzwani Comorian":"Niger-Congo",Ngile:"Niger-Congo","Northwest Gbaya":"Niger-Congo",Notre:"Niger-Congo",Nyamwanga:"Niger-Congo",Nyankore:"Niger-Congo",Nyengo:"Niger-Congo",Okpamheri:"Niger-Congo",Osatu:"Niger-Congo","Pana (Burkina Faso)":"Niger-Congo",Pulaar:"Niger-Congo",Pular:"Niger-Congo",Rufiji:"Niger-Congo","Sankaran Maninka":"Niger-Congo",Sapo:"Niger-Congo","Senara Sénoufo":"Niger-Congo",Shanga:"Niger-Congo",Sininkere:"Niger-Congo","Southern Ngbandi":"Niger-Congo",Swahili:"Niger-Congo","Syenara Sénoufo":"Niger-Congo",Tagbu:"Niger-Congo",Tagoi:"Niger-Congo",Tegali:"Niger-Congo",Tem:"Niger-Congo","Tiéyaxo Bozo":"Niger-Congo",Tiyaa:"Niger-Congo",Tocho:"Niger-Congo","Tonga (Zambia)":"Niger-Congo",Totela:"Niger-Congo","Toura (Côte d’Ivoire)":"Niger-Congo",Tswa:"Niger-Congo",Tumbuka:"Niger-Congo",Ukaan:"Niger-Congo",Uneme:"Niger-Congo",Vai:"Niger-Congo",Vute:"Niger-Congo",Waama:"Niger-Congo",Warnang:"Niger-Congo",Wolof:"Niger-Congo",Yao:"Niger-Congo",Yauma:"Niger-Congo",Yom:"Niger-Congo","Zan Gula":"Niger-Congo",Zande:"Niger-Congo",Zigula:"Niger-Congo",Mamaindê:"Nambikwara",Aghul:"Nakh-Daghestanian",Akhvakh:"Nakh-Daghestanian",Andi:"Nakh-Daghestanian",Avar:"Nakh-Daghestanian",Bagvalal:"Nakh-Daghestanian",Botlikh:"Nakh-Daghestanian",Chamalal:"Nakh-Daghestanian",Chechen:"Nakh-Daghestanian",Dargwa:"Nakh-Daghestanian",Kaitag:"Nakh-Daghestanian",Karata:"Nakh-Daghestanian",Khvarshi:"Nakh-Daghestanian",Tindi:"Nakh-Daghestanian",Pirahã:"Muran",Bonan:"Mongolic","China Buriat":"Mongolic",Daur:"Mongolic","Kalmyk-Oirat":"Mongolic","Peripheral Mongolian":"Mongolic","Russia Buriat":"Mongolic",Tagdal:"Mixed language",Wutunhua:"Mixed language","Ashéninka Perené":"Maipurean",Baniwa:"Maipurean",Cabiyarí:"Maipurean",Curripaco:"Maipurean","Enawené-Nawé":"Maipurean",Kanamarí:"Maipurean",Mehináku:"Maipurean","Pichis Ashéninka":"Maipurean",Waurá:"Maipurean",Bangime:"Language isolate",Burushaski:"Language isolate","Ai-Cham":"Kra-Dai",Aiton:"Kra-Dai","Dai Zhuang":"Kra-Dai",Duoluo:"Kra-Dai","Green Gelao":"Kra-Dai","Guibian Zhuang":"Kra-Dai",Hlai:"Kra-Dai",Jiamao:"Kra-Dai",Kang:"Kra-Dai",Khün:"Kra-Dai",Kuan:"Kra-Dai",Lachi:"Kra-Dai","Laha (Viet Nam)":"Kra-Dai",Lao:"Kra-Dai",Lü:"Kra-Dai","Mak (China)":"Kra-Dai","Northeastern Thai":"Kra-Dai","Northern Dong":"Kra-Dai","Northern Thai":"Kra-Dai",Nyaw:"Kra-Dai",Phake:"Kra-Dai","Phu Thai":"Kra-Dai",Qabiao:"Kra-Dai",Qau:"Kra-Dai","Qiubei Zhuang":"Kra-Dai",Shan:"Kra-Dai","Southern Dong":"Kra-Dai",Sui:"Kra-Dai","T’en":"Kra-Dai","Tai Daeng":"Kra-Dai","Tai Dam":"Kra-Dai","Tai Hongjin":"Kra-Dai","Tai Nüa":"Kra-Dai","Tai Ya":"Kra-Dai","Tai Yo":"Kra-Dai","Ts’ün-Lao":"Kra-Dai","Yang Zhuang":"Kra-Dai",Yerong:"Kra-Dai",Yong:"Kra-Dai",Yoy:"Kra-Dai",Khoekhoe:"Khoe-Kwadi",Karajá:"Karajá","Pará Gavião":"Jean",Suyá:"Jean",Japanese:"Japonic","Oki-No-Erabu":"Japonic","Toku-No-Shima":"Japonic",Yaeyama:"Japonic",Yoron:"Japonic","Adivasi Oriya":"Indo-European",Afrikaans:"Indo-European","Alviri-Vidari":"Indo-European",Angika:"Indo-European",Assamese:"Indo-European",Bagheli:"Indo-European",Bagri:"Indo-European",Bashkardi:"Indo-European",Bateri:"Indo-European",Bengali:"Indo-European",Bhojpuri:"Indo-European",Bhunjia:"Indo-European",Bilaspuri:"Indo-European",Bosnian:"Indo-European","Braj Bhasha":"Indo-European",Brokskat:"Indo-European",Bundeli:"Indo-European",Catalan:"Indo-European",Chambeali:"Indo-European",Chhattisgarhi:"Indo-European",Dameli:"Indo-European",Dari:"Indo-European",Dhundari:"Indo-European",Dogri:"Indo-European",Domari:"Indo-European",Dutch:"Indo-European","Eastern Balochi":"Indo-European","Eastern Panjabi":"Indo-European","Eastern Yiddish":"Indo-European",English:"Indo-European",French:"Indo-European",Gaddi:"Indo-European",Garhwali:"Indo-European",Gawri:"Indo-European",Gowro:"Indo-European",Gujarati:"Indo-European",Gujari:"Indo-European",Halbi:"Indo-European",Haroti:"Indo-European",Haryanvi:"Indo-European",Hindi:"Indo-European","Indus Kohistani":"Indo-European","Iranian Persian":"Indo-European",Ishkashimi:"Indo-European",Kacchi:"Indo-European",Kalkoti:"Indo-European",Kanauji:"Indo-European",Kangri:"Indo-European",Karingani:"Indo-European",Kashmiri:"Indo-European",Kati:"Indo-European",Khunsari:"Indo-European",Konkani:"Indo-European",Kudmali:"Indo-European",Kumaoni:"Indo-European",Kumzari:"Indo-European",Laki:"Indo-European",Lasi:"Indo-European",Luwati:"Indo-European",Magahi:"Indo-European",Maithili:"Indo-European",Maldivian:"Indo-European",Malvi:"Indo-European",Marathi:"Indo-European","Marwari (India)":"Indo-European",Mewari:"Indo-European",Munji:"Indo-European",Nepali:"Indo-European",Nimadi:"Indo-European","Northern Kurdish":"Indo-European",Odia:"Indo-European","Pahari-Potwari":"Indo-European",Palula:"Indo-European",Panchpargania:"Indo-European",Pangwali:"Indo-European",Parachi:"Indo-European",Portuguese:"Indo-European",Russian:"Indo-European",Sadri:"Indo-European",Sanglechi:"Indo-European",Sarikoli:"Indo-European",Savi:"Indo-European",Semnani:"Indo-European",Serbian:"Indo-European",Shabak:"Indo-European",Shahrudi:"Indo-European",Shekhawati:"Indo-European",Shina:"Indo-European",Shughni:"Indo-European",Shumashti:"Indo-European",Sindhi:"Indo-European",Sivandi:"Indo-European",Soi:"Indo-European","Southern Balochi":"Indo-European",Spanish:"Indo-European",Tajik:"Indo-European",Talysh:"Indo-European",Urdu:"Indo-European",Ushojo:"Indo-European",Vaghri:"Indo-European","Vlax Romani":"Indo-European",Wagdi:"Indo-European",Wakhi:"Indo-European",Waneci:"Indo-European","Western Balochi":"Indo-European",Yadgha:"Indo-European","Bu-Nao Bunu":"Hmong-Mien","Central Mashan Miao":"Hmong-Mien","Chuanqiandian Cluster Miao":"Hmong-Mien","Eastern Xiangxi Miao":"Hmong-Mien","Iu Mien":"Hmong-Mien","Luopohe Miao":"Hmong-Mien","Northern Qiandong Miao":"Hmong-Mien","Pa-Hng":"Hmong-Mien","Southwestern Huishui Miao":"Hmong-Mien","Wunai Bunu":"Hmong-Mien","Younuo Bunu":"Hmong-Mien",Amarakaeri:"Harákmbut",Huachipaeri:"Harákmbut",Cuiba:"Guajiboan",Macaguán:"Guajiboan",Tlicho:"Eyak-Athabaskan",Kannada:"Dravidian",Kodava:"Dravidian","Korra Koraga":"Dravidian","Kota (India)":"Dravidian",Kudiya:"Dravidian",Malapandaram:"Dravidian",Malayalam:"Dravidian",Muthuvan:"Dravidian",Ravula:"Dravidian",Sholaga:"Dravidian",Tamil:"Dravidian",Telugu:"Dravidian",Tulu:"Dravidian",Vishavan:"Dravidian","Andaman Hindi Creole":"Creole","Cocos Islands Malay":"Creole","Juba Arabic":"Creole",Nubi:"Creole",Barí:"Chibchan","Barro Negro Tunebo":"Chibchan","Western Tunebo":"Chibchan",Ikpeng:"Cariban","Kuikúro-Kalapálo":"Cariban",Pemon:"Cariban",Trió:"Cariban","Waimiri-Atroarí":"Cariban",Waiwai:"Cariban",Yukpa:"Cariban",Borôro:"Bororoan",Chachi:"Barbacoan","Abai Sungai":"Austronesian",Ambelau:"Austronesian",Asilulu:"Austronesian",Balaesang:"Austronesian","Batak Alas-Kluet":"Austronesian","Batak Dairi":"Austronesian","Batak Karo":"Austronesian",Bonerate:"Austronesian",Bonggi:"Austronesian",Brunei:"Austronesian","Brunei Bisaya":"Austronesian",Buol:"Austronesian","Central Malay":"Austronesian","Central Sama":"Austronesian","Coastal Konjo":"Austronesian",Dampelas:"Austronesian","Dibabawon Manobo":"Austronesian",Dondo:"Austronesian",Gane:"Austronesian","Geser-Gorom":"Austronesian","Highland Konjo":"Austronesian",Hitu:"Austronesian",Iban:"Austronesian",Indonesian:"Austronesian","Kadazan Dusun":"Austronesian",Kiput:"Austronesian",Komodo:"Austronesian",Kompane:"Austronesian",Lahanan:"Austronesian","Lampung Nyo":"Austronesian","Larike-Wakasihu":"Austronesian",Lola:"Austronesian",Luhu:"Austronesian",Malay:"Austronesian",Mariri:"Austronesian",Moronene:"Austronesian",Rukai:"Austronesian","Sabah Bisaya":"Austronesian","Seit-Kaitetu":"Austronesian",Sula:"Austronesian","Tae’":"Austronesian",Tajio:"Austronesian",Tomini:"Austronesian",Tutong:"Austronesian",Ujir:"Austronesian",Aheu:"Austro-Asiatic",Alak:"Austro-Asiatic",Bit:"Austro-Asiatic","Bo (Laos)":"Austro-Asiatic",Bondo:"Austro-Asiatic",Brao:"Austro-Asiatic",Bugan:"Austro-Asiatic",Chong:"Austro-Asiatic",Chut:"Austro-Asiatic",Danau:"Austro-Asiatic",Halang:"Austro-Asiatic","Halang Doan":"Austro-Asiatic",Hu:"Austro-Asiatic",Hung:"Austro-Asiatic",Ir:"Austro-Asiatic",Kensiu:"Austro-Asiatic",Khmu:"Austro-Asiatic",Khua:"Austro-Asiatic",Khuen:"Austro-Asiatic",Koda:"Austro-Asiatic","Kon Keu":"Austro-Asiatic",Kriang:"Austro-Asiatic",Kuay:"Austro-Asiatic",Laven:"Austro-Asiatic",Maleng:"Austro-Asiatic","Man Met":"Austro-Asiatic",Mang:"Austro-Asiatic",Minriq:"Austro-Asiatic",Mlabri:"Austro-Asiatic",Nguôn:"Austro-Asiatic",Nyaheun:"Austro-Asiatic",Nyahkur:"Austro-Asiatic","O’du":"Austro-Asiatic",Ong:"Austro-Asiatic",Oy:"Austro-Asiatic",Pacoh:"Austro-Asiatic","Phong-Kniang":"Austro-Asiatic",Prai:"Austro-Asiatic",Puoc:"Austro-Asiatic",Rengao:"Austro-Asiatic",Rmeet:"Austro-Asiatic","Rumai Palaung":"Austro-Asiatic",Sapuan:"Austro-Asiatic","Shwe Palaung":"Austro-Asiatic","So (Laos)":"Austro-Asiatic",Sou:"Austro-Asiatic","Tai Loi":"Austro-Asiatic",Talieng:"Austro-Asiatic",Tareng:"Austro-Asiatic",Tho:"Austro-Asiatic",U:"Austro-Asiatic","Upper Ta’oih":"Austro-Asiatic",Vietnamese:"Austro-Asiatic","Western Katu":"Austro-Asiatic",Suruahá:"Arauan",Jarawa:"Andamanese",Öñge:"Andamanese",Sentinel:"Andamanese",Afar:"Afro-Asiatic","Alaba-K’abeena":"Afro-Asiatic",Alagwa:"Afro-Asiatic",Ale:"Afro-Asiatic","Algerian Arabic":"Afro-Asiatic",Amharic:"Afro-Asiatic",Arbore:"Afro-Asiatic","Baharna Arabic":"Afro-Asiatic",Barein:"Afro-Asiatic",Bedawiyet:"Afro-Asiatic",Bidiyo:"Afro-Asiatic",Bilen:"Afro-Asiatic",Birgit:"Afro-Asiatic",Boor:"Afro-Asiatic","Borana-Arsi-Guji Oromo":"Afro-Asiatic",Buduma:"Afro-Asiatic","Central Atlas Tamazight":"Afro-Asiatic","Chadian Arabic":"Afro-Asiatic",Chenoua:"Afro-Asiatic",Ciwogai:"Afro-Asiatic",Daasanach:"Afro-Asiatic",Dabarre:"Afro-Asiatic",Dangaléat:"Afro-Asiatic",Deno:"Afro-Asiatic",Diri:"Afro-Asiatic",Duwai:"Afro-Asiatic","Eastern Egyptian Bedawi Arabic":"Afro-Asiatic","Eastern Oromo":"Afro-Asiatic",Garre:"Afro-Asiatic",Geruma:"Afro-Asiatic",Giiwo:"Afro-Asiatic",Gorowa:"Afro-Asiatic","Gulf Arabic":"Afro-Asiatic","Hadrami Arabic":"Afro-Asiatic",Harsusi:"Afro-Asiatic",Hassaniyya:"Afro-Asiatic",Hausa:"Afro-Asiatic",Hebrew:"Afro-Asiatic","Hijazi Arabic":"Afro-Asiatic",Hobyót:"Afro-Asiatic",Hozo:"Afro-Asiatic",Jiiddu:"Afro-Asiatic",Jimi:"Afro-Asiatic",Jina:"Afro-Asiatic","Jonkor Bourmataguil":"Afro-Asiatic","Judeo-Iraqi Arabic":"Afro-Asiatic","Judeo-Moroccan Arabic":"Afro-Asiatic",Kabalai:"Afro-Asiatic",Kajakse:"Afro-Asiatic",Kariya:"Afro-Asiatic","Karo (Ethiopia)":"Afro-Asiatic",Kutto:"Afro-Asiatic","Levantine Arabic":"Afro-Asiatic",Libido:"Afro-Asiatic","Libyan Arabic":"Afro-Asiatic","Lishana Deni":"Afro-Asiatic",Maaka:"Afro-Asiatic",Maay:"Afro-Asiatic",Majera:"Afro-Asiatic",Male:"Afro-Asiatic",Maslam:"Afro-Asiatic",Masmaje:"Afro-Asiatic",Mburku:"Afro-Asiatic",Mehri:"Afro-Asiatic","Mesopotamian Arabic":"Afro-Asiatic",Migaama:"Afro-Asiatic",Mogum:"Afro-Asiatic","Moroccan Arabic":"Afro-Asiatic",Mositacha:"Afro-Asiatic",Mubi:"Afro-Asiatic",Mukulu:"Afro-Asiatic",Nafusi:"Afro-Asiatic","Najdi Arabic":"Afro-Asiatic",Nyam:"Afro-Asiatic","Omani Arabic":"Afro-Asiatic","Pa’a":"Afro-Asiatic",Saba:"Afro-Asiatic",Saho:"Afro-Asiatic","Sanaani Arabic":"Afro-Asiatic",Seze:"Afro-Asiatic",Shehri:"Afro-Asiatic",Shekkacho:"Afro-Asiatic",Sheko:"Afro-Asiatic","Shihhi Arabic":"Afro-Asiatic",Siwi:"Afro-Asiatic",Sokoro:"Afro-Asiatic",Soqotri:"Afro-Asiatic","South Levantine Arabic":"Afro-Asiatic","Standard Arabic":"Afro-Asiatic","Sudanese Arabic":"Afro-Asiatic","Ta’izzi-Adeni Arabic":"Afro-Asiatic","Tahaggart Tamahaq":"Afro-Asiatic",Taznatit:"Afro-Asiatic",Tigré:"Afro-Asiatic",Toram:"Afro-Asiatic",Tsamai:"Afro-Asiatic",Tumzabt:"Afro-Asiatic",Tunni:"Afro-Asiatic",Waata:"Afro-Asiatic","West Central Oromo":"Afro-Asiatic",Xamtanga:"Afro-Asiatic",Zumbun:"Afro-Asiatic"},ku={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"},oi="languageFamily",vb="#000000",lo={"Indo-European":"#e74c3c",Dravidian:"#ff9800","Afro-Asiatic":"#27ae60","Sino-Tibetan":"#3498db","Niger-Congo":"#9b59b6",Unclassified:"#95a5a6","Nilo-Saharan":"#e91e63","Khoe-Kwadi":"#00bcd4","Austro-Asiatic":"#00bcd4","Kra-Dai":"#8e44ad",Austronesian:"#ff69b4","Hmong-Mien":"#f44336",Turkic:"#ffc107","Nakh-Daghestanian":"#009688",Mongolic:"#795548",Uralic:"#607d8b",Tungusic:"#4caf50",Japonic:"#ff5722",Cariban:"#673ab7",Tupian:"#03a9f4",Tucanoan:"#8bc34a",Maipurean:"#ffc107",Panoan:"#cddc39",Guajiboan:"#9e9e9e",Chibchan:"#ff7043",Quechuan:"#ab47bc",Jean:"#26a69a",Harákmbut:"#7e57c2",Nambikwara:"#42a5f5",Muran:"#66bb6a",Karajá:"#ffa726",Bororoan:"#ef5350",Arauan:"#5c6bc0",Yanomaman:"#26c6da",Yaguan:"#d4e157",Witotoan:"#78909c",Zamucoan:"#8d6e63",Puinavean:"#aed581",Barbacoan:"#4db6ac","Eyak-Athabaskan":"#7986cb","Trans-New Guinea":"#ba68c8",Andamanese:"#4dd0e1","Atlantic-Congo":"#7D3C98",Mande:"#B9770E","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},Sb=lo;function ni(e){return lo[e]||vb}const Tb=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(lo))t[e(o)]=o;return t})(),Lb={"tai-kadai":"Kra-Dai",none:"Unknown"};function ai(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return Lb[o]||Tb[o]||t}function vu(e){var t;return ni(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function si(){const e=["match",["get",oi]];return Object.entries(lo).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const Su=si,Cb=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Sb,PALETTE:lo,PROPERTY_KEY:oi,applyColor:si,buildColorExpression:Su,canonicalFamilyName:ai,default:{name:"Language Family",propertyKey:oi,palette:lo,colors:lo,getColor:vu,applyColor:si,buildColorExpression:Su,getLanguageFamilyColor:ni,canonicalFamilyName:ai},defaultFamilyColor:"#95a5a6",getColor:vu,getLanguageFamilyColor:ni,languageFamilyColors:lo},Symbol.toStringTag,{value:"Module"})),Tu="adoptionStatus",Vt={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Mb=Vt,ii={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},Eb=ii;function Lu(e){var n;const t=e.adoptionStatus??((n=e._raw)==null?void 0:n.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Vt.hasAdoption:Vt.notAdopted}function ri({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Vt.hasAdoption,["==",t,1],Vt.hasAdoption,Vt.notAdopted]}const Cu=ri,Nb=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Mb,ADOPTION_LABELS:Eb,LABELS:ii,PALETTE:Vt,PROPERTY_KEY:Tu,applyColor:ri,buildColorExpression:Cu,default:{name:"Adoption Progress",propertyKey:Tu,palette:Vt,colors:Vt,labels:ii,getColor:Lu,applyColor:ri,buildColorExpression:Cu},getColor:Lu},Symbol.toStringTag,{value:"Module"})),li="affinityBlock",Go="#95a5a6",Yt={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf",A018:"Tibetan Peoples",A019:"Himalayan Peoples"},Na={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000",A018:"#6C3483",A019:"#A569BD"},co=Na,Mu=Object.entries(Yt).reduce((e,[t,o])=>(e[o]=t,e),{}),ci=Object.entries(Yt).reduce((e,[t,o])=>(e[o]=co[t],e),{}),Eu=Yt;function ui(e){return Yt[e]||"Unknown"}function di(e){return co[e]||Go}function Nu(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?co[e]||Go:ci[e]||Go:Go}function xu(){return Object.entries(Yt).map(([e,t])=>({code:e,name:t,color:co[e]}))}function Pu(e){return{code:e,name:Yt[e]||"Unknown",color:co[e]||Go}}function Iu(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return di(t)}function Fu(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return ui(t)}function pi(){const e=["match",["get",li]];return Object.entries(co).forEach(([t,o])=>{e.push(t,o)}),e.push(Go),e}const Ou=pi,xb=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:co,AFFINITY_BLOCK_COLORS_BY_NAME:ci,AFFINITY_BLOCK_NAMES:Yt,AFFINITY_BLOCK_NAME_TO_CODE:Mu,NAMES:Eu,PALETTE:Na,PROPERTY_KEY:li,affinityBlockCodeLookup:Yt,affinityBlockCodeToColor:co,affinityBlockCodeToName:Yt,affinityBlockColors:ci,affinityBlockNameToCode:Mu,applyColor:pi,buildColorExpression:Ou,default:{name:"Affinity Block",propertyKey:li,palette:Na,colors:Na,names:Eu,getColor:Iu,applyColor:pi,buildColorExpression:Ou,getName:Fu,getAffinityBlockName:ui,getAffinityBlockColor:Nu,getAffinityBlockColorByCode:di,getAffinityBlocksArray:xu,getAffinityBlockData:Pu},getAffinityBlockColor:Nu,getAffinityBlockColorByCode:di,getAffinityBlockData:Pu,getAffinityBlockName:ui,getAffinityBlocksArray:xu,getColor:Iu,getName:Fu},Symbol.toStringTag,{value:"Module"}));function Pb(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(fi),e}const Hu=bi,Fb=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:Ib,PALETTE:xa,PROPERTY_KEY:gi,REGION_COLOR_ALIASES:mi,SLUG_PALETTE:Pa,applyColor:bi,buildColorExpression:Hu,default:{name:"DOXA Region",propertyKey:gi,palette:xa,colors:xa,slugColors:Pa,aliases:mi,fallback:fi,getColor:zu,applyColor:bi,buildColorExpression:Hu,getRegionColor:Ru,getRegionColorBySlug:hi},getColor:zu,getRegionColor:Ru,getRegionColorBySlug:hi},Symbol.toStringTag,{value:"Module"})),ju="engagementStatus",Jt={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Ob=Jt,_i={notEngaged:"Unengaged",hasEngagement:"Engaged"},Db=_i;function Bu(e){var n;const t=e.engagementStatus??((n=e._raw)==null?void 0:n.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Jt.hasEngagement:Jt.notEngaged}function $i({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Jt.hasEngagement,["==",t,1],Jt.hasEngagement,Jt.notEngaged]}const Wu=$i,Rb=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Ob,ENGAGEMENT_LABELS:Db,LABELS:_i,PALETTE:Jt,PROPERTY_KEY:ju,applyColor:$i,buildColorExpression:Wu,default:{name:"Engagement Progress",propertyKey:ju,palette:Jt,colors:Jt,labels:_i,getColor:Bu,applyColor:$i,buildColorExpression:Wu},getColor:Bu},Symbol.toStringTag,{value:"Module"})),Uu="peoplePraying",Ia=144,uo={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},zb=uo,yi={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},Hb=yi;function Fa(e){var n;const t=(e==null?void 0:e.peoplePraying)??((n=e==null?void 0:e._raw)==null?void 0:n.people_praying)??null,o=Number(t)||0;return o>=Ia?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function Ai(e){return uo[Fa(e)]}function Ku(e){var o;const t=(e==null?void 0:e.peoplePraying)??((o=e==null?void 0:e._raw)==null?void 0:o.people_praying)??null;return t!==null&&t>0}function Gu(e){return Fa(e)==="fullPrayer"}function qu(e){return Ai(e)}function wi({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Ia],uo.fullPrayer,[">",t,0],uo.hasPrayer,uo.noPrayer]}const Vu=wi,jb=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Ia,LABELS:yi,PALETTE:uo,PRAYER_COLORS:zb,PRAYER_LABELS:Hb,PROPERTY_KEY:Uu,applyColor:wi,buildColorExpression:Vu,checkHasFullPrayer:Gu,checkHasPrayer:Ku,default:{name:"Prayer Progress",propertyKey:Uu,palette:uo,colors:uo,labels:yi,threshold:Ia,getColor:qu,applyColor:wi,buildColorExpression:Vu,getPrayerLevel:Fa,getPrayerColor:Ai,checkHasPrayer:Ku,checkHasFullPrayer:Gu},getColor:qu,getPrayerColor:Ai,getPrayerLevel:Fa},Symbol.toStringTag,{value:"Module"})),Yu="religion",ki="#94a3b8",Oa={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},mt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function Ju(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return Oa[t]?t:"U"}function Xu(e){var o,n,a;const t=(e==null?void 0:e.religion)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.religion)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return mt[Ju(t)]||ki}function vi(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",mt.C,"M",mt.M,"H",mt.H,"B",mt.B,"E",mt.E,"J",mt.J,"S",mt.S,"N",mt.N,"O",mt.O,ki]}const Zu=vi,Bb={name:"Religion",propertyKey:Yu,palette:mt,families:Oa,getColor:Xu,applyColor:vi,buildColorExpression:Zu,fallback:ki};function Wb(e){const t=String(e||""),o=Oa[t]||t;return o?qt("religion.family."+o)||o:""}const Ub=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:mt,PROPERTY_KEY:Yu,RELIGION_FAMILIES:Oa,applyColor:vi,buildColorExpression:Zu,default:Bb,getColor:Xu,getReligionFamily:Ju,religionFamilyLabel:Wb},Symbol.toStringTag,{value:"Module"})),Qu="resourceType",po={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},Kb=po,Ln=["bible","jesusFilm","radio","gospel","audio","stories"],Si={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},Gb=Si;function Cn(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function ed(e){var t;for(const o of Ln)if((e[o]||((t=e._raw)==null?void 0:t[Cn(o)]))==="Available")return po.hasResources;return po.noResources}function td(e){var t;for(const o of Ln)if((e[o]||((t=e._raw)==null?void 0:t[Cn(o)]))==="Available")return!0;return!1}function od(e){var t;for(const o of Ln)if((e[o]||((t=e._raw)==null?void 0:t[Cn(o)]))==="Available")return o;return"noResources"}function Ti(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],po.hasResources,po.noResources]}const nd=Ti,qb=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Si,PALETTE:po,PROPERTY_KEY:Qu,RESOURCE_COLORS:Kb,RESOURCE_NAMES:Gb,RESOURCE_PRIORITY:Ln,applyColor:Ti,buildColorExpression:nd,default:{name:"Gospel Resources",propertyKey:Qu,palette:po,colors:po,names:Si,priority:Ln,getColor:ed,applyColor:Ti,buildColorExpression:nd,hasAnyResource:td,getResourceType:od,getCSVColumn:Cn},getCSVColumn:Cn,getColor:ed,getResourceType:od,hasAnyResource:td},Symbol.toStringTag,{value:"Module"})),ad="region",Li="#6d766e",sd={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},Mn={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Ci=Object.keys(Mn);function id(e){var o,n,a;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.wagf_region);return Mn[t]||Li}function Mi(){const e=["match",["coalesce",["get","region"],""]];for(const t of Ci)e.push(t,Mn[t]);return e.push(Li),e}const rd=Mi,Vb=Object.assign({"./adoption.js":Nb,"./affinity-block.js":xb,"./doxa-region.js":Fb,"./engagement.js":Rb,"./language-family.js":Cb,"./prayer-progress.js":jb,"./religion.js":Ub,"./resource.js":qb,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Mn,PROPERTY_KEY:ad,REGION_ORDER:Ci,WAGF_REGIONS:sd,applyColor:Mi,buildColorExpression:rd,default:{name:"WAGF Region",propertyKey:ad,palette:Mn,regions:sd,order:Ci,getColor:id,applyColor:Mi,buildColorExpression:rd,fallback:Li},getColor:id},Symbol.toStringTag,{value:"Module"}))}),Yb=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),Jb=e=>e.replace(/-/g,"_").toUpperCase(),Xb={...{STATUS:"status",CUSTOM:"custom"}};function Zb(e){for(const t of Object.keys(e).sort()){const o=t.split("/").pop().replace(/\.js$/,"");if(o.startsWith("_")||o.startsWith(".")||!e[t].default)continue;const a=Yb(o);Xb[Jb(o)]=a}}Zb(Vb);function Ei(e){return e==null?"":typeof e=="object"?e.label||e.value||"":String(e)}const Qb=[[/ sign language$/i,"Sign Language"]];function e_(e){var r,l;const t=Ei(e.languageFamily);if(t)return t;const o=String(((l=(r=e._raw)==null?void 0:r.primary_language)==null?void 0:l.value)||(e.language&&typeof e.language=="object"?e.language.value:"")||"").trim().toLowerCase();if(o&&ku[o])return ku[o];const n=Ei(e.language||e.primary_language);if(!n||typeof n!="string")return"";const a=n.trim(),s=a.split(",").map(c=>c.trim()).filter(Boolean);if(s.length>=2){const c=[...s].reverse().join(" ");if(ro[c])return ro[c];if(s.length>=3){const u=[s[1],s[0]].join(" ");if(ro[u])return ro[u]}}if(ro[a])return ro[a];const i=a.replace(/\s*\(.*?\)\s*$/,"").trim();if(i!==a&&ro[i])return ro[i];for(const[c,u]of Qb)if(c.test(a))return u;return""}function t_(e){const{mapId:t="unknown",dataSourceId:o="doxa-csv",dataSourceManager:n=null,dataStore:a=null,markRaw:s=T=>T}=e;n||console.error("useMapData: dataSourceManager is required!");const i=oe(!1),r=oe(null),l=oe(!1),c=oe([]),u=oe([]);ft()&&rt("normalizedPeopleGroups",u);const f=oe(null),b=oe([]),v=oe([]),k=oe([]),A=oe(null);async function x(){if(!n)throw new Error("dataSourceManager is required for useMapData");i.value=!0,r.value=null;try{if(await n.init(),a&&a.hasSourceData&&a.hasSourceData(o)){const j=a.getSourceData(o);u.value=s(j.normalizedData||[])}else{const j=await n.setActiveSource(o);for(const J of j){const z=Ei(J.language||J.primary_language);z&&(J.language=z);const H=e_(J);J.languageFamily=ai(H)}u.value=s(j),a&&a.cacheSourceData&&a.cacheSourceData(o,{normalizedData:j,timestamp:Date.now()})}c.value=s(kb(u.value.map(j=>({id:j.uniqueId,slug:j.slug||"",rop3:j.peopleGroupId,peopleId3:j.peopleId3,name:j.name,language:j.language,languageFamily:j.languageFamily,country:j.country,population:j.population,status:j.engagementStatus||j.status,latitude:j.latitude,longitude:j.longitude,lng:j.longitude,lat:j.latitude,description:j.description,imageUrl:j.imageUrl,doxaRegion:j.doxaRegion||j.wagfRegion||"",peoplePraying:j.peoplePraying??null,_normalized:j}))));const T=n.getDataByLanguageFamily();b.value=Object.entries(T).map(([j,J])=>{const z=J.reduce((H,Q)=>{const re=parseInt(Q.population)||0;return H+re},0);return{name:j,count:J.length,peopleGroupCount:J.length,population:z,groups:J}}).sort((j,J)=>J.count-j.count);const I=n.getDataByRegion();v.value=Object.entries(I).map(([j,J])=>{const z=J.reduce((H,Q)=>{const re=parseInt(Q.population)||0;return H+re},0);return{name:j,count:J.length,peopleGroupCount:J.length,population:z,groups:J}}).sort((j,J)=>j.name.localeCompare(J.name));const y={bible:{count:0,population:0,groups:[]},jesusFilm:{count:0,population:0,groups:[]},radio:{count:0,population:0,groups:[]},gospel:{count:0,population:0,groups:[]},audio:{count:0,population:0,groups:[]},stories:{count:0,population:0,groups:[]},hasResources:{count:0,population:0,groups:[]},noResources:{count:0,population:0,groups:[]}};u.value.forEach(j=>{const J=parseInt(j.population)||0;let z=!1;j.bible==="Available"&&(y.bible.count++,y.bible.population+=J,y.bible.groups.push(j),z=!0),j.jesusFilm==="Available"&&(y.jesusFilm.count++,y.jesusFilm.population+=J,y.jesusFilm.groups.push(j),z=!0),j.radio==="Available"&&(y.radio.count++,y.radio.population+=J,y.radio.groups.push(j),z=!0),j.gospel==="Available"&&(y.gospel.count++,y.gospel.population+=J,y.gospel.groups.push(j),z=!0),j.audio==="Available"&&(y.audio.count++,y.audio.population+=J,y.audio.groups.push(j),z=!0),j.stories==="Available"&&(y.stories.count++,y.stories.population+=J,y.stories.groups.push(j),z=!0),z?(y.hasResources.count++,y.hasResources.population+=J,y.hasResources.groups.push(j)):(y.noResources.count++,y.noResources.population+=J,y.noResources.groups.push(j))});const U=u.value.length,G=u.value.reduce((j,J)=>j+(parseInt(J.population)||0),0),M={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},q={bible:{count:U-y.bible.count,population:G-y.bible.population},jesusFilm:{count:U-y.jesusFilm.count,population:G-y.jesusFilm.population},radio:{count:U-y.radio.count,population:G-y.radio.population},gospel:{count:U-y.gospel.count,population:G-y.gospel.population},audio:{count:U-y.audio.count,population:G-y.audio.population},stories:{count:U-y.stories.count,population:G-y.stories.population}},Z="#2c3e50";return k.value=[{name:M.bible,key:"bible",count:y.bible.count,population:y.bible.population,isParent:!0,children:[{name:"No Bible",key:"noBible",count:q.bible.count,population:q.bible.population,color:Z}]},{name:M.jesusFilm,key:"jesusFilm",count:y.jesusFilm.count,population:y.jesusFilm.population,isParent:!0,children:[{name:"No Jesus Film",key:"noJesusFilm",count:q.jesusFilm.count,population:q.jesusFilm.population,color:Z}]},{name:M.radio,key:"radio",count:y.radio.count,population:y.radio.population,isParent:!0,children:[{name:"No Radio",key:"noRadio",count:q.radio.count,population:q.radio.population,color:Z}]},{name:M.gospel,key:"gospel",count:y.gospel.count,population:y.gospel.population,isParent:!0,children:[{name:"No Gospel",key:"noGospel",count:q.gospel.count,population:q.gospel.population,color:Z}]},{name:M.audio,key:"audio",count:y.audio.count,population:y.audio.population,isParent:!0,children:[{name:"No Audio",key:"noAudio",count:q.audio.count,population:q.audio.population,color:Z}]},{name:M.stories,key:"stories",count:y.stories.count,population:y.stories.population,isParent:!0,children:[{name:"No Stories",key:"noStories",count:q.stories.count,population:q.stories.population,color:Z}]},{name:M.hasResources,key:"hasResources",count:y.hasResources.count,population:y.hasResources.population,isParent:!0,children:[{name:M.noResources,key:"noResources",count:y.noResources.count,population:y.noResources.population,color:Z}]}],A.value=n.getStats(),l.value=!0,{peopleGroups:c.value,normalizedPeopleGroups:u.value,languageFamiliesData:b.value,doxaRegionsData:v.value,resourcesData:k.value,stats:A.value}}catch(T){throw console.error(`Failed to load data for map "${t}":`,T),r.value=T.message||"Failed to load data",T}finally{i.value=!1}}async function P(){var T,I,y;try{const U={},G=u.value||[];for(const M of G){const q=M.countryIso||((I=(T=M._raw)==null?void 0:T.country_code)==null?void 0:I.value)||"",Z=(y=M._raw)==null?void 0:y.wagf_region,j=M.doxaRegion||M.wagfRegion||(Z&&typeof Z=="object"?Z.value:"")||"";q&&j&&!U[q]&&(U[q]=j)}return f.value={isoToRegion:U},f.value}catch(U){throw console.error(`Error building regions data for map "${t}":`,U),r.value=U.message||"Failed to build regions",U}}function w(){return n?n.getDataByLanguageFamily():{}}function $(){return n?n.getDataByRegion():{}}function _(T){return w()[T]||[]}function S(T){return $()[T]||[]}function E(){c.value=[],u.value=[],f.value=null,b.value=[],v.value=[],k.value=[],A.value=null,l.value=!1,r.value=null}return{isLoading:i,isInitialized:l,error:r,peopleGroups:c,normalizedPeopleGroups:u,regionsData:f,languageFamiliesData:b,doxaRegionsData:v,resourcesData:k,stats:A,loadData:x,loadRegionsData:P,getDataByLanguageFamily:w,getDataByRegion:$,getPeopleGroupsByFamily:_,getPeopleGroupsByRegion:S,clearData:E}}const Ni={};function o_(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Lo&&Lo.tagName.toUpperCase()==="SCRIPT"&&Lo.src||new URL("all-people-groups.js",document.baseURI).href}<"u"&&(Ni==null?void 0:Ni.VITE_API_BASE_URL)||""}const xi={default:"doxa",lists:[{id:"doxa",aliases:["2000","project-2000"],label:"Project 2000: DOXA's people groups",definition:"The people groups DOXA serves, as its live list gives them",source:"doxa",filter:null},{id:"unreached",aliases:["7000","project-7000"],label:"Project 7000: unreached people groups",definition:"IMB Lostness Priority 0-2 (Frontier, Pioneer or Expanding Unreached: under 2% evangelical)",source:"imb",filter:{lostness:[0,1,2]}},{id:"frontier",aliases:["4700","project-4700"],label:"Project 4700: frontier people groups",definition:"IMB Lostness Priority 0 (Frontier Unreached: 0.1% evangelical or less)",source:"imb",filter:{lostness:[0]}},{id:"frontier-500k",aliases:["700","project-700"],label:"Project 700: frontier people groups of 500,000 or more",definition:"IMB Lostness Priority 0 and Population of at least 500,000",source:"imb",filter:{lostness:[0],minPopulation:5e5}},{id:"unengaged",aliases:[],label:"Unengaged unreached people groups",definition:"IMB Lostness Priority 0-2 and Engagement Status Unengaged",source:"imb",filter:{lostness:[0,1,2],engagement:["Unengaged"]}}]},n_=Lo&&Lo.tagName.toUpperCase()==="SCRIPT"&&Lo.src||new URL("all-people-groups.js",document.baseURI).href,go=e=>String(e||"").trim().replace(/\/+$/,"");function ld(){try{const t=String(n_||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function a_(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return go(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return go(o)}return go(ld()||"")}function cd(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=go(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=go((e==null?void 0:e.treeBase)||"")||go(ld()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return go(new URL(o+"/assets",n).href)}catch{return go(o+"/assets")}return"./assets"}function s_({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",s=e||(n==null?void 0:n.shareUrl);if(typeof s=="string"&&s.trim())return s.trim();const i=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(i){if(/^https?:\/\//i.test(i))return i;if(i.startsWith("/"))return a?window.location.origin+i:i;const r=a_(n),l=i.replace(/^\.\//,"");if(r)return r+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const Da=xi.default,Pi=new Map;for(const e of xi.lists){Pi.set(e.id,e);for(const t of e.aliases||[])Pi.set(String(t).toLowerCase(),e)}function i_(e){return Pi.get(String(e??"").toLowerCase().trim())||null}function ud(e){let t=e;if(t&&typeof t=="object"&&"value"in t&&!("list"in t)&&!("profile"in t)&&(t=t.value),typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return t&&typeof t=="object"?t:null}const dd=new Set;function r_(e){const t=ud(e),o=t==null?void 0:t.list,n=typeof location<"u"?new URLSearchParams(location.search).get("list"):null,a=typeof window<"u"?window.MAP_LIST:void 0,s=o||n||a||Da,i=i_(s);return i?i.id:(dd.has(s)||(dd.add(s),console.warn(`[list] unknown people-group list "${s}", showing "${Da}". Known: ${xi.lists.map(r=>r.id).join(", ")}`)),Da)}const Ra=new Map;function l_(e,t){const o=`${cd(ud(t))}/people-groups/lists/${e}.json`;return Ra.has(o)||Ra.set(o,fetch(o).then(n=>{if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.json()}).then(n=>new Set(Array.isArray(n==null?void 0:n.slugs)?n.slugs:[])).catch(n=>{throw Ra.delete(o),new Error(`list "${e}" membership ${o}: ${n.message}`)})),Ra.get(o)}async function pd(e,t,{key:o=n=>n==null?void 0:n.slug}={}){const n=r_(t);if(n===Da||!Array.isArray(e))return e;try{const a=await l_(n,t);return e.filter(s=>a.has(o(s)))}catch(a){return console.error(`[list] ${a.message}. Showing no people groups rather than the wrong list.`),[]}}class gd{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.profileConfig=t.profileConfig||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=lu,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",s=!1,i=[],r=!0;for(let l=0;l0){if(i.push(a.trim()),a="",r)n.push(...i),r=!1;else if(i.length>1){const f={};n.forEach((b,v)=>{f[b]=i[v]||""}),o.push(f)}i=[]}}else a+=c}if((a||i.length>0)&&(i.push(a.trim()),!r&&i.length>1)){const l={};n.forEach((c,u)=>{l[c]=i[u]||""}),o.push(l)}return{headers:n,data:o}}async loadCSVData(t){try{const n=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:s}=this.parseCSV(n);return this.rawData=s,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load CSV data:",o),o}}validateFieldMappings(t,o,n){const a=new Set(o.map(i=>i.trim())),s=[];for(const[i,r]of Object.entries(t||{}))if(Array.isArray(r))for(const l of r)a.has(l)||s.push({systemField:i,sourceField:l,isComposite:!0});else r&&!a.has(r)&&s.push({systemField:i,sourceField:r,isComposite:!1});s.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,s)}async loadAPIData(t){try{const n=await(await fetch(t.url||t.endpoint)).json();return this.rawData=await pd(Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.profileConfig),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load API data:",o),o}}async loadRestApiData(t){var l,c;const o=o_(),n=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",s=[];a&&s.push(`fields=${a}`);const i={...t.queryParams||{}};this.locale&&(i.lang=this.locale);for(const[u,f]of Object.entries(i))s.push(`${u}=${encodeURIComponent(f)}`);const r=`${o}${n}?${s.join("&")}`;try{const u=await fetch(r);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const f=u.headers.get("content-type")||"";if(!f.includes("application/json"))throw new Error(`API returned "${f}" instead of JSON. Server at ${o} may be down or misconfigured.`);const b=await u.json();return this.rawData=await pd(Array.isArray(b)?b:b.posts||b.data||b.results||[],this.profileConfig),this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(f=>this.getFieldValue(n,f));a[l]=u.join("_")}else a[l]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const s=a.engagementStatus;s!=null&&(typeof s=="object"&&"value"in s?(a.engagementStatusLabel=s.label||s.value,a.engagementStatus=s.value==="engaged"):a.engagementStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const i=a.adoptionStatus;i!=null&&(a.adoptionStatus=i===!0||i===1||i==="1"||i==="true"||typeof i=="object"&&!!(i!=null&&i.value)||typeof i=="number"&&i>0||typeof i=="string"&&parseInt(i,10)>0);const r=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of r){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=n,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,o){if(!o)return"";if(t[o]!==void 0)return t[o];const n=o.trim();if(t[n]!==void 0)return t[n];for(const a of Object.keys(t))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const o=String(t).replace(/,/g,"").trim(),n=parseInt(o,10);return isNaN(n)?0:n}getImageUrl(t,o){if(!o)return"";const n=o.placeholderUrl||"",a=t[o.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,o,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)o.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(o=>{o.languageFamily&&t.add(o.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(o=>{const n=o.languageFamily||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(o=>{const n=o.doxaRegion||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new gd;const c_={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0},controls:{type:String,default:"round"}},setup(e){const t=e,o=oe(null);return rt("mapToolbar",{el:o,shape:ce(()=>t.controls==="square"?"square":"round")}),Uo(` @media print { diff --git a/public/dx-maps/all-people-groups/all-people-groups/index.html b/public/dx-maps/all-people-groups/all-people-groups/index.html index 0c2f17a15..14119f046 100644 --- a/public/dx-maps/all-people-groups/all-people-groups/index.html +++ b/public/dx-maps/all-people-groups/all-people-groups/index.html @@ -65,7 +65,7 @@ - + - + - + - + - + - + - + - + - + - + \n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "bundle": "all-people-groups" } @@ -110,7 +110,7 @@ "bundle": "cities-internet", "scriptUrl": "./cities-internet/cities-internet.js", "output": "dx-maps/cities-internet/cities-internet.js", - "integrity": "sha384-aPcLyzTRwZhkZGJDg3pUyHtPR1qlxjGYBzYq2DEJfd2rgRXvLudoS6PVTju5wejB", + "integrity": "sha384-nijTwnKnapJr5fDp5lBFhxCUv4NfZsL7uOOcjUTQng7N6m2eVrR2Lcn7nBvMqT6/", "elements": [ "cities-internet-map" ], @@ -129,7 +129,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -145,8 +145,8 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -162,7 +162,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } } ] @@ -171,7 +171,7 @@ "bundle": "country-map", "scriptUrl": "./country-map/country-map.js", "output": "dx-maps/country-map/country-map.js", - "integrity": "sha384-gInh0MBkBBYlZ7EvHGjDW2FvL73HwJhqiCA1qGgsJj8i6vn64a9JJEWOED+xlaKy", + "integrity": "sha384-nJSkdmu0Z6cfzBHjAc/LtUhyLupyd5cb9dwOtBzytX6byz4MaX4nHyPT3I2mDS6C", "elements": [ "doxa-country-map" ], @@ -190,8 +190,8 @@ "scriptUrl": "./country-map/country-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -200,7 +200,7 @@ "bundle": "country-posters", "scriptUrl": "./country-posters/country-posters.js", "output": "dx-maps/country-posters/country-posters.js", - "integrity": "sha384-KwlLSTYPX6UaGJnLYkSYixKA2yokMSay9JvhuGQ2WvssbYps6qR1+J6IAss9J19I", + "integrity": "sha384-VG1gavfzqVQZvxwvwXlvra/VMRwL9W98cvkyz19KbAITegNnYKltyZEIcLFgdB3J", "elements": [ "country-posters-map" ], @@ -223,8 +223,8 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -240,7 +240,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -256,8 +256,8 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -315,7 +315,7 @@ "bundle": "demo-map", "scriptUrl": "./demo-map/demo-map.js", "output": "dx-maps/demo-map/demo-map.js", - "integrity": "sha384-ipuwR2y7omghFvmN09K38JBc4jdUtXE96MGgiyEH73EtcltP9STr/dHekRM+dhtQ", + "integrity": "sha384-7p1XJ+Sjb6BC0CdTaK+EhXWz/AH3q89LWDUp7m5ehurBiPqECbGqyhfSpx3MaVbD", "elements": [ "demo-map" ], @@ -333,8 +333,8 @@ "scriptUrl": "./demo-map/demo-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { @@ -416,7 +416,7 @@ "bundle": "doxa-research-map", "scriptUrl": "./doxa-research-map/doxa-research-map.js", "output": "dx-maps/doxa-research-map/doxa-research-map.js", - "integrity": "sha384-p8YIBW5NhHBA0OA0PYmwKW5qzHnKjsUGY1HNrKLWUh+TIx1yePbTVejhIc9shnmb", + "integrity": "sha384-eO5R+bFRZx9shq117GcJzbpVd5kWDiCQ7gsuWKSbhgkl98STI6petAkpH0ywp4+m", "elements": [ "doxa-research-map" ], @@ -435,8 +435,8 @@ "scriptUrl": "./doxa-research-map/doxa-research-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { @@ -462,7 +462,7 @@ "bundle": "doxa-simple-map", "scriptUrl": "./doxa-simple-map/doxa-simple-map.js", "output": "dx-maps/doxa-simple-map/doxa-simple-map.js", - "integrity": "sha384-ZQJVNowy7JjvK4QGKvCypzfYMjYr73bEp2sW23PurPftT72IWFW4sW3xgzGlCfrO", + "integrity": "sha384-fV7TEcIYYGCWBXN+y41/nuS2n04VLLw9zyUbuDevSD6rsFs4FYFgk4evhbZj7/hX", "elements": [ "doxa-map", "doxa-simple-map" @@ -482,8 +482,8 @@ "scriptUrl": "./doxa-simple-map/doxa-simple-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { @@ -653,7 +653,7 @@ "bundle": "gospel-internet", "scriptUrl": "./gospel-internet/gospel-internet.js", "output": "dx-maps/gospel-internet/gospel-internet.js", - "integrity": "sha384-Epyu/peBlDxklCQ6FaNk6CV2U0IjC3Sf1Doo+hUsNM0o0qq/t+k2ZT7NUMgef/xl", + "integrity": "sha384-zdV4Rrqb/7RTWbJb+NsPALAqhzOK5An66QD3g5rKKX97TGJFymbQiFWtx76aUBXx", "elements": [ "gospel-internet-board" ], @@ -674,8 +674,8 @@ "scriptUrl": "./gospel-internet/gospel-internet.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { @@ -782,7 +782,7 @@ "bundle": "gospel-resources", "scriptUrl": "./gospel-resources/gospel-resources.js", "output": "dx-maps/gospel-resources/gospel-resources.js", - "integrity": "sha384-VJWAUyChtMo6CyNwJuswTTWT7l6KUXwjM45gW/VEsPRIRATl/MQOsx+ef6tdF65d", + "integrity": "sha384-esoYKrQIdSPzc6P/xiObiUaw3B0fs7Kuz+O8JazN72YGJRkZC0ksJVlhLPtcNLxo", "elements": [ "gospel-resources-map" ], @@ -805,7 +805,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -821,7 +821,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -837,8 +837,8 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -854,7 +854,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -870,8 +870,8 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -880,7 +880,7 @@ "bundle": "my-upg-100-list", "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "output": "dx-maps/my-upg-100-list/my-upg-100-list.js", - "integrity": "sha384-hzTYBfV2VE4fVsdOlsLUPCY3lPI5qo0tlCYNJAp5SIXBr67lxagGkWeaf+6K7I1z", + "integrity": "sha384-YjbXsqg9iQc8SHWHNr5oLkGYYmE1+d1SkVguZoY10f7zc7r4yyShnNkg5nfOttmb", "elements": [ "my-upg-100-list-map" ], @@ -903,7 +903,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -919,8 +919,8 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -936,8 +936,8 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -1068,7 +1068,7 @@ "bundle": "pplr-data-maps", "scriptUrl": "./pplr-data-maps/pplr-data-maps.js", "output": "dx-maps/pplr-data-maps/pplr-data-maps.js", - "integrity": "sha384-x22CmHAymgOnRiSCzPK62CmPGynnAr4lpcmNfXA7WCdQn3MF0FTZMOP1gv5AnhY4", + "integrity": "sha384-EkAuhLXPChyK/ID4y0BsQ8BLdhU5QCytLmHSRX0LAJ8QhxMQsbUM+N/HraEHHT3c", "elements": [ "pplr-data-maps" ], @@ -1087,8 +1087,8 @@ "scriptUrl": "./pplr-data-maps/pplr-data-maps.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "bundle": "pplr-data-maps" } @@ -1126,7 +1126,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "dx-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-LFmTwqcKfLGZU2I7aSHdYAy1YVbvPutkcAI1EFSO9YREaAjkdmULX7eewfHMm8DG", + "integrity": "sha384-G/ip3BKDre+u59aTOCgbJTMnG9Alb+dbrkt6YIw2TqbNG6PGreXCMqjFLfhrBesZ", "elements": [ "regions-dashboard" ], @@ -1149,8 +1149,8 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -1166,7 +1166,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -1182,7 +1182,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } } ] @@ -1191,7 +1191,7 @@ "bundle": "research-dashboard", "scriptUrl": "./research-dashboard/research-dashboard.js", "output": "dx-maps/research-dashboard/research-dashboard.js", - "integrity": "sha384-9Tvn7IZGXBVdMuD4riH39+79Ajd9g7DmvSXaNyYAB8lWw3x+EitLDpJh8ulhN0nJ", + "integrity": "sha384-JMFAa6yCFz8A9hF9N/HpoiGI9HP7dUmMhbkwyGuRZqefN8TNSvR/EJUkFra7YcpL", "elements": [ "research-dashboard-map" ], @@ -1210,8 +1210,8 @@ "scriptUrl": "./research-dashboard/research-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "bundle": "research-dashboard" } @@ -1315,7 +1315,7 @@ "bundle": "upg-neighbor", "scriptUrl": "./upg-neighbor/upg-neighbor.js", "output": "dx-maps/upg-neighbor/upg-neighbor.js", - "integrity": "sha384-JKUsRU1tDLEi6sz6flF1vJ2KGhGyAy7dTLeeubVPtnMmYsv/TQ8I3D18qYK60NoA", + "integrity": "sha384-CLlZVEfMu9+QcA8/NLd1+CIksytk1/voqLdW7i8Zf6jv1iubNRPP1RMf/LbhJGNB", "elements": [ "upg-neighbor" ], @@ -1334,8 +1334,8 @@ "scriptUrl": "./upg-neighbor/upg-neighbor.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { @@ -1417,7 +1417,7 @@ "bundle": "wall-of-people-groups", "scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js", "output": "dx-maps/wall-of-people-groups/wall-of-people-groups.js", - "integrity": "sha384-1QxjXYu7uDs/F9cI+AO/51omkXWEi1QIFjwumnWlX/f/R/QB95imcFRvCN8KjCmU", + "integrity": "sha384-rjnA4qgtwgrQC7iLWc+whRkgmLG5a2HYEOqeoCm28JyJym6abkNbpOAs6ZF5BBDR", "elements": [ "wall-of-people-groups" ], @@ -1436,7 +1436,7 @@ "scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "bundle": "wall-of-people-groups" } diff --git a/public/dx-maps/doxa-research-map/doxa-research-map.js b/public/dx-maps/doxa-research-map/doxa-research-map.js index d395665e8..be79a4c6a 100644 --- a/public/dx-maps/doxa-research-map/doxa-research-map.js +++ b/public/dx-maps/doxa-research-map/doxa-research-map.js @@ -80,7 +80,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(N,F)=>c.value?Es((se(),he("div",{key:0,ref_key:"hintEl",ref:g,class:Ge(["pin-hint",{dark:i.value}]),role:"status"},[R("span",My,[F[0]||(F[0]=R("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),jt(" "+ye(l.value)+" ",1),R("button",{class:"pin-hint-x",type:"button","aria-label":t("aria.dismissHint","Dismiss hint"),onClick:H},"×",8,Ry)])],2)),[[Xd,d.value&&f.value]]):Me("",!0)}},Ny=".lsn-bar[data-v-9a589f6f]{display:flex;align-items:flex-start;gap:8px;flex:none;margin:0;padding-block:8px;padding-inline:12px 8px;background:#fff8e1;border-block-end:1px solid #f0d68a;color:#4a3b00;font:400 13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}.lsn-bar__text[data-v-9a589f6f]{flex:1 1 auto;margin:0}.lsn-bar__x[data-v-9a589f6f]{flex:none;min-width:24px;min-height:24px;padding:0;border:0;border-radius:4px;background:transparent;color:inherit;font:600 18px/1 system-ui,sans-serif;cursor:pointer}.lsn-bar__x[data-v-9a589f6f]:focus-visible{outline:2px solid #1a73e8;outline-offset:2px}.lsn-block[data-v-9a589f6f]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;min-height:200px;padding:24px;background:#f7f7f5;color:#333;text-align:center;font:400 15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.lsn-block__text[data-v-9a589f6f]{max-width:28em;margin:0}",rn=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Iy={key:0,class:"lsn-block",role:"status"},Oy={class:"lsn-block__text"},Dy={key:0},zy={key:1,class:"lsn-bar",role:"note"},jy={class:"lsn-bar__text"},By=["aria-label","title"],Gg=rn({__name:"LargerScreenNotice",props:{mode:{type:String,required:!0},label:{type:String,default:""},locale:{type:String,default:""}},emits:["dismiss"],setup(e){const t=e,o=(s,i)=>no(s,t.locale||void 0)||i,n=te(()=>o("messages.largerScreenNotice","This experimental map is built for larger screens. It opens here, but parts of it may not fit or work well on a phone.")),a=te(()=>o("messages.noticeDismiss","Dismiss")),r=te(()=>o("messages.desktopOnlyNotice","{label} only supports desktop — open this page on a desktop to use it.").split("{label}"));return(s,i)=>e.mode==="desktop-only"?(se(),he("div",Iy,[R("p",Oy,[jt(ye(r.value[0]),1),r.value.length>1?(se(),he("bdi",Dy,ye(e.label),1)):Me("",!0),jt(ye(r.value[1]||""),1)])])):(se(),he("div",zy,[R("p",jy,ye(n.value),1),R("button",{type:"button",class:"lsn-bar__x","aria-label":a.value,title:a.value,onClick:i[0]||(i[0]=l=>s.$emit("dismiss"))},"×",8,By)]))}},[["styles",[Ny]],["__scopeId","data-v-9a589f6f"]]),Gy="(max-width: 639.98px)";function Hy(e){for(let t=e;t;t=t.parentNode||t.host)if(t.nodeType===1&&t.hasAttribute("data-doxa-gallery"))return!0;return!1}function Uy(e){var l;const t=te(()=>{var d;const c=(d=e.value)==null?void 0:d.mobile;return c==="desktop-only"||c==="larger-screens"?c:null});let o=null;try{o=Jb()}catch{o=null}const n=o?Hy(o):!1,a=ve(!1);if(typeof window<"u"&&typeof window.matchMedia=="function"){const c=window.matchMedia(Gy);a.value=c.matches;const d=p=>{a.value=p.matches};(l=c.addEventListener)==null||l.call(c,"change",d),wo(()=>{var p;return(p=c.removeEventListener)==null?void 0:p.call(c,"change",d)})}const r=te(()=>{var c;return`dx-maps:larger-screens-dismissed:${((c=e.value)==null?void 0:c.profile)||""}`}),s=ve(!1);Ue(r,c=>{try{s.value=sessionStorage.getItem(c)==="1"}catch{s.value=!1}},{immediate:!0});function i(){s.value=!0;try{sessionStorage.setItem(r.value,"1")}catch{}}return{flag:t,blocked:te(()=>t.value==="desktop-only"&&a.value&&!n),advise:te(()=>t.value==="larger-screens"&&a.value&&!n&&!s.value),dismiss:i,label:te(()=>{var c,d;return String(((c=e.value)==null?void 0:c.mobileLabel)||((d=e.value)==null?void 0:d.profile)||"")})}}const pi="mapbox://styles/mapbox/standard",Wy=pi,Ky=pi,qy=!1,Hg={lightPreset:"night",theme:"default"},Vy={lightPreset:"day",theme:"monochrome"};function Yy(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function Zy(e){let t=!1;const o=new WeakSet;function n(){return!1}function a(){return n()?"night":"day"}let r="dark";function s($){return Yy($)}function i($,g){$!=="light"&&$!=="dark"||(r=$,g&&y(g))}function l(){return{...r==="light"?Vy:Hg}}function c(){return pi}function d(){return{basemap:l()}}function p($,g){try{return typeof $.getConfigProperty=="function"?$.getConfigProperty("basemap",g):void 0}catch{return}}function f($){return!!$&&typeof $.setConfigProperty=="function"&&typeof $.getConfigProperty=="function"}function x($,g=!1){if(!f($))return!1;const b=l();let u=!1;try{for(const[v,m]of Object.entries(b))!g&&p($,v)===m||($.setConfigProperty("basemap",v,m),u=!0)}catch(v){console.warn("[useMapTheme] setConfigProperty failed:",v)}return u}function S($){if(!o.has($)&&(o.add($),!!f($)))try{$.on("style.load",()=>x($)),$.on("styledata",()=>x($))}catch{}}function y($){if(!$)return;if(S($),x($)&&!t){t=!0;try{$.once("idle",()=>{t=!1,x($,!0)})}catch{t=!1}}}function h($){e.toggleTheme(),y($)}return{setLook:i,lookFor:s,STANDARD_STYLE:pi,LIGHT_STYLE:Wy,DARK_STYLE:Ky,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:d,applyTheme:y,swapTheme:h}}let Jy=0;const Xy=Tl("ui",{state:()=>({_storeInstanceId:++Jy,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:r=!1}=e,s={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:r,createdAt:Date.now()};return this.toasts.push(s),!r&&n>0&&setTimeout(()=>{this.removeToast(s.id)},n),s.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),Qy=Tl("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusteringMode:"off",clusterPinOpacity:.6,clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(a=[r.lng,r.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),e1=Tl("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Ma({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Ma({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),ua={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},t1=".profile-loader[data-locale-pending][data-v-b5256f00] .stl-tabs,.profile-loader[data-locale-pending][data-v-b5256f00] .stl-title,.profile-loader[data-locale-pending][data-v-b5256f00] .stl-rows,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-title,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-content,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-reopen-label,.profile-loader[data-locale-pending][data-v-b5256f00] .lt-btn-text,.profile-loader[data-locale-pending][data-v-b5256f00] .rd-topbar,.profile-loader[data-locale-pending][data-v-b5256f00] .rd-exportbar{visibility:hidden}.profile-loader[data-v-b5256f00]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-loader.has-screen-notice[data-v-b5256f00]{display:flex;flex-direction:column}.profile-loader.has-screen-notice[data-v-b5256f00]>:not(.lsn-bar){flex:1 1 auto;min-height:0;position:relative!important;inset:auto!important}.profile-error[data-v-b5256f00]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",o1=["dir","data-locale-pending"],n1={key:0,class:"profile-error"},a1={key:1,class:"profile-error"},r1=rn({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var V;const o=e,n=ze("profileConfig",null),a=te(()=>{var w;if(!o.profileConfig)return null;let H;try{H=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(H&&H.assetsBase===void 0){const B=(w=n==null?void 0:n.value)==null?void 0:w.assetsBase;typeof B=="string"&&B&&(H.assetsBase=B)}return H}),r=te(()=>{var H;return((H=a.value)==null?void 0:H.profile)||null}),s=d$(),i=te(()=>{var w;const H=(w=a.value)==null?void 0:w.tk;return typeof H=="string"&&H?H:s.value||""});Ue(()=>{var H;return(H=a.value)==null?void 0:H.tk},H=>{typeof H=="string"&&H&&Rl(H)},{immediate:!0}),Ue(()=>{var H;return(H=a.value)==null?void 0:H.tokenUrl},H=>{var w;H&&!((w=a.value)!=null&&w.tk)&&!s.value&&p$(H)},{immediate:!0});const l=te(()=>{var H;return((H=a.value)==null?void 0:H.dataSource)||ua.activeSource||"doxa-csv"}),c=te(()=>{var H;return((H=a.value)==null?void 0:H.colorSet)||"default"}),d=te(()=>!1),p=te(()=>{var H;return((H=a.value)==null?void 0:H.pinHint)!==!1}),f=te(()=>{var w,B;const H=(((w=a.value)==null?void 0:w.locale)||((B=a.value)==null?void 0:B.lang)||Fg()||"").split("-")[0].toLowerCase();return Va.includes(H)?H:""}),x=ze("appI18n",null);td(()=>{f.value&&(x&&(x.global.locale.value=f.value),Ig(f.value),ec(x,f.value).catch(()=>{}))});const S=te(()=>{var H,w;return f.value||((w=(H=x==null?void 0:x.global)==null?void 0:H.locale)==null?void 0:w.value)||"en"}),y=te(()=>li.has(S.value)?"rtl":"ltr"),{blocked:h,advise:$,dismiss:g,label:b}=Uy(a),u=ve(!1);td(H=>{const w=S.value;if(!li.has(w)){u.value=!1;return}let B=!0;H(()=>{B=!1}),u.value=!0,wy(w).finally(()=>{B&&(u.value=!1)})});const v=te(()=>{var H;return((H=a.value)==null?void 0:H.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),m=ze("profileModules",null);if(!m)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const k=te(()=>{if(!r.value)return null;const H=`./${r.value}.vue`;return m[H]?di(m[H]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(m)),null)});Ut("mapboxToken",i),Ut("dataSource",l),Ut("colorSet",c),Ut("profileConfig",a),Ut("instanceId",v),Ut("lang",S);const E=Xy(),P=Qy(),U=e1();try{const H=typeof localStorage<"u"?localStorage.getItem("theme"):null;H&&((V=E.setTheme)==null||V.call(E,H))}catch{}return Ut("uiStore",E),Ut("mapStore",P),Ut("dataStore",U),(H,w)=>(se(),he("div",{class:Ge(["profile-loader",{"has-screen-notice":ge($)}]),dir:y.value,"data-locale-pending":u.value?"":null},[a.value?k.value?ge(h)?(se(),it(Gg,{key:2,mode:"desktop-only",label:ge(b),locale:S.value},null,8,["label","locale"])):(se(),he(tt,{key:3},[ge($)?(se(),it(Gg,{key:0,mode:"larger-screens",locale:S.value,onDismiss:ge(g)},null,8,["locale","onDismiss"])):Me("",!0),(se(),it(gd(k.value)))],64)):(se(),he("div",a1,[R("p",null,[w[1]||(w[1]=jt("⚠️ Profile ",-1)),R("strong",null,'"'+ye(r.value)+'"',1),w[2]||(w[2]=jt(" not found.",-1))])])):(se(),he("div",n1,[...w[0]||(w[0]=[R("p",null,[jt("⚠️ "),R("strong",null,"doxa-map"),jt(": missing or invalid "),R("code",null,"profile-config"),jt(" prop.")],-1),R("p",null,[jt("Example: "),R("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),k.value&&d.value?(se(),it(gd(ge(null)),{key:4})):Me("",!0),k.value&&p.value?(se(),it(Fy,{key:5})):Me("",!0)],10,o1))}},[["styles",[t1]],["__scopeId","data-v-b5256f00"]]);function Ug(e,t,o){var a;const n=(a=e==null?void 0:e._context)==null?void 0:a.provides;if(n&&t in n){n[t]=o;return}e.provide(t,o)}function s1(e,t){var a;const o=(a=e==null?void 0:e._context)==null?void 0:a.provides,n=o?Object.getPrototypeOf(o):null;n&&Object.setPrototypeOf(o,null);try{return t()}finally{n&&Object.setPrototypeOf(o,n)}}function i1({profileModules:e={},configureApp:t=null}={}){return Yb(r1,{configureApp(o){const n=r$();s1(o,()=>o.use(n));const a=ky();o.use(a),Ug(o,"appI18n",a),Ug(o,"profileModules",e),t&&t(o,{pinia:n,i18n:a})}})}const l1=Object.assign({"./research-map.vue":()=>Rt(()=>Promise.resolve().then(()=>rP),void 0)});function c1(){return i1({profileModules:l1,configureApp:(e,{pinia:t,i18n:o})=>{}})}const u1=c1();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",u1));const d1="rgba(120, 128, 134, 0.28)",Wg="36px",Kg=()=>{};function p1(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return Kg;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return Kg;const a=g=>g.classList.contains("map-scroll-edge--left");for(const g of n)g.style.background=`linear-gradient(${a(g)?"to right":"to left"}, ${d1} ${Wg}, transparent ${Wg})`,g.style.opacity="0",g.style.transition="opacity 0.16s ease",g.style.userSelect="none",g.style.webkitUserSelect="none";const r=g=>{g.style.opacity="1"},s=g=>{g.style.opacity="0"},i=()=>n.find(g=>!a(g))||null,l=new Set;let c=!1,d=null;const p=()=>{for(const g of n)l.has(g)||s(g)},f=()=>{const g=i();g&&(r(g),d&&clearTimeout(d),d=setTimeout(p,250))},x=()=>f(),S=g=>{if(!(g.touches&&g.touches.length===1))return;const b=g.target;b&&b.classList&&b.classList.contains("map-scroll-edge")||f()},y=()=>{d&&clearTimeout(d),p()};e.addEventListener("wheel",x,{passive:!0}),e.addEventListener("touchmove",S,{passive:!0}),e.addEventListener("touchend",y,{passive:!0}),e.addEventListener("touchcancel",y,{passive:!0});const h=()=>{c||f()};typeof window<"u"&&window.addEventListener("scroll",h,{passive:!0});const $=[];for(const g of n){const b=()=>{l.add(g),r(g)},u=()=>{l.delete(g),s(g)},v=()=>{c=!0,r(g)},m=()=>{c=!1,s(g)};g.addEventListener("mouseenter",b),g.addEventListener("mouseleave",u),g.addEventListener("touchstart",v,{passive:!0}),g.addEventListener("touchend",m,{passive:!0}),$.push(()=>{g.removeEventListener("mouseenter",b),g.removeEventListener("mouseleave",u),g.removeEventListener("touchstart",v),g.removeEventListener("touchend",m)})}return function(){d&&(clearTimeout(d),d=null),e.removeEventListener("wheel",x),e.removeEventListener("touchmove",S),e.removeEventListener("touchend",y),e.removeEventListener("touchcancel",y),typeof window<"u"&&window.removeEventListener("scroll",h);for(const b of $)b();for(const b of n)s(b)}}const g1=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function f1(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=g1[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}function h1(e,t){if(!e||!Array.isArray(t))return[];const o=[];for(const n of t)if(!(!n||!n.layer||!n.prop))try{if(!e.getLayer(n.layer))continue;e.setPaintProperty(n.layer,n.prop,n.value),o.push(n.layer+"."+n.prop)}catch{}return o}const m1=["mapbox","maplibre"],b1="auto";function qg(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function Vg(e,{token:t}={}){const o=qg(e);return Yg(o)||"maplibre"}function Yg(e){const t=qg(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,r=String(o||n||a||b1).toLowerCase().trim();return m1.includes(r)?r:""}function $1(e){return e==="maplibre"?"MapLibre":"Mapbox"}function Zg(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function _1(e){if(typeof window>"u")return;const t=window.maplibregl,o=window.mapboxgl;if(t&&t.Map&&e instanceof t.Map)return"maplibre";if(o&&o.Map&&e instanceof o.Map)return"mapbox"}function gi(e){if(typeof window>"u")return;const t=window.maplibregl,o=window.mapboxgl;return t&&t.Map&&e instanceof t.Map?t:o&&o.Map&&e instanceof o.Map?o:o||t}function y1(e,t){if(!e||!t||typeof e.setProjection!="function")return!1;const o=typeof window<"u"?window.maplibregl:null,n=!!(o&&o.Map&&e instanceof o.Map);try{return e.setProjection(n?{type:t}:t),!0}catch{return!1}}function sn(e,t="circle"){return Zg(e)?{[`${t}-emissive-strength`]:1}:{}}const Cn={mapboxGlJs:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",integrity:"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ"},mapboxGlCss:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css",integrity:"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV"},maplibreGlJs:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js",integrity:"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp"},maplibreGlCss:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css",integrity:"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK"},mapboxGeocoderJs:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js",integrity:"sha384-Lx9WK8XhZk57czwxt6B6nyaDHB5Ayrcrsu4Fw4bCp/Ot/QLOsUZ0xYqLOpOOSXZw"},mapboxGeocoderCss:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css",integrity:"sha384-1KNhwJNCQTr0DCi/5/OnQcFytgycxTahxNZaqKbAtqmY8bUhu26qxXqvDGXXwplS"},maplibreGeocoderJs:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.min.js",integrity:"sha384-RGV5vfoJd7alk8HE+71IyVfu19ciH1FKA15+AuXs6OeBM2npXrmTPFqG23yMiHXi"},maplibreGeocoderCss:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.css",integrity:"sha384-UkDpPApjTpHJHpcJiSNAmbobh30W0/dmt0DoKm4V8CWYRYvQ/Jhd/ijFz0tFdVnH"},d3:{url:"https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js",integrity:"sha384-CjloA8y00+1SDAUkjs099PVfnY2KmDC2BZnws9kh8D/lX1s46w6EPhpXdqMfjK6i"}};function Gr(e,t){const o=Object.values(Cn).find(n=>n.url===t);return o&&(e.integrity=o.integrity,e.crossOrigin="anonymous"),e}const Jg={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",maplibre:"https://cdn.jsdelivr.net/npm/@mapbox/mapbox-gl-rtl-text@0.3.0/dist/mapbox-gl-rtl-text.js"};function v1(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function w1(e){if(typeof window>"u")return!1;const t=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let o=!1;for(const n of t)if(!(!n||!n.setRTLTextPlugin))try{if(v1(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(Jg.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(Jg.mapbox,null,!0);o=!0}catch{}return o}const k1=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,Xg=new WeakMap;function x1(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function Qg(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!x1(e))return typeof e.setLanguage=="function"&&e.setLanguage(o),0;const n=e.getStyle&&e.getStyle();if(!n||!Array.isArray(n.layers))return 0;let a=Xg.get(e);a||(a=new Map,Xg.set(e,a));let r=0;for(const s of n.layers){if(s.type!=="symbol"||!s.layout||s.layout["text-field"]==null)continue;const i=s.layout["text-field"],l=JSON.stringify(i);if(l.startsWith('["coalesce",["get","name:')){if(!a.has(s.id))continue}else{if(!k1.test(l))continue;a.set(s.id,i)}const c=["coalesce",["get","name:"+o],["get","name_"+o],["get","name:latin"],["get","name_en"],["get","name"]];e.setLayoutProperty(s.id,"text-field",c),r++}return r}catch{return 0}}const Ya={mapbox:{global:"mapboxgl",js:Cn.mapboxGlJs.url,css:Cn.mapboxGlCss.url},maplibre:{global:"maplibregl",js:Cn.maplibreGlJs.url,css:Cn.maplibreGlCss.url}},S1={"Map.Title":"map","Marker.Title":"marker","Popup.Close":"closePopup","NavigationControl.ZoomIn":"zoomIn","NavigationControl.ZoomOut":"zoomOut","NavigationControl.ResetBearing":"resetBearing","AttributionControl.ToggleAttribution":"toggleAttribution","AttributionControl.MapFeedback":"mapFeedback","FullscreenControl.Enter":"enterFullscreen","FullscreenControl.Exit":"exitFullscreen","GeolocateControl.FindMyLocation":"findMyLocation","GeolocateControl.LocationNotAvailable":"locationNotAvailable","GlobeControl.Enable":"enableGlobe","GlobeControl.Disable":"disableGlobe","CooperativeGesturesHandler.WindowsHelpText":"ctrlScroll","CooperativeGesturesHandler.MacHelpText":"cmdScroll","CooperativeGesturesHandler.MobileHelpText":"twoFingers","ScrollZoomBlocker.CtrlMessage":"ctrlScroll","ScrollZoomBlocker.CmdMessage":"cmdScroll","TouchPanBlocker.Message":"twoFingers"};function ef(e,t){const o={};for(const[a,r]of Object.entries(S1)){const s=no(`mapui.${r}`,e);s&&(o[a]=s)}const n=no(t==="maplibre"?"mapui.maplibreLogo":"mapui.mapboxHomepage",e);return n&&(o["LogoControl.Title"]=n),o}function tf(e){if(typeof window>"u")return;const t=window,o=()=>{try{const n=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");n&&(n.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",o),o();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const A1=Ya.mapbox.css,P1="https://tiles.openfreemap.org/styles/liberty",L1="https://tiles.openfreemap.org/styles/fiord";function oc(e){var o;const t=((o=Ya[e])==null?void 0:o.global)||Ya.mapbox.global;return typeof window<"u"?window[t]:void 0}async function of(e){const t=Ya[e]||Ya.mapbox;if(oc(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,Gr(n,t.css),document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(oc(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const r=document.createElement("script");r.src=t.js,Gr(r,t.js),r.async=!1,r.addEventListener("load",n,{once:!0}),r.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(r)})}async function C1(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=s=>new Promise(i=>setTimeout(i,s)),a=o.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(s=>{a.addEventListener("load",s,{once:!0}),a.addEventListener("error",s,{once:!0})}),n(2e3)]);return}const r=document.createElement("link");r.rel="stylesheet",r.href=t,Gr(r,t),await Promise.race([new Promise(s=>{r.addEventListener("load",s,{once:!0}),r.addEventListener("error",s,{once:!0}),o.prepend(r)}),n(2e3)])}function T1(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?L1:P1}const E1=85.0511,nc=-2,M1=0,R1=-60;function nf(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function F1(e,t,o,n){if(!e||e<=0||!t||t<=0)return M1;const a=Math.log2(e/512),r=nf(n)-nf(E1),s=Math.log2(t/(512*r)),i=Math.max(a,s);return Math.max(nc,Math.min(i,(o??18)-1))}function N1({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a=void 0,center:r=[20,10],zoom:s=2,bounds:i=void 0,fitBoundsOptions:l=void 0,minZoom:c=void 0,skipWorldFloor:d=!1,maxZoom:p=18,pitch:f=0,bearing:x=0,renderWorldCopies:S=!0,showEdgeBorders:y=!0,southCutoff:h=R1,maxBounds:$=void 0}){const g=Fa(null),b=ve(!1);let u=null,v=null,m=null,k=null;try{k=ze("profileConfig",null)}catch{}const E=!a&&!Yg(k);a=a||Vg(k,{token:t});let P=a==="maplibre";typeof document<"u"&&of(a).catch(()=>{});let U=null;try{U=ze("lang",null)}catch{}const V=()=>{const B=U&&typeof U=="object"&&"value"in U?U.value:U;if(typeof B=="string"&&B)return B;const _=k&&typeof k=="object"&&"value"in k?k.value:k;if(_&&(_.locale||_.lang))return String(_.locale||_.lang);try{const A=new URLSearchParams(location.search);return A.get("lang")||A.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function H(){var X;if(E&&!P&&!t&&typeof window<"u"&&window.__doxaMapTokenPending){if(await window.__doxaMapTokenPending,!e.value)return;typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN||(a="maplibre",P=!0)}const B=f1(o,a),_=B.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const A=()=>!e.value;if(await of(a),A())return;const N=oc(a);if(!N){console.error(`[useMapInstance] ${P?"maplibregl":"mapboxgl"} is not available. Add the ${P?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(w1(N),!P){if(!t&&typeof window<"u"&&window.__doxaMapTokenPending&&(await window.__doxaMapTokenPending,A()))return;if(!t&&typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN&&(t=window.MAP_TOKEN),!t){typeof window<"u"&&!window.__doxaNoTokenWarned&&(window.__doxaNoTokenWarned=!0,console.warn('No Mapbox access token provided. Pass "tk" in profile-config JSON or set window.MAP_TOKEN.'));return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}if(await C1(e.value,P?Ya.maplibre.css:A1),A()||(await new Promise(Z=>requestAnimationFrame(Z)),A()))return;const F=e.value,K=F.clientWidth,z=F.clientHeight;if(K===0||z===0){console.error(`[useMapInstance] Container has ZERO dimensions (${K}×${z}). Map will be invisible. Check that parent elements have CSS sizing.`);let Z=F.parentElement,pe=0;for(;Z&&pe<5;)Z=Z.parentElement,pe++}const J=t;P||(N.accessToken=J);const j=()=>typeof window<"u"&&window.innerWidth>=1024,re=(Z,pe)=>{if(d)return typeof c=="number"?c:nc;if(!j())return nc;const Pe=F1(Z,pe,p,h);return typeof c=="number"?Math.max(c,Pe):Pe},_e=re(F.clientWidth,F.clientHeight),Te=B.lightPreset||(()=>{var Z;try{const pe=typeof n=="function"?n():n;return(Z=pe==null?void 0:pe.basemap)==null?void 0:Z.lightPreset}catch{return}})();if(P){g.value=new N.Map({container:e.value,style:T1(_,Te),locale:ef(V(),"maplibre"),center:r,zoom:s,minZoom:_e,maxZoom:p,pitch:f,bearing:x,dragRotate:!1,renderWorldCopies:S,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...$?{maxBounds:$}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),tf(g.value);try{e.value.__doxaMap=g.value}catch{}}else{const Z=typeof n=="function"?n():n;g.value=new N.Map({accessToken:J,container:e.value,style:_,locale:ef(V(),"mapbox"),...Z?{config:Z}:{},center:r,zoom:s,minZoom:_e,maxZoom:p,pitch:f,bearing:x,dragRotate:!1,touchPitch:!1,renderWorldCopies:S,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...$?{maxBounds:$}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),tf(g.value);try{e.value.__doxaMap=g.value}catch{}}try{let Z=!1;g.value.on("error",pe=>{var I,D;const Pe=((I=pe==null?void 0:pe.error)==null?void 0:I.status)??(pe==null?void 0:pe.status),M=String(((D=pe==null?void 0:pe.error)==null?void 0:D.url)||(pe==null?void 0:pe.sourceId)||"");Pe!==401&&Pe!==403||Z||(Z=!0,console.error(`[doxa-maps] Mapbox returned ${Pe} for a TILE request while the style loaded fine. That is a URL RESTRICTION on the access token, not a bad token and not a bug in this map. Add this page's origin (${typeof location<"u"?location.origin:"this origin"}) to the token's URL restrictions in the Mapbox account. The map will keep its data layer and stay blank underneath until then.`+(M?` First failing request: ${M.slice(0,120)}`:"")))})}catch{}try{g.value.touchZoomRotate.disableRotation()}catch{}m=p1(((X=e.value)==null?void 0:X.parentElement)||null,{enabled:y});let xe=_e,Se=null;u=()=>{const Z=g.value;if(!Z)return;const pe=re(F.clientWidth,F.clientHeight);pe!==xe&&(xe=pe,Z.setMinZoom(pe)),Z.getZoom(){Se=null;const Pe=g.value;if(!Pe)return;const M=re(F.clientWidth,F.clientHeight);if(Pe.getZoom(){Se&&(clearTimeout(Se),Se=null)},g.value.on("resize",u),typeof window<"u"&&(window.addEventListener("resize",u),window.addEventListener("orientationchange",u)),g.value.on("style.load",()=>{if(g.value&&Qg(g.value,V()),B.paint&&g.value){const Z=h1(g.value,B.paint);console.info("[useMapInstance] style paint applied ("+a+"):",Z.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var Z;(Z=g.value)==null||Z.resize(),g.value&&g.value.setMinZoom(re(F.clientWidth,F.clientHeight)),b.value=!0})})}function w(){if(g.value){if(u&&(g.value.off("resize",u),typeof window<"u"&&(window.removeEventListener("resize",u),window.removeEventListener("orientationchange",u)),u=null),v){try{v()}catch{}v=null}m&&(m(),m=null);try{const _=typeof window<"u"?window:null;_&&_.__doxaLogoOwner===g.value&&(_.__doxaLogoOwner=null)}catch{}const B=g.value;g.value.remove();try{e&&e.value&&e.value.__doxaMap===B&&(e.value.__doxaMap=null)}catch{}g.value=null,b.value=!1}}if(U&&typeof U=="object"&&"value"in U)try{Ue(U,()=>{g.value&&b.value&&Qg(g.value,V())})}catch{}return{map:g,isMapReady:b,initializeMap:H,destroy:w}}const I1=La&&La.tagName.toUpperCase()==="SCRIPT"&&La.src||new URL("doxa-research-map.js",document.baseURI).href,Kn=e=>String(e||"").trim().replace(/\/+$/,"");function af(){try{const t=String(I1||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function O1(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Kn(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Kn(o)}return Kn(af()||"")}function ac(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=Kn(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=Kn((e==null?void 0:e.treeBase)||"")||Kn(af()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return Kn(new URL(o+"/assets",n).href)}catch{return Kn(o+"/assets")}return"./assets"}function D1({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",r=e||(n==null?void 0:n.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const s=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(s){if(/^https?:\/\//i.test(s))return s;if(s.startsWith("/"))return a?window.location.origin+s:s;const i=O1(n),l=s.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const rf="adoptionStatus",Tn={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},rc=Tn,sc={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},z1=sc;function sf(e){var n;const t=e.adoptionStatus??((n=e._raw)==null?void 0:n.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Tn.hasAdoption:Tn.notAdopted}function ic({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Tn.hasAdoption,["==",t,1],Tn.hasAdoption,Tn.notAdopted]}const lf=ic,j1=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:rc,ADOPTION_LABELS:z1,LABELS:sc,PALETTE:Tn,PROPERTY_KEY:rf,applyColor:ic,buildColorExpression:lf,default:{name:"Adoption Progress",propertyKey:rf,palette:Tn,colors:Tn,labels:sc,getColor:sf,applyColor:ic,buildColorExpression:lf},getColor:sf},Symbol.toStringTag,{value:"Module"})),lc="affinityBlock",Za="#95a5a6",En={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf",A018:"Tibetan Peoples",A019:"Himalayan Peoples"},fi={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000",A018:"#6C3483",A019:"#A569BD"},qn=fi,cf=Object.entries(En).reduce((e,[t,o])=>(e[o]=t,e),{}),cc=Object.entries(En).reduce((e,[t,o])=>(e[o]=qn[t],e),{}),uf=En;function uc(e){return En[e]||"Unknown"}function dc(e){return qn[e]||Za}function df(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?qn[e]||Za:cc[e]||Za:Za}function pf(){return Object.entries(En).map(([e,t])=>({code:e,name:t,color:qn[e]}))}function gf(e){return{code:e,name:En[e]||"Unknown",color:qn[e]||Za}}function ff(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return dc(t)}function hf(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return uc(t)}function pc(){const e=["match",["get",lc]];return Object.entries(qn).forEach(([t,o])=>{e.push(t,o)}),e.push(Za),e}const mf=pc,B1=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:qn,AFFINITY_BLOCK_COLORS_BY_NAME:cc,AFFINITY_BLOCK_NAMES:En,AFFINITY_BLOCK_NAME_TO_CODE:cf,NAMES:uf,PALETTE:fi,PROPERTY_KEY:lc,affinityBlockCodeLookup:En,affinityBlockCodeToColor:qn,affinityBlockCodeToName:En,affinityBlockColors:cc,affinityBlockNameToCode:cf,applyColor:pc,buildColorExpression:mf,default:{name:"Affinity Block",propertyKey:lc,palette:fi,colors:fi,names:uf,getColor:ff,applyColor:pc,buildColorExpression:mf,getName:hf,getAffinityBlockName:uc,getAffinityBlockColor:df,getAffinityBlockColorByCode:dc,getAffinityBlocksArray:pf,getAffinityBlockData:gf},getAffinityBlockColor:df,getAffinityBlockColorByCode:dc,getAffinityBlockData:gf,getAffinityBlockName:uc,getAffinityBlocksArray:pf,getColor:ff,getName:hf},Symbol.toStringTag,{value:"Module"}));function G1(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(fc),e}const yf=bc,U1=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:H1,PALETTE:hi,PROPERTY_KEY:gc,REGION_COLOR_ALIASES:mc,SLUG_PALETTE:mi,applyColor:bc,buildColorExpression:yf,default:{name:"DOXA Region",propertyKey:gc,palette:hi,colors:hi,slugColors:mi,aliases:mc,fallback:fc,getColor:_f,applyColor:bc,buildColorExpression:yf,getRegionColor:$f,getRegionColorBySlug:hc},getColor:_f,getRegionColor:$f,getRegionColorBySlug:hc},Symbol.toStringTag,{value:"Module"})),vf="engagementStatus",Mn={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},$c=Mn,_c={notEngaged:"Unengaged",hasEngagement:"Engaged"},W1=_c;function wf(e){var n;const t=e.engagementStatus??((n=e._raw)==null?void 0:n.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Mn.hasEngagement:Mn.notEngaged}function yc({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Mn.hasEngagement,["==",t,1],Mn.hasEngagement,Mn.notEngaged]}const kf=yc,K1=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:$c,ENGAGEMENT_LABELS:W1,LABELS:_c,PALETTE:Mn,PROPERTY_KEY:vf,applyColor:yc,buildColorExpression:kf,default:{name:"Engagement Progress",propertyKey:vf,palette:Mn,colors:Mn,labels:_c,getColor:wf,applyColor:yc,buildColorExpression:kf},getColor:wf},Symbol.toStringTag,{value:"Module"})),vc="languageFamily",q1="#000000",Vn={"Indo-European":"#e74c3c",Dravidian:"#ff9800","Afro-Asiatic":"#27ae60","Sino-Tibetan":"#3498db","Niger-Congo":"#9b59b6",Unclassified:"#95a5a6","Nilo-Saharan":"#e91e63","Khoe-Kwadi":"#00bcd4","Austro-Asiatic":"#00bcd4","Kra-Dai":"#8e44ad",Austronesian:"#ff69b4","Hmong-Mien":"#f44336",Turkic:"#ffc107","Nakh-Daghestanian":"#009688",Mongolic:"#795548",Uralic:"#607d8b",Tungusic:"#4caf50",Japonic:"#ff5722",Cariban:"#673ab7",Tupian:"#03a9f4",Tucanoan:"#8bc34a",Maipurean:"#ffc107",Panoan:"#cddc39",Guajiboan:"#9e9e9e",Chibchan:"#ff7043",Quechuan:"#ab47bc",Jean:"#26a69a",Harákmbut:"#7e57c2",Nambikwara:"#42a5f5",Muran:"#66bb6a",Karajá:"#ffa726",Bororoan:"#ef5350",Arauan:"#5c6bc0",Yanomaman:"#26c6da",Yaguan:"#d4e157",Witotoan:"#78909c",Zamucoan:"#8d6e63",Puinavean:"#aed581",Barbacoan:"#4db6ac","Eyak-Athabaskan":"#7986cb","Trans-New Guinea":"#ba68c8",Andamanese:"#4dd0e1","Atlantic-Congo":"#7D3C98",Mande:"#B9770E","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},xf=Vn;function Go(e){return Vn[e]||q1}const V1=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(Vn))t[e(o)]=o;return t})(),Y1={"tai-kadai":"Kra-Dai",none:"Unknown"};function bi(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return Y1[o]||V1[o]||t}function Sf(e){var t;return Go(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function wc(){const e=["match",["get",vc]];return Object.entries(Vn).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const Af=wc,Z1=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:xf,PALETTE:Vn,PROPERTY_KEY:vc,applyColor:wc,buildColorExpression:Af,canonicalFamilyName:bi,default:{name:"Language Family",propertyKey:vc,palette:Vn,colors:Vn,getColor:Sf,applyColor:wc,buildColorExpression:Af,getLanguageFamilyColor:Go,canonicalFamilyName:bi},defaultFamilyColor:"#95a5a6",getColor:Sf,getLanguageFamilyColor:Go,languageFamilyColors:Vn},Symbol.toStringTag,{value:"Module"})),Pf="peoplePraying",ln=144,Yn={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},da=Yn,kc={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},J1=kc;function $i(e){var n;const t=(e==null?void 0:e.peoplePraying)??((n=e==null?void 0:e._raw)==null?void 0:n.people_praying)??null,o=Number(t)||0;return o>=ln?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function xc(e){return Yn[$i(e)]}function Lf(e){var o;const t=(e==null?void 0:e.peoplePraying)??((o=e==null?void 0:e._raw)==null?void 0:o.people_praying)??null;return t!==null&&t>0}function Cf(e){return $i(e)==="fullPrayer"}function Tf(e){return xc(e)}function Sc({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,ln],Yn.fullPrayer,[">",t,0],Yn.hasPrayer,Yn.noPrayer]}const Ef=Sc,X1=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:ln,LABELS:kc,PALETTE:Yn,PRAYER_COLORS:da,PRAYER_LABELS:J1,PROPERTY_KEY:Pf,applyColor:Sc,buildColorExpression:Ef,checkHasFullPrayer:Cf,checkHasPrayer:Lf,default:{name:"Prayer Progress",propertyKey:Pf,palette:Yn,colors:Yn,labels:kc,threshold:ln,getColor:Tf,applyColor:Sc,buildColorExpression:Ef,getPrayerLevel:$i,getPrayerColor:xc,checkHasPrayer:Lf,checkHasFullPrayer:Cf},getColor:Tf,getPrayerColor:xc,getPrayerLevel:$i},Symbol.toStringTag,{value:"Module"})),Mf="religion",Ac="#94a3b8",Ho={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},xo={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function Hr(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return Ho[t]?t:"U"}function Rf(e){var o,n,a;const t=(e==null?void 0:e.religion)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.religion)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return xo[Hr(t)]||Ac}function Pc(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",xo.C,"M",xo.M,"H",xo.H,"B",xo.B,"E",xo.E,"J",xo.J,"S",xo.S,"N",xo.N,"O",xo.O,Ac]}const Ff=Pc,Q1={name:"Religion",propertyKey:Mf,palette:xo,families:Ho,getColor:Rf,applyColor:Pc,buildColorExpression:Ff,fallback:Ac};function Lc(e){const t=String(e||""),o=Ho[t]||t;return o?no("religion.family."+o)||o:""}const ev=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:xo,PROPERTY_KEY:Mf,RELIGION_FAMILIES:Ho,applyColor:Pc,buildColorExpression:Ff,default:Q1,getColor:Rf,getReligionFamily:Hr,religionFamilyLabel:Lc},Symbol.toStringTag,{value:"Module"})),Nf="resourceType",Zn={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},tv=Zn,Ur=["bible","jesusFilm","radio","gospel","audio","stories"],Cc={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},ov=Cc;function Wr(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function If(e){var t;for(const o of Ur)if((e[o]||((t=e._raw)==null?void 0:t[Wr(o)]))==="Available")return Zn.hasResources;return Zn.noResources}function Of(e){var t;for(const o of Ur)if((e[o]||((t=e._raw)==null?void 0:t[Wr(o)]))==="Available")return!0;return!1}function Df(e){var t;for(const o of Ur)if((e[o]||((t=e._raw)==null?void 0:t[Wr(o)]))==="Available")return o;return"noResources"}function Tc(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],Zn.hasResources,Zn.noResources]}const zf=Tc,nv=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Cc,PALETTE:Zn,PROPERTY_KEY:Nf,RESOURCE_COLORS:tv,RESOURCE_NAMES:ov,RESOURCE_PRIORITY:Ur,applyColor:Tc,buildColorExpression:zf,default:{name:"Gospel Resources",propertyKey:Nf,palette:Zn,colors:Zn,names:Cc,priority:Ur,getColor:If,applyColor:Tc,buildColorExpression:zf,hasAnyResource:Of,getResourceType:Df,getCSVColumn:Wr},getCSVColumn:Wr,getColor:If,getResourceType:Df,hasAnyResource:Of},Symbol.toStringTag,{value:"Module"})),jf="region",Ec="#6d766e",Bf={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},Kr={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Mc=Object.keys(Kr);function Gf(e){var o,n,a;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.wagf_region);return Kr[t]||Ec}function Rc(){const e=["match",["coalesce",["get","region"],""]];for(const t of Mc)e.push(t,Kr[t]);return e.push(Ec),e}const Hf=Rc,av=Object.assign({"./adoption.js":j1,"./affinity-block.js":B1,"./doxa-region.js":U1,"./engagement.js":K1,"./language-family.js":Z1,"./prayer-progress.js":X1,"./religion.js":ev,"./resource.js":nv,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Kr,PROPERTY_KEY:jf,REGION_ORDER:Mc,WAGF_REGIONS:Bf,applyColor:Rc,buildColorExpression:Hf,default:{name:"WAGF Region",propertyKey:jf,palette:Kr,regions:Bf,order:Mc,getColor:Gf,applyColor:Rc,buildColorExpression:Hf,fallback:Ec},getColor:Gf},Symbol.toStringTag,{value:"Module"}))}),rv=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),sv=e=>e.replace(/-/g,"_").toUpperCase(),Ja={...{STATUS:"status",CUSTOM:"custom"}},Fc={};function iv(e){for(const t of Object.keys(e).sort()){const o=t.split("/").pop().replace(/\.js$/,"");if(o.startsWith("_")||o.startsWith("."))continue;const n=e[t].default;if(!n)continue;const a=rv(o);Ja[sv(o)]=a,Fc[a]=n}}iv(av);function cn(e){return Fc[e]||Fc[Ja.LANGUAGE_FAMILY]}function lv(e,t={}){return cn(e).applyColor(t)}const cv={Africa:{zoom:1.3,center:[16.6512,26.3538]},Asia:{zoom:.8,center:[98.2654,49.9282]},Europe:{zoom:1.4,center:[22.7826,70.1026]},"Latin America & Caribbean":{zoom:1.8,center:[-60.4619,10.1428]},"Middle East":{zoom:1.7,center:[22.9056,39.5752]},"No WAGF Region/Bloc":{zoom:.6,center:[-8.2363,44.2392]},"North America & Non-Spanish Caribbean":{zoom:2.1,center:[-68.1935,31.4282]},Oceania:{zoom:1.5,center:[161.6257,-.668]}},Uf={circleRadius:{standard:["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],highlighted:["interpolate",["linear"],["zoom"],0,4,4,5,8,12,12,20],faded:["interpolate",["linear"],["zoom"],0,2,4,2.5,8,5,12,8],compact:["interpolate",["linear"],["zoom"],0,2,4,3,8,6,12,10],large:["interpolate",["linear"],["zoom"],0,4,4,6,8,14,12,24],touchTarget:["interpolate",["linear"],["zoom"],0,12,2,15,4,19,6,20,8,21,10,22,12,24,14,28]}};function uv(e){return cv[e]||null}function Nc(e="standard"){return Uf.circleRadius[e]||Uf.circleRadius.standard}const dv={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};function Ft(e){return e==null?"":String(e).replace(/[&<>"'`]/g,t=>dv[t])}function pv(e,t=""){try{const o=new URL(String(e),typeof location<"u"?location.href:"https://example.invalid/");if(o.protocol==="http:"||o.protocol==="https:")return Ft(o.href)}catch{}return Ft(t)}function Wf(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,r=ze("uiStore"),{t:s,locale:i}=Dt(),l=ve([]);function c(b){const u=n(b.languageFamily),v="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let m=b.imageUrl;(!m||m.includes("NoImageAvailable"))&&(m=v);const k=(b.name||"U")[0].toUpperCase(),E=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],P=k.charCodeAt(0)%E.length,U=E[P];return` +`,"pin-hint"),(N,F)=>c.value?Es((se(),he("div",{key:0,ref_key:"hintEl",ref:g,class:Ge(["pin-hint",{dark:i.value}]),role:"status"},[R("span",My,[F[0]||(F[0]=R("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),jt(" "+ye(l.value)+" ",1),R("button",{class:"pin-hint-x",type:"button","aria-label":t("aria.dismissHint","Dismiss hint"),onClick:H},"×",8,Ry)])],2)),[[Xd,d.value&&f.value]]):Me("",!0)}},Ny=".lsn-bar[data-v-9a589f6f]{display:flex;align-items:flex-start;gap:8px;flex:none;margin:0;padding-block:8px;padding-inline:12px 8px;background:#fff8e1;border-block-end:1px solid #f0d68a;color:#4a3b00;font:400 13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}.lsn-bar__text[data-v-9a589f6f]{flex:1 1 auto;margin:0}.lsn-bar__x[data-v-9a589f6f]{flex:none;min-width:24px;min-height:24px;padding:0;border:0;border-radius:4px;background:transparent;color:inherit;font:600 18px/1 system-ui,sans-serif;cursor:pointer}.lsn-bar__x[data-v-9a589f6f]:focus-visible{outline:2px solid #1a73e8;outline-offset:2px}.lsn-block[data-v-9a589f6f]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;min-height:200px;padding:24px;background:#f7f7f5;color:#333;text-align:center;font:400 15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.lsn-block__text[data-v-9a589f6f]{max-width:28em;margin:0}",rn=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Iy={key:0,class:"lsn-block",role:"status"},Oy={class:"lsn-block__text"},Dy={key:0},zy={key:1,class:"lsn-bar",role:"note"},jy={class:"lsn-bar__text"},By=["aria-label","title"],Gg=rn({__name:"LargerScreenNotice",props:{mode:{type:String,required:!0},label:{type:String,default:""},locale:{type:String,default:""}},emits:["dismiss"],setup(e){const t=e,o=(s,i)=>no(s,t.locale||void 0)||i,n=te(()=>o("messages.largerScreenNotice","This experimental map is built for larger screens. It opens here, but parts of it may not fit or work well on a phone.")),a=te(()=>o("messages.noticeDismiss","Dismiss")),r=te(()=>o("messages.desktopOnlyNotice","{label} only supports desktop — open this page on a desktop to use it.").split("{label}"));return(s,i)=>e.mode==="desktop-only"?(se(),he("div",Iy,[R("p",Oy,[jt(ye(r.value[0]),1),r.value.length>1?(se(),he("bdi",Dy,ye(e.label),1)):Me("",!0),jt(ye(r.value[1]||""),1)])])):(se(),he("div",zy,[R("p",jy,ye(n.value),1),R("button",{type:"button",class:"lsn-bar__x","aria-label":a.value,title:a.value,onClick:i[0]||(i[0]=l=>s.$emit("dismiss"))},"×",8,By)]))}},[["styles",[Ny]],["__scopeId","data-v-9a589f6f"]]),Gy="(max-width: 639.98px)";function Hy(e){for(let t=e;t;t=t.parentNode||t.host)if(t.nodeType===1&&t.hasAttribute("data-doxa-gallery"))return!0;return!1}function Uy(e){var l;const t=te(()=>{var d;const c=(d=e.value)==null?void 0:d.mobile;return c==="desktop-only"||c==="larger-screens"?c:null});let o=null;try{o=Jb()}catch{o=null}const n=o?Hy(o):!1,a=ve(!1);if(typeof window<"u"&&typeof window.matchMedia=="function"){const c=window.matchMedia(Gy);a.value=c.matches;const d=p=>{a.value=p.matches};(l=c.addEventListener)==null||l.call(c,"change",d),wo(()=>{var p;return(p=c.removeEventListener)==null?void 0:p.call(c,"change",d)})}const r=te(()=>{var c;return`dx-maps:larger-screens-dismissed:${((c=e.value)==null?void 0:c.profile)||""}`}),s=ve(!1);Ue(r,c=>{try{s.value=sessionStorage.getItem(c)==="1"}catch{s.value=!1}},{immediate:!0});function i(){s.value=!0;try{sessionStorage.setItem(r.value,"1")}catch{}}return{flag:t,blocked:te(()=>t.value==="desktop-only"&&a.value&&!n),advise:te(()=>t.value==="larger-screens"&&a.value&&!n&&!s.value),dismiss:i,label:te(()=>{var c,d;return String(((c=e.value)==null?void 0:c.mobileLabel)||((d=e.value)==null?void 0:d.profile)||"")})}}const pi="mapbox://styles/mapbox/standard",Wy=pi,Ky=pi,qy=!1,Hg={lightPreset:"night",theme:"default"},Vy={lightPreset:"day",theme:"monochrome"};function Yy(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function Zy(e){let t=!1;const o=new WeakSet;function n(){return!1}function a(){return n()?"night":"day"}let r="dark";function s($){return Yy($)}function i($,g){$!=="light"&&$!=="dark"||(r=$,g&&y(g))}function l(){return{...r==="light"?Vy:Hg}}function c(){return pi}function d(){return{basemap:l()}}function p($,g){try{return typeof $.getConfigProperty=="function"?$.getConfigProperty("basemap",g):void 0}catch{return}}function f($){return!!$&&typeof $.setConfigProperty=="function"&&typeof $.getConfigProperty=="function"}function x($,g=!1){if(!f($))return!1;const b=l();let u=!1;try{for(const[v,m]of Object.entries(b))!g&&p($,v)===m||($.setConfigProperty("basemap",v,m),u=!0)}catch(v){console.warn("[useMapTheme] setConfigProperty failed:",v)}return u}function S($){if(!o.has($)&&(o.add($),!!f($)))try{$.on("style.load",()=>x($)),$.on("styledata",()=>x($))}catch{}}function y($){if(!$)return;if(S($),x($)&&!t){t=!0;try{$.once("idle",()=>{t=!1,x($,!0)})}catch{t=!1}}}function h($){e.toggleTheme(),y($)}return{setLook:i,lookFor:s,STANDARD_STYLE:pi,LIGHT_STYLE:Wy,DARK_STYLE:Ky,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:d,applyTheme:y,swapTheme:h}}let Jy=0;const Xy=Tl("ui",{state:()=>({_storeInstanceId:++Jy,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){const t=e&&!this.selectedPeopleGroup;this.selectedPeopleGroup=e,e?(t&&(this._legendStateBeforeDetail=this.legendState),this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this._legendStateBeforeDetail&&(this.legendState=this._legendStateBeforeDetail),this._legendStateBeforeDetail=null,this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:r=!1}=e,s={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:r,createdAt:Date.now()};return this.toasts.push(s),!r&&n>0&&setTimeout(()=>{this.removeToast(s.id)},n),s.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),Qy=Tl("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusteringMode:"off",clusterPinOpacity:.6,clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(a=[r.lng,r.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),e1=Tl("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Ma({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Ma({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),ua={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},t1=".profile-loader[data-locale-pending][data-v-b5256f00] .stl-tabs,.profile-loader[data-locale-pending][data-v-b5256f00] .stl-title,.profile-loader[data-locale-pending][data-v-b5256f00] .stl-rows,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-title,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-content,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-reopen-label,.profile-loader[data-locale-pending][data-v-b5256f00] .lt-btn-text,.profile-loader[data-locale-pending][data-v-b5256f00] .rd-topbar,.profile-loader[data-locale-pending][data-v-b5256f00] .rd-exportbar{visibility:hidden}.profile-loader[data-v-b5256f00]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-loader.has-screen-notice[data-v-b5256f00]{display:flex;flex-direction:column}.profile-loader.has-screen-notice[data-v-b5256f00]>:not(.lsn-bar){flex:1 1 auto;min-height:0;position:relative!important;inset:auto!important}.profile-error[data-v-b5256f00]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",o1=["dir","data-locale-pending"],n1={key:0,class:"profile-error"},a1={key:1,class:"profile-error"},r1=rn({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var V;const o=e,n=ze("profileConfig",null),a=te(()=>{var w;if(!o.profileConfig)return null;let H;try{H=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(H&&H.assetsBase===void 0){const B=(w=n==null?void 0:n.value)==null?void 0:w.assetsBase;typeof B=="string"&&B&&(H.assetsBase=B)}return H}),r=te(()=>{var H;return((H=a.value)==null?void 0:H.profile)||null}),s=d$(),i=te(()=>{var w;const H=(w=a.value)==null?void 0:w.tk;return typeof H=="string"&&H?H:s.value||""});Ue(()=>{var H;return(H=a.value)==null?void 0:H.tk},H=>{typeof H=="string"&&H&&Rl(H)},{immediate:!0}),Ue(()=>{var H;return(H=a.value)==null?void 0:H.tokenUrl},H=>{var w;H&&!((w=a.value)!=null&&w.tk)&&!s.value&&p$(H)},{immediate:!0});const l=te(()=>{var H;return((H=a.value)==null?void 0:H.dataSource)||ua.activeSource||"doxa-csv"}),c=te(()=>{var H;return((H=a.value)==null?void 0:H.colorSet)||"default"}),d=te(()=>!1),p=te(()=>{var H;return((H=a.value)==null?void 0:H.pinHint)!==!1}),f=te(()=>{var w,B;const H=(((w=a.value)==null?void 0:w.locale)||((B=a.value)==null?void 0:B.lang)||Fg()||"").split("-")[0].toLowerCase();return Va.includes(H)?H:""}),x=ze("appI18n",null);td(()=>{f.value&&(x&&(x.global.locale.value=f.value),Ig(f.value),ec(x,f.value).catch(()=>{}))});const S=te(()=>{var H,w;return f.value||((w=(H=x==null?void 0:x.global)==null?void 0:H.locale)==null?void 0:w.value)||"en"}),y=te(()=>li.has(S.value)?"rtl":"ltr"),{blocked:h,advise:$,dismiss:g,label:b}=Uy(a),u=ve(!1);td(H=>{const w=S.value;if(!li.has(w)){u.value=!1;return}let B=!0;H(()=>{B=!1}),u.value=!0,wy(w).finally(()=>{B&&(u.value=!1)})});const v=te(()=>{var H;return((H=a.value)==null?void 0:H.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),m=ze("profileModules",null);if(!m)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const k=te(()=>{if(!r.value)return null;const H=`./${r.value}.vue`;return m[H]?di(m[H]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(m)),null)});Ut("mapboxToken",i),Ut("dataSource",l),Ut("colorSet",c),Ut("profileConfig",a),Ut("instanceId",v),Ut("lang",S);const E=Xy(),P=Qy(),U=e1();try{const H=typeof localStorage<"u"?localStorage.getItem("theme"):null;H&&((V=E.setTheme)==null||V.call(E,H))}catch{}return Ut("uiStore",E),Ut("mapStore",P),Ut("dataStore",U),(H,w)=>(se(),he("div",{class:Ge(["profile-loader",{"has-screen-notice":ge($)}]),dir:y.value,"data-locale-pending":u.value?"":null},[a.value?k.value?ge(h)?(se(),it(Gg,{key:2,mode:"desktop-only",label:ge(b),locale:S.value},null,8,["label","locale"])):(se(),he(tt,{key:3},[ge($)?(se(),it(Gg,{key:0,mode:"larger-screens",locale:S.value,onDismiss:ge(g)},null,8,["locale","onDismiss"])):Me("",!0),(se(),it(gd(k.value)))],64)):(se(),he("div",a1,[R("p",null,[w[1]||(w[1]=jt("⚠️ Profile ",-1)),R("strong",null,'"'+ye(r.value)+'"',1),w[2]||(w[2]=jt(" not found.",-1))])])):(se(),he("div",n1,[...w[0]||(w[0]=[R("p",null,[jt("⚠️ "),R("strong",null,"doxa-map"),jt(": missing or invalid "),R("code",null,"profile-config"),jt(" prop.")],-1),R("p",null,[jt("Example: "),R("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),k.value&&d.value?(se(),it(gd(ge(null)),{key:4})):Me("",!0),k.value&&p.value?(se(),it(Fy,{key:5})):Me("",!0)],10,o1))}},[["styles",[t1]],["__scopeId","data-v-b5256f00"]]);function Ug(e,t,o){var a;const n=(a=e==null?void 0:e._context)==null?void 0:a.provides;if(n&&t in n){n[t]=o;return}e.provide(t,o)}function s1(e,t){var a;const o=(a=e==null?void 0:e._context)==null?void 0:a.provides,n=o?Object.getPrototypeOf(o):null;n&&Object.setPrototypeOf(o,null);try{return t()}finally{n&&Object.setPrototypeOf(o,n)}}function i1({profileModules:e={},configureApp:t=null}={}){return Yb(r1,{configureApp(o){const n=r$();s1(o,()=>o.use(n));const a=ky();o.use(a),Ug(o,"appI18n",a),Ug(o,"profileModules",e),t&&t(o,{pinia:n,i18n:a})}})}const l1=Object.assign({"./research-map.vue":()=>Rt(()=>Promise.resolve().then(()=>rP),void 0)});function c1(){return i1({profileModules:l1,configureApp:(e,{pinia:t,i18n:o})=>{}})}const u1=c1();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",u1));const d1="rgba(120, 128, 134, 0.28)",Wg="36px",Kg=()=>{};function p1(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return Kg;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return Kg;const a=g=>g.classList.contains("map-scroll-edge--left");for(const g of n)g.style.background=`linear-gradient(${a(g)?"to right":"to left"}, ${d1} ${Wg}, transparent ${Wg})`,g.style.opacity="0",g.style.transition="opacity 0.16s ease",g.style.userSelect="none",g.style.webkitUserSelect="none";const r=g=>{g.style.opacity="1"},s=g=>{g.style.opacity="0"},i=()=>n.find(g=>!a(g))||null,l=new Set;let c=!1,d=null;const p=()=>{for(const g of n)l.has(g)||s(g)},f=()=>{const g=i();g&&(r(g),d&&clearTimeout(d),d=setTimeout(p,250))},x=()=>f(),S=g=>{if(!(g.touches&&g.touches.length===1))return;const b=g.target;b&&b.classList&&b.classList.contains("map-scroll-edge")||f()},y=()=>{d&&clearTimeout(d),p()};e.addEventListener("wheel",x,{passive:!0}),e.addEventListener("touchmove",S,{passive:!0}),e.addEventListener("touchend",y,{passive:!0}),e.addEventListener("touchcancel",y,{passive:!0});const h=()=>{c||f()};typeof window<"u"&&window.addEventListener("scroll",h,{passive:!0});const $=[];for(const g of n){const b=()=>{l.add(g),r(g)},u=()=>{l.delete(g),s(g)},v=()=>{c=!0,r(g)},m=()=>{c=!1,s(g)};g.addEventListener("mouseenter",b),g.addEventListener("mouseleave",u),g.addEventListener("touchstart",v,{passive:!0}),g.addEventListener("touchend",m,{passive:!0}),$.push(()=>{g.removeEventListener("mouseenter",b),g.removeEventListener("mouseleave",u),g.removeEventListener("touchstart",v),g.removeEventListener("touchend",m)})}return function(){d&&(clearTimeout(d),d=null),e.removeEventListener("wheel",x),e.removeEventListener("touchmove",S),e.removeEventListener("touchend",y),e.removeEventListener("touchcancel",y),typeof window<"u"&&window.removeEventListener("scroll",h);for(const b of $)b();for(const b of n)s(b)}}const g1=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function f1(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=g1[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}function h1(e,t){if(!e||!Array.isArray(t))return[];const o=[];for(const n of t)if(!(!n||!n.layer||!n.prop))try{if(!e.getLayer(n.layer))continue;e.setPaintProperty(n.layer,n.prop,n.value),o.push(n.layer+"."+n.prop)}catch{}return o}const m1=["mapbox","maplibre"],b1="auto";function qg(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function Vg(e,{token:t}={}){const o=qg(e);return Yg(o)||"maplibre"}function Yg(e){const t=qg(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,r=String(o||n||a||b1).toLowerCase().trim();return m1.includes(r)?r:""}function $1(e){return e==="maplibre"?"MapLibre":"Mapbox"}function Zg(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function _1(e){if(typeof window>"u")return;const t=window.maplibregl,o=window.mapboxgl;if(t&&t.Map&&e instanceof t.Map)return"maplibre";if(o&&o.Map&&e instanceof o.Map)return"mapbox"}function gi(e){if(typeof window>"u")return;const t=window.maplibregl,o=window.mapboxgl;return t&&t.Map&&e instanceof t.Map?t:o&&o.Map&&e instanceof o.Map?o:o||t}function y1(e,t){if(!e||!t||typeof e.setProjection!="function")return!1;const o=typeof window<"u"?window.maplibregl:null,n=!!(o&&o.Map&&e instanceof o.Map);try{return e.setProjection(n?{type:t}:t),!0}catch{return!1}}function sn(e,t="circle"){return Zg(e)?{[`${t}-emissive-strength`]:1}:{}}const Cn={mapboxGlJs:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",integrity:"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ"},mapboxGlCss:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css",integrity:"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV"},maplibreGlJs:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js",integrity:"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp"},maplibreGlCss:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css",integrity:"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK"},mapboxGeocoderJs:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js",integrity:"sha384-Lx9WK8XhZk57czwxt6B6nyaDHB5Ayrcrsu4Fw4bCp/Ot/QLOsUZ0xYqLOpOOSXZw"},mapboxGeocoderCss:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css",integrity:"sha384-1KNhwJNCQTr0DCi/5/OnQcFytgycxTahxNZaqKbAtqmY8bUhu26qxXqvDGXXwplS"},maplibreGeocoderJs:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.min.js",integrity:"sha384-RGV5vfoJd7alk8HE+71IyVfu19ciH1FKA15+AuXs6OeBM2npXrmTPFqG23yMiHXi"},maplibreGeocoderCss:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.css",integrity:"sha384-UkDpPApjTpHJHpcJiSNAmbobh30W0/dmt0DoKm4V8CWYRYvQ/Jhd/ijFz0tFdVnH"},d3:{url:"https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js",integrity:"sha384-CjloA8y00+1SDAUkjs099PVfnY2KmDC2BZnws9kh8D/lX1s46w6EPhpXdqMfjK6i"}};function Gr(e,t){const o=Object.values(Cn).find(n=>n.url===t);return o&&(e.integrity=o.integrity,e.crossOrigin="anonymous"),e}const Jg={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",maplibre:"https://cdn.jsdelivr.net/npm/@mapbox/mapbox-gl-rtl-text@0.3.0/dist/mapbox-gl-rtl-text.js"};function v1(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function w1(e){if(typeof window>"u")return!1;const t=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let o=!1;for(const n of t)if(!(!n||!n.setRTLTextPlugin))try{if(v1(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(Jg.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(Jg.mapbox,null,!0);o=!0}catch{}return o}const k1=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,Xg=new WeakMap;function x1(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function Qg(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!x1(e))return typeof e.setLanguage=="function"&&e.setLanguage(o),0;const n=e.getStyle&&e.getStyle();if(!n||!Array.isArray(n.layers))return 0;let a=Xg.get(e);a||(a=new Map,Xg.set(e,a));let r=0;for(const s of n.layers){if(s.type!=="symbol"||!s.layout||s.layout["text-field"]==null)continue;const i=s.layout["text-field"],l=JSON.stringify(i);if(l.startsWith('["coalesce",["get","name:')){if(!a.has(s.id))continue}else{if(!k1.test(l))continue;a.set(s.id,i)}const c=["coalesce",["get","name:"+o],["get","name_"+o],["get","name:latin"],["get","name_en"],["get","name"]];e.setLayoutProperty(s.id,"text-field",c),r++}return r}catch{return 0}}const Ya={mapbox:{global:"mapboxgl",js:Cn.mapboxGlJs.url,css:Cn.mapboxGlCss.url},maplibre:{global:"maplibregl",js:Cn.maplibreGlJs.url,css:Cn.maplibreGlCss.url}},S1={"Map.Title":"map","Marker.Title":"marker","Popup.Close":"closePopup","NavigationControl.ZoomIn":"zoomIn","NavigationControl.ZoomOut":"zoomOut","NavigationControl.ResetBearing":"resetBearing","AttributionControl.ToggleAttribution":"toggleAttribution","AttributionControl.MapFeedback":"mapFeedback","FullscreenControl.Enter":"enterFullscreen","FullscreenControl.Exit":"exitFullscreen","GeolocateControl.FindMyLocation":"findMyLocation","GeolocateControl.LocationNotAvailable":"locationNotAvailable","GlobeControl.Enable":"enableGlobe","GlobeControl.Disable":"disableGlobe","CooperativeGesturesHandler.WindowsHelpText":"ctrlScroll","CooperativeGesturesHandler.MacHelpText":"cmdScroll","CooperativeGesturesHandler.MobileHelpText":"twoFingers","ScrollZoomBlocker.CtrlMessage":"ctrlScroll","ScrollZoomBlocker.CmdMessage":"cmdScroll","TouchPanBlocker.Message":"twoFingers"};function ef(e,t){const o={};for(const[a,r]of Object.entries(S1)){const s=no(`mapui.${r}`,e);s&&(o[a]=s)}const n=no(t==="maplibre"?"mapui.maplibreLogo":"mapui.mapboxHomepage",e);return n&&(o["LogoControl.Title"]=n),o}function tf(e){if(typeof window>"u")return;const t=window,o=()=>{try{const n=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");n&&(n.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",o),o();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const A1=Ya.mapbox.css,P1="https://tiles.openfreemap.org/styles/liberty",L1="https://tiles.openfreemap.org/styles/fiord";function oc(e){var o;const t=((o=Ya[e])==null?void 0:o.global)||Ya.mapbox.global;return typeof window<"u"?window[t]:void 0}async function of(e){const t=Ya[e]||Ya.mapbox;if(oc(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,Gr(n,t.css),document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(oc(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const r=document.createElement("script");r.src=t.js,Gr(r,t.js),r.async=!1,r.addEventListener("load",n,{once:!0}),r.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(r)})}async function C1(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=s=>new Promise(i=>setTimeout(i,s)),a=o.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(s=>{a.addEventListener("load",s,{once:!0}),a.addEventListener("error",s,{once:!0})}),n(2e3)]);return}const r=document.createElement("link");r.rel="stylesheet",r.href=t,Gr(r,t),await Promise.race([new Promise(s=>{r.addEventListener("load",s,{once:!0}),r.addEventListener("error",s,{once:!0}),o.prepend(r)}),n(2e3)])}function T1(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?L1:P1}const E1=85.0511,nc=-2,M1=0,R1=-60;function nf(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function F1(e,t,o,n){if(!e||e<=0||!t||t<=0)return M1;const a=Math.log2(e/512),r=nf(n)-nf(E1),s=Math.log2(t/(512*r)),i=Math.max(a,s);return Math.max(nc,Math.min(i,(o??18)-1))}function N1({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a=void 0,center:r=[20,10],zoom:s=2,bounds:i=void 0,fitBoundsOptions:l=void 0,minZoom:c=void 0,skipWorldFloor:d=!1,maxZoom:p=18,pitch:f=0,bearing:x=0,renderWorldCopies:S=!0,showEdgeBorders:y=!0,southCutoff:h=R1,maxBounds:$=void 0}){const g=Fa(null),b=ve(!1);let u=null,v=null,m=null,k=null;try{k=ze("profileConfig",null)}catch{}const E=!a&&!Yg(k);a=a||Vg(k,{token:t});let P=a==="maplibre";typeof document<"u"&&of(a).catch(()=>{});let U=null;try{U=ze("lang",null)}catch{}const V=()=>{const B=U&&typeof U=="object"&&"value"in U?U.value:U;if(typeof B=="string"&&B)return B;const _=k&&typeof k=="object"&&"value"in k?k.value:k;if(_&&(_.locale||_.lang))return String(_.locale||_.lang);try{const A=new URLSearchParams(location.search);return A.get("lang")||A.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function H(){var X;if(E&&!P&&!t&&typeof window<"u"&&window.__doxaMapTokenPending){if(await window.__doxaMapTokenPending,!e.value)return;typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN||(a="maplibre",P=!0)}const B=f1(o,a),_=B.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const A=()=>!e.value;if(await of(a),A())return;const N=oc(a);if(!N){console.error(`[useMapInstance] ${P?"maplibregl":"mapboxgl"} is not available. Add the ${P?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(w1(N),!P){if(!t&&typeof window<"u"&&window.__doxaMapTokenPending&&(await window.__doxaMapTokenPending,A()))return;if(!t&&typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN&&(t=window.MAP_TOKEN),!t){typeof window<"u"&&!window.__doxaNoTokenWarned&&(window.__doxaNoTokenWarned=!0,console.warn('No Mapbox access token provided. Pass "tk" in profile-config JSON or set window.MAP_TOKEN.'));return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}if(await C1(e.value,P?Ya.maplibre.css:A1),A()||(await new Promise(Z=>requestAnimationFrame(Z)),A()))return;const F=e.value,K=F.clientWidth,z=F.clientHeight;if(K===0||z===0){console.error(`[useMapInstance] Container has ZERO dimensions (${K}×${z}). Map will be invisible. Check that parent elements have CSS sizing.`);let Z=F.parentElement,pe=0;for(;Z&&pe<5;)Z=Z.parentElement,pe++}const J=t;P||(N.accessToken=J);const j=()=>typeof window<"u"&&window.innerWidth>=1024,re=(Z,pe)=>{if(d)return typeof c=="number"?c:nc;if(!j())return nc;const Pe=F1(Z,pe,p,h);return typeof c=="number"?Math.max(c,Pe):Pe},_e=re(F.clientWidth,F.clientHeight),Te=B.lightPreset||(()=>{var Z;try{const pe=typeof n=="function"?n():n;return(Z=pe==null?void 0:pe.basemap)==null?void 0:Z.lightPreset}catch{return}})();if(P){g.value=new N.Map({container:e.value,style:T1(_,Te),locale:ef(V(),"maplibre"),center:r,zoom:s,minZoom:_e,maxZoom:p,pitch:f,bearing:x,dragRotate:!1,renderWorldCopies:S,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...$?{maxBounds:$}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),tf(g.value);try{e.value.__doxaMap=g.value}catch{}}else{const Z=typeof n=="function"?n():n;g.value=new N.Map({accessToken:J,container:e.value,style:_,locale:ef(V(),"mapbox"),...Z?{config:Z}:{},center:r,zoom:s,minZoom:_e,maxZoom:p,pitch:f,bearing:x,dragRotate:!1,touchPitch:!1,renderWorldCopies:S,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...$?{maxBounds:$}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),tf(g.value);try{e.value.__doxaMap=g.value}catch{}}try{let Z=!1;g.value.on("error",pe=>{var I,D;const Pe=((I=pe==null?void 0:pe.error)==null?void 0:I.status)??(pe==null?void 0:pe.status),M=String(((D=pe==null?void 0:pe.error)==null?void 0:D.url)||(pe==null?void 0:pe.sourceId)||"");Pe!==401&&Pe!==403||Z||(Z=!0,console.error(`[doxa-maps] Mapbox returned ${Pe} for a TILE request while the style loaded fine. That is a URL RESTRICTION on the access token, not a bad token and not a bug in this map. Add this page's origin (${typeof location<"u"?location.origin:"this origin"}) to the token's URL restrictions in the Mapbox account. The map will keep its data layer and stay blank underneath until then.`+(M?` First failing request: ${M.slice(0,120)}`:"")))})}catch{}try{g.value.touchZoomRotate.disableRotation()}catch{}m=p1(((X=e.value)==null?void 0:X.parentElement)||null,{enabled:y});let xe=_e,Se=null;u=()=>{const Z=g.value;if(!Z)return;const pe=re(F.clientWidth,F.clientHeight);pe!==xe&&(xe=pe,Z.setMinZoom(pe)),Z.getZoom(){Se=null;const Pe=g.value;if(!Pe)return;const M=re(F.clientWidth,F.clientHeight);if(Pe.getZoom(){Se&&(clearTimeout(Se),Se=null)},g.value.on("resize",u),typeof window<"u"&&(window.addEventListener("resize",u),window.addEventListener("orientationchange",u)),g.value.on("style.load",()=>{if(g.value&&Qg(g.value,V()),B.paint&&g.value){const Z=h1(g.value,B.paint);console.info("[useMapInstance] style paint applied ("+a+"):",Z.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var Z;(Z=g.value)==null||Z.resize(),g.value&&g.value.setMinZoom(re(F.clientWidth,F.clientHeight)),b.value=!0})})}function w(){if(g.value){if(u&&(g.value.off("resize",u),typeof window<"u"&&(window.removeEventListener("resize",u),window.removeEventListener("orientationchange",u)),u=null),v){try{v()}catch{}v=null}m&&(m(),m=null);try{const _=typeof window<"u"?window:null;_&&_.__doxaLogoOwner===g.value&&(_.__doxaLogoOwner=null)}catch{}const B=g.value;g.value.remove();try{e&&e.value&&e.value.__doxaMap===B&&(e.value.__doxaMap=null)}catch{}g.value=null,b.value=!1}}if(U&&typeof U=="object"&&"value"in U)try{Ue(U,()=>{g.value&&b.value&&Qg(g.value,V())})}catch{}return{map:g,isMapReady:b,initializeMap:H,destroy:w}}const I1=La&&La.tagName.toUpperCase()==="SCRIPT"&&La.src||new URL("doxa-research-map.js",document.baseURI).href,Kn=e=>String(e||"").trim().replace(/\/+$/,"");function af(){try{const t=String(I1||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function O1(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Kn(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Kn(o)}return Kn(af()||"")}function ac(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=Kn(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=Kn((e==null?void 0:e.treeBase)||"")||Kn(af()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return Kn(new URL(o+"/assets",n).href)}catch{return Kn(o+"/assets")}return"./assets"}function D1({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",r=e||(n==null?void 0:n.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const s=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(s){if(/^https?:\/\//i.test(s))return s;if(s.startsWith("/"))return a?window.location.origin+s:s;const i=O1(n),l=s.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const rf="adoptionStatus",Tn={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},rc=Tn,sc={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},z1=sc;function sf(e){var n;const t=e.adoptionStatus??((n=e._raw)==null?void 0:n.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Tn.hasAdoption:Tn.notAdopted}function ic({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Tn.hasAdoption,["==",t,1],Tn.hasAdoption,Tn.notAdopted]}const lf=ic,j1=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:rc,ADOPTION_LABELS:z1,LABELS:sc,PALETTE:Tn,PROPERTY_KEY:rf,applyColor:ic,buildColorExpression:lf,default:{name:"Adoption Progress",propertyKey:rf,palette:Tn,colors:Tn,labels:sc,getColor:sf,applyColor:ic,buildColorExpression:lf},getColor:sf},Symbol.toStringTag,{value:"Module"})),lc="affinityBlock",Za="#95a5a6",En={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf",A018:"Tibetan Peoples",A019:"Himalayan Peoples"},fi={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000",A018:"#6C3483",A019:"#A569BD"},qn=fi,cf=Object.entries(En).reduce((e,[t,o])=>(e[o]=t,e),{}),cc=Object.entries(En).reduce((e,[t,o])=>(e[o]=qn[t],e),{}),uf=En;function uc(e){return En[e]||"Unknown"}function dc(e){return qn[e]||Za}function df(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?qn[e]||Za:cc[e]||Za:Za}function pf(){return Object.entries(En).map(([e,t])=>({code:e,name:t,color:qn[e]}))}function gf(e){return{code:e,name:En[e]||"Unknown",color:qn[e]||Za}}function ff(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return dc(t)}function hf(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return uc(t)}function pc(){const e=["match",["get",lc]];return Object.entries(qn).forEach(([t,o])=>{e.push(t,o)}),e.push(Za),e}const mf=pc,B1=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:qn,AFFINITY_BLOCK_COLORS_BY_NAME:cc,AFFINITY_BLOCK_NAMES:En,AFFINITY_BLOCK_NAME_TO_CODE:cf,NAMES:uf,PALETTE:fi,PROPERTY_KEY:lc,affinityBlockCodeLookup:En,affinityBlockCodeToColor:qn,affinityBlockCodeToName:En,affinityBlockColors:cc,affinityBlockNameToCode:cf,applyColor:pc,buildColorExpression:mf,default:{name:"Affinity Block",propertyKey:lc,palette:fi,colors:fi,names:uf,getColor:ff,applyColor:pc,buildColorExpression:mf,getName:hf,getAffinityBlockName:uc,getAffinityBlockColor:df,getAffinityBlockColorByCode:dc,getAffinityBlocksArray:pf,getAffinityBlockData:gf},getAffinityBlockColor:df,getAffinityBlockColorByCode:dc,getAffinityBlockData:gf,getAffinityBlockName:uc,getAffinityBlocksArray:pf,getColor:ff,getName:hf},Symbol.toStringTag,{value:"Module"}));function G1(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(fc),e}const yf=bc,U1=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:H1,PALETTE:hi,PROPERTY_KEY:gc,REGION_COLOR_ALIASES:mc,SLUG_PALETTE:mi,applyColor:bc,buildColorExpression:yf,default:{name:"DOXA Region",propertyKey:gc,palette:hi,colors:hi,slugColors:mi,aliases:mc,fallback:fc,getColor:_f,applyColor:bc,buildColorExpression:yf,getRegionColor:$f,getRegionColorBySlug:hc},getColor:_f,getRegionColor:$f,getRegionColorBySlug:hc},Symbol.toStringTag,{value:"Module"})),vf="engagementStatus",Mn={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},$c=Mn,_c={notEngaged:"Unengaged",hasEngagement:"Engaged"},W1=_c;function wf(e){var n;const t=e.engagementStatus??((n=e._raw)==null?void 0:n.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Mn.hasEngagement:Mn.notEngaged}function yc({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Mn.hasEngagement,["==",t,1],Mn.hasEngagement,Mn.notEngaged]}const kf=yc,K1=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:$c,ENGAGEMENT_LABELS:W1,LABELS:_c,PALETTE:Mn,PROPERTY_KEY:vf,applyColor:yc,buildColorExpression:kf,default:{name:"Engagement Progress",propertyKey:vf,palette:Mn,colors:Mn,labels:_c,getColor:wf,applyColor:yc,buildColorExpression:kf},getColor:wf},Symbol.toStringTag,{value:"Module"})),vc="languageFamily",q1="#000000",Vn={"Indo-European":"#e74c3c",Dravidian:"#ff9800","Afro-Asiatic":"#27ae60","Sino-Tibetan":"#3498db","Niger-Congo":"#9b59b6",Unclassified:"#95a5a6","Nilo-Saharan":"#e91e63","Khoe-Kwadi":"#00bcd4","Austro-Asiatic":"#00bcd4","Kra-Dai":"#8e44ad",Austronesian:"#ff69b4","Hmong-Mien":"#f44336",Turkic:"#ffc107","Nakh-Daghestanian":"#009688",Mongolic:"#795548",Uralic:"#607d8b",Tungusic:"#4caf50",Japonic:"#ff5722",Cariban:"#673ab7",Tupian:"#03a9f4",Tucanoan:"#8bc34a",Maipurean:"#ffc107",Panoan:"#cddc39",Guajiboan:"#9e9e9e",Chibchan:"#ff7043",Quechuan:"#ab47bc",Jean:"#26a69a",Harákmbut:"#7e57c2",Nambikwara:"#42a5f5",Muran:"#66bb6a",Karajá:"#ffa726",Bororoan:"#ef5350",Arauan:"#5c6bc0",Yanomaman:"#26c6da",Yaguan:"#d4e157",Witotoan:"#78909c",Zamucoan:"#8d6e63",Puinavean:"#aed581",Barbacoan:"#4db6ac","Eyak-Athabaskan":"#7986cb","Trans-New Guinea":"#ba68c8",Andamanese:"#4dd0e1","Atlantic-Congo":"#7D3C98",Mande:"#B9770E","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},xf=Vn;function Go(e){return Vn[e]||q1}const V1=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(Vn))t[e(o)]=o;return t})(),Y1={"tai-kadai":"Kra-Dai",none:"Unknown"};function bi(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return Y1[o]||V1[o]||t}function Sf(e){var t;return Go(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function wc(){const e=["match",["get",vc]];return Object.entries(Vn).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const Af=wc,Z1=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:xf,PALETTE:Vn,PROPERTY_KEY:vc,applyColor:wc,buildColorExpression:Af,canonicalFamilyName:bi,default:{name:"Language Family",propertyKey:vc,palette:Vn,colors:Vn,getColor:Sf,applyColor:wc,buildColorExpression:Af,getLanguageFamilyColor:Go,canonicalFamilyName:bi},defaultFamilyColor:"#95a5a6",getColor:Sf,getLanguageFamilyColor:Go,languageFamilyColors:Vn},Symbol.toStringTag,{value:"Module"})),Pf="peoplePraying",ln=144,Yn={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},da=Yn,kc={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},J1=kc;function $i(e){var n;const t=(e==null?void 0:e.peoplePraying)??((n=e==null?void 0:e._raw)==null?void 0:n.people_praying)??null,o=Number(t)||0;return o>=ln?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function xc(e){return Yn[$i(e)]}function Lf(e){var o;const t=(e==null?void 0:e.peoplePraying)??((o=e==null?void 0:e._raw)==null?void 0:o.people_praying)??null;return t!==null&&t>0}function Cf(e){return $i(e)==="fullPrayer"}function Tf(e){return xc(e)}function Sc({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,ln],Yn.fullPrayer,[">",t,0],Yn.hasPrayer,Yn.noPrayer]}const Ef=Sc,X1=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:ln,LABELS:kc,PALETTE:Yn,PRAYER_COLORS:da,PRAYER_LABELS:J1,PROPERTY_KEY:Pf,applyColor:Sc,buildColorExpression:Ef,checkHasFullPrayer:Cf,checkHasPrayer:Lf,default:{name:"Prayer Progress",propertyKey:Pf,palette:Yn,colors:Yn,labels:kc,threshold:ln,getColor:Tf,applyColor:Sc,buildColorExpression:Ef,getPrayerLevel:$i,getPrayerColor:xc,checkHasPrayer:Lf,checkHasFullPrayer:Cf},getColor:Tf,getPrayerColor:xc,getPrayerLevel:$i},Symbol.toStringTag,{value:"Module"})),Mf="religion",Ac="#94a3b8",Ho={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},xo={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function Hr(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return Ho[t]?t:"U"}function Rf(e){var o,n,a;const t=(e==null?void 0:e.religion)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.religion)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return xo[Hr(t)]||Ac}function Pc(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",xo.C,"M",xo.M,"H",xo.H,"B",xo.B,"E",xo.E,"J",xo.J,"S",xo.S,"N",xo.N,"O",xo.O,Ac]}const Ff=Pc,Q1={name:"Religion",propertyKey:Mf,palette:xo,families:Ho,getColor:Rf,applyColor:Pc,buildColorExpression:Ff,fallback:Ac};function Lc(e){const t=String(e||""),o=Ho[t]||t;return o?no("religion.family."+o)||o:""}const ev=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:xo,PROPERTY_KEY:Mf,RELIGION_FAMILIES:Ho,applyColor:Pc,buildColorExpression:Ff,default:Q1,getColor:Rf,getReligionFamily:Hr,religionFamilyLabel:Lc},Symbol.toStringTag,{value:"Module"})),Nf="resourceType",Zn={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},tv=Zn,Ur=["bible","jesusFilm","radio","gospel","audio","stories"],Cc={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},ov=Cc;function Wr(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function If(e){var t;for(const o of Ur)if((e[o]||((t=e._raw)==null?void 0:t[Wr(o)]))==="Available")return Zn.hasResources;return Zn.noResources}function Of(e){var t;for(const o of Ur)if((e[o]||((t=e._raw)==null?void 0:t[Wr(o)]))==="Available")return!0;return!1}function Df(e){var t;for(const o of Ur)if((e[o]||((t=e._raw)==null?void 0:t[Wr(o)]))==="Available")return o;return"noResources"}function Tc(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],Zn.hasResources,Zn.noResources]}const zf=Tc,nv=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Cc,PALETTE:Zn,PROPERTY_KEY:Nf,RESOURCE_COLORS:tv,RESOURCE_NAMES:ov,RESOURCE_PRIORITY:Ur,applyColor:Tc,buildColorExpression:zf,default:{name:"Gospel Resources",propertyKey:Nf,palette:Zn,colors:Zn,names:Cc,priority:Ur,getColor:If,applyColor:Tc,buildColorExpression:zf,hasAnyResource:Of,getResourceType:Df,getCSVColumn:Wr},getCSVColumn:Wr,getColor:If,getResourceType:Df,hasAnyResource:Of},Symbol.toStringTag,{value:"Module"})),jf="region",Ec="#6d766e",Bf={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},Kr={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Mc=Object.keys(Kr);function Gf(e){var o,n,a;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.wagf_region);return Kr[t]||Ec}function Rc(){const e=["match",["coalesce",["get","region"],""]];for(const t of Mc)e.push(t,Kr[t]);return e.push(Ec),e}const Hf=Rc,av=Object.assign({"./adoption.js":j1,"./affinity-block.js":B1,"./doxa-region.js":U1,"./engagement.js":K1,"./language-family.js":Z1,"./prayer-progress.js":X1,"./religion.js":ev,"./resource.js":nv,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Kr,PROPERTY_KEY:jf,REGION_ORDER:Mc,WAGF_REGIONS:Bf,applyColor:Rc,buildColorExpression:Hf,default:{name:"WAGF Region",propertyKey:jf,palette:Kr,regions:Bf,order:Mc,getColor:Gf,applyColor:Rc,buildColorExpression:Hf,fallback:Ec},getColor:Gf},Symbol.toStringTag,{value:"Module"}))}),rv=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),sv=e=>e.replace(/-/g,"_").toUpperCase(),Ja={...{STATUS:"status",CUSTOM:"custom"}},Fc={};function iv(e){for(const t of Object.keys(e).sort()){const o=t.split("/").pop().replace(/\.js$/,"");if(o.startsWith("_")||o.startsWith("."))continue;const n=e[t].default;if(!n)continue;const a=rv(o);Ja[sv(o)]=a,Fc[a]=n}}iv(av);function cn(e){return Fc[e]||Fc[Ja.LANGUAGE_FAMILY]}function lv(e,t={}){return cn(e).applyColor(t)}const cv={Africa:{zoom:1.3,center:[16.6512,26.3538]},Asia:{zoom:.8,center:[98.2654,49.9282]},Europe:{zoom:1.4,center:[22.7826,70.1026]},"Latin America & Caribbean":{zoom:1.8,center:[-60.4619,10.1428]},"Middle East":{zoom:1.7,center:[22.9056,39.5752]},"No WAGF Region/Bloc":{zoom:.6,center:[-8.2363,44.2392]},"North America & Non-Spanish Caribbean":{zoom:2.1,center:[-68.1935,31.4282]},Oceania:{zoom:1.5,center:[161.6257,-.668]}},Uf={circleRadius:{standard:["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],highlighted:["interpolate",["linear"],["zoom"],0,4,4,5,8,12,12,20],faded:["interpolate",["linear"],["zoom"],0,2,4,2.5,8,5,12,8],compact:["interpolate",["linear"],["zoom"],0,2,4,3,8,6,12,10],large:["interpolate",["linear"],["zoom"],0,4,4,6,8,14,12,24],touchTarget:["interpolate",["linear"],["zoom"],0,12,2,15,4,19,6,20,8,21,10,22,12,24,14,28]}};function uv(e){return cv[e]||null}function Nc(e="standard"){return Uf.circleRadius[e]||Uf.circleRadius.standard}const dv={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};function Ft(e){return e==null?"":String(e).replace(/[&<>"'`]/g,t=>dv[t])}function pv(e,t=""){try{const o=new URL(String(e),typeof location<"u"?location.href:"https://example.invalid/");if(o.protocol==="http:"||o.protocol==="https:")return Ft(o.href)}catch{}return Ft(t)}function Wf(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,r=ze("uiStore"),{t:s,locale:i}=Dt(),l=ve([]);function c(b){const u=n(b.languageFamily),v="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let m=b.imageUrl;(!m||m.includes("NoImageAvailable"))&&(m=v);const k=(b.name||"U")[0].toUpperCase(),E=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],P=k.charCodeAt(0)%E.length,U=E[P];return`
- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "bundle": "all-people-groups" } @@ -110,7 +110,7 @@ "bundle": "cities-internet", "scriptUrl": "./cities-internet/cities-internet.js", "output": "dx-maps/cities-internet/cities-internet.js", - "integrity": "sha384-aPcLyzTRwZhkZGJDg3pUyHtPR1qlxjGYBzYq2DEJfd2rgRXvLudoS6PVTju5wejB", + "integrity": "sha384-nijTwnKnapJr5fDp5lBFhxCUv4NfZsL7uOOcjUTQng7N6m2eVrR2Lcn7nBvMqT6/", "elements": [ "cities-internet-map" ], @@ -129,7 +129,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -145,8 +145,8 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -162,7 +162,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } } ] @@ -171,7 +171,7 @@ "bundle": "country-map", "scriptUrl": "./country-map/country-map.js", "output": "dx-maps/country-map/country-map.js", - "integrity": "sha384-gInh0MBkBBYlZ7EvHGjDW2FvL73HwJhqiCA1qGgsJj8i6vn64a9JJEWOED+xlaKy", + "integrity": "sha384-nJSkdmu0Z6cfzBHjAc/LtUhyLupyd5cb9dwOtBzytX6byz4MaX4nHyPT3I2mDS6C", "elements": [ "doxa-country-map" ], @@ -190,8 +190,8 @@ "scriptUrl": "./country-map/country-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -200,7 +200,7 @@ "bundle": "country-posters", "scriptUrl": "./country-posters/country-posters.js", "output": "dx-maps/country-posters/country-posters.js", - "integrity": "sha384-KwlLSTYPX6UaGJnLYkSYixKA2yokMSay9JvhuGQ2WvssbYps6qR1+J6IAss9J19I", + "integrity": "sha384-VG1gavfzqVQZvxwvwXlvra/VMRwL9W98cvkyz19KbAITegNnYKltyZEIcLFgdB3J", "elements": [ "country-posters-map" ], @@ -223,8 +223,8 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -240,7 +240,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -256,8 +256,8 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -315,7 +315,7 @@ "bundle": "demo-map", "scriptUrl": "./demo-map/demo-map.js", "output": "dx-maps/demo-map/demo-map.js", - "integrity": "sha384-ipuwR2y7omghFvmN09K38JBc4jdUtXE96MGgiyEH73EtcltP9STr/dHekRM+dhtQ", + "integrity": "sha384-7p1XJ+Sjb6BC0CdTaK+EhXWz/AH3q89LWDUp7m5ehurBiPqECbGqyhfSpx3MaVbD", "elements": [ "demo-map" ], @@ -333,8 +333,8 @@ "scriptUrl": "./demo-map/demo-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { @@ -416,7 +416,7 @@ "bundle": "doxa-research-map", "scriptUrl": "./doxa-research-map/doxa-research-map.js", "output": "dx-maps/doxa-research-map/doxa-research-map.js", - "integrity": "sha384-p8YIBW5NhHBA0OA0PYmwKW5qzHnKjsUGY1HNrKLWUh+TIx1yePbTVejhIc9shnmb", + "integrity": "sha384-eO5R+bFRZx9shq117GcJzbpVd5kWDiCQ7gsuWKSbhgkl98STI6petAkpH0ywp4+m", "elements": [ "doxa-research-map" ], @@ -435,8 +435,8 @@ "scriptUrl": "./doxa-research-map/doxa-research-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { @@ -462,7 +462,7 @@ "bundle": "doxa-simple-map", "scriptUrl": "./doxa-simple-map/doxa-simple-map.js", "output": "dx-maps/doxa-simple-map/doxa-simple-map.js", - "integrity": "sha384-ZQJVNowy7JjvK4QGKvCypzfYMjYr73bEp2sW23PurPftT72IWFW4sW3xgzGlCfrO", + "integrity": "sha384-fV7TEcIYYGCWBXN+y41/nuS2n04VLLw9zyUbuDevSD6rsFs4FYFgk4evhbZj7/hX", "elements": [ "doxa-map", "doxa-simple-map" @@ -482,8 +482,8 @@ "scriptUrl": "./doxa-simple-map/doxa-simple-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { @@ -653,7 +653,7 @@ "bundle": "gospel-internet", "scriptUrl": "./gospel-internet/gospel-internet.js", "output": "dx-maps/gospel-internet/gospel-internet.js", - "integrity": "sha384-Epyu/peBlDxklCQ6FaNk6CV2U0IjC3Sf1Doo+hUsNM0o0qq/t+k2ZT7NUMgef/xl", + "integrity": "sha384-zdV4Rrqb/7RTWbJb+NsPALAqhzOK5An66QD3g5rKKX97TGJFymbQiFWtx76aUBXx", "elements": [ "gospel-internet-board" ], @@ -674,8 +674,8 @@ "scriptUrl": "./gospel-internet/gospel-internet.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { @@ -782,7 +782,7 @@ "bundle": "gospel-resources", "scriptUrl": "./gospel-resources/gospel-resources.js", "output": "dx-maps/gospel-resources/gospel-resources.js", - "integrity": "sha384-VJWAUyChtMo6CyNwJuswTTWT7l6KUXwjM45gW/VEsPRIRATl/MQOsx+ef6tdF65d", + "integrity": "sha384-esoYKrQIdSPzc6P/xiObiUaw3B0fs7Kuz+O8JazN72YGJRkZC0ksJVlhLPtcNLxo", "elements": [ "gospel-resources-map" ], @@ -805,7 +805,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -821,7 +821,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -837,8 +837,8 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -854,7 +854,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -870,8 +870,8 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -880,7 +880,7 @@ "bundle": "my-upg-100-list", "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "output": "dx-maps/my-upg-100-list/my-upg-100-list.js", - "integrity": "sha384-hzTYBfV2VE4fVsdOlsLUPCY3lPI5qo0tlCYNJAp5SIXBr67lxagGkWeaf+6K7I1z", + "integrity": "sha384-YjbXsqg9iQc8SHWHNr5oLkGYYmE1+d1SkVguZoY10f7zc7r4yyShnNkg5nfOttmb", "elements": [ "my-upg-100-list-map" ], @@ -903,7 +903,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -919,8 +919,8 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -936,8 +936,8 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -1068,7 +1068,7 @@ "bundle": "pplr-data-maps", "scriptUrl": "./pplr-data-maps/pplr-data-maps.js", "output": "dx-maps/pplr-data-maps/pplr-data-maps.js", - "integrity": "sha384-x22CmHAymgOnRiSCzPK62CmPGynnAr4lpcmNfXA7WCdQn3MF0FTZMOP1gv5AnhY4", + "integrity": "sha384-EkAuhLXPChyK/ID4y0BsQ8BLdhU5QCytLmHSRX0LAJ8QhxMQsbUM+N/HraEHHT3c", "elements": [ "pplr-data-maps" ], @@ -1087,8 +1087,8 @@ "scriptUrl": "./pplr-data-maps/pplr-data-maps.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "bundle": "pplr-data-maps" } @@ -1126,7 +1126,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "dx-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-LFmTwqcKfLGZU2I7aSHdYAy1YVbvPutkcAI1EFSO9YREaAjkdmULX7eewfHMm8DG", + "integrity": "sha384-G/ip3BKDre+u59aTOCgbJTMnG9Alb+dbrkt6YIw2TqbNG6PGreXCMqjFLfhrBesZ", "elements": [ "regions-dashboard" ], @@ -1149,8 +1149,8 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -1166,7 +1166,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -1182,7 +1182,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } } ] @@ -1191,7 +1191,7 @@ "bundle": "research-dashboard", "scriptUrl": "./research-dashboard/research-dashboard.js", "output": "dx-maps/research-dashboard/research-dashboard.js", - "integrity": "sha384-9Tvn7IZGXBVdMuD4riH39+79Ajd9g7DmvSXaNyYAB8lWw3x+EitLDpJh8ulhN0nJ", + "integrity": "sha384-JMFAa6yCFz8A9hF9N/HpoiGI9HP7dUmMhbkwyGuRZqefN8TNSvR/EJUkFra7YcpL", "elements": [ "research-dashboard-map" ], @@ -1210,8 +1210,8 @@ "scriptUrl": "./research-dashboard/research-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "bundle": "research-dashboard" } @@ -1315,7 +1315,7 @@ "bundle": "upg-neighbor", "scriptUrl": "./upg-neighbor/upg-neighbor.js", "output": "dx-maps/upg-neighbor/upg-neighbor.js", - "integrity": "sha384-JKUsRU1tDLEi6sz6flF1vJ2KGhGyAy7dTLeeubVPtnMmYsv/TQ8I3D18qYK60NoA", + "integrity": "sha384-CLlZVEfMu9+QcA8/NLd1+CIksytk1/voqLdW7i8Zf6jv1iubNRPP1RMf/LbhJGNB", "elements": [ "upg-neighbor" ], @@ -1334,8 +1334,8 @@ "scriptUrl": "./upg-neighbor/upg-neighbor.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { @@ -1417,7 +1417,7 @@ "bundle": "wall-of-people-groups", "scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js", "output": "dx-maps/wall-of-people-groups/wall-of-people-groups.js", - "integrity": "sha384-1QxjXYu7uDs/F9cI+AO/51omkXWEi1QIFjwumnWlX/f/R/QB95imcFRvCN8KjCmU", + "integrity": "sha384-rjnA4qgtwgrQC7iLWc+whRkgmLG5a2HYEOqeoCm28JyJym6abkNbpOAs6ZF5BBDR", "elements": [ "wall-of-people-groups" ], @@ -1436,7 +1436,7 @@ "scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "bundle": "wall-of-people-groups" } diff --git a/public/dx-maps/my-upg-100-list/my-upg-100-list.js b/public/dx-maps/my-upg-100-list/my-upg-100-list.js index 2ed14eb67..fa330f4fb 100644 --- a/public/dx-maps/my-upg-100-list/my-upg-100-list.js +++ b/public/dx-maps/my-upg-100-list/my-upg-100-list.js @@ -79,7 +79,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(te,z)=>c.value?vs((q(),ie("div",{key:0,ref_key:"hintEl",ref:v,class:Ge(["pin-hint",{dark:s.value}]),role:"status"},[M("span",H_,[z[0]||(z[0]=M("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Rt(" "+pe(l.value)+" ",1),M("button",{class:"pin-hint-x",type:"button","aria-label":t("aria.dismissHint","Dismiss hint"),onClick:S},"×",8,U_)])],2)),[[wd,u.value&&p.value]]):Pe("",!0)}},K_=".lsn-bar[data-v-9a589f6f]{display:flex;align-items:flex-start;gap:8px;flex:none;margin:0;padding-block:8px;padding-inline:12px 8px;background:#fff8e1;border-block-end:1px solid #f0d68a;color:#4a3b00;font:400 13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}.lsn-bar__text[data-v-9a589f6f]{flex:1 1 auto;margin:0}.lsn-bar__x[data-v-9a589f6f]{flex:none;min-width:24px;min-height:24px;padding:0;border:0;border-radius:4px;background:transparent;color:inherit;font:600 18px/1 system-ui,sans-serif;cursor:pointer}.lsn-bar__x[data-v-9a589f6f]:focus-visible{outline:2px solid #1a73e8;outline-offset:2px}.lsn-block[data-v-9a589f6f]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;min-height:200px;padding:24px;background:#f7f7f5;color:#333;text-align:center;font:400 15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.lsn-block__text[data-v-9a589f6f]{max-width:28em;margin:0}",Va=(e,t)=>{const o=e.__vccOpts||e;for(const[a,n]of t)o[a]=n;return o},V_={key:0,class:"lsn-block",role:"status"},Y_={class:"lsn-block__text"},q_={key:0},Z_={key:1,class:"lsn-bar",role:"note"},J_={class:"lsn-bar__text"},X_=["aria-label","title"],gg=Va({__name:"LargerScreenNotice",props:{mode:{type:String,required:!0},label:{type:String,default:""},locale:{type:String,default:""}},emits:["dismiss"],setup(e){const t=e,o=(i,s)=>Pa(i,t.locale||void 0)||s,a=oe(()=>o("messages.largerScreenNotice","This experimental map is built for larger screens. It opens here, but parts of it may not fit or work well on a phone.")),n=oe(()=>o("messages.noticeDismiss","Dismiss")),r=oe(()=>o("messages.desktopOnlyNotice","{label} only supports desktop — open this page on a desktop to use it.").split("{label}"));return(i,s)=>e.mode==="desktop-only"?(q(),ie("div",V_,[M("p",Y_,[Rt(pe(r.value[0]),1),r.value.length>1?(q(),ie("bdi",q_,pe(e.label),1)):Pe("",!0),Rt(pe(r.value[1]||""),1)])])):(q(),ie("div",Z_,[M("p",J_,pe(a.value),1),M("button",{type:"button",class:"lsn-bar__x","aria-label":n.value,title:n.value,onClick:s[0]||(s[0]=l=>i.$emit("dismiss"))},"×",8,X_)]))}},[["styles",[K_]],["__scopeId","data-v-9a589f6f"]]),Q_="(max-width: 639.98px)";function ey(e){for(let t=e;t;t=t.parentNode||t.host)if(t.nodeType===1&&t.hasAttribute("data-doxa-gallery"))return!0;return!1}function ty(e){var l;const t=oe(()=>{var u;const c=(u=e.value)==null?void 0:u.mobile;return c==="desktop-only"||c==="larger-screens"?c:null});let o=null;try{o=ib()}catch{o=null}const a=o?ey(o):!1,n=_e(!1);if(typeof window<"u"&&typeof window.matchMedia=="function"){const c=window.matchMedia(Q_);n.value=c.matches;const u=d=>{n.value=d.matches};(l=c.addEventListener)==null||l.call(c,"change",u),co(()=>{var d;return(d=c.removeEventListener)==null?void 0:d.call(c,"change",u)})}const r=oe(()=>{var c;return`dx-maps:larger-screens-dismissed:${((c=e.value)==null?void 0:c.profile)||""}`}),i=_e(!1);rt(r,c=>{try{i.value=sessionStorage.getItem(c)==="1"}catch{i.value=!1}},{immediate:!0});function s(){i.value=!0;try{sessionStorage.setItem(r.value,"1")}catch{}}return{flag:t,blocked:oe(()=>t.value==="desktop-only"&&n.value&&!a),advise:oe(()=>t.value==="larger-screens"&&n.value&&!a&&!i.value),dismiss:s,label:oe(()=>{var c,u;return String(((c=e.value)==null?void 0:c.mobileLabel)||((u=e.value)==null?void 0:u.profile)||"")})}}const oy=!1;let ay=0;const ny=Ys("ui",{state:()=>({_storeInstanceId:++ay,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:a=this.toastDuration,action:n=null,persistent:r=!1}=e,i={id:this.nextToastId++,message:t,type:o,duration:a,action:n,persistent:r,createdAt:Date.now()};return this.toasts.push(i),!r&&a>0&&setTimeout(()=>{this.removeToast(i.id)},a),i.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(o=>{for(const a of o)this.updateWindowSize(a.contentRect.width,a.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),ry=Ys("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusteringMode:"off",clusterPinOpacity:.6,clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let a=1.5;o.zoom!==void 0?a=o.zoom:t&&typeof t.getZoom=="function"&&(a=t.getZoom());let n=[0,0];if(o.center)n=o.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(n=[r.lng,r.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:a,center:n,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),iy=Ys("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Oa({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Oa({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),ur={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},sy=".profile-loader[data-locale-pending][data-v-b5256f00] .stl-tabs,.profile-loader[data-locale-pending][data-v-b5256f00] .stl-title,.profile-loader[data-locale-pending][data-v-b5256f00] .stl-rows,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-title,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-content,.profile-loader[data-locale-pending][data-v-b5256f00] .legend-reopen-label,.profile-loader[data-locale-pending][data-v-b5256f00] .lt-btn-text,.profile-loader[data-locale-pending][data-v-b5256f00] .rd-topbar,.profile-loader[data-locale-pending][data-v-b5256f00] .rd-exportbar{visibility:hidden}.profile-loader[data-v-b5256f00]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-loader.has-screen-notice[data-v-b5256f00]{display:flex;flex-direction:column}.profile-loader.has-screen-notice[data-v-b5256f00]>:not(.lsn-bar){flex:1 1 auto;min-height:0;position:relative!important;inset:auto!important}.profile-error[data-v-b5256f00]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",ly=["dir","data-locale-pending"],cy={key:0,class:"profile-error"},uy={key:1,class:"profile-error"},dy=Va({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var ee;const o=e,a=Ye("profileConfig",null),n=oe(()=>{var C;if(!o.profileConfig)return null;let S;try{S=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(S&&S.assetsBase===void 0){const ge=(C=a==null?void 0:a.value)==null?void 0:C.assetsBase;typeof ge=="string"&&ge&&(S.assetsBase=ge)}return S}),r=oe(()=>{var S;return((S=n.value)==null?void 0:S.profile)||null}),i=kb(),s=oe(()=>{var C;const S=(C=n.value)==null?void 0:C.tk;return typeof S=="string"&&S?S:i.value||""});rt(()=>{var S;return(S=n.value)==null?void 0:S.tk},S=>{typeof S=="string"&&S&&Js(S)},{immediate:!0}),rt(()=>{var S;return(S=n.value)==null?void 0:S.tokenUrl},S=>{var C;S&&!((C=n.value)!=null&&C.tk)&&!i.value&&wb(S)},{immediate:!0});const l=oe(()=>{var S;return((S=n.value)==null?void 0:S.dataSource)||ur.activeSource}),c=oe(()=>{var S;return((S=n.value)==null?void 0:S.colorSet)||"default"}),u=oe(()=>!1),d=oe(()=>{var S;return((S=n.value)==null?void 0:S.pinHint)!==!1}),p=oe(()=>{var C,ge;const S=(((C=n.value)==null?void 0:C.locale)||((ge=n.value)==null?void 0:ge.lang)||ig()||"").split("-")[0].toLowerCase();return cr.includes(S)?S:""}),$=Ye("appI18n",null);Au(()=>{p.value&&($&&($.global.locale.value=p.value),lg(p.value),$l($,p.value).catch(()=>{}))});const k=oe(()=>{var S,C;return p.value||((C=(S=$==null?void 0:$.global)==null?void 0:S.locale)==null?void 0:C.value)||"en"}),_=oe(()=>wi.has(k.value)?"rtl":"ltr"),{blocked:b,advise:y,dismiss:v,label:w}=ty(n),g=_e(!1);Au(S=>{const C=k.value;if(!wi.has(C)){g.value=!1;return}let ge=!0;S(()=>{ge=!1}),g.value=!0,N_(C).finally(()=>{ge&&(g.value=!1)})});const f=oe(()=>{var S;return((S=n.value)==null?void 0:S.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),x=Ye("profileModules",null);if(!x)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const P=oe(()=>{if(!r.value)return null;const S=`./${r.value}.vue`;return x[S]?pg(x[S]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(x)),null)});Jt("mapboxToken",s),Jt("dataSource",l),Jt("colorSet",c),Jt("profileConfig",n),Jt("instanceId",f),Jt("lang",k);const A=ny(),L=ry(),X=iy();try{const S=typeof localStorage<"u"?localStorage.getItem("theme"):null;S&&((ee=A.setTheme)==null||ee.call(A,S))}catch{}return Jt("uiStore",A),Jt("mapStore",L),Jt("dataStore",X),(S,C)=>(q(),ie("div",{class:Ge(["profile-loader",{"has-screen-notice":he(y)}]),dir:_.value,"data-locale-pending":g.value?"":null},[n.value?P.value?he(b)?(q(),mt(gg,{key:2,mode:"desktop-only",label:he(w),locale:k.value},null,8,["label","locale"])):(q(),ie(Ke,{key:3},[he(y)?(q(),mt(gg,{key:0,mode:"larger-screens",locale:k.value,onDismiss:he(v)},null,8,["locale","onDismiss"])):Pe("",!0),(q(),mt(Ls(P.value)))],64)):(q(),ie("div",uy,[M("p",null,[C[1]||(C[1]=Rt("⚠️ Profile ",-1)),M("strong",null,'"'+pe(r.value)+'"',1),C[2]||(C[2]=Rt(" not found.",-1))])])):(q(),ie("div",cy,[...C[0]||(C[0]=[M("p",null,[Rt("⚠️ "),M("strong",null,"doxa-map"),Rt(": missing or invalid "),M("code",null,"profile-config"),Rt(" prop.")],-1),M("p",null,[Rt("Example: "),M("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),P.value&&u.value?(q(),mt(Ls(he(null)),{key:4})):Pe("",!0),P.value&&d.value?(q(),mt(W_,{key:5})):Pe("",!0)],10,ly))}},[["styles",[sy]],["__scopeId","data-v-b5256f00"]]);function hg(e,t,o){var n;const a=(n=e==null?void 0:e._context)==null?void 0:n.provides;if(a&&t in a){a[t]=o;return}e.provide(t,o)}function py(e,t){var n;const o=(n=e==null?void 0:e._context)==null?void 0:n.provides,a=o?Object.getPrototypeOf(o):null;a&&Object.setPrototypeOf(o,null);try{return t()}finally{a&&Object.setPrototypeOf(o,a)}}function gy({profileModules:e={},configureApp:t=null}={}){return nb(dy,{configureApp(o){const a=mb();py(o,()=>o.use(a));const n=R_();o.use(n),hg(o,"appI18n",n),hg(o,"profileModules",e),t&&t(o,{pinia:a,i18n:n})}})}const hy=Object.assign({"./poster-wall.vue":()=>ft(()=>Promise.resolve().then(()=>H1),void 0),"./upg-100-list.vue":()=>ft(()=>Promise.resolve().then(()=>UP),void 0),"./upg-100-mfe.vue":()=>ft(()=>Promise.resolve().then(()=>kS),void 0)});function fy(){return gy({profileModules:hy,configureApp:(e,{pinia:t,i18n:o})=>{}})}const my=fy();typeof customElements<"u"&&(customElements.get("my-upg-100-list-map")||customElements.define("my-upg-100-list-map",my));const _l={default:"doxa",lists:[{id:"doxa",aliases:["2000","project-2000"],label:"Project 2000: DOXA's people groups",definition:"The people groups DOXA serves, as its live list gives them",source:"doxa",filter:null},{id:"unreached",aliases:["7000","project-7000"],label:"Project 7000: unreached people groups",definition:"IMB Lostness Priority 0-2 (Frontier, Pioneer or Expanding Unreached: under 2% evangelical)",source:"imb",filter:{lostness:[0,1,2]}},{id:"frontier",aliases:["4700","project-4700"],label:"Project 4700: frontier people groups",definition:"IMB Lostness Priority 0 (Frontier Unreached: 0.1% evangelical or less)",source:"imb",filter:{lostness:[0]}},{id:"frontier-500k",aliases:["700","project-700"],label:"Project 700: frontier people groups of 500,000 or more",definition:"IMB Lostness Priority 0 and Population of at least 500,000",source:"imb",filter:{lostness:[0],minPopulation:5e5}},{id:"unengaged",aliases:[],label:"Unengaged unreached people groups",definition:"IMB Lostness Priority 0-2 and Engagement Status Unengaged",source:"imb",filter:{lostness:[0,1,2],engagement:["Unengaged"]}}]},by=an&&an.tagName.toUpperCase()==="SCRIPT"&&an.src||new URL("my-upg-100-list.js",document.baseURI).href,Sa=e=>String(e||"").trim().replace(/\/+$/,"");function yl(){try{const t=String(by||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function $y(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Sa(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Sa(o)}return Sa(yl()||"")}function la(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const a=Sa(t);if(/^https?:\/\//i.test(a)||a.startsWith("/"))return a}const o=Sa((e==null?void 0:e.treeBase)||"")||Sa(yl()||"");if(o)try{const a=typeof document<"u"?document.baseURI:void 0;return Sa(new URL(o+"/assets",a).href)}catch{return Sa(o+"/assets")}return"./assets"}function _y({shareUrl:e,embedPath:t,profileConfig:o}={}){const a=o||null,n=typeof window<"u",r=e||(a==null?void 0:a.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const i=String(t||(a==null?void 0:a.shareEmbedPath)||"").trim();if(i){if(/^https?:\/\//i.test(i))return i;if(i.startsWith("/"))return n?window.location.origin+i:i;const s=$y(a),l=i.replace(/^\.\//,"");if(s)return s+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return n?window.location.origin+window.location.pathname:""}const dr=_l.default,vl=new Map;for(const e of _l.lists){vl.set(e.id,e);for(const t of e.aliases||[])vl.set(String(t).toLowerCase(),e)}function fg(e){return vl.get(String(e??"").toLowerCase().trim())||null}function mg(e){let t=e;if(t&&typeof t=="object"&&"value"in t&&!("list"in t)&&!("profile"in t)&&(t=t.value),typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return t&&typeof t=="object"?t:null}const bg=new Set;function xn(e){const t=mg(e),o=t==null?void 0:t.list,a=typeof location<"u"?new URLSearchParams(location.search).get("list"):null,n=typeof window<"u"?window.MAP_LIST:void 0,r=o||a||n||dr,i=fg(r);return i?i.id:(bg.has(r)||(bg.add(r),console.warn(`[list] unknown people-group list "${r}", showing "${dr}". Known: ${_l.lists.map(s=>s.id).join(", ")}`)),dr)}const Ai=new Map;function yy(e,t){const o=`${la(mg(t))}/people-groups/lists/${e}.json`;return Ai.has(o)||Ai.set(o,fetch(o).then(a=>{if(!a.ok)throw new Error(`HTTP ${a.status}`);return a.json()}).then(a=>new Set(Array.isArray(a==null?void 0:a.slugs)?a.slugs:[])).catch(a=>{throw Ai.delete(o),new Error(`list "${e}" membership ${o}: ${a.message}`)})),Ai.get(o)}async function Li(e,t,{key:o=a=>a==null?void 0:a.slug}={}){const a=xn(t);if(a===dr||!Array.isArray(e))return e;try{const n=await yy(a,t);return e.filter(r=>n.has(o(r)))}catch(n){return console.error(`[list] ${n.message}. Showing no people groups rather than the wrong list.`),[]}}const vy='class="stage"';async function ky(e){const t=new Uint8Array(await e.slice(0,12).arrayBuffer()),o=(a,n)=>String.fromCharCode(...t.slice(a,n));return o(0,4)==="RIFF"&&o(8,12)==="WEBP"||t[0]===137&&o(1,4)==="PNG"||t[0]===255&&t[1]===216&&t[2]===255}async function $g(e,t=fetch){let o;try{o=await t(e)}catch{return null}if(!o||!o.ok)return null;const a=(o.headers.get("content-type")||"").toLowerCase();if(a.startsWith("text/"))return null;const n=await o.blob();return a.startsWith("image/")||await ky(n)?n:null}async function _g(e,t=fetch){const o=await t(e);if(!o.ok)return{html:null,status:o.status};const a=await o.text();return a.includes(vy)?{html:a,status:o.status}:{html:null,status:404}}function Pn(e,{autoprint:t=!1}={}){const o=document.createElement("iframe");o.setAttribute("aria-hidden","true"),o.style.cssText="position:fixed;right:0;bottom:0;width:1px;height:1px;opacity:0;border:0",document.body.appendChild(o);const a=o.contentDocument;if(!a)return o.remove(),null;a.open(),a.write(e),t&&a.write(' - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +