From f4066c36fc66a595187174cb3253f7ee577450a5 Mon Sep 17 00:00:00 2001 From: Doxa Maps Date: Fri, 2 Oct 2026 04:49:01 +0000 Subject: [PATCH] Rebuild every bundle for the phone shell modes and the svh map floor (ProfileLoader is in each), and regenerate the tree and SRI --- .../all-people-groups/all-people-groups.js | 2 +- .../all-people-groups/index.html | 2 +- public/dx-maps/bible-posters/bible-posters.js | 2 +- .../bible-posters/bible-posters/index.html | 2 +- .../big-picture/big-picture/index.html | 7 +- .../big-picture/frontier/index.html | 7 +- .../big-picture/big-picture/index.html | 7 +- .../cities-internet/cities-internet.js | 2 +- .../connectivity-list/index.html | 2 +- .../connectivity-map/index.html | 2 +- .../cities-internet/data-tables/index.html | 2 +- public/dx-maps/country-map/country-map.js | 2 +- .../country-map/country-map/index.html | 2 +- .../country-posters/countries-map/index.html | 2 +- .../country-poster-wall/index.html | 2 +- .../country-posters-mfe/index.html | 9 +- .../country-posters/country-posters.js | 2 +- .../dashboard-plus-grid/default/index.html | 7 +- .../dashboard-plus-grid/index.html | 7 +- public/dx-maps/demo-map/demo-map.js | 2 +- public/dx-maps/demo-map/demo-map/index.html | 2 +- .../demo-map/demo-map/maplibre/index.html | 2 +- public/dx-maps/doxa-maps-spa/doxa-maps-spa.js | 34 +++-- .../doxa-maps-spa/app/index.html | 2 +- .../doxa-maps-spa/doxa-maps-spa/index.html | 2 +- public/dx-maps/doxa-maps-spa/manifest.json | 144 +++++++++--------- .../doxa-research-map/doxa-research-map.js | 2 +- .../doxa-research-map/research-map/index.html | 2 +- .../research-map/maplibre/index.html | 2 +- .../doxa-simple-map/doxa-simple-map.js | 2 +- .../doxa-simple-map/adoption/index.html | 2 +- .../doxa-simple-map/engagement/index.html | 2 +- .../doxa-simple-map/index.html | 2 +- .../doxa-simple-map/prayer/index.html | 2 +- .../gospel-internet/board/board/index.html | 2 +- .../dx-maps/gospel-internet/board/index.html | 2 +- .../board/india-china/index.html | 2 +- .../board/language-tree/index.html | 2 +- .../board/platforms/index.html | 2 +- .../board/project-700/index.html | 2 +- .../gospel-internet/board/zero/index.html | 2 +- .../gospel-internet/gospel-internet.js | 2 +- .../gospel-resources/charts/index.html | 2 +- .../gospel-resources/data-tables/index.html | 2 +- .../gospel-dashboard/index.html | 9 +- .../gospel-resources/gospel-resources.js | 2 +- .../resources-list/index.html | 2 +- .../gospel-resources/resources-map/index.html | 2 +- public/dx-maps/index.html | 2 +- public/dx-maps/manifest.json | 144 +++++++++--------- .../my-upg-100-list/my-upg-100-list.js | 2 +- .../my-upg-100-list/poster-wall/index.html | 2 +- .../my-upg-100-list/upg-100-list/index.html | 2 +- .../my-upg-100-list/upg-100-mfe/index.html | 9 +- public/dx-maps/plugin-studio/plugin-studio.js | 32 ++-- .../plugin-studio/plugin-studio/index.html | 2 +- .../plugin-studio/studio/index.html | 2 +- .../poster-design-mfe/index.html | 9 +- public/dx-maps/poster-design/poster-design.js | 2 +- .../poster-design/poster-sizes/index.html | 2 +- .../poster-design/poster-styles/index.html | 2 +- public/dx-maps/posterverse/posterverse.js | 20 ++- .../posterverse/posterverse/app/index.html | 2 +- .../posterverse/posterverse/index.html | 2 +- .../dx-maps/pplr-data-maps/pplr-data-maps.js | 2 +- .../pplr-data-maps/pplr-data-maps/index.html | 2 +- .../region-dashboards/index.html | 2 +- .../regions-dashboard/regions-dashboard.js | 2 +- .../regions-dashboard/regions-list/index.html | 2 +- .../regions-dashboard/regions-mfe/index.html | 9 +- .../research-dashboard/research-dashboard.js | 2 +- .../research-dashboard/index.html | 2 +- .../research-map-plus-grid/default/index.html | 7 +- .../research-map-plus-grid/index.html | 7 +- .../dx-maps/stack-demo/stack-demo/index.html | 7 +- .../stack-demo/stack-demo/pair/index.html | 7 +- .../template-bundle/template-bundle.js | 2 +- public/dx-maps/upg-neighbor/upg-neighbor.js | 2 +- .../upg-neighbor/bloom-cockpit/index.html | 2 +- .../upg-neighbor/flower-mesh/index.html | 2 +- .../upg-neighbor/upg-neighbor/index.html | 2 +- .../upg-neighbor/lang-cluster/index.html | 2 +- .../upg-neighbor/send-map/index.html | 2 +- .../upg-neighbor/upg-neighbors/index.html | 2 +- .../wall-of-people-groups.js | 70 ++++----- .../wall-of-people-groups/index.html | 2 +- 86 files changed, 355 insertions(+), 329 deletions(-) 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 7d3616547..a5616162c 100644 --- a/public/dx-maps/all-people-groups/all-people-groups.js +++ b/public/dx-maps/all-people-groups/all-people-groups.js @@ -81,7 +81,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(j,J)=>c.value?pp((fe(),ke("div",{key:0,ref_key:"hintEl",ref:A,class:Je(["pin-hint",{dark:r.value}]),role:"status"},[ne("span",Em,[J[0]||(J[0]=ne("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),ne("span",Nm,[(fe(!0),ke(je,null,ia(l.value,(ee,te)=>(fe(),ke("span",{key:te,class:"pin-hint-line"},Ne(ee),1))),128))]),ne("button",{class:"pin-hint-x",type:"button","aria-label":t("aria.dismissHint","Dismiss hint"),onClick:z},"×",8,xm)])],2)),[[Tg,u.value&&b.value]]):gt("",!0)}},Im=".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}",ru=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Fm={key:0,class:"lsn-block",role:"status"},Om={class:"lsn-block__text"},Dm={key:0},Rm={key:1,class:"lsn-bar",role:"note"},zm={class:"lsn-bar__text"},Hm=["aria-label","title"],lu=ru({__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=pe(()=>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=pe(()=>o("messages.noticeDismiss","Dismiss")),s=pe(()=>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(),ke("div",Fm,[ne("p",Om,[pt(Ne(s.value[0]),1),s.value.length>1?(fe(),ke("bdi",Dm,Ne(e.label),1)):gt("",!0),pt(Ne(s.value[1]||""),1)])])):(fe(),ke("div",Rm,[ne("p",zm,Ne(n.value),1),ne("button",{type:"button",class:"lsn-bar__x","aria-label":a.value,title:a.value,onClick:r[0]||(r[0]=l=>i.$emit("dismiss"))},"×",8,Hm)]))}},[["styles",[Im]],["__scopeId","data-v-9a589f6f"]]),jm="(max-width: 639.98px)";function Bm(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 Wm(e){var l;const t=pe(()=>{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=Gg()}catch{o=null}const n=o?Bm(o):!1,a=ae(!1);if(typeof window<"u"&&typeof window.matchMedia=="function"){const c=window.matchMedia(jm);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=pe(()=>{var c;return`dx-maps:larger-screens-dismissed:${((c=e.value)==null?void 0:c.profile)||""}`}),i=ae(!1);at(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:pe(()=>t.value==="desktop-only"&&a.value&&!n),advise:pe(()=>t.value==="larger-screens"&&a.value&&!n&&!i.value),dismiss:r,label:pe(()=>{var c,u;return String(((c=e.value)==null?void 0:c.mobileLabel)||((u=e.value)==null?void 0:u.profile)||"")})}}let Um=0;const Km=Ms("ui",{state:()=>({_storeInstanceId:++Um,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)}))}}}),Gm=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()}}}),qm=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}}}),cu={_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}}},Vm=".profile-loader[data-locale-pending][data-v-8e369bc8] .stl-tabs,.profile-loader[data-locale-pending][data-v-8e369bc8] .stl-title,.profile-loader[data-locale-pending][data-v-8e369bc8] .stl-rows,.profile-loader[data-locale-pending][data-v-8e369bc8] .legend-title,.profile-loader[data-locale-pending][data-v-8e369bc8] .legend-content,.profile-loader[data-locale-pending][data-v-8e369bc8] .legend-reopen-label,.profile-loader[data-locale-pending][data-v-8e369bc8] .lt-btn-text,.profile-loader[data-locale-pending][data-v-8e369bc8] .rd-topbar,.profile-loader[data-locale-pending][data-v-8e369bc8] .rd-exportbar{visibility:hidden}.profile-loader[data-v-8e369bc8]{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-8e369bc8]{display:flex;flex-direction:column}.profile-loader.has-screen-notice[data-v-8e369bc8]>:not(.lsn-bar){flex:1 1 auto;min-height:0;position:relative!important;inset:auto!important}.profile-error[data-v-8e369bc8]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Ym=["dir","data-locale-pending"],Jm={key:0,class:"profile-error"},Xm={key:1,class:"profile-error"},Zm=ru({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var z;const o=e,n=Re("profileConfig",null),a=pe(()=>{var X;if(!o.profileConfig)return null;let R;try{R=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(R&&R.assetsBase===void 0){const H=(X=n==null?void 0:n.value)==null?void 0:X.assetsBase;typeof H=="string"&&H&&(R.assetsBase=H)}return R}),s=Re("profileModules",null);if(!s)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const i=(()=>{const R=Object.keys(s||{});if(R.length!==1)return null;const X=R[0].match(/^\.\/(.+)\.vue$/);return X?X[1]:null})(),r=pe(()=>{var R;return((R=a.value)==null?void 0:R.profile)||i||null}),l=sf(),c=pe(()=>{var X;const R=(X=a.value)==null?void 0:X.tk;return typeof R=="string"&&R?R:l.value||""});at(()=>{var R;return(R=a.value)==null?void 0:R.tk},R=>{typeof R=="string"&&R&&xs(R)},{immediate:!0}),at(()=>{var R;return(R=a.value)==null?void 0:R.tokenUrl},R=>{var X;R&&!((X=a.value)!=null&&X.tk)&&!l.value&&rf(R)},{immediate:!0});const u=pe(()=>{var R;return((R=a.value)==null?void 0:R.dataSource)||cu.activeSource||"doxa-csv"}),f=pe(()=>{var R;return((R=a.value)==null?void 0:R.colorSet)||"default"}),b=pe(()=>!1),k=pe(()=>{var R;return((R=a.value)==null?void 0:R.pinHint)!==!1}),v=pe(()=>{var X,H;const R=(((X=a.value)==null?void 0:X.locale)||((H=a.value)==null?void 0:H.lang)||Zc()||"").split("-")[0].toLowerCase();return Sn.includes(R)?R:""}),w=Re("appI18n",null);Ar(()=>{v.value&&(w&&(w.global.locale.value=v.value),eu(v.value),Qs(w,v.value).catch(()=>{}))});const N=pe(()=>{var R,X;return v.value||((X=(R=w==null?void 0:w.global)==null?void 0:R.locale)==null?void 0:X.value)||"en"}),x=pe(()=>Ca.has(N.value)?"rtl":"ltr"),{blocked:A,advise:$,dismiss:_,label:S}=Wm(a),L=ae(!1);Ar(R=>{const X=N.value;if(!Ca.has(X)){L.value=!1;return}let H=!0;R(()=>{H=!1}),L.value=!0,bm(X).finally(()=>{H&&(L.value=!1)})});const T=pe(()=>{var R;return((R=a.value)==null?void 0:R.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),P=pe(()=>{if(!r.value)return null;const R=`./${r.value}.vue`;return s[R]?Sm(s[R]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(s)),null)});lt("mapboxToken",c),lt("dataSource",u),lt("colorSet",f),lt("profileConfig",a),lt("instanceId",T),lt("lang",N);const y=Km(),U=Gm(),G=qm();try{const R=typeof localStorage<"u"?localStorage.getItem("theme"):null;R&&((z=y.setTheme)==null||z.call(y,R))}catch{}return lt("uiStore",y),lt("mapStore",U),lt("dataStore",G),(R,X)=>(fe(),ke("div",{class:Je(["profile-loader",{"has-screen-notice":De($)}]),dir:x.value,"data-locale-pending":L.value?"":null},[a.value?P.value?De(A)?(fe(),Mt(lu,{key:2,mode:"desktop-only",label:De(S),locale:N.value},null,8,["label","locale"])):(fe(),ke(je,{key:3},[De($)?(fe(),Mt(lu,{key:0,mode:"larger-screens",locale:N.value,onDismiss:De(_)},null,8,["locale","onDismiss"])):gt("",!0),(fe(),Mt(Ir(P.value)))],64)):(fe(),ke("div",Xm,[ne("p",null,[X[1]||(X[1]=pt("⚠️ Profile ",-1)),ne("strong",null,'"'+Ne(r.value)+'"',1),X[2]||(X[2]=pt(" not found.",-1))])])):(fe(),ke("div",Jm,[...X[0]||(X[0]=[ne("p",null,[pt("⚠️ "),ne("strong",null,"doxa-map"),pt(": missing or invalid "),ne("code",null,"profile-config"),pt(" prop.")],-1),ne("p",null,[pt("Example: "),ne("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),P.value&&b.value?(fe(),Mt(Ir(De(null)),{key:4})):gt("",!0),P.value&&k.value?(fe(),Mt(Pm,{key:5})):gt("",!0)],10,Ym))}},[["styles",[Vm]],["__scopeId","data-v-8e369bc8"]]);function uu(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 eb({profileModules:e={},configureApp:t=null}={}){return Ug(Zm,{configureApp(o){const n=Xg();Qm(o,()=>o.use(n));const a=_m();o.use(a),uu(o,"appI18n",a),uu(o,"profileModules",e),t&&t(o,{pinia:n,i18n:a})}})}const tb=eb({profileModules:Object.assign({"./all-people-groups.vue":()=>_d(()=>Promise.resolve().then(()=>Q_),void 0)})});typeof customElements<"u"&&!customElements.get("all-people-groups")&&customElements.define("all-people-groups",tb);const ob="rgba(120, 128, 134, 0.28)",du="36px",pu=()=>{};function nb(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return pu;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return pu;const a=A=>A.classList.contains("map-scroll-edge--left");for(const A of n)A.style.background=`linear-gradient(${a(A)?"to right":"to left"}, ${ob} ${du}, transparent ${du})`,A.style.opacity="0",A.style.transition="opacity 0.16s ease",A.style.userSelect="none",A.style.webkitUserSelect="none";const s=A=>{A.style.opacity="1"},i=A=>{A.style.opacity="0"},r=()=>n.find(A=>!a(A))||null,l=new Set;let c=!1,u=null;const f=()=>{for(const A of n)l.has(A)||i(A)},b=()=>{const A=r();A&&(s(A),u&&clearTimeout(u),u=setTimeout(f,250))},k=()=>b(),v=A=>{if(!(A.touches&&A.touches.length===1))return;const $=A.target;$&&$.classList&&$.classList.contains("map-scroll-edge")||b()},w=()=>{u&&clearTimeout(u),f()};e.addEventListener("wheel",k,{passive:!0}),e.addEventListener("touchmove",v,{passive:!0}),e.addEventListener("touchend",w,{passive:!0}),e.addEventListener("touchcancel",w,{passive:!0});const N=()=>{c||b()};typeof window<"u"&&window.addEventListener("scroll",N,{passive:!0});const x=[];for(const A of n){const $=()=>{l.add(A),s(A)},_=()=>{l.delete(A),i(A)},S=()=>{c=!0,s(A)},L=()=>{c=!1,i(A)};A.addEventListener("mouseenter",$),A.addEventListener("mouseleave",_),A.addEventListener("touchstart",S,{passive:!0}),A.addEventListener("touchend",L,{passive:!0}),x.push(()=>{A.removeEventListener("mouseenter",$),A.removeEventListener("mouseleave",_),A.removeEventListener("touchstart",S),A.removeEventListener("touchend",L)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",k),e.removeEventListener("touchmove",v),e.removeEventListener("touchend",w),e.removeEventListener("touchcancel",w),typeof window<"u"&&window.removeEventListener("scroll",N);for(const $ of x)$();for(const $ of n)i($)}}const ab=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 sb(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=ab[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 ib(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 rb=["mapbox","maplibre"],lb="auto";function gu(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function fu(e,{token:t}={}){const o=gu(e);return hu(o)||"maplibre"}function hu(e){const t=gu(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||lb).toLowerCase().trim();return rb.includes(s)?s:""}function cb(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 mu={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 ub(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function db(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(ub(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(mu.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(mu.mapbox,null,!0);o=!0}catch{}return o}const pb=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,bu=new WeakMap;function gb(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function _u(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!gb(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=bu.get(e);a||(a=new Map,bu.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(!pb.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}},fb={"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(fb)){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 yu(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 hb=Ko.mapbox.css,mb="https://tiles.openfreemap.org/styles/liberty",bb="https://tiles.openfreemap.org/styles/fiord";function Na(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 wu(e){const t=Ko[e]||Ko.mapbox;if(Na(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(Na(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 _b(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 $b(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?bb:mb}const yb=85.0511,ti=-2,wb=0,Ab=-60;function Au(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function vb(e,t,o,n){if(!e||e<=0||!t||t<=0)return wb;const a=Math.log2(e/512),s=Au(n)-Au(yb),i=Math.log2(t/(512*s)),r=Math.max(a,i);return Math.max(ti,Math.min(r,(o??18)-1))}function kb({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:k=0,renderWorldCopies:v=!0,showEdgeBorders:w=!0,southCutoff:N=Ab,maxBounds:x=void 0}){const A=Vn(null),$=ae(!1);let _=null,S=null,L=null,T=null;try{T=Re("profileConfig",null)}catch{}const P=!a&&!hu(T);a=a||fu(T,{token:t});let y=a==="maplibre";typeof document<"u"&&wu(a).catch(()=>{});let U=null;try{U=Re("lang",null)}catch{}const G=()=>{const X=U&&typeof U=="object"&&"value"in U?U.value:U;if(typeof X=="string"&&X)return X;const H=T&&typeof T=="object"&&"value"in T?T.value:T;if(H&&(H.locale||H.lang))return String(H.locale||H.lang);try{const q=new URLSearchParams(location.search);return q.get("lang")||q.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function z(){var We;if(P&&!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 X=sb(o,a),H=X.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const q=()=>!e.value;if(await wu(a),q())return;const Q=Na(a);if(!Q){console.error(`[useMapInstance] ${y?"maplibregl":"mapboxgl"} is not available. Add the ${y?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(db(Q),!y){if(!t&&typeof window<"u"&&window.__doxaMapTokenPending&&(await window.__doxaMapTokenPending,q()))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 _b(e.value,y?Ko.maplibre.css:hb),q()||(await new Promise(ue=>requestAnimationFrame(ue)),q()))return;const j=e.value,J=j.clientWidth,ee=j.clientHeight;if(J===0||ee===0){console.error(`[useMapInstance] Container has ZERO dimensions (${J}×${ee}). Map will be invisible. Check that parent elements have CSS sizing.`);let ue=j.parentElement,de=0;for(;ue&&de<5;)ue=ue.parentElement,de++}const te=t;y||(Q.accessToken=te);const ce=()=>typeof window<"u"&&window.innerWidth>=1024,_e=(ue,de)=>{if(u)return typeof c=="number"?c:ti;if(!ce())return ti;const V=vb(ue,de,f,N);return typeof c=="number"?Math.max(c,V):V},ye=_e(j.clientWidth,j.clientHeight),Ae=X.lightPreset||(()=>{var ue;try{const de=typeof n=="function"?n():n;return(ue=de==null?void 0:de.basemap)==null?void 0:ue.lightPreset}catch{return}})();if(y){A.value=new Q.Map({container:e.value,style:$b(H,Ae),locale:$u(G(),"maplibre"),center:s,zoom:i,minZoom:ye,maxZoom:f,pitch:b,bearing:k,dragRotate:!1,renderWorldCopies:v,...r?{bounds:r,...l?{fitBoundsOptions:l}:{}}:{},...x?{maxBounds:x}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),yu(A.value);try{e.value.__doxaMap=A.value}catch{}}else{const ue=typeof n=="function"?n():n;A.value=new Q.Map({accessToken:te,container:e.value,style:H,locale:$u(G(),"mapbox"),...ue?{config:ue}:{},center:s,zoom:i,minZoom:ye,maxZoom:f,pitch:b,bearing:k,dragRotate:!1,touchPitch:!1,renderWorldCopies:v,...r?{bounds:r,...l?{fitBoundsOptions:l}:{}}:{},...x?{maxBounds:x}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),yu(A.value);try{e.value.__doxaMap=A.value}catch{}}try{let ue=!1;A.value.on("error",de=>{var h,m;const V=((h=de==null?void 0:de.error)==null?void 0:h.status)??(de==null?void 0:de.status),p=String(((m=de==null?void 0:de.error)==null?void 0:m.url)||(de==null?void 0:de.sourceId)||"");V!==401&&V!==403||ue||(ue=!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{A.value.touchZoomRotate.disableRotation()}catch{}L=nb(((We=e.value)==null?void 0:We.parentElement)||null,{enabled:w});let Fe=ye,me=null;_=()=>{const ue=A.value;if(!ue)return;const de=_e(j.clientWidth,j.clientHeight);de!==Fe&&(Fe=de,ue.setMinZoom(de)),ue.getZoom(){me=null;const V=A.value;if(!V)return;const p=_e(j.clientWidth,j.clientHeight);if(V.getZoom(){me&&(clearTimeout(me),me=null)},A.value.on("resize",_),typeof window<"u"&&(window.addEventListener("resize",_),window.addEventListener("orientationchange",_)),A.value.on("style.load",()=>{if(A.value&&_u(A.value,G()),X.paint&&A.value){const ue=ib(A.value,X.paint);console.info("[useMapInstance] style paint applied ("+a+"):",ue.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var ue;(ue=A.value)==null||ue.resize(),A.value&&A.value.setMinZoom(_e(j.clientWidth,j.clientHeight)),$.value=!0})})}function R(){if(A.value){if(_&&(A.value.off("resize",_),typeof window<"u"&&(window.removeEventListener("resize",_),window.removeEventListener("orientationchange",_)),_=null),S){try{S()}catch{}S=null}L&&(L(),L=null);try{const H=typeof window<"u"?window:null;H&&H.__doxaLogoOwner===A.value&&(H.__doxaLogoOwner=null)}catch{}const X=A.value;A.value.remove();try{e&&e.value&&e.value.__doxaMap===X&&(e.value.__doxaMap=null)}catch{}A.value=null,$.value=!1}}if(U&&typeof U=="object"&&"value"in U)try{at(U,()=>{A.value&&$.value&&_u(A.value,G())})}catch{}return{map:A,isMapReady:$,initializeMap:z,destroy:R}}const vu="doxa-prayed-local",Sb=7*24*60*60*1e3;function Tb(){try{const e=localStorage.getItem(vu);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function Lb(e){try{localStorage.setItem(vu,JSON.stringify(e))}catch{}}function Cb(){const e=Date.now(),t=Tb();let o=!1;for(const[n,a]of Object.entries(t))(typeof a!="number"||e-a>Sb)&&(delete t[n],o=!0);return o&&Lb(t),new Set(Object.keys(t))}function Mb(e){const t=Cb();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",Eb="#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"},Nb=lo;function ni(e){return lo[e]||Eb}const xb=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(lo))t[e(o)]=o;return t})(),Pb={"tai-kadai":"Kra-Dai",none:"Unknown"};function ai(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return Pb[o]||xb[o]||t}function Su(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 Tu=si,Ib=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Nb,PALETTE:lo,PROPERTY_KEY:oi,applyColor:si,buildColorExpression:Tu,canonicalFamilyName:ai,default:{name:"Language Family",propertyKey:oi,palette:lo,colors:lo,getColor:Su,applyColor:si,buildColorExpression:Tu,getLanguageFamilyColor:ni,canonicalFamilyName:ai},defaultFamilyColor:"#95a5a6",getColor:Su,getLanguageFamilyColor:ni,languageFamilyColors:lo},Symbol.toStringTag,{value:"Module"})),Lu="adoptionStatus",Vt={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Fb=Vt,ii={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},Ob=ii;function Cu(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 Mu=ri,Db=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Fb,ADOPTION_LABELS:Ob,LABELS:ii,PALETTE:Vt,PROPERTY_KEY:Lu,applyColor:ri,buildColorExpression:Mu,default:{name:"Adoption Progress",propertyKey:Lu,palette:Vt,colors:Vt,labels:ii,getColor:Cu,applyColor:ri,buildColorExpression:Mu},getColor:Cu},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"},xa={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=xa,Eu=Object.entries(Yt).reduce((e,[t,o])=>(e[o]=t,e),{}),ci=Object.entries(Yt).reduce((e,[t,o])=>(e[o]=co[t],e),{}),Nu=Yt;function ui(e){return Yt[e]||"Unknown"}function di(e){return co[e]||Go}function xu(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?co[e]||Go:ci[e]||Go:Go}function Pu(){return Object.entries(Yt).map(([e,t])=>({code:e,name:t,color:co[e]}))}function Iu(e){return{code:e,name:Yt[e]||"Unknown",color:co[e]||Go}}function Fu(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return di(t)}function Ou(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 Du=pi,Rb=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:Eu,NAMES:Nu,PALETTE:xa,PROPERTY_KEY:li,affinityBlockCodeLookup:Yt,affinityBlockCodeToColor:co,affinityBlockCodeToName:Yt,affinityBlockColors:ci,affinityBlockNameToCode:Eu,applyColor:pi,buildColorExpression:Du,default:{name:"Affinity Block",propertyKey:li,palette:xa,colors:xa,names:Nu,getColor:Fu,applyColor:pi,buildColorExpression:Du,getName:Ou,getAffinityBlockName:ui,getAffinityBlockColor:xu,getAffinityBlockColorByCode:di,getAffinityBlocksArray:Pu,getAffinityBlockData:Iu},getAffinityBlockColor:xu,getAffinityBlockColorByCode:di,getAffinityBlockData:Iu,getAffinityBlockName:ui,getAffinityBlocksArray:Pu,getColor:Fu,getName:Ou},Symbol.toStringTag,{value:"Module"}));function zb(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 ju=bi,jb=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:Hb,PALETTE:Pa,PROPERTY_KEY:gi,REGION_COLOR_ALIASES:mi,SLUG_PALETTE:Ia,applyColor:bi,buildColorExpression:ju,default:{name:"DOXA Region",propertyKey:gi,palette:Pa,colors:Pa,slugColors:Ia,aliases:mi,fallback:fi,getColor:Hu,applyColor:bi,buildColorExpression:ju,getRegionColor:zu,getRegionColorBySlug:hi},getColor:Hu,getRegionColor:zu,getRegionColorBySlug:hi},Symbol.toStringTag,{value:"Module"})),Bu="engagementStatus",Jt={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Bb=Jt,_i={notEngaged:"Unengaged",hasEngagement:"Engaged"},Wb=_i;function Wu(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 Uu=$i,Ub=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Bb,ENGAGEMENT_LABELS:Wb,LABELS:_i,PALETTE:Jt,PROPERTY_KEY:Bu,applyColor:$i,buildColorExpression:Uu,default:{name:"Engagement Progress",propertyKey:Bu,palette:Jt,colors:Jt,labels:_i,getColor:Wu,applyColor:$i,buildColorExpression:Uu},getColor:Wu},Symbol.toStringTag,{value:"Module"})),Ku="peoplePraying",Fa=144,uo={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Kb=uo,yi={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},Gb=yi;function Oa(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>=Fa?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function wi(e){return uo[Oa(e)]}function Gu(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 qu(e){return Oa(e)==="fullPrayer"}function Vu(e){return wi(e)}function Ai({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Fa],uo.fullPrayer,[">",t,0],uo.hasPrayer,uo.noPrayer]}const Yu=Ai,qb=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Fa,LABELS:yi,PALETTE:uo,PRAYER_COLORS:Kb,PRAYER_LABELS:Gb,PROPERTY_KEY:Ku,applyColor:Ai,buildColorExpression:Yu,checkHasFullPrayer:qu,checkHasPrayer:Gu,default:{name:"Prayer Progress",propertyKey:Ku,palette:uo,colors:uo,labels:yi,threshold:Fa,getColor:Vu,applyColor:Ai,buildColorExpression:Yu,getPrayerLevel:Oa,getPrayerColor:wi,checkHasPrayer:Gu,checkHasFullPrayer:qu},getColor:Vu,getPrayerColor:wi,getPrayerLevel:Oa},Symbol.toStringTag,{value:"Module"})),Ju="religion",vi="#94a3b8",Da={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 Xu(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return Da[t]?t:"U"}function Zu(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[Xu(t)]||vi}function ki(){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,vi]}const Qu=ki,Vb={name:"Religion",propertyKey:Ju,palette:mt,families:Da,getColor:Zu,applyColor:ki,buildColorExpression:Qu,fallback:vi};function Yb(e){const t=String(e||""),o=Da[t]||t;return o?qt("religion.family."+o)||o:""}const Jb=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:mt,PROPERTY_KEY:Ju,RELIGION_FAMILIES:Da,applyColor:ki,buildColorExpression:Qu,default:Vb,getColor:Zu,getReligionFamily:Xu,religionFamilyLabel:Yb},Symbol.toStringTag,{value:"Module"})),ed="resourceType",po={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},Xb=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"},Zb=Si;function Cn(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function td(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 od(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 nd(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 ad=Ti,Qb=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Si,PALETTE:po,PROPERTY_KEY:ed,RESOURCE_COLORS:Xb,RESOURCE_NAMES:Zb,RESOURCE_PRIORITY:Ln,applyColor:Ti,buildColorExpression:ad,default:{name:"Gospel Resources",propertyKey:ed,palette:po,colors:po,names:Si,priority:Ln,getColor:td,applyColor:Ti,buildColorExpression:ad,hasAnyResource:od,getResourceType:nd,getCSVColumn:Cn},getCSVColumn:Cn,getColor:td,getResourceType:nd,hasAnyResource:od},Symbol.toStringTag,{value:"Module"})),sd="region",Li="#6d766e",id={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 rd(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 ld=Mi,e_=Object.assign({"./adoption.js":Db,"./affinity-block.js":Rb,"./doxa-region.js":jb,"./engagement.js":Ub,"./language-family.js":Ib,"./prayer-progress.js":qb,"./religion.js":Jb,"./resource.js":Qb,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Mn,PROPERTY_KEY:sd,REGION_ORDER:Ci,WAGF_REGIONS:id,applyColor:Mi,buildColorExpression:ld,default:{name:"WAGF Region",propertyKey:sd,palette:Mn,regions:id,order:Ci,getColor:rd,applyColor:Mi,buildColorExpression:ld,fallback:Li},getColor:rd},Symbol.toStringTag,{value:"Module"}))}),t_=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),o_=e=>e.replace(/-/g,"_").toUpperCase(),n_={...{STATUS:"status",CUSTOM:"custom"}};function a_(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=t_(o);n_[o_(o)]=a}}a_(e_);function Ei(e){return e==null?"":typeof e=="object"?e.label||e.value||"":String(e)}const s_=[[/ sign language$/i,"Sign Language"]];function i_(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 s_)if(c.test(a))return u;return""}function r_(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=ae(!1),r=ae(null),l=ae(!1),c=ae([]),u=ae([]);ft()&<("normalizedPeopleGroups",u);const f=ae(null),b=ae([]),k=ae([]),v=ae([]),w=ae(null);async function N(){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 H=a.getSourceData(o);u.value=s(H.normalizedData||[])}else{const H=await n.setActiveSource(o);for(const q of H){const Q=Ei(q.language||q.primary_language);Q&&(q.language=Q);const j=i_(q);q.languageFamily=ai(j)}u.value=s(H),a&&a.cacheSourceData&&a.cacheSourceData(o,{normalizedData:H,timestamp:Date.now()})}c.value=s(Mb(u.value.map(H=>({id:H.uniqueId,slug:H.slug||"",rop3:H.peopleGroupId,peopleId3:H.peopleId3,name:H.name,language:H.language,languageFamily:H.languageFamily,country:H.country,population:H.population,status:H.engagementStatus||H.status,latitude:H.latitude,longitude:H.longitude,lng:H.longitude,lat:H.latitude,description:H.description,imageUrl:H.imageUrl,doxaRegion:H.doxaRegion||H.wagfRegion||"",peoplePraying:H.peoplePraying??null,_normalized:H}))));const T=n.getDataByLanguageFamily();b.value=Object.entries(T).map(([H,q])=>{const Q=q.reduce((j,J)=>{const ee=parseInt(J.population)||0;return j+ee},0);return{name:H,count:q.length,peopleGroupCount:q.length,population:Q,groups:q}}).sort((H,q)=>q.count-H.count);const P=n.getDataByRegion();k.value=Object.entries(P).map(([H,q])=>{const Q=q.reduce((j,J)=>{const ee=parseInt(J.population)||0;return j+ee},0);return{name:H,count:q.length,peopleGroupCount:q.length,population:Q,groups:q}}).sort((H,q)=>H.name.localeCompare(q.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(H=>{const q=parseInt(H.population)||0;let Q=!1;H.bible==="Available"&&(y.bible.count++,y.bible.population+=q,y.bible.groups.push(H),Q=!0),H.jesusFilm==="Available"&&(y.jesusFilm.count++,y.jesusFilm.population+=q,y.jesusFilm.groups.push(H),Q=!0),H.radio==="Available"&&(y.radio.count++,y.radio.population+=q,y.radio.groups.push(H),Q=!0),H.gospel==="Available"&&(y.gospel.count++,y.gospel.population+=q,y.gospel.groups.push(H),Q=!0),H.audio==="Available"&&(y.audio.count++,y.audio.population+=q,y.audio.groups.push(H),Q=!0),H.stories==="Available"&&(y.stories.count++,y.stories.population+=q,y.stories.groups.push(H),Q=!0),Q?(y.hasResources.count++,y.hasResources.population+=q,y.hasResources.groups.push(H)):(y.noResources.count++,y.noResources.population+=q,y.noResources.groups.push(H))});const U=u.value.length,G=u.value.reduce((H,q)=>H+(parseInt(q.population)||0),0),z={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},R={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}},X="#2c3e50";return v.value=[{name:z.bible,key:"bible",count:y.bible.count,population:y.bible.population,isParent:!0,children:[{name:"No Bible",key:"noBible",count:R.bible.count,population:R.bible.population,color:X}]},{name:z.jesusFilm,key:"jesusFilm",count:y.jesusFilm.count,population:y.jesusFilm.population,isParent:!0,children:[{name:"No Jesus Film",key:"noJesusFilm",count:R.jesusFilm.count,population:R.jesusFilm.population,color:X}]},{name:z.radio,key:"radio",count:y.radio.count,population:y.radio.population,isParent:!0,children:[{name:"No Radio",key:"noRadio",count:R.radio.count,population:R.radio.population,color:X}]},{name:z.gospel,key:"gospel",count:y.gospel.count,population:y.gospel.population,isParent:!0,children:[{name:"No Gospel",key:"noGospel",count:R.gospel.count,population:R.gospel.population,color:X}]},{name:z.audio,key:"audio",count:y.audio.count,population:y.audio.population,isParent:!0,children:[{name:"No Audio",key:"noAudio",count:R.audio.count,population:R.audio.population,color:X}]},{name:z.stories,key:"stories",count:y.stories.count,population:y.stories.population,isParent:!0,children:[{name:"No Stories",key:"noStories",count:R.stories.count,population:R.stories.population,color:X}]},{name:z.hasResources,key:"hasResources",count:y.hasResources.count,population:y.hasResources.population,isParent:!0,children:[{name:z.noResources,key:"noResources",count:y.noResources.count,population:y.noResources.population,color:X}]}],w.value=n.getStats(),l.value=!0,{peopleGroups:c.value,normalizedPeopleGroups:u.value,languageFamiliesData:b.value,doxaRegionsData:k.value,resourcesData:v.value,stats:w.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 x(){var T,P,y;try{const U={},G=u.value||[];for(const z of G){const R=z.countryIso||((P=(T=z._raw)==null?void 0:T.country_code)==null?void 0:P.value)||"",X=(y=z._raw)==null?void 0:y.wagf_region,H=z.doxaRegion||z.wagfRegion||(X&&typeof X=="object"?X.value:"")||"";R&&H&&!U[R]&&(U[R]=H)}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 A(){return n?n.getDataByLanguageFamily():{}}function $(){return n?n.getDataByRegion():{}}function _(T){return A()[T]||[]}function S(T){return $()[T]||[]}function L(){c.value=[],u.value=[],f.value=null,b.value=[],k.value=[],v.value=[],w.value=null,l.value=!1,r.value=null}return{isLoading:i,isInitialized:l,error:r,peopleGroups:c,normalizedPeopleGroups:u,regionsData:f,languageFamiliesData:b,doxaRegionsData:k,resourcesData:v,stats:w,loadData:N,loadRegionsData:x,getDataByLanguageFamily:A,getDataByRegion:$,getPeopleGroupsByFamily:_,getPeopleGroupsByRegion:S,clearData:L}}const Ni={};function l_(){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"]}}]},c_=Lo&&Lo.tagName.toUpperCase()==="SCRIPT"&&Lo.src||new URL("all-people-groups.js",document.baseURI).href,go=e=>String(e||"").trim().replace(/\/+$/,"");function cd(){try{const t=String(c_||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function u_(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(cd()||"")}function ud(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(cd()||"");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 d_({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=u_(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 Ra=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 p_(e){return Pi.get(String(e??"").toLowerCase().trim())||null}function dd(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 pd=new Set;function g_(e){const t=dd(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||Ra,i=p_(s);return i?i.id:(pd.has(s)||(pd.add(s),console.warn(`[list] unknown people-group list "${s}", showing "${Ra}". Known: ${xi.lists.map(r=>r.id).join(", ")}`)),Ra)}const za=new Map;function f_(e,t){const o=`${ud(dd(t))}/people-groups/lists/${e}.json`;return za.has(o)||za.set(o,Fl(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 za.delete(o),new Error(`list "${e}" membership ${o}: ${n.message}`)})),za.get(o)}async function gd(e,t,{key:o=n=>n==null?void 0:n.slug}={}){const n=g_(t);if(n===Ra||!Array.isArray(e))return e;try{const a=await f_(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 fd{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=cu,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?pp((fe(),ke("div",{key:0,ref_key:"hintEl",ref:A,class:Je(["pin-hint",{dark:r.value}]),role:"status"},[ne("span",Em,[J[0]||(J[0]=ne("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),ne("span",Nm,[(fe(!0),ke(je,null,ia(l.value,(ee,te)=>(fe(),ke("span",{key:te,class:"pin-hint-line"},Ne(ee),1))),128))]),ne("button",{class:"pin-hint-x",type:"button","aria-label":t("aria.dismissHint","Dismiss hint"),onClick:z},"×",8,xm)])],2)),[[Tg,u.value&&b.value]]):gt("",!0)}},Im=".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}",ru=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Fm={key:0,class:"lsn-block",role:"status"},Om={class:"lsn-block__text"},Dm={key:0},Rm={key:1,class:"lsn-bar",role:"note"},zm={class:"lsn-bar__text"},Hm=["aria-label","title"],lu=ru({__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=pe(()=>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=pe(()=>o("messages.noticeDismiss","Dismiss")),s=pe(()=>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(),ke("div",Fm,[ne("p",Om,[pt(Ne(s.value[0]),1),s.value.length>1?(fe(),ke("bdi",Dm,Ne(e.label),1)):gt("",!0),pt(Ne(s.value[1]||""),1)])])):(fe(),ke("div",Rm,[ne("p",zm,Ne(n.value),1),ne("button",{type:"button",class:"lsn-bar__x","aria-label":a.value,title:a.value,onClick:r[0]||(r[0]=l=>i.$emit("dismiss"))},"×",8,Hm)]))}},[["styles",[Im]],["__scopeId","data-v-9a589f6f"]]),jm="(max-width: 639.98px)";function Bm(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 Wm(e){var l;const t=pe(()=>{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=Gg()}catch{o=null}const n=o?Bm(o):!1,a=ae(!1);if(typeof window<"u"&&typeof window.matchMedia=="function"){const c=window.matchMedia(jm);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=pe(()=>{var c;return`dx-maps:larger-screens-dismissed:${((c=e.value)==null?void 0:c.profile)||""}`}),i=ae(!1);at(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:pe(()=>t.value==="desktop-only"&&a.value&&!n),advise:pe(()=>t.value==="larger-screens"&&a.value&&!n&&!i.value),dismiss:r,label:pe(()=>{var c,u;return String(((c=e.value)==null?void 0:c.mobileLabel)||((u=e.value)==null?void 0:u.profile)||"")})}}let Um=0;const Km=Ms("ui",{state:()=>({_storeInstanceId:++Um,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)}))}}}),Gm=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()}}}),qm=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}}}),cu={_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}}},Vm=".profile-loader[data-locale-pending][data-v-a0842af1] .stl-tabs,.profile-loader[data-locale-pending][data-v-a0842af1] .stl-title,.profile-loader[data-locale-pending][data-v-a0842af1] .stl-rows,.profile-loader[data-locale-pending][data-v-a0842af1] .legend-title,.profile-loader[data-locale-pending][data-v-a0842af1] .legend-content,.profile-loader[data-locale-pending][data-v-a0842af1] .legend-reopen-label,.profile-loader[data-locale-pending][data-v-a0842af1] .lt-btn-text,.profile-loader[data-locale-pending][data-v-a0842af1] .rd-topbar,.profile-loader[data-locale-pending][data-v-a0842af1] .rd-exportbar{visibility:hidden}.profile-loader[data-v-a0842af1]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100svh);position:relative}.profile-loader.has-screen-notice[data-v-a0842af1]{display:flex;flex-direction:column}.profile-loader.has-screen-notice[data-v-a0842af1]>:not(.lsn-bar){flex:1 1 auto;min-height:0;position:relative!important;inset:auto!important}.profile-error[data-v-a0842af1]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}@supports not (height: 100svh){.profile-loader[data-v-a0842af1]{min-height:var(--profile-min-h, 100vh)}}",Ym=["dir","data-locale-pending"],Jm={key:0,class:"profile-error"},Xm={key:1,class:"profile-error"},Zm=ru({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var z;const o=e,n=Re("profileConfig",null),a=pe(()=>{var X;if(!o.profileConfig)return null;let R;try{R=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(R&&R.assetsBase===void 0){const H=(X=n==null?void 0:n.value)==null?void 0:X.assetsBase;typeof H=="string"&&H&&(R.assetsBase=H)}return R}),s=Re("profileModules",null);if(!s)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const i=(()=>{const R=Object.keys(s||{});if(R.length!==1)return null;const X=R[0].match(/^\.\/(.+)\.vue$/);return X?X[1]:null})(),r=pe(()=>{var R;return((R=a.value)==null?void 0:R.profile)||i||null}),l=sf(),c=pe(()=>{var X;const R=(X=a.value)==null?void 0:X.tk;return typeof R=="string"&&R?R:l.value||""});at(()=>{var R;return(R=a.value)==null?void 0:R.tk},R=>{typeof R=="string"&&R&&xs(R)},{immediate:!0}),at(()=>{var R;return(R=a.value)==null?void 0:R.tokenUrl},R=>{var X;R&&!((X=a.value)!=null&&X.tk)&&!l.value&&rf(R)},{immediate:!0});const u=pe(()=>{var R;return((R=a.value)==null?void 0:R.dataSource)||cu.activeSource||"doxa-csv"}),f=pe(()=>{var R;return((R=a.value)==null?void 0:R.colorSet)||"default"}),b=pe(()=>!1),k=pe(()=>{var R;return((R=a.value)==null?void 0:R.pinHint)!==!1}),v=pe(()=>{var X,H;const R=(((X=a.value)==null?void 0:X.locale)||((H=a.value)==null?void 0:H.lang)||Zc()||"").split("-")[0].toLowerCase();return Sn.includes(R)?R:""}),w=Re("appI18n",null);Ar(()=>{v.value&&(w&&(w.global.locale.value=v.value),eu(v.value),Qs(w,v.value).catch(()=>{}))});const N=pe(()=>{var R,X;return v.value||((X=(R=w==null?void 0:w.global)==null?void 0:R.locale)==null?void 0:X.value)||"en"}),x=pe(()=>Ca.has(N.value)?"rtl":"ltr"),{blocked:A,advise:$,dismiss:_,label:S}=Wm(a),L=ae(!1);Ar(R=>{const X=N.value;if(!Ca.has(X)){L.value=!1;return}let H=!0;R(()=>{H=!1}),L.value=!0,bm(X).finally(()=>{H&&(L.value=!1)})});const T=pe(()=>{var R;return((R=a.value)==null?void 0:R.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),P=pe(()=>{if(!r.value)return null;const R=`./${r.value}.vue`;return s[R]?Sm(s[R]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(s)),null)});lt("mapboxToken",c),lt("dataSource",u),lt("colorSet",f),lt("profileConfig",a),lt("instanceId",T),lt("lang",N);const y=Km(),U=Gm(),G=qm();try{const R=typeof localStorage<"u"?localStorage.getItem("theme"):null;R&&((z=y.setTheme)==null||z.call(y,R))}catch{}return lt("uiStore",y),lt("mapStore",U),lt("dataStore",G),(R,X)=>(fe(),ke("div",{class:Je(["profile-loader",{"has-screen-notice":De($)}]),dir:x.value,"data-locale-pending":L.value?"":null},[a.value?P.value?De(A)?(fe(),Mt(lu,{key:2,mode:"desktop-only",label:De(S),locale:N.value},null,8,["label","locale"])):(fe(),ke(je,{key:3},[De($)?(fe(),Mt(lu,{key:0,mode:"larger-screens",locale:N.value,onDismiss:De(_)},null,8,["locale","onDismiss"])):gt("",!0),(fe(),Mt(Ir(P.value)))],64)):(fe(),ke("div",Xm,[ne("p",null,[X[1]||(X[1]=pt("⚠️ Profile ",-1)),ne("strong",null,'"'+Ne(r.value)+'"',1),X[2]||(X[2]=pt(" not found.",-1))])])):(fe(),ke("div",Jm,[...X[0]||(X[0]=[ne("p",null,[pt("⚠️ "),ne("strong",null,"doxa-map"),pt(": missing or invalid "),ne("code",null,"profile-config"),pt(" prop.")],-1),ne("p",null,[pt("Example: "),ne("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),P.value&&b.value?(fe(),Mt(Ir(De(null)),{key:4})):gt("",!0),P.value&&k.value?(fe(),Mt(Pm,{key:5})):gt("",!0)],10,Ym))}},[["styles",[Vm]],["__scopeId","data-v-a0842af1"]]);function uu(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 eb({profileModules:e={},configureApp:t=null}={}){return Ug(Zm,{configureApp(o){const n=Xg();Qm(o,()=>o.use(n));const a=_m();o.use(a),uu(o,"appI18n",a),uu(o,"profileModules",e),t&&t(o,{pinia:n,i18n:a})}})}const tb=eb({profileModules:Object.assign({"./all-people-groups.vue":()=>_d(()=>Promise.resolve().then(()=>Q_),void 0)})});typeof customElements<"u"&&!customElements.get("all-people-groups")&&customElements.define("all-people-groups",tb);const ob="rgba(120, 128, 134, 0.28)",du="36px",pu=()=>{};function nb(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return pu;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return pu;const a=A=>A.classList.contains("map-scroll-edge--left");for(const A of n)A.style.background=`linear-gradient(${a(A)?"to right":"to left"}, ${ob} ${du}, transparent ${du})`,A.style.opacity="0",A.style.transition="opacity 0.16s ease",A.style.userSelect="none",A.style.webkitUserSelect="none";const s=A=>{A.style.opacity="1"},i=A=>{A.style.opacity="0"},r=()=>n.find(A=>!a(A))||null,l=new Set;let c=!1,u=null;const f=()=>{for(const A of n)l.has(A)||i(A)},b=()=>{const A=r();A&&(s(A),u&&clearTimeout(u),u=setTimeout(f,250))},k=()=>b(),v=A=>{if(!(A.touches&&A.touches.length===1))return;const $=A.target;$&&$.classList&&$.classList.contains("map-scroll-edge")||b()},w=()=>{u&&clearTimeout(u),f()};e.addEventListener("wheel",k,{passive:!0}),e.addEventListener("touchmove",v,{passive:!0}),e.addEventListener("touchend",w,{passive:!0}),e.addEventListener("touchcancel",w,{passive:!0});const N=()=>{c||b()};typeof window<"u"&&window.addEventListener("scroll",N,{passive:!0});const x=[];for(const A of n){const $=()=>{l.add(A),s(A)},_=()=>{l.delete(A),i(A)},S=()=>{c=!0,s(A)},L=()=>{c=!1,i(A)};A.addEventListener("mouseenter",$),A.addEventListener("mouseleave",_),A.addEventListener("touchstart",S,{passive:!0}),A.addEventListener("touchend",L,{passive:!0}),x.push(()=>{A.removeEventListener("mouseenter",$),A.removeEventListener("mouseleave",_),A.removeEventListener("touchstart",S),A.removeEventListener("touchend",L)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",k),e.removeEventListener("touchmove",v),e.removeEventListener("touchend",w),e.removeEventListener("touchcancel",w),typeof window<"u"&&window.removeEventListener("scroll",N);for(const $ of x)$();for(const $ of n)i($)}}const ab=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 sb(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=ab[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 ib(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 rb=["mapbox","maplibre"],lb="auto";function gu(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function fu(e,{token:t}={}){const o=gu(e);return hu(o)||"maplibre"}function hu(e){const t=gu(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||lb).toLowerCase().trim();return rb.includes(s)?s:""}function cb(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 mu={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 ub(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function db(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(ub(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(mu.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(mu.mapbox,null,!0);o=!0}catch{}return o}const pb=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,bu=new WeakMap;function gb(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function _u(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!gb(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=bu.get(e);a||(a=new Map,bu.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(!pb.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}},fb={"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(fb)){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 yu(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 hb=Ko.mapbox.css,mb="https://tiles.openfreemap.org/styles/liberty",bb="https://tiles.openfreemap.org/styles/fiord";function Na(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 wu(e){const t=Ko[e]||Ko.mapbox;if(Na(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(Na(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 _b(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 $b(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?bb:mb}const yb=85.0511,ti=-2,wb=0,Ab=-60;function Au(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function vb(e,t,o,n){if(!e||e<=0||!t||t<=0)return wb;const a=Math.log2(e/512),s=Au(n)-Au(yb),i=Math.log2(t/(512*s)),r=Math.max(a,i);return Math.max(ti,Math.min(r,(o??18)-1))}function kb({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:k=0,renderWorldCopies:v=!0,showEdgeBorders:w=!0,southCutoff:N=Ab,maxBounds:x=void 0}){const A=Vn(null),$=ae(!1);let _=null,S=null,L=null,T=null;try{T=Re("profileConfig",null)}catch{}const P=!a&&!hu(T);a=a||fu(T,{token:t});let y=a==="maplibre";typeof document<"u"&&wu(a).catch(()=>{});let U=null;try{U=Re("lang",null)}catch{}const G=()=>{const X=U&&typeof U=="object"&&"value"in U?U.value:U;if(typeof X=="string"&&X)return X;const H=T&&typeof T=="object"&&"value"in T?T.value:T;if(H&&(H.locale||H.lang))return String(H.locale||H.lang);try{const q=new URLSearchParams(location.search);return q.get("lang")||q.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function z(){var We;if(P&&!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 X=sb(o,a),H=X.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const q=()=>!e.value;if(await wu(a),q())return;const Q=Na(a);if(!Q){console.error(`[useMapInstance] ${y?"maplibregl":"mapboxgl"} is not available. Add the ${y?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(db(Q),!y){if(!t&&typeof window<"u"&&window.__doxaMapTokenPending&&(await window.__doxaMapTokenPending,q()))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 _b(e.value,y?Ko.maplibre.css:hb),q()||(await new Promise(ue=>requestAnimationFrame(ue)),q()))return;const j=e.value,J=j.clientWidth,ee=j.clientHeight;if(J===0||ee===0){console.error(`[useMapInstance] Container has ZERO dimensions (${J}×${ee}). Map will be invisible. Check that parent elements have CSS sizing.`);let ue=j.parentElement,de=0;for(;ue&&de<5;)ue=ue.parentElement,de++}const te=t;y||(Q.accessToken=te);const ce=()=>typeof window<"u"&&window.innerWidth>=1024,_e=(ue,de)=>{if(u)return typeof c=="number"?c:ti;if(!ce())return ti;const V=vb(ue,de,f,N);return typeof c=="number"?Math.max(c,V):V},ye=_e(j.clientWidth,j.clientHeight),Ae=X.lightPreset||(()=>{var ue;try{const de=typeof n=="function"?n():n;return(ue=de==null?void 0:de.basemap)==null?void 0:ue.lightPreset}catch{return}})();if(y){A.value=new Q.Map({container:e.value,style:$b(H,Ae),locale:$u(G(),"maplibre"),center:s,zoom:i,minZoom:ye,maxZoom:f,pitch:b,bearing:k,dragRotate:!1,renderWorldCopies:v,...r?{bounds:r,...l?{fitBoundsOptions:l}:{}}:{},...x?{maxBounds:x}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),yu(A.value);try{e.value.__doxaMap=A.value}catch{}}else{const ue=typeof n=="function"?n():n;A.value=new Q.Map({accessToken:te,container:e.value,style:H,locale:$u(G(),"mapbox"),...ue?{config:ue}:{},center:s,zoom:i,minZoom:ye,maxZoom:f,pitch:b,bearing:k,dragRotate:!1,touchPitch:!1,renderWorldCopies:v,...r?{bounds:r,...l?{fitBoundsOptions:l}:{}}:{},...x?{maxBounds:x}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),yu(A.value);try{e.value.__doxaMap=A.value}catch{}}try{let ue=!1;A.value.on("error",de=>{var h,m;const V=((h=de==null?void 0:de.error)==null?void 0:h.status)??(de==null?void 0:de.status),p=String(((m=de==null?void 0:de.error)==null?void 0:m.url)||(de==null?void 0:de.sourceId)||"");V!==401&&V!==403||ue||(ue=!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{A.value.touchZoomRotate.disableRotation()}catch{}L=nb(((We=e.value)==null?void 0:We.parentElement)||null,{enabled:w});let Fe=ye,me=null;_=()=>{const ue=A.value;if(!ue)return;const de=_e(j.clientWidth,j.clientHeight);de!==Fe&&(Fe=de,ue.setMinZoom(de)),ue.getZoom(){me=null;const V=A.value;if(!V)return;const p=_e(j.clientWidth,j.clientHeight);if(V.getZoom(){me&&(clearTimeout(me),me=null)},A.value.on("resize",_),typeof window<"u"&&(window.addEventListener("resize",_),window.addEventListener("orientationchange",_)),A.value.on("style.load",()=>{if(A.value&&_u(A.value,G()),X.paint&&A.value){const ue=ib(A.value,X.paint);console.info("[useMapInstance] style paint applied ("+a+"):",ue.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var ue;(ue=A.value)==null||ue.resize(),A.value&&A.value.setMinZoom(_e(j.clientWidth,j.clientHeight)),$.value=!0})})}function R(){if(A.value){if(_&&(A.value.off("resize",_),typeof window<"u"&&(window.removeEventListener("resize",_),window.removeEventListener("orientationchange",_)),_=null),S){try{S()}catch{}S=null}L&&(L(),L=null);try{const H=typeof window<"u"?window:null;H&&H.__doxaLogoOwner===A.value&&(H.__doxaLogoOwner=null)}catch{}const X=A.value;A.value.remove();try{e&&e.value&&e.value.__doxaMap===X&&(e.value.__doxaMap=null)}catch{}A.value=null,$.value=!1}}if(U&&typeof U=="object"&&"value"in U)try{at(U,()=>{A.value&&$.value&&_u(A.value,G())})}catch{}return{map:A,isMapReady:$,initializeMap:z,destroy:R}}const vu="doxa-prayed-local",Sb=7*24*60*60*1e3;function Tb(){try{const e=localStorage.getItem(vu);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function Lb(e){try{localStorage.setItem(vu,JSON.stringify(e))}catch{}}function Cb(){const e=Date.now(),t=Tb();let o=!1;for(const[n,a]of Object.entries(t))(typeof a!="number"||e-a>Sb)&&(delete t[n],o=!0);return o&&Lb(t),new Set(Object.keys(t))}function Mb(e){const t=Cb();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",Eb="#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"},Nb=lo;function ni(e){return lo[e]||Eb}const xb=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(lo))t[e(o)]=o;return t})(),Pb={"tai-kadai":"Kra-Dai",none:"Unknown"};function ai(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return Pb[o]||xb[o]||t}function Su(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 Tu=si,Ib=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Nb,PALETTE:lo,PROPERTY_KEY:oi,applyColor:si,buildColorExpression:Tu,canonicalFamilyName:ai,default:{name:"Language Family",propertyKey:oi,palette:lo,colors:lo,getColor:Su,applyColor:si,buildColorExpression:Tu,getLanguageFamilyColor:ni,canonicalFamilyName:ai},defaultFamilyColor:"#95a5a6",getColor:Su,getLanguageFamilyColor:ni,languageFamilyColors:lo},Symbol.toStringTag,{value:"Module"})),Lu="adoptionStatus",Vt={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Fb=Vt,ii={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},Ob=ii;function Cu(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 Mu=ri,Db=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Fb,ADOPTION_LABELS:Ob,LABELS:ii,PALETTE:Vt,PROPERTY_KEY:Lu,applyColor:ri,buildColorExpression:Mu,default:{name:"Adoption Progress",propertyKey:Lu,palette:Vt,colors:Vt,labels:ii,getColor:Cu,applyColor:ri,buildColorExpression:Mu},getColor:Cu},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"},xa={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=xa,Eu=Object.entries(Yt).reduce((e,[t,o])=>(e[o]=t,e),{}),ci=Object.entries(Yt).reduce((e,[t,o])=>(e[o]=co[t],e),{}),Nu=Yt;function ui(e){return Yt[e]||"Unknown"}function di(e){return co[e]||Go}function xu(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?co[e]||Go:ci[e]||Go:Go}function Pu(){return Object.entries(Yt).map(([e,t])=>({code:e,name:t,color:co[e]}))}function Iu(e){return{code:e,name:Yt[e]||"Unknown",color:co[e]||Go}}function Fu(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return di(t)}function Ou(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 Du=pi,Rb=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:Eu,NAMES:Nu,PALETTE:xa,PROPERTY_KEY:li,affinityBlockCodeLookup:Yt,affinityBlockCodeToColor:co,affinityBlockCodeToName:Yt,affinityBlockColors:ci,affinityBlockNameToCode:Eu,applyColor:pi,buildColorExpression:Du,default:{name:"Affinity Block",propertyKey:li,palette:xa,colors:xa,names:Nu,getColor:Fu,applyColor:pi,buildColorExpression:Du,getName:Ou,getAffinityBlockName:ui,getAffinityBlockColor:xu,getAffinityBlockColorByCode:di,getAffinityBlocksArray:Pu,getAffinityBlockData:Iu},getAffinityBlockColor:xu,getAffinityBlockColorByCode:di,getAffinityBlockData:Iu,getAffinityBlockName:ui,getAffinityBlocksArray:Pu,getColor:Fu,getName:Ou},Symbol.toStringTag,{value:"Module"}));function zb(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 ju=bi,jb=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:Hb,PALETTE:Pa,PROPERTY_KEY:gi,REGION_COLOR_ALIASES:mi,SLUG_PALETTE:Ia,applyColor:bi,buildColorExpression:ju,default:{name:"DOXA Region",propertyKey:gi,palette:Pa,colors:Pa,slugColors:Ia,aliases:mi,fallback:fi,getColor:Hu,applyColor:bi,buildColorExpression:ju,getRegionColor:zu,getRegionColorBySlug:hi},getColor:Hu,getRegionColor:zu,getRegionColorBySlug:hi},Symbol.toStringTag,{value:"Module"})),Bu="engagementStatus",Jt={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Bb=Jt,_i={notEngaged:"Unengaged",hasEngagement:"Engaged"},Wb=_i;function Wu(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 Uu=$i,Ub=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Bb,ENGAGEMENT_LABELS:Wb,LABELS:_i,PALETTE:Jt,PROPERTY_KEY:Bu,applyColor:$i,buildColorExpression:Uu,default:{name:"Engagement Progress",propertyKey:Bu,palette:Jt,colors:Jt,labels:_i,getColor:Wu,applyColor:$i,buildColorExpression:Uu},getColor:Wu},Symbol.toStringTag,{value:"Module"})),Ku="peoplePraying",Fa=144,uo={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Kb=uo,yi={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},Gb=yi;function Oa(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>=Fa?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function wi(e){return uo[Oa(e)]}function Gu(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 qu(e){return Oa(e)==="fullPrayer"}function Vu(e){return wi(e)}function Ai({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Fa],uo.fullPrayer,[">",t,0],uo.hasPrayer,uo.noPrayer]}const Yu=Ai,qb=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Fa,LABELS:yi,PALETTE:uo,PRAYER_COLORS:Kb,PRAYER_LABELS:Gb,PROPERTY_KEY:Ku,applyColor:Ai,buildColorExpression:Yu,checkHasFullPrayer:qu,checkHasPrayer:Gu,default:{name:"Prayer Progress",propertyKey:Ku,palette:uo,colors:uo,labels:yi,threshold:Fa,getColor:Vu,applyColor:Ai,buildColorExpression:Yu,getPrayerLevel:Oa,getPrayerColor:wi,checkHasPrayer:Gu,checkHasFullPrayer:qu},getColor:Vu,getPrayerColor:wi,getPrayerLevel:Oa},Symbol.toStringTag,{value:"Module"})),Ju="religion",vi="#94a3b8",Da={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 Xu(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return Da[t]?t:"U"}function Zu(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[Xu(t)]||vi}function ki(){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,vi]}const Qu=ki,Vb={name:"Religion",propertyKey:Ju,palette:mt,families:Da,getColor:Zu,applyColor:ki,buildColorExpression:Qu,fallback:vi};function Yb(e){const t=String(e||""),o=Da[t]||t;return o?qt("religion.family."+o)||o:""}const Jb=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:mt,PROPERTY_KEY:Ju,RELIGION_FAMILIES:Da,applyColor:ki,buildColorExpression:Qu,default:Vb,getColor:Zu,getReligionFamily:Xu,religionFamilyLabel:Yb},Symbol.toStringTag,{value:"Module"})),ed="resourceType",po={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},Xb=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"},Zb=Si;function Cn(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function td(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 od(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 nd(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 ad=Ti,Qb=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Si,PALETTE:po,PROPERTY_KEY:ed,RESOURCE_COLORS:Xb,RESOURCE_NAMES:Zb,RESOURCE_PRIORITY:Ln,applyColor:Ti,buildColorExpression:ad,default:{name:"Gospel Resources",propertyKey:ed,palette:po,colors:po,names:Si,priority:Ln,getColor:td,applyColor:Ti,buildColorExpression:ad,hasAnyResource:od,getResourceType:nd,getCSVColumn:Cn},getCSVColumn:Cn,getColor:td,getResourceType:nd,hasAnyResource:od},Symbol.toStringTag,{value:"Module"})),sd="region",Li="#6d766e",id={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 rd(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 ld=Mi,e_=Object.assign({"./adoption.js":Db,"./affinity-block.js":Rb,"./doxa-region.js":jb,"./engagement.js":Ub,"./language-family.js":Ib,"./prayer-progress.js":qb,"./religion.js":Jb,"./resource.js":Qb,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Mn,PROPERTY_KEY:sd,REGION_ORDER:Ci,WAGF_REGIONS:id,applyColor:Mi,buildColorExpression:ld,default:{name:"WAGF Region",propertyKey:sd,palette:Mn,regions:id,order:Ci,getColor:rd,applyColor:Mi,buildColorExpression:ld,fallback:Li},getColor:rd},Symbol.toStringTag,{value:"Module"}))}),t_=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),o_=e=>e.replace(/-/g,"_").toUpperCase(),n_={...{STATUS:"status",CUSTOM:"custom"}};function a_(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=t_(o);n_[o_(o)]=a}}a_(e_);function Ei(e){return e==null?"":typeof e=="object"?e.label||e.value||"":String(e)}const s_=[[/ sign language$/i,"Sign Language"]];function i_(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 s_)if(c.test(a))return u;return""}function r_(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=ae(!1),r=ae(null),l=ae(!1),c=ae([]),u=ae([]);ft()&<("normalizedPeopleGroups",u);const f=ae(null),b=ae([]),k=ae([]),v=ae([]),w=ae(null);async function N(){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 H=a.getSourceData(o);u.value=s(H.normalizedData||[])}else{const H=await n.setActiveSource(o);for(const q of H){const Q=Ei(q.language||q.primary_language);Q&&(q.language=Q);const j=i_(q);q.languageFamily=ai(j)}u.value=s(H),a&&a.cacheSourceData&&a.cacheSourceData(o,{normalizedData:H,timestamp:Date.now()})}c.value=s(Mb(u.value.map(H=>({id:H.uniqueId,slug:H.slug||"",rop3:H.peopleGroupId,peopleId3:H.peopleId3,name:H.name,language:H.language,languageFamily:H.languageFamily,country:H.country,population:H.population,status:H.engagementStatus||H.status,latitude:H.latitude,longitude:H.longitude,lng:H.longitude,lat:H.latitude,description:H.description,imageUrl:H.imageUrl,doxaRegion:H.doxaRegion||H.wagfRegion||"",peoplePraying:H.peoplePraying??null,_normalized:H}))));const T=n.getDataByLanguageFamily();b.value=Object.entries(T).map(([H,q])=>{const Q=q.reduce((j,J)=>{const ee=parseInt(J.population)||0;return j+ee},0);return{name:H,count:q.length,peopleGroupCount:q.length,population:Q,groups:q}}).sort((H,q)=>q.count-H.count);const P=n.getDataByRegion();k.value=Object.entries(P).map(([H,q])=>{const Q=q.reduce((j,J)=>{const ee=parseInt(J.population)||0;return j+ee},0);return{name:H,count:q.length,peopleGroupCount:q.length,population:Q,groups:q}}).sort((H,q)=>H.name.localeCompare(q.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(H=>{const q=parseInt(H.population)||0;let Q=!1;H.bible==="Available"&&(y.bible.count++,y.bible.population+=q,y.bible.groups.push(H),Q=!0),H.jesusFilm==="Available"&&(y.jesusFilm.count++,y.jesusFilm.population+=q,y.jesusFilm.groups.push(H),Q=!0),H.radio==="Available"&&(y.radio.count++,y.radio.population+=q,y.radio.groups.push(H),Q=!0),H.gospel==="Available"&&(y.gospel.count++,y.gospel.population+=q,y.gospel.groups.push(H),Q=!0),H.audio==="Available"&&(y.audio.count++,y.audio.population+=q,y.audio.groups.push(H),Q=!0),H.stories==="Available"&&(y.stories.count++,y.stories.population+=q,y.stories.groups.push(H),Q=!0),Q?(y.hasResources.count++,y.hasResources.population+=q,y.hasResources.groups.push(H)):(y.noResources.count++,y.noResources.population+=q,y.noResources.groups.push(H))});const U=u.value.length,G=u.value.reduce((H,q)=>H+(parseInt(q.population)||0),0),z={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},R={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}},X="#2c3e50";return v.value=[{name:z.bible,key:"bible",count:y.bible.count,population:y.bible.population,isParent:!0,children:[{name:"No Bible",key:"noBible",count:R.bible.count,population:R.bible.population,color:X}]},{name:z.jesusFilm,key:"jesusFilm",count:y.jesusFilm.count,population:y.jesusFilm.population,isParent:!0,children:[{name:"No Jesus Film",key:"noJesusFilm",count:R.jesusFilm.count,population:R.jesusFilm.population,color:X}]},{name:z.radio,key:"radio",count:y.radio.count,population:y.radio.population,isParent:!0,children:[{name:"No Radio",key:"noRadio",count:R.radio.count,population:R.radio.population,color:X}]},{name:z.gospel,key:"gospel",count:y.gospel.count,population:y.gospel.population,isParent:!0,children:[{name:"No Gospel",key:"noGospel",count:R.gospel.count,population:R.gospel.population,color:X}]},{name:z.audio,key:"audio",count:y.audio.count,population:y.audio.population,isParent:!0,children:[{name:"No Audio",key:"noAudio",count:R.audio.count,population:R.audio.population,color:X}]},{name:z.stories,key:"stories",count:y.stories.count,population:y.stories.population,isParent:!0,children:[{name:"No Stories",key:"noStories",count:R.stories.count,population:R.stories.population,color:X}]},{name:z.hasResources,key:"hasResources",count:y.hasResources.count,population:y.hasResources.population,isParent:!0,children:[{name:z.noResources,key:"noResources",count:y.noResources.count,population:y.noResources.population,color:X}]}],w.value=n.getStats(),l.value=!0,{peopleGroups:c.value,normalizedPeopleGroups:u.value,languageFamiliesData:b.value,doxaRegionsData:k.value,resourcesData:v.value,stats:w.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 x(){var T,P,y;try{const U={},G=u.value||[];for(const z of G){const R=z.countryIso||((P=(T=z._raw)==null?void 0:T.country_code)==null?void 0:P.value)||"",X=(y=z._raw)==null?void 0:y.wagf_region,H=z.doxaRegion||z.wagfRegion||(X&&typeof X=="object"?X.value:"")||"";R&&H&&!U[R]&&(U[R]=H)}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 A(){return n?n.getDataByLanguageFamily():{}}function $(){return n?n.getDataByRegion():{}}function _(T){return A()[T]||[]}function S(T){return $()[T]||[]}function L(){c.value=[],u.value=[],f.value=null,b.value=[],k.value=[],v.value=[],w.value=null,l.value=!1,r.value=null}return{isLoading:i,isInitialized:l,error:r,peopleGroups:c,normalizedPeopleGroups:u,regionsData:f,languageFamiliesData:b,doxaRegionsData:k,resourcesData:v,stats:w,loadData:N,loadRegionsData:x,getDataByLanguageFamily:A,getDataByRegion:$,getPeopleGroupsByFamily:_,getPeopleGroupsByRegion:S,clearData:L}}const Ni={};function l_(){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"]}}]},c_=Lo&&Lo.tagName.toUpperCase()==="SCRIPT"&&Lo.src||new URL("all-people-groups.js",document.baseURI).href,go=e=>String(e||"").trim().replace(/\/+$/,"");function cd(){try{const t=String(c_||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function u_(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(cd()||"")}function ud(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(cd()||"");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 d_({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=u_(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 Ra=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 p_(e){return Pi.get(String(e??"").toLowerCase().trim())||null}function dd(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 pd=new Set;function g_(e){const t=dd(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||Ra,i=p_(s);return i?i.id:(pd.has(s)||(pd.add(s),console.warn(`[list] unknown people-group list "${s}", showing "${Ra}". Known: ${xi.lists.map(r=>r.id).join(", ")}`)),Ra)}const za=new Map;function f_(e,t){const o=`${ud(dd(t))}/people-groups/lists/${e}.json`;return za.has(o)||za.set(o,Fl(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 za.delete(o),new Error(`list "${e}" membership ${o}: ${n.message}`)})),za.get(o)}async function gd(e,t,{key:o=n=>n==null?void 0:n.slug}={}){const n=g_(t);if(n===Ra||!Array.isArray(e))return e;try{const a=await f_(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 fd{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=cu,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,k)=>{f[b]=i[k]||""}),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 gd(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=l_(),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 gd(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 fd;const h_={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0},controls:{type:String,default:"round"}},setup(e){const t=e,o=ae(null);return lt("mapToolbar",{el:o,shape:pe(()=>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 2e9e85756..6f426525a 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 @@ -76,7 +76,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" } @@ -41,7 +41,7 @@ "bundle": "bible-posters", "scriptUrl": "./bible-posters/bible-posters.js", "output": "dx-maps/bible-posters/bible-posters.js", - "integrity": "sha384-x0qrqnzFOHxhCWZN4YYpnME08TLUQdfMI8oR5cAnQDtOVKu133/27BXcHCr0Ev7Q", + "integrity": "sha384-I/S/z45Ji0oxZOAEcwy2Mr2nRgjpJwz1fJ/sATdHF9Y996uroRh2kOruP+mYysMz", "elements": [ "bible-posters" ], @@ -63,7 +63,7 @@ "scriptUrl": "./bible-posters/bible-posters.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "bundle": "bible-posters" } @@ -142,7 +142,7 @@ "bundle": "cities-internet", "scriptUrl": "./cities-internet/cities-internet.js", "output": "dx-maps/cities-internet/cities-internet.js", - "integrity": "sha384-Rgm0VsAm4XUdQurgXOIUyjTAufHU7a+prSGrtNmyDM7FuAHz7emR4L6qnTm4fiRB", + "integrity": "sha384-VpsN/mgFBWE6q7OMlM4tDobY/WNA/v664BfDv4iBlsVSGpmqJZuZ9JChkSBLyfoU", "elements": [ "cities-internet-map" ], @@ -161,7 +161,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -177,8 +177,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" } }, { @@ -194,7 +194,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } } ] @@ -203,7 +203,7 @@ "bundle": "country-map", "scriptUrl": "./country-map/country-map.js", "output": "dx-maps/country-map/country-map.js", - "integrity": "sha384-+VPG59xWldacfLW+gdIC5/lcEC7xsd8lZDtq4vaCT1F+DBiSRu8RvKCJieTu8k4k", + "integrity": "sha384-xpSmmJ/snEmTkmHq+FaXhWhA5YrJZkaxKBg815110kS9Az54wYE+e6Vv9rvZNta5", "elements": [ "doxa-country-map" ], @@ -222,8 +222,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" } } ] @@ -232,7 +232,7 @@ "bundle": "country-posters", "scriptUrl": "./country-posters/country-posters.js", "output": "dx-maps/country-posters/country-posters.js", - "integrity": "sha384-RNQpjV6ZOCjBC3B3PZiNnZr4o5rrw03gBxlFZK2KZGhN7ACcYcC5Z4xBp9nL00nX", + "integrity": "sha384-K0g28FNerJ/g+vI/8aBz7417C8qieGdssQr1NzGNuxpUqp0yKtERXkxp8G+oDi4p", "elements": [ "country-posters-map" ], @@ -255,8 +255,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" } }, { @@ -272,7 +272,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -288,8 +288,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" } } ] @@ -347,7 +347,7 @@ "bundle": "demo-map", "scriptUrl": "./demo-map/demo-map.js", "output": "dx-maps/demo-map/demo-map.js", - "integrity": "sha384-X+VUfPlcC9H0lAKY1C5O7KHjlPNJk9AQbRap0Yf+omymz42VOFbLiZZJ1e+J2wTb", + "integrity": "sha384-4HmW8Ec4meYFCs50+yk5aOpYfNUF13K7MuGgREoeuASNmfB754bb+v/tsOyPrKrT", "elements": [ "demo-map" ], @@ -365,8 +365,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": [ { @@ -393,7 +393,7 @@ "bundle": "doxa-maps-spa", "scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js", "output": "dx-maps/doxa-maps-spa/doxa-maps-spa.js", - "integrity": "sha384-O6ncS56zUa2/9qib46/2MV5z2GRI12GqyDGIiJOGX4Zl1cGqUiNIvLLl15juiTDl", + "integrity": "sha384-X9IKmCib5oY/UKanPqM5iPWqZrlafv4L2fMe/lkwx5piCkHG4UcEzwHGAD6rwvkd", "elements": [ "doxa-maps-spa" ], @@ -423,7 +423,7 @@ "scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { @@ -450,7 +450,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-22n6l3xAj9jEpCWmgmgb97PC7Qpj+VymS1t1fiCv+mXcTeTLFByZDIkxSsQ0MPsF", + "integrity": "sha384-3HMkL6ogxc5G6QRtDxpJEGLoUGLFmrgbL8+wFeOb7/mhNj6wwkmRICJ4G7IidqBX", "elements": [ "doxa-research-map" ], @@ -469,8 +469,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": [ { @@ -496,7 +496,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-Lu0Rnx8QrPQMOnJ6F3A0v7hPbeNbyDIX1gibjgqRVk5Gz9Msi9Si4FKoDPKWI0tj", + "integrity": "sha384-rinuWzPy7aijYspyRf/nM+EpRGA5cajboi2jwXN741nejnXe5qgLkJPuIgoNthH/", "elements": [ "dxm-simple-map" ], @@ -515,8 +515,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": [ { @@ -686,7 +686,7 @@ "bundle": "gospel-internet", "scriptUrl": "./gospel-internet/gospel-internet.js", "output": "dx-maps/gospel-internet/gospel-internet.js", - "integrity": "sha384-pKYPnXHz77gMnqboT9XWADb+2Ax+SYb6I8/paGHrWtJBaEQ0IiBFM+05loQLXup3", + "integrity": "sha384-EjgUkycHIfGZN44/cWfTP84yEkS5AvkwJdvEWJdVhCNJYsGDdutVlTvdONfnSd3g", "elements": [ "gospel-internet-board" ], @@ -707,8 +707,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": [ { @@ -815,7 +815,7 @@ "bundle": "gospel-resources", "scriptUrl": "./gospel-resources/gospel-resources.js", "output": "dx-maps/gospel-resources/gospel-resources.js", - "integrity": "sha384-gW9QHjiGvH/hg5UWSRg4hQN2UeBrgpezSCaDMsJEzumLVEahivM2jiRNJ7qR3BbI", + "integrity": "sha384-AD6R1Q1VqPTAE2pwB19CJhc2GmIFRVdJ6g9KYnfY+B886ruOt0kR2RNuhjqGkqB4", "elements": [ "gospel-resources-map" ], @@ -838,7 +838,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\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" } }, { @@ -887,7 +887,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -903,8 +903,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" } } ] @@ -913,7 +913,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-0CDahw5+ypaB6p2UgEw7tzNqqPNXp4T1j6oZVhIWQLINcFP+EdPpdjH/4Y4HWDUD", + "integrity": "sha384-Nk00lm8C/AcC+pH75gHIfJNy/KgnW8ATGJd5pFBST1luUfbwo00l/ElPICXtwN1W", "elements": [ "my-upg-100-list-map" ], @@ -936,7 +936,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -952,8 +952,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" } }, { @@ -969,8 +969,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" } } ] @@ -1043,7 +1043,7 @@ "bundle": "plugin-studio", "scriptUrl": "./plugin-studio/plugin-studio.js", "output": "dx-maps/plugin-studio/plugin-studio.js", - "integrity": "sha384-Ho56LhDEIeUJwhGvHC9k3g/CTVhnVfz/o4r7QiYj+lHnjwOKZVsHxhGNnqJ16KEn", + "integrity": "sha384-NQcTT1r4eUmiJiiaI4+5F36stJdlm86nTxS38YldvEDVBE9lEby/nQR/Mzn8QvhB", "elements": [ "plugin-studio" ], @@ -1074,7 +1074,7 @@ "scriptUrl": "./plugin-studio/plugin-studio.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { @@ -1101,7 +1101,7 @@ "bundle": "poster-design", "scriptUrl": "./poster-design/poster-design.js", "output": "dx-maps/poster-design/poster-design.js", - "integrity": "sha384-wlLXZtU6PdFuuWhoCEG1vCsbfQkXbqpeLwD+tKhp6F5TSKMTjTffLzVgSaMr11cN", + "integrity": "sha384-AQNdSxPnJ3XhEVOpTeRAdFtmAzdrAD9G+SSS5JWTBKTvJ+SHRf9njw7fyUxuOuPU", "elements": [ "poster-design" ], @@ -1124,7 +1124,7 @@ "scriptUrl": "./poster-design/poster-design.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -1140,7 +1140,7 @@ "scriptUrl": "./poster-design/poster-design.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -1156,7 +1156,7 @@ "scriptUrl": "./poster-design/poster-design.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } } ] @@ -1165,7 +1165,7 @@ "bundle": "posterverse", "scriptUrl": "./posterverse/posterverse.js", "output": "dx-maps/posterverse/posterverse.js", - "integrity": "sha384-g++MF1T2qsdRlRnfvvvwNmZGtZvXcQsk9OfxPUwYo8mEMkuj5FCptXSyZwrWoifo", + "integrity": "sha384-kqFU5VlfQtj6itaICRBj7bNEEYGnzLh1dvHJUjh41OOrUYQ+rbR+ZFsc7+LlLkQb", "elements": [ "posterverse-app" ], @@ -1191,7 +1191,7 @@ "scriptUrl": "./posterverse/posterverse.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { @@ -1218,7 +1218,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-kwW7keGS7MJu37PTqIm7yK9eB4y+kgaevI2JzE0NdGMZAeoSwFmbJtDquoYfJvsq", + "integrity": "sha384-P3B5D7UJDBeY9Rnh3jwmibvCCeDuV1RoK9cSZ12l71pXMlMJJU3cAjfMidOQjK+v", "elements": [ "pplr-data-maps" ], @@ -1237,8 +1237,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" } @@ -1276,7 +1276,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "dx-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-sRf1EciMTPf75qh2MCXDXP4WrDipcrjEzUrGi70iO1WxYvCXIqIxIleMFGA4YejC", + "integrity": "sha384-qNPEyWjwIqzdQYkWKk6uYbf+D6g0XBpMikDVIY+ikueUeJ0IvH+INJQolzswDG7w", "elements": [ "regions-dashboard" ], @@ -1299,8 +1299,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" } }, { @@ -1316,7 +1316,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -1332,8 +1332,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" } } ] @@ -1342,7 +1342,7 @@ "bundle": "research-dashboard", "scriptUrl": "./research-dashboard/research-dashboard.js", "output": "dx-maps/research-dashboard/research-dashboard.js", - "integrity": "sha384-M2exl0TCDqokWf7ct+k8ArBmRIg49qUxIWFaEXhxnOqRitEEu4bwHJVXODQ2bmlh", + "integrity": "sha384-PkaZ6aqgix8bs3IRZIy18QJM2CsMBZTif77FAEvCUawwxMUxM9Y719vrxW7f7Rbj", "elements": [ "research-dashboard-map" ], @@ -1361,8 +1361,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" } @@ -1467,7 +1467,7 @@ "bundle": "upg-neighbor", "scriptUrl": "./upg-neighbor/upg-neighbor.js", "output": "dx-maps/upg-neighbor/upg-neighbor.js", - "integrity": "sha384-HFwN9jNuAInFIxFkxcVeQ4OoA44EtBENMaOM9NkrJDLCpFccbRPtnNdSJ/VqC/o5", + "integrity": "sha384-WQC403eeN6uchCkh3xE3X5TKVUhJONAr5eyZyEZYO6d24CsT39xRpSxBDIxxyu59", "elements": [ "upg-neighbor" ], @@ -1486,8 +1486,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": [ { @@ -1569,7 +1569,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-gycNl/k83TQpbh/R8k/t1w1WZjLyx7S5QCPtSZMLoshAjgpkZUZd4/Al+Aqg8HI1", + "integrity": "sha384-THmQpEE61Qc3q9Pqd3z81EicUxmeTWRXUtmR5mJ+NgRpWK5gt3ZNgHl4okZ4akn6", "elements": [ "wall-of-people-groups" ], @@ -1589,7 +1589,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 6eb1178b9..af152022f 100644 --- a/public/dx-maps/doxa-research-map/doxa-research-map.js +++ b/public/dx-maps/doxa-research-map/doxa-research-map.js @@ -82,7 +82,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(L,O)=>c.value?Ys((oe(),pe("div",{key:0,ref_key:"hintEl",ref:p,class:We(["pin-hint",{dark:i.value}]),role:"status"},[F("span",R1,[O[0]||(O[0]=F("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),F("span",F1,[(oe(!0),pe(rt,null,bo(l.value,(I,K)=>(oe(),pe("span",{key:K,class:"pin-hint-line"},_e(I),1))),128))]),F("button",{class:"pin-hint-x",type:"button","aria-label":t("aria.dismissHint","Dismiss hint"),onClick:G},"×",8,N1)])],2)),[[Gp,u.value&&f.value]]):Te("",!0)}},D1=".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}",yn=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},O1={key:0,class:"lsn-block",role:"status"},z1={class:"lsn-block__text"},j1={key:0},B1={key:1,class:"lsn-bar",role:"note"},G1={class:"lsn-bar__text"},H1=["aria-label","title"],Mf=yn({__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)=>yo(s,t.locale||void 0)||i,n=ee(()=>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=ee(()=>o("messages.noticeDismiss","Dismiss")),r=ee(()=>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"?(oe(),pe("div",O1,[F("p",z1,[oo(_e(r.value[0]),1),r.value.length>1?(oe(),pe("bdi",j1,_e(e.label),1)):Te("",!0),oo(_e(r.value[1]||""),1)])])):(oe(),pe("div",B1,[F("p",G1,_e(n.value),1),F("button",{type:"button",class:"lsn-bar__x","aria-label":a.value,title:a.value,onClick:i[0]||(i[0]=l=>s.$emit("dismiss"))},"×",8,H1)]))}},[["styles",[D1]],["__scopeId","data-v-9a589f6f"]]),U1="(max-width: 639.98px)";function W1(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 q1(e){var l;const t=ee(()=>{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=K$()}catch{o=null}const n=o?W1(o):!1,a=we(!1);if(typeof window<"u"&&typeof window.matchMedia=="function"){const c=window.matchMedia(U1);a.value=c.matches;const u=d=>{a.value=d.matches};(l=c.addEventListener)==null||l.call(c,"change",u),so(()=>{var d;return(d=c.removeEventListener)==null?void 0:d.call(c,"change",u)})}const r=ee(()=>{var c;return`dx-maps:larger-screens-dismissed:${((c=e.value)==null?void 0:c.profile)||""}`}),s=we(!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:ee(()=>t.value==="desktop-only"&&a.value&&!n),advise:ee(()=>t.value==="larger-screens"&&a.value&&!n&&!s.value),dismiss:i,label:ee(()=>{var c,u;return String(((c=e.value)==null?void 0:c.mobileLabel)||((u=e.value)==null?void 0:u.profile)||"")})}}const Ci="mapbox://styles/mapbox/standard",K1=Ci,V1=Ci,Y1=!1,Rf={lightPreset:"night",theme:"default"},Z1={lightPreset:"day",theme:"monochrome"};function J1(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function X1(e){let t=!1;const o=new WeakSet;function n(){return!1}function a(){return n()?"night":"day"}let r="dark";function s(m){return J1(m)}function i(m,p){m!=="light"&&m!=="dark"||(r=m,p&&$(p))}function l(){return{...r==="light"?Z1:Rf}}function c(){return Ci}function u(){return{basemap:l()}}function d(m,p){try{return typeof m.getConfigProperty=="function"?m.getConfigProperty("basemap",p):void 0}catch{return}}function f(m){return!!m&&typeof m.setConfigProperty=="function"&&typeof m.getConfigProperty=="function"}function S(m,p=!1){if(!f(m))return!1;const _=l();let g=!1;try{for(const[y,h]of Object.entries(_))!p&&d(m,y)===h||(m.setConfigProperty("basemap",y,h),g=!0)}catch(y){console.warn("[useMapTheme] setConfigProperty failed:",y)}return g}function w(m){if(!o.has(m)&&(o.add(m),!!f(m)))try{m.on("style.load",()=>S(m)),m.on("styledata",()=>S(m))}catch{}}function $(m){if(!m)return;if(w(m),S(m)&&!t){t=!0;try{m.once("idle",()=>{t=!1,S(m,!0)})}catch{t=!1}}}function b(m){e.toggleTheme(),$(m)}return{setLook:i,lookFor:s,STANDARD_STYLE:Ci,LIGHT_STYLE:K1,DARK_STYLE:V1,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:u,applyTheme:$,swapTheme:b}}let Q1=0;const ev=tc("ui",{state:()=>({_storeInstanceId:++Q1,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)}))}}}),tv=tc("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()}}}),ov=tc("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]=Va({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]=Va({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}}}),Na={_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}}},nv=".profile-loader[data-locale-pending][data-v-8e369bc8] .stl-tabs,.profile-loader[data-locale-pending][data-v-8e369bc8] .stl-title,.profile-loader[data-locale-pending][data-v-8e369bc8] .stl-rows,.profile-loader[data-locale-pending][data-v-8e369bc8] .legend-title,.profile-loader[data-locale-pending][data-v-8e369bc8] .legend-content,.profile-loader[data-locale-pending][data-v-8e369bc8] .legend-reopen-label,.profile-loader[data-locale-pending][data-v-8e369bc8] .lt-btn-text,.profile-loader[data-locale-pending][data-v-8e369bc8] .rd-topbar,.profile-loader[data-locale-pending][data-v-8e369bc8] .rd-exportbar{visibility:hidden}.profile-loader[data-v-8e369bc8]{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-8e369bc8]{display:flex;flex-direction:column}.profile-loader.has-screen-notice[data-v-8e369bc8]>:not(.lsn-bar){flex:1 1 auto;min-height:0;position:relative!important;inset:auto!important}.profile-error[data-v-8e369bc8]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",av=["dir","data-locale-pending"],rv={key:0,class:"profile-error"},sv={key:1,class:"profile-error"},iv=yn({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var G;const o=e,n=He("profileConfig",null),a=ee(()=>{var N;if(!o.profileConfig)return null;let v;try{v=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(v&&v.assetsBase===void 0){const P=(N=n==null?void 0:n.value)==null?void 0:N.assetsBase;typeof P=="string"&&P&&(v.assetsBase=P)}return v}),r=He("profileModules",null);if(!r)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const s=(()=>{const v=Object.keys(r||{});if(v.length!==1)return null;const N=v[0].match(/^\.\/(.+)\.vue$/);return N?N[1]:null})(),i=ee(()=>{var v;return((v=a.value)==null?void 0:v.profile)||s||null}),l=c_(),c=ee(()=>{var N;const v=(N=a.value)==null?void 0:N.tk;return typeof v=="string"&&v?v:l.value||""});Ue(()=>{var v;return(v=a.value)==null?void 0:v.tk},v=>{typeof v=="string"&&v&&ac(v)},{immediate:!0}),Ue(()=>{var v;return(v=a.value)==null?void 0:v.tokenUrl},v=>{var N;v&&!((N=a.value)!=null&&N.tk)&&!l.value&&u_(v)},{immediate:!0});const u=ee(()=>{var v;return((v=a.value)==null?void 0:v.dataSource)||Na.activeSource||"doxa-csv"}),d=ee(()=>{var v;return((v=a.value)==null?void 0:v.colorSet)||"default"}),f=ee(()=>!1),S=ee(()=>{var v;return((v=a.value)==null?void 0:v.pinHint)!==!1}),w=ee(()=>{var N,P;const v=(((N=a.value)==null?void 0:N.locale)||((P=a.value)==null?void 0:P.lang)||Sf()||"").split("-")[0].toLowerCase();return ur.includes(v)?v:""}),$=He("appI18n",null);Fd(()=>{w.value&&($&&($.global.locale.value=w.value),Af(w.value),Sc($,w.value).catch(()=>{}))});const b=ee(()=>{var v,N;return w.value||((N=(v=$==null?void 0:$.global)==null?void 0:v.locale)==null?void 0:N.value)||"en"}),m=ee(()=>Pi.has(b.value)?"rtl":"ltr"),{blocked:p,advise:_,dismiss:g,label:y}=q1(a),h=we(!1);Fd(v=>{const N=b.value;if(!Pi.has(N)){h.value=!1;return}let P=!0;v(()=>{P=!1}),h.value=!0,y1(N).finally(()=>{P&&(h.value=!1)})});const k=ee(()=>{var v;return((v=a.value)==null?void 0:v.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),A=ee(()=>{if(!i.value)return null;const v=`./${i.value}.vue`;return r[v]?Li(r[v]):(console.error(`[ProfileLoader] Profile not found: "${i.value}". Available:`,Object.keys(r)),null)});Zt("mapboxToken",c),Zt("dataSource",u),Zt("colorSet",d),Zt("profileConfig",a),Zt("instanceId",k),Zt("lang",b);const x=ev(),D=tv(),W=ov();try{const v=typeof localStorage<"u"?localStorage.getItem("theme"):null;v&&((G=x.setTheme)==null||G.call(x,v))}catch{}return Zt("uiStore",x),Zt("mapStore",D),Zt("dataStore",W),(v,N)=>(oe(),pe("div",{class:We(["profile-loader",{"has-screen-notice":de(_)}]),dir:m.value,"data-locale-pending":h.value?"":null},[a.value?A.value?de(p)?(oe(),$t(Mf,{key:2,mode:"desktop-only",label:de(y),locale:b.value},null,8,["label","locale"])):(oe(),pe(rt,{key:3},[de(_)?(oe(),$t(Mf,{key:0,mode:"larger-screens",locale:b.value,onDismiss:de(g)},null,8,["locale","onDismiss"])):Te("",!0),(oe(),$t(Zd(A.value)))],64)):(oe(),pe("div",sv,[F("p",null,[N[1]||(N[1]=oo("⚠️ Profile ",-1)),F("strong",null,'"'+_e(i.value)+'"',1),N[2]||(N[2]=oo(" not found.",-1))])])):(oe(),pe("div",rv,[...N[0]||(N[0]=[F("p",null,[oo("⚠️ "),F("strong",null,"doxa-map"),oo(": missing or invalid "),F("code",null,"profile-config"),oo(" prop.")],-1),F("p",null,[oo("Example: "),F("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),A.value&&f.value?(oe(),$t(Zd(de(null)),{key:4})):Te("",!0),A.value&&S.value?(oe(),$t(I1,{key:5})):Te("",!0)],10,av))}},[["styles",[nv]],["__scopeId","data-v-8e369bc8"]]);function Ff(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 lv(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 cv({profileModules:e={},configureApp:t=null}={}){return W$(iv,{configureApp(o){const n=t_();lv(o,()=>o.use(n));const a=v1();o.use(a),Ff(o,"appI18n",a),Ff(o,"profileModules",e),t&&t(o,{pinia:n,i18n:a})}})}const uv=Object.assign({"./research-map.vue":()=>Mt(()=>Promise.resolve().then(()=>fA),void 0)});function dv(){return cv({profileModules:uv,configureApp:(e,{pinia:t,i18n:o})=>{}})}const pv=dv();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",pv));const gv=["aria-label"],fv={class:"mpp-card"},hv={class:"mpp-kind"},mv={class:"mpp-title"},bv={class:"mpp-bar"},$v={__name:"MapPrintProgress",props:{visible:{type:Boolean,default:!1},kind:{type:String,default:""},title:{type:String,default:""},progress:{type:Object,default:null}},setup(e){const t=e,o=ee(()=>{var n;return Math.max(3,Math.min(100,Number((n=t.progress)==null?void 0:n.percent)||0))});return Qt(".mpp-scrim{position:fixed;inset:0;z-index:1000;background:rgba(8,12,16,.55);display:grid;place-items:center;padding:22px}.mpp-card{width:min(340px,100%);background:#fff;color:#0f1419;border-radius:14px;padding:20px 22px;box-shadow:0 10px 40px rgba(0,0,0,.35);text-align:center}.mpp-kind{font-size:10px;text-transform:uppercase;letter-spacing:.1em;opacity:.55}.mpp-title{margin:3px 0 14px;font-size:15px;font-weight:700;line-height:1.3}.mpp-bar{height:5px;border-radius:99px;background:rgba(0,0,0,.10);overflow:hidden}.mpp-fill{height:100%;background:#10b981;border-radius:99px;transition:width .25s ease}@media (prefers-reduced-motion: reduce){.mpp-fill{transition:none}}"),(n,a)=>e.visible?(oe(),pe("div",{key:0,class:"mpp-scrim",role:"status","aria-live":"polite","aria-label":e.kind},[F("div",fv,[F("div",hv,_e(e.kind),1),F("div",mv,_e(e.title),1),F("div",bv,[F("div",{class:"mpp-fill",style:Ft({width:o.value+"%"})},null,4)])])],8,gv)):Te("",!0)}},_v=Ua&&Ua.tagName.toUpperCase()==="SCRIPT"&&Ua.src||new URL("doxa-research-map.js",document.baseURI).href,ua=e=>String(e||"").trim().replace(/\/+$/,"");function Nf(){try{const t=String(_v||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function yv(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return ua(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return ua(o)}return ua(Nf()||"")}function cs(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=ua(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=ua((e==null?void 0:e.treeBase)||"")||ua(Nf()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return ua(new URL(o+"/assets",n).href)}catch{return ua(o+"/assets")}return"./assets"}function vv({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=yv(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 wv="rgba(120, 128, 134, 0.28)",If="36px",Df=()=>{};function kv(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return Df;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return Df;const a=p=>p.classList.contains("map-scroll-edge--left");for(const p of n)p.style.background=`linear-gradient(${a(p)?"to right":"to left"}, ${wv} ${If}, transparent ${If})`,p.style.opacity="0",p.style.transition="opacity 0.16s ease",p.style.userSelect="none",p.style.webkitUserSelect="none";const r=p=>{p.style.opacity="1"},s=p=>{p.style.opacity="0"},i=()=>n.find(p=>!a(p))||null,l=new Set;let c=!1,u=null;const d=()=>{for(const p of n)l.has(p)||s(p)},f=()=>{const p=i();p&&(r(p),u&&clearTimeout(u),u=setTimeout(d,250))},S=()=>f(),w=p=>{if(!(p.touches&&p.touches.length===1))return;const _=p.target;_&&_.classList&&_.classList.contains("map-scroll-edge")||f()},$=()=>{u&&clearTimeout(u),d()};e.addEventListener("wheel",S,{passive:!0}),e.addEventListener("touchmove",w,{passive:!0}),e.addEventListener("touchend",$,{passive:!0}),e.addEventListener("touchcancel",$,{passive:!0});const b=()=>{c||f()};typeof window<"u"&&window.addEventListener("scroll",b,{passive:!0});const m=[];for(const p of n){const _=()=>{l.add(p),r(p)},g=()=>{l.delete(p),s(p)},y=()=>{c=!0,r(p)},h=()=>{c=!1,s(p)};p.addEventListener("mouseenter",_),p.addEventListener("mouseleave",g),p.addEventListener("touchstart",y,{passive:!0}),p.addEventListener("touchend",h,{passive:!0}),m.push(()=>{p.removeEventListener("mouseenter",_),p.removeEventListener("mouseleave",g),p.removeEventListener("touchstart",y),p.removeEventListener("touchend",h)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",S),e.removeEventListener("touchmove",w),e.removeEventListener("touchend",$),e.removeEventListener("touchcancel",$),typeof window<"u"&&window.removeEventListener("scroll",b);for(const _ of m)_();for(const _ of n)s(_)}}const xv=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 Sv(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=xv[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 Pv(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 Av=["mapbox","maplibre"],Lv="auto";function Of(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function zf(e,{token:t}={}){const o=Of(e);return jf(o)||"maplibre"}function jf(e){const t=Of(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||Lv).toLowerCase().trim();return Av.includes(r)?r:""}function Cv(e){return e==="maplibre"?"MapLibre":"Mapbox"}function Bf(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function Tv(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 Ti(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 Ev(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 vn(e,t="circle"){return Bf(e)?{[`${t}-emissive-strength`]:1}:{}}const Gn={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 us(e,t){const o=Object.values(Gn).find(n=>n.url===t);return o&&(e.integrity=o.integrity,e.crossOrigin="anonymous"),e}const Gf={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 Mv(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function Rv(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(Mv(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(Gf.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(Gf.mapbox,null,!0);o=!0}catch{}return o}const Fv=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,Hf=new WeakMap;function Nv(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function Uf(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!Nv(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=Hf.get(e);a||(a=new Map,Hf.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(!Fv.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 dr={mapbox:{global:"mapboxgl",js:Gn.mapboxGlJs.url,css:Gn.mapboxGlCss.url},maplibre:{global:"maplibregl",js:Gn.maplibreGlJs.url,css:Gn.maplibreGlCss.url}},Iv={"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 Wf(e,t){const o={};for(const[a,r]of Object.entries(Iv)){const s=yo(`mapui.${r}`,e);s&&(o[a]=s)}const n=yo(t==="maplibre"?"mapui.maplibreLogo":"mapui.mapboxHomepage",e);return n&&(o["LogoControl.Title"]=n),o}function qf(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 Dv=dr.mapbox.css,Ov="https://tiles.openfreemap.org/styles/liberty",zv="https://tiles.openfreemap.org/styles/fiord";function Cc(e){var o;const t=((o=dr[e])==null?void 0:o.global)||dr.mapbox.global;return typeof window<"u"?window[t]:void 0}async function Kf(e){const t=dr[e]||dr.mapbox;if(Cc(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,us(n,t.css),document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(Cc(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,us(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 jv(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,us(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 Bv(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?zv:Ov}const Gv=85.0511,Tc=-2,Hv=0,Uv=-60;function Vf(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function Wv(e,t,o,n){if(!e||e<=0||!t||t<=0)return Hv;const a=Math.log2(e/512),r=Vf(n)-Vf(Gv),s=Math.log2(t/(512*r)),i=Math.max(a,s);return Math.max(Tc,Math.min(i,(o??18)-1))}function qv({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:u=!1,maxZoom:d=18,pitch:f=0,bearing:S=0,renderWorldCopies:w=!0,showEdgeBorders:$=!0,southCutoff:b=Uv,maxBounds:m=void 0}){const p=Za(null),_=we(!1);let g=null,y=null,h=null,k=null;try{k=He("profileConfig",null)}catch{}const A=!a&&!jf(k);a=a||zf(k,{token:t});let x=a==="maplibre";typeof document<"u"&&Kf(a).catch(()=>{});let D=null;try{D=He("lang",null)}catch{}const W=()=>{const N=D&&typeof D=="object"&&"value"in D?D.value:D;if(typeof N=="string"&&N)return N;const P=k&&typeof k=="object"&&"value"in k?k.value:k;if(P&&(P.locale||P.lang))return String(P.locale||P.lang);try{const T=new URLSearchParams(location.search);return T.get("lang")||T.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function G(){var Q;if(A&&!x&&!t&&typeof window<"u"&&window.__doxaMapTokenPending){if(await window.__doxaMapTokenPending,!e.value)return;typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN||(a="maplibre",x=!0)}const N=Sv(o,a),P=N.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const T=()=>!e.value;if(await Kf(a),T())return;const q=Cc(a);if(!q){console.error(`[useMapInstance] ${x?"maplibregl":"mapboxgl"} is not available. Add the ${x?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(Rv(q),!x){if(!t&&typeof window<"u"&&window.__doxaMapTokenPending&&(await window.__doxaMapTokenPending,T()))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 jv(e.value,x?dr.maplibre.css:Dv),T()||(await new Promise(Z=>requestAnimationFrame(Z)),T()))return;const L=e.value,O=L.clientWidth,I=L.clientHeight;if(O===0||I===0){console.error(`[useMapInstance] Container has ZERO dimensions (${O}×${I}). Map will be invisible. Check that parent elements have CSS sizing.`);let Z=L.parentElement,le=0;for(;Z&&le<5;)Z=Z.parentElement,le++}const K=t;x||(q.accessToken=K);const z=()=>typeof window<"u"&&window.innerWidth>=1024,re=(Z,le)=>{if(u)return typeof c=="number"?c:Tc;if(!z())return Tc;const ke=Wv(Z,le,d,b);return typeof c=="number"?Math.max(c,ke):ke},ge=re(L.clientWidth,L.clientHeight),ye=N.lightPreset||(()=>{var Z;try{const le=typeof n=="function"?n():n;return(Z=le==null?void 0:le.basemap)==null?void 0:Z.lightPreset}catch{return}})();if(x){p.value=new q.Map({container:e.value,style:Bv(P,ye),locale:Wf(W(),"maplibre"),center:r,zoom:s,minZoom:ge,maxZoom:d,pitch:f,bearing:S,dragRotate:!1,renderWorldCopies:w,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...m?{maxBounds:m}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),qf(p.value);try{e.value.__doxaMap=p.value}catch{}}else{const Z=typeof n=="function"?n():n;p.value=new q.Map({accessToken:K,container:e.value,style:P,locale:Wf(W(),"mapbox"),...Z?{config:Z}:{},center:r,zoom:s,minZoom:ge,maxZoom:d,pitch:f,bearing:S,dragRotate:!1,touchPitch:!1,renderWorldCopies:w,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...m?{maxBounds:m}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),qf(p.value);try{e.value.__doxaMap=p.value}catch{}}try{let Z=!1;p.value.on("error",le=>{var B,H;const ke=((B=le==null?void 0:le.error)==null?void 0:B.status)??(le==null?void 0:le.status),R=String(((H=le==null?void 0:le.error)==null?void 0:H.url)||(le==null?void 0:le.sourceId)||"");ke!==401&&ke!==403||Z||(Z=!0,console.error(`[doxa-maps] Mapbox returned ${ke} 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.`+(R?` First failing request: ${R.slice(0,120)}`:"")))})}catch{}try{p.value.touchZoomRotate.disableRotation()}catch{}h=kv(((Q=e.value)==null?void 0:Q.parentElement)||null,{enabled:$});let Se=ge,xe=null;g=()=>{const Z=p.value;if(!Z)return;const le=re(L.clientWidth,L.clientHeight);le!==Se&&(Se=le,Z.setMinZoom(le)),Z.getZoom(){xe=null;const ke=p.value;if(!ke)return;const R=re(L.clientWidth,L.clientHeight);if(ke.getZoom(){xe&&(clearTimeout(xe),xe=null)},p.value.on("resize",g),typeof window<"u"&&(window.addEventListener("resize",g),window.addEventListener("orientationchange",g)),p.value.on("style.load",()=>{if(p.value&&Uf(p.value,W()),N.paint&&p.value){const Z=Pv(p.value,N.paint);console.info("[useMapInstance] style paint applied ("+a+"):",Z.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var Z;(Z=p.value)==null||Z.resize(),p.value&&p.value.setMinZoom(re(L.clientWidth,L.clientHeight)),_.value=!0})})}function v(){if(p.value){if(g&&(p.value.off("resize",g),typeof window<"u"&&(window.removeEventListener("resize",g),window.removeEventListener("orientationchange",g)),g=null),y){try{y()}catch{}y=null}h&&(h(),h=null);try{const P=typeof window<"u"?window:null;P&&P.__doxaLogoOwner===p.value&&(P.__doxaLogoOwner=null)}catch{}const N=p.value;p.value.remove();try{e&&e.value&&e.value.__doxaMap===N&&(e.value.__doxaMap=null)}catch{}p.value=null,_.value=!1}}if(D&&typeof D=="object"&&"value"in D)try{Ue(D,()=>{p.value&&_.value&&Uf(p.value,W())})}catch{}return{map:p,isMapReady:_,initializeMap:G,destroy:v}}const Yf="adoptionStatus",Hn={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Ec=Hn,Mc={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},Kv=Mc;function Zf(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)?Hn.hasAdoption:Hn.notAdopted}function Rc({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Hn.hasAdoption,["==",t,1],Hn.hasAdoption,Hn.notAdopted]}const Jf=Rc,Vv=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Ec,ADOPTION_LABELS:Kv,LABELS:Mc,PALETTE:Hn,PROPERTY_KEY:Yf,applyColor:Rc,buildColorExpression:Jf,default:{name:"Adoption Progress",propertyKey:Yf,palette:Hn,colors:Hn,labels:Mc,getColor:Zf,applyColor:Rc,buildColorExpression:Jf},getColor:Zf},Symbol.toStringTag,{value:"Module"})),Fc="affinityBlock",pr="#95a5a6",Un={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"},Ei={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"},da=Ei,Xf=Object.entries(Un).reduce((e,[t,o])=>(e[o]=t,e),{}),Nc=Object.entries(Un).reduce((e,[t,o])=>(e[o]=da[t],e),{}),Qf=Un;function Ic(e){return Un[e]||"Unknown"}function Dc(e){return da[e]||pr}function eh(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?da[e]||pr:Nc[e]||pr:pr}function th(){return Object.entries(Un).map(([e,t])=>({code:e,name:t,color:da[e]}))}function oh(e){return{code:e,name:Un[e]||"Unknown",color:da[e]||pr}}function nh(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Dc(t)}function ah(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Ic(t)}function Oc(){const e=["match",["get",Fc]];return Object.entries(da).forEach(([t,o])=>{e.push(t,o)}),e.push(pr),e}const rh=Oc,Yv=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:da,AFFINITY_BLOCK_COLORS_BY_NAME:Nc,AFFINITY_BLOCK_NAMES:Un,AFFINITY_BLOCK_NAME_TO_CODE:Xf,NAMES:Qf,PALETTE:Ei,PROPERTY_KEY:Fc,affinityBlockCodeLookup:Un,affinityBlockCodeToColor:da,affinityBlockCodeToName:Un,affinityBlockColors:Nc,affinityBlockNameToCode:Xf,applyColor:Oc,buildColorExpression:rh,default:{name:"Affinity Block",propertyKey:Fc,palette:Ei,colors:Ei,names:Qf,getColor:nh,applyColor:Oc,buildColorExpression:rh,getName:ah,getAffinityBlockName:Ic,getAffinityBlockColor:eh,getAffinityBlockColorByCode:Dc,getAffinityBlocksArray:th,getAffinityBlockData:oh},getAffinityBlockColor:eh,getAffinityBlockColorByCode:Dc,getAffinityBlockData:oh,getAffinityBlockName:Ic,getAffinityBlocksArray:th,getColor:nh,getName:ah},Symbol.toStringTag,{value:"Module"}));function Zv(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(jc),e}const ch=Hc,Xv=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:Jv,PALETTE:Mi,PROPERTY_KEY:zc,REGION_COLOR_ALIASES:Gc,SLUG_PALETTE:Ri,applyColor:Hc,buildColorExpression:ch,default:{name:"DOXA Region",propertyKey:zc,palette:Mi,colors:Mi,slugColors:Ri,aliases:Gc,fallback:jc,getColor:lh,applyColor:Hc,buildColorExpression:ch,getRegionColor:ih,getRegionColorBySlug:Bc},getColor:lh,getRegionColor:ih,getRegionColorBySlug:Bc},Symbol.toStringTag,{value:"Module"})),uh="engagementStatus",Wn={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Uc=Wn,Wc={notEngaged:"Unengaged",hasEngagement:"Engaged"},Qv=Wc;function dh(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)?Wn.hasEngagement:Wn.notEngaged}function qc({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Wn.hasEngagement,["==",t,1],Wn.hasEngagement,Wn.notEngaged]}const ph=qc,ew=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Uc,ENGAGEMENT_LABELS:Qv,LABELS:Wc,PALETTE:Wn,PROPERTY_KEY:uh,applyColor:qc,buildColorExpression:ph,default:{name:"Engagement Progress",propertyKey:uh,palette:Wn,colors:Wn,labels:Wc,getColor:dh,applyColor:qc,buildColorExpression:ph},getColor:dh},Symbol.toStringTag,{value:"Module"})),Kc="languageFamily",tw="#000000",pa={"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"},gh=pa;function nn(e){return pa[e]||tw}const ow=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(pa))t[e(o)]=o;return t})(),nw={"tai-kadai":"Kra-Dai",none:"Unknown"};function Fi(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return nw[o]||ow[o]||t}function fh(e){var t;return nn(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function Vc(){const e=["match",["get",Kc]];return Object.entries(pa).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const hh=Vc,aw=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:gh,PALETTE:pa,PROPERTY_KEY:Kc,applyColor:Vc,buildColorExpression:hh,canonicalFamilyName:Fi,default:{name:"Language Family",propertyKey:Kc,palette:pa,colors:pa,getColor:fh,applyColor:Vc,buildColorExpression:hh,getLanguageFamilyColor:nn,canonicalFamilyName:Fi},defaultFamilyColor:"#95a5a6",getColor:fh,getLanguageFamilyColor:nn,languageFamilyColors:pa},Symbol.toStringTag,{value:"Module"})),mh="peoplePraying",wn=144,ga={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Ia=ga,Yc={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},rw=Yc;function Ni(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>=wn?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function Zc(e){return ga[Ni(e)]}function bh(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 $h(e){return Ni(e)==="fullPrayer"}function _h(e){return Zc(e)}function Jc({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,wn],ga.fullPrayer,[">",t,0],ga.hasPrayer,ga.noPrayer]}const yh=Jc,sw=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:wn,LABELS:Yc,PALETTE:ga,PRAYER_COLORS:Ia,PRAYER_LABELS:rw,PROPERTY_KEY:mh,applyColor:Jc,buildColorExpression:yh,checkHasFullPrayer:$h,checkHasPrayer:bh,default:{name:"Prayer Progress",propertyKey:mh,palette:ga,colors:ga,labels:Yc,threshold:wn,getColor:_h,applyColor:Jc,buildColorExpression:yh,getPrayerLevel:Ni,getPrayerColor:Zc,checkHasPrayer:bh,checkHasFullPrayer:$h},getColor:_h,getPrayerColor:Zc,getPrayerLevel:Ni},Symbol.toStringTag,{value:"Module"})),vh="religion",Xc="#94a3b8",an={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Uo={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function ds(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return an[t]?t:"U"}function wh(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 Uo[ds(t)]||Xc}function Qc(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Uo.C,"M",Uo.M,"H",Uo.H,"B",Uo.B,"E",Uo.E,"J",Uo.J,"S",Uo.S,"N",Uo.N,"O",Uo.O,Xc]}const kh=Qc,iw={name:"Religion",propertyKey:vh,palette:Uo,families:an,getColor:wh,applyColor:Qc,buildColorExpression:kh,fallback:Xc};function eu(e){const t=String(e||""),o=an[t]||t;return o?yo("religion.family."+o)||o:""}const lw=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Uo,PROPERTY_KEY:vh,RELIGION_FAMILIES:an,applyColor:Qc,buildColorExpression:kh,default:iw,getColor:wh,getReligionFamily:ds,religionFamilyLabel:eu},Symbol.toStringTag,{value:"Module"})),xh="resourceType",fa={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},cw=fa,ps=["bible","jesusFilm","radio","gospel","audio","stories"],tu={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},uw=tu;function gs(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function Sh(e){var t;for(const o of ps)if((e[o]||((t=e._raw)==null?void 0:t[gs(o)]))==="Available")return fa.hasResources;return fa.noResources}function Ph(e){var t;for(const o of ps)if((e[o]||((t=e._raw)==null?void 0:t[gs(o)]))==="Available")return!0;return!1}function Ah(e){var t;for(const o of ps)if((e[o]||((t=e._raw)==null?void 0:t[gs(o)]))==="Available")return o;return"noResources"}function ou(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],fa.hasResources,fa.noResources]}const Lh=ou,dw=Object.freeze(Object.defineProperty({__proto__:null,NAMES:tu,PALETTE:fa,PROPERTY_KEY:xh,RESOURCE_COLORS:cw,RESOURCE_NAMES:uw,RESOURCE_PRIORITY:ps,applyColor:ou,buildColorExpression:Lh,default:{name:"Gospel Resources",propertyKey:xh,palette:fa,colors:fa,names:tu,priority:ps,getColor:Sh,applyColor:ou,buildColorExpression:Lh,hasAnyResource:Ph,getResourceType:Ah,getCSVColumn:gs},getCSVColumn:gs,getColor:Sh,getResourceType:Ah,hasAnyResource:Ph},Symbol.toStringTag,{value:"Module"})),Ch="region",nu="#6d766e",Th={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"},fs={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},au=Object.keys(fs);function Eh(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 fs[t]||nu}function ru(){const e=["match",["coalesce",["get","region"],""]];for(const t of au)e.push(t,fs[t]);return e.push(nu),e}const Mh=ru,pw=Object.assign({"./adoption.js":Vv,"./affinity-block.js":Yv,"./doxa-region.js":Xv,"./engagement.js":ew,"./language-family.js":aw,"./prayer-progress.js":sw,"./religion.js":lw,"./resource.js":dw,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:fs,PROPERTY_KEY:Ch,REGION_ORDER:au,WAGF_REGIONS:Th,applyColor:ru,buildColorExpression:Mh,default:{name:"WAGF Region",propertyKey:Ch,palette:fs,regions:Th,order:au,getColor:Eh,applyColor:ru,buildColorExpression:Mh,fallback:nu},getColor:Eh},Symbol.toStringTag,{value:"Module"}))}),gw=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),fw=e=>e.replace(/-/g,"_").toUpperCase(),gr={...{STATUS:"status",CUSTOM:"custom"}},su={};function hw(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=gw(o);gr[fw(o)]=a,su[a]=n}}hw(pw);function kn(e){return su[e]||su[gr.LANGUAGE_FAMILY]}function mw(e,t={}){return kn(e).applyColor(t)}const bw={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]}},Rh={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 $w(e){return bw[e]||null}function iu(e="standard"){return Rh.circleRadius[e]||Rh.circleRadius.standard}const _w={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};function Ut(e){return e==null?"":String(e).replace(/[&<>"'`]/g,t=>_w[t])}function yw(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 Ut(o.href)}catch{}return Ut(t)}function Fh(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,r=He("uiStore"),{t:s,locale:i}=Kt(),l=we([]);function c(_){const g=n(_.languageFamily),y="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let h=_.imageUrl;(!h||h.includes("NoImageAvailable"))&&(h=y);const k=(_.name||"U")[0].toUpperCase(),A=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],x=k.charCodeAt(0)%A.length,D=A[x];return` +`,"pin-hint"),(L,O)=>c.value?Ys((oe(),pe("div",{key:0,ref_key:"hintEl",ref:p,class:We(["pin-hint",{dark:i.value}]),role:"status"},[F("span",R1,[O[0]||(O[0]=F("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),F("span",F1,[(oe(!0),pe(rt,null,bo(l.value,(I,K)=>(oe(),pe("span",{key:K,class:"pin-hint-line"},_e(I),1))),128))]),F("button",{class:"pin-hint-x",type:"button","aria-label":t("aria.dismissHint","Dismiss hint"),onClick:G},"×",8,N1)])],2)),[[Gp,u.value&&f.value]]):Te("",!0)}},D1=".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}",yn=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},O1={key:0,class:"lsn-block",role:"status"},z1={class:"lsn-block__text"},j1={key:0},B1={key:1,class:"lsn-bar",role:"note"},G1={class:"lsn-bar__text"},H1=["aria-label","title"],Mf=yn({__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)=>yo(s,t.locale||void 0)||i,n=ee(()=>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=ee(()=>o("messages.noticeDismiss","Dismiss")),r=ee(()=>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"?(oe(),pe("div",O1,[F("p",z1,[oo(_e(r.value[0]),1),r.value.length>1?(oe(),pe("bdi",j1,_e(e.label),1)):Te("",!0),oo(_e(r.value[1]||""),1)])])):(oe(),pe("div",B1,[F("p",G1,_e(n.value),1),F("button",{type:"button",class:"lsn-bar__x","aria-label":a.value,title:a.value,onClick:i[0]||(i[0]=l=>s.$emit("dismiss"))},"×",8,H1)]))}},[["styles",[D1]],["__scopeId","data-v-9a589f6f"]]),U1="(max-width: 639.98px)";function W1(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 q1(e){var l;const t=ee(()=>{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=K$()}catch{o=null}const n=o?W1(o):!1,a=we(!1);if(typeof window<"u"&&typeof window.matchMedia=="function"){const c=window.matchMedia(U1);a.value=c.matches;const u=d=>{a.value=d.matches};(l=c.addEventListener)==null||l.call(c,"change",u),so(()=>{var d;return(d=c.removeEventListener)==null?void 0:d.call(c,"change",u)})}const r=ee(()=>{var c;return`dx-maps:larger-screens-dismissed:${((c=e.value)==null?void 0:c.profile)||""}`}),s=we(!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:ee(()=>t.value==="desktop-only"&&a.value&&!n),advise:ee(()=>t.value==="larger-screens"&&a.value&&!n&&!s.value),dismiss:i,label:ee(()=>{var c,u;return String(((c=e.value)==null?void 0:c.mobileLabel)||((u=e.value)==null?void 0:u.profile)||"")})}}const Ci="mapbox://styles/mapbox/standard",K1=Ci,V1=Ci,Y1=!1,Rf={lightPreset:"night",theme:"default"},Z1={lightPreset:"day",theme:"monochrome"};function J1(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function X1(e){let t=!1;const o=new WeakSet;function n(){return!1}function a(){return n()?"night":"day"}let r="dark";function s(m){return J1(m)}function i(m,p){m!=="light"&&m!=="dark"||(r=m,p&&$(p))}function l(){return{...r==="light"?Z1:Rf}}function c(){return Ci}function u(){return{basemap:l()}}function d(m,p){try{return typeof m.getConfigProperty=="function"?m.getConfigProperty("basemap",p):void 0}catch{return}}function f(m){return!!m&&typeof m.setConfigProperty=="function"&&typeof m.getConfigProperty=="function"}function S(m,p=!1){if(!f(m))return!1;const _=l();let g=!1;try{for(const[y,h]of Object.entries(_))!p&&d(m,y)===h||(m.setConfigProperty("basemap",y,h),g=!0)}catch(y){console.warn("[useMapTheme] setConfigProperty failed:",y)}return g}function w(m){if(!o.has(m)&&(o.add(m),!!f(m)))try{m.on("style.load",()=>S(m)),m.on("styledata",()=>S(m))}catch{}}function $(m){if(!m)return;if(w(m),S(m)&&!t){t=!0;try{m.once("idle",()=>{t=!1,S(m,!0)})}catch{t=!1}}}function b(m){e.toggleTheme(),$(m)}return{setLook:i,lookFor:s,STANDARD_STYLE:Ci,LIGHT_STYLE:K1,DARK_STYLE:V1,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:u,applyTheme:$,swapTheme:b}}let Q1=0;const ev=tc("ui",{state:()=>({_storeInstanceId:++Q1,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)}))}}}),tv=tc("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()}}}),ov=tc("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]=Va({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]=Va({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}}}),Na={_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}}},nv=".profile-loader[data-locale-pending][data-v-a0842af1] .stl-tabs,.profile-loader[data-locale-pending][data-v-a0842af1] .stl-title,.profile-loader[data-locale-pending][data-v-a0842af1] .stl-rows,.profile-loader[data-locale-pending][data-v-a0842af1] .legend-title,.profile-loader[data-locale-pending][data-v-a0842af1] .legend-content,.profile-loader[data-locale-pending][data-v-a0842af1] .legend-reopen-label,.profile-loader[data-locale-pending][data-v-a0842af1] .lt-btn-text,.profile-loader[data-locale-pending][data-v-a0842af1] .rd-topbar,.profile-loader[data-locale-pending][data-v-a0842af1] .rd-exportbar{visibility:hidden}.profile-loader[data-v-a0842af1]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100svh);position:relative}.profile-loader.has-screen-notice[data-v-a0842af1]{display:flex;flex-direction:column}.profile-loader.has-screen-notice[data-v-a0842af1]>:not(.lsn-bar){flex:1 1 auto;min-height:0;position:relative!important;inset:auto!important}.profile-error[data-v-a0842af1]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}@supports not (height: 100svh){.profile-loader[data-v-a0842af1]{min-height:var(--profile-min-h, 100vh)}}",av=["dir","data-locale-pending"],rv={key:0,class:"profile-error"},sv={key:1,class:"profile-error"},iv=yn({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var G;const o=e,n=He("profileConfig",null),a=ee(()=>{var N;if(!o.profileConfig)return null;let v;try{v=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(v&&v.assetsBase===void 0){const P=(N=n==null?void 0:n.value)==null?void 0:N.assetsBase;typeof P=="string"&&P&&(v.assetsBase=P)}return v}),r=He("profileModules",null);if(!r)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const s=(()=>{const v=Object.keys(r||{});if(v.length!==1)return null;const N=v[0].match(/^\.\/(.+)\.vue$/);return N?N[1]:null})(),i=ee(()=>{var v;return((v=a.value)==null?void 0:v.profile)||s||null}),l=c_(),c=ee(()=>{var N;const v=(N=a.value)==null?void 0:N.tk;return typeof v=="string"&&v?v:l.value||""});Ue(()=>{var v;return(v=a.value)==null?void 0:v.tk},v=>{typeof v=="string"&&v&&ac(v)},{immediate:!0}),Ue(()=>{var v;return(v=a.value)==null?void 0:v.tokenUrl},v=>{var N;v&&!((N=a.value)!=null&&N.tk)&&!l.value&&u_(v)},{immediate:!0});const u=ee(()=>{var v;return((v=a.value)==null?void 0:v.dataSource)||Na.activeSource||"doxa-csv"}),d=ee(()=>{var v;return((v=a.value)==null?void 0:v.colorSet)||"default"}),f=ee(()=>!1),S=ee(()=>{var v;return((v=a.value)==null?void 0:v.pinHint)!==!1}),w=ee(()=>{var N,P;const v=(((N=a.value)==null?void 0:N.locale)||((P=a.value)==null?void 0:P.lang)||Sf()||"").split("-")[0].toLowerCase();return ur.includes(v)?v:""}),$=He("appI18n",null);Fd(()=>{w.value&&($&&($.global.locale.value=w.value),Af(w.value),Sc($,w.value).catch(()=>{}))});const b=ee(()=>{var v,N;return w.value||((N=(v=$==null?void 0:$.global)==null?void 0:v.locale)==null?void 0:N.value)||"en"}),m=ee(()=>Pi.has(b.value)?"rtl":"ltr"),{blocked:p,advise:_,dismiss:g,label:y}=q1(a),h=we(!1);Fd(v=>{const N=b.value;if(!Pi.has(N)){h.value=!1;return}let P=!0;v(()=>{P=!1}),h.value=!0,y1(N).finally(()=>{P&&(h.value=!1)})});const k=ee(()=>{var v;return((v=a.value)==null?void 0:v.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),A=ee(()=>{if(!i.value)return null;const v=`./${i.value}.vue`;return r[v]?Li(r[v]):(console.error(`[ProfileLoader] Profile not found: "${i.value}". Available:`,Object.keys(r)),null)});Zt("mapboxToken",c),Zt("dataSource",u),Zt("colorSet",d),Zt("profileConfig",a),Zt("instanceId",k),Zt("lang",b);const x=ev(),D=tv(),W=ov();try{const v=typeof localStorage<"u"?localStorage.getItem("theme"):null;v&&((G=x.setTheme)==null||G.call(x,v))}catch{}return Zt("uiStore",x),Zt("mapStore",D),Zt("dataStore",W),(v,N)=>(oe(),pe("div",{class:We(["profile-loader",{"has-screen-notice":de(_)}]),dir:m.value,"data-locale-pending":h.value?"":null},[a.value?A.value?de(p)?(oe(),$t(Mf,{key:2,mode:"desktop-only",label:de(y),locale:b.value},null,8,["label","locale"])):(oe(),pe(rt,{key:3},[de(_)?(oe(),$t(Mf,{key:0,mode:"larger-screens",locale:b.value,onDismiss:de(g)},null,8,["locale","onDismiss"])):Te("",!0),(oe(),$t(Zd(A.value)))],64)):(oe(),pe("div",sv,[F("p",null,[N[1]||(N[1]=oo("⚠️ Profile ",-1)),F("strong",null,'"'+_e(i.value)+'"',1),N[2]||(N[2]=oo(" not found.",-1))])])):(oe(),pe("div",rv,[...N[0]||(N[0]=[F("p",null,[oo("⚠️ "),F("strong",null,"doxa-map"),oo(": missing or invalid "),F("code",null,"profile-config"),oo(" prop.")],-1),F("p",null,[oo("Example: "),F("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),A.value&&f.value?(oe(),$t(Zd(de(null)),{key:4})):Te("",!0),A.value&&S.value?(oe(),$t(I1,{key:5})):Te("",!0)],10,av))}},[["styles",[nv]],["__scopeId","data-v-a0842af1"]]);function Ff(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 lv(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 cv({profileModules:e={},configureApp:t=null}={}){return W$(iv,{configureApp(o){const n=t_();lv(o,()=>o.use(n));const a=v1();o.use(a),Ff(o,"appI18n",a),Ff(o,"profileModules",e),t&&t(o,{pinia:n,i18n:a})}})}const uv=Object.assign({"./research-map.vue":()=>Mt(()=>Promise.resolve().then(()=>fA),void 0)});function dv(){return cv({profileModules:uv,configureApp:(e,{pinia:t,i18n:o})=>{}})}const pv=dv();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",pv));const gv=["aria-label"],fv={class:"mpp-card"},hv={class:"mpp-kind"},mv={class:"mpp-title"},bv={class:"mpp-bar"},$v={__name:"MapPrintProgress",props:{visible:{type:Boolean,default:!1},kind:{type:String,default:""},title:{type:String,default:""},progress:{type:Object,default:null}},setup(e){const t=e,o=ee(()=>{var n;return Math.max(3,Math.min(100,Number((n=t.progress)==null?void 0:n.percent)||0))});return Qt(".mpp-scrim{position:fixed;inset:0;z-index:1000;background:rgba(8,12,16,.55);display:grid;place-items:center;padding:22px}.mpp-card{width:min(340px,100%);background:#fff;color:#0f1419;border-radius:14px;padding:20px 22px;box-shadow:0 10px 40px rgba(0,0,0,.35);text-align:center}.mpp-kind{font-size:10px;text-transform:uppercase;letter-spacing:.1em;opacity:.55}.mpp-title{margin:3px 0 14px;font-size:15px;font-weight:700;line-height:1.3}.mpp-bar{height:5px;border-radius:99px;background:rgba(0,0,0,.10);overflow:hidden}.mpp-fill{height:100%;background:#10b981;border-radius:99px;transition:width .25s ease}@media (prefers-reduced-motion: reduce){.mpp-fill{transition:none}}"),(n,a)=>e.visible?(oe(),pe("div",{key:0,class:"mpp-scrim",role:"status","aria-live":"polite","aria-label":e.kind},[F("div",fv,[F("div",hv,_e(e.kind),1),F("div",mv,_e(e.title),1),F("div",bv,[F("div",{class:"mpp-fill",style:Ft({width:o.value+"%"})},null,4)])])],8,gv)):Te("",!0)}},_v=Ua&&Ua.tagName.toUpperCase()==="SCRIPT"&&Ua.src||new URL("doxa-research-map.js",document.baseURI).href,ua=e=>String(e||"").trim().replace(/\/+$/,"");function Nf(){try{const t=String(_v||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function yv(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return ua(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return ua(o)}return ua(Nf()||"")}function cs(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=ua(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=ua((e==null?void 0:e.treeBase)||"")||ua(Nf()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return ua(new URL(o+"/assets",n).href)}catch{return ua(o+"/assets")}return"./assets"}function vv({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=yv(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 wv="rgba(120, 128, 134, 0.28)",If="36px",Df=()=>{};function kv(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return Df;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return Df;const a=p=>p.classList.contains("map-scroll-edge--left");for(const p of n)p.style.background=`linear-gradient(${a(p)?"to right":"to left"}, ${wv} ${If}, transparent ${If})`,p.style.opacity="0",p.style.transition="opacity 0.16s ease",p.style.userSelect="none",p.style.webkitUserSelect="none";const r=p=>{p.style.opacity="1"},s=p=>{p.style.opacity="0"},i=()=>n.find(p=>!a(p))||null,l=new Set;let c=!1,u=null;const d=()=>{for(const p of n)l.has(p)||s(p)},f=()=>{const p=i();p&&(r(p),u&&clearTimeout(u),u=setTimeout(d,250))},S=()=>f(),w=p=>{if(!(p.touches&&p.touches.length===1))return;const _=p.target;_&&_.classList&&_.classList.contains("map-scroll-edge")||f()},$=()=>{u&&clearTimeout(u),d()};e.addEventListener("wheel",S,{passive:!0}),e.addEventListener("touchmove",w,{passive:!0}),e.addEventListener("touchend",$,{passive:!0}),e.addEventListener("touchcancel",$,{passive:!0});const b=()=>{c||f()};typeof window<"u"&&window.addEventListener("scroll",b,{passive:!0});const m=[];for(const p of n){const _=()=>{l.add(p),r(p)},g=()=>{l.delete(p),s(p)},y=()=>{c=!0,r(p)},h=()=>{c=!1,s(p)};p.addEventListener("mouseenter",_),p.addEventListener("mouseleave",g),p.addEventListener("touchstart",y,{passive:!0}),p.addEventListener("touchend",h,{passive:!0}),m.push(()=>{p.removeEventListener("mouseenter",_),p.removeEventListener("mouseleave",g),p.removeEventListener("touchstart",y),p.removeEventListener("touchend",h)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",S),e.removeEventListener("touchmove",w),e.removeEventListener("touchend",$),e.removeEventListener("touchcancel",$),typeof window<"u"&&window.removeEventListener("scroll",b);for(const _ of m)_();for(const _ of n)s(_)}}const xv=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 Sv(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=xv[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 Pv(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 Av=["mapbox","maplibre"],Lv="auto";function Of(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function zf(e,{token:t}={}){const o=Of(e);return jf(o)||"maplibre"}function jf(e){const t=Of(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||Lv).toLowerCase().trim();return Av.includes(r)?r:""}function Cv(e){return e==="maplibre"?"MapLibre":"Mapbox"}function Bf(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function Tv(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 Ti(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 Ev(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 vn(e,t="circle"){return Bf(e)?{[`${t}-emissive-strength`]:1}:{}}const Gn={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 us(e,t){const o=Object.values(Gn).find(n=>n.url===t);return o&&(e.integrity=o.integrity,e.crossOrigin="anonymous"),e}const Gf={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 Mv(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function Rv(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(Mv(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(Gf.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(Gf.mapbox,null,!0);o=!0}catch{}return o}const Fv=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,Hf=new WeakMap;function Nv(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function Uf(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!Nv(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=Hf.get(e);a||(a=new Map,Hf.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(!Fv.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 dr={mapbox:{global:"mapboxgl",js:Gn.mapboxGlJs.url,css:Gn.mapboxGlCss.url},maplibre:{global:"maplibregl",js:Gn.maplibreGlJs.url,css:Gn.maplibreGlCss.url}},Iv={"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 Wf(e,t){const o={};for(const[a,r]of Object.entries(Iv)){const s=yo(`mapui.${r}`,e);s&&(o[a]=s)}const n=yo(t==="maplibre"?"mapui.maplibreLogo":"mapui.mapboxHomepage",e);return n&&(o["LogoControl.Title"]=n),o}function qf(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 Dv=dr.mapbox.css,Ov="https://tiles.openfreemap.org/styles/liberty",zv="https://tiles.openfreemap.org/styles/fiord";function Cc(e){var o;const t=((o=dr[e])==null?void 0:o.global)||dr.mapbox.global;return typeof window<"u"?window[t]:void 0}async function Kf(e){const t=dr[e]||dr.mapbox;if(Cc(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,us(n,t.css),document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(Cc(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,us(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 jv(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,us(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 Bv(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?zv:Ov}const Gv=85.0511,Tc=-2,Hv=0,Uv=-60;function Vf(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function Wv(e,t,o,n){if(!e||e<=0||!t||t<=0)return Hv;const a=Math.log2(e/512),r=Vf(n)-Vf(Gv),s=Math.log2(t/(512*r)),i=Math.max(a,s);return Math.max(Tc,Math.min(i,(o??18)-1))}function qv({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:u=!1,maxZoom:d=18,pitch:f=0,bearing:S=0,renderWorldCopies:w=!0,showEdgeBorders:$=!0,southCutoff:b=Uv,maxBounds:m=void 0}){const p=Za(null),_=we(!1);let g=null,y=null,h=null,k=null;try{k=He("profileConfig",null)}catch{}const A=!a&&!jf(k);a=a||zf(k,{token:t});let x=a==="maplibre";typeof document<"u"&&Kf(a).catch(()=>{});let D=null;try{D=He("lang",null)}catch{}const W=()=>{const N=D&&typeof D=="object"&&"value"in D?D.value:D;if(typeof N=="string"&&N)return N;const P=k&&typeof k=="object"&&"value"in k?k.value:k;if(P&&(P.locale||P.lang))return String(P.locale||P.lang);try{const T=new URLSearchParams(location.search);return T.get("lang")||T.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function G(){var Q;if(A&&!x&&!t&&typeof window<"u"&&window.__doxaMapTokenPending){if(await window.__doxaMapTokenPending,!e.value)return;typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN||(a="maplibre",x=!0)}const N=Sv(o,a),P=N.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const T=()=>!e.value;if(await Kf(a),T())return;const q=Cc(a);if(!q){console.error(`[useMapInstance] ${x?"maplibregl":"mapboxgl"} is not available. Add the ${x?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(Rv(q),!x){if(!t&&typeof window<"u"&&window.__doxaMapTokenPending&&(await window.__doxaMapTokenPending,T()))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 jv(e.value,x?dr.maplibre.css:Dv),T()||(await new Promise(Z=>requestAnimationFrame(Z)),T()))return;const L=e.value,O=L.clientWidth,I=L.clientHeight;if(O===0||I===0){console.error(`[useMapInstance] Container has ZERO dimensions (${O}×${I}). Map will be invisible. Check that parent elements have CSS sizing.`);let Z=L.parentElement,le=0;for(;Z&&le<5;)Z=Z.parentElement,le++}const K=t;x||(q.accessToken=K);const z=()=>typeof window<"u"&&window.innerWidth>=1024,re=(Z,le)=>{if(u)return typeof c=="number"?c:Tc;if(!z())return Tc;const ke=Wv(Z,le,d,b);return typeof c=="number"?Math.max(c,ke):ke},ge=re(L.clientWidth,L.clientHeight),ye=N.lightPreset||(()=>{var Z;try{const le=typeof n=="function"?n():n;return(Z=le==null?void 0:le.basemap)==null?void 0:Z.lightPreset}catch{return}})();if(x){p.value=new q.Map({container:e.value,style:Bv(P,ye),locale:Wf(W(),"maplibre"),center:r,zoom:s,minZoom:ge,maxZoom:d,pitch:f,bearing:S,dragRotate:!1,renderWorldCopies:w,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...m?{maxBounds:m}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),qf(p.value);try{e.value.__doxaMap=p.value}catch{}}else{const Z=typeof n=="function"?n():n;p.value=new q.Map({accessToken:K,container:e.value,style:P,locale:Wf(W(),"mapbox"),...Z?{config:Z}:{},center:r,zoom:s,minZoom:ge,maxZoom:d,pitch:f,bearing:S,dragRotate:!1,touchPitch:!1,renderWorldCopies:w,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...m?{maxBounds:m}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),qf(p.value);try{e.value.__doxaMap=p.value}catch{}}try{let Z=!1;p.value.on("error",le=>{var B,H;const ke=((B=le==null?void 0:le.error)==null?void 0:B.status)??(le==null?void 0:le.status),R=String(((H=le==null?void 0:le.error)==null?void 0:H.url)||(le==null?void 0:le.sourceId)||"");ke!==401&&ke!==403||Z||(Z=!0,console.error(`[doxa-maps] Mapbox returned ${ke} 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.`+(R?` First failing request: ${R.slice(0,120)}`:"")))})}catch{}try{p.value.touchZoomRotate.disableRotation()}catch{}h=kv(((Q=e.value)==null?void 0:Q.parentElement)||null,{enabled:$});let Se=ge,xe=null;g=()=>{const Z=p.value;if(!Z)return;const le=re(L.clientWidth,L.clientHeight);le!==Se&&(Se=le,Z.setMinZoom(le)),Z.getZoom(){xe=null;const ke=p.value;if(!ke)return;const R=re(L.clientWidth,L.clientHeight);if(ke.getZoom(){xe&&(clearTimeout(xe),xe=null)},p.value.on("resize",g),typeof window<"u"&&(window.addEventListener("resize",g),window.addEventListener("orientationchange",g)),p.value.on("style.load",()=>{if(p.value&&Uf(p.value,W()),N.paint&&p.value){const Z=Pv(p.value,N.paint);console.info("[useMapInstance] style paint applied ("+a+"):",Z.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var Z;(Z=p.value)==null||Z.resize(),p.value&&p.value.setMinZoom(re(L.clientWidth,L.clientHeight)),_.value=!0})})}function v(){if(p.value){if(g&&(p.value.off("resize",g),typeof window<"u"&&(window.removeEventListener("resize",g),window.removeEventListener("orientationchange",g)),g=null),y){try{y()}catch{}y=null}h&&(h(),h=null);try{const P=typeof window<"u"?window:null;P&&P.__doxaLogoOwner===p.value&&(P.__doxaLogoOwner=null)}catch{}const N=p.value;p.value.remove();try{e&&e.value&&e.value.__doxaMap===N&&(e.value.__doxaMap=null)}catch{}p.value=null,_.value=!1}}if(D&&typeof D=="object"&&"value"in D)try{Ue(D,()=>{p.value&&_.value&&Uf(p.value,W())})}catch{}return{map:p,isMapReady:_,initializeMap:G,destroy:v}}const Yf="adoptionStatus",Hn={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Ec=Hn,Mc={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},Kv=Mc;function Zf(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)?Hn.hasAdoption:Hn.notAdopted}function Rc({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Hn.hasAdoption,["==",t,1],Hn.hasAdoption,Hn.notAdopted]}const Jf=Rc,Vv=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Ec,ADOPTION_LABELS:Kv,LABELS:Mc,PALETTE:Hn,PROPERTY_KEY:Yf,applyColor:Rc,buildColorExpression:Jf,default:{name:"Adoption Progress",propertyKey:Yf,palette:Hn,colors:Hn,labels:Mc,getColor:Zf,applyColor:Rc,buildColorExpression:Jf},getColor:Zf},Symbol.toStringTag,{value:"Module"})),Fc="affinityBlock",pr="#95a5a6",Un={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"},Ei={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"},da=Ei,Xf=Object.entries(Un).reduce((e,[t,o])=>(e[o]=t,e),{}),Nc=Object.entries(Un).reduce((e,[t,o])=>(e[o]=da[t],e),{}),Qf=Un;function Ic(e){return Un[e]||"Unknown"}function Dc(e){return da[e]||pr}function eh(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?da[e]||pr:Nc[e]||pr:pr}function th(){return Object.entries(Un).map(([e,t])=>({code:e,name:t,color:da[e]}))}function oh(e){return{code:e,name:Un[e]||"Unknown",color:da[e]||pr}}function nh(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Dc(t)}function ah(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Ic(t)}function Oc(){const e=["match",["get",Fc]];return Object.entries(da).forEach(([t,o])=>{e.push(t,o)}),e.push(pr),e}const rh=Oc,Yv=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:da,AFFINITY_BLOCK_COLORS_BY_NAME:Nc,AFFINITY_BLOCK_NAMES:Un,AFFINITY_BLOCK_NAME_TO_CODE:Xf,NAMES:Qf,PALETTE:Ei,PROPERTY_KEY:Fc,affinityBlockCodeLookup:Un,affinityBlockCodeToColor:da,affinityBlockCodeToName:Un,affinityBlockColors:Nc,affinityBlockNameToCode:Xf,applyColor:Oc,buildColorExpression:rh,default:{name:"Affinity Block",propertyKey:Fc,palette:Ei,colors:Ei,names:Qf,getColor:nh,applyColor:Oc,buildColorExpression:rh,getName:ah,getAffinityBlockName:Ic,getAffinityBlockColor:eh,getAffinityBlockColorByCode:Dc,getAffinityBlocksArray:th,getAffinityBlockData:oh},getAffinityBlockColor:eh,getAffinityBlockColorByCode:Dc,getAffinityBlockData:oh,getAffinityBlockName:Ic,getAffinityBlocksArray:th,getColor:nh,getName:ah},Symbol.toStringTag,{value:"Module"}));function Zv(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(jc),e}const ch=Hc,Xv=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:Jv,PALETTE:Mi,PROPERTY_KEY:zc,REGION_COLOR_ALIASES:Gc,SLUG_PALETTE:Ri,applyColor:Hc,buildColorExpression:ch,default:{name:"DOXA Region",propertyKey:zc,palette:Mi,colors:Mi,slugColors:Ri,aliases:Gc,fallback:jc,getColor:lh,applyColor:Hc,buildColorExpression:ch,getRegionColor:ih,getRegionColorBySlug:Bc},getColor:lh,getRegionColor:ih,getRegionColorBySlug:Bc},Symbol.toStringTag,{value:"Module"})),uh="engagementStatus",Wn={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Uc=Wn,Wc={notEngaged:"Unengaged",hasEngagement:"Engaged"},Qv=Wc;function dh(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)?Wn.hasEngagement:Wn.notEngaged}function qc({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Wn.hasEngagement,["==",t,1],Wn.hasEngagement,Wn.notEngaged]}const ph=qc,ew=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Uc,ENGAGEMENT_LABELS:Qv,LABELS:Wc,PALETTE:Wn,PROPERTY_KEY:uh,applyColor:qc,buildColorExpression:ph,default:{name:"Engagement Progress",propertyKey:uh,palette:Wn,colors:Wn,labels:Wc,getColor:dh,applyColor:qc,buildColorExpression:ph},getColor:dh},Symbol.toStringTag,{value:"Module"})),Kc="languageFamily",tw="#000000",pa={"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"},gh=pa;function nn(e){return pa[e]||tw}const ow=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(pa))t[e(o)]=o;return t})(),nw={"tai-kadai":"Kra-Dai",none:"Unknown"};function Fi(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return nw[o]||ow[o]||t}function fh(e){var t;return nn(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function Vc(){const e=["match",["get",Kc]];return Object.entries(pa).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const hh=Vc,aw=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:gh,PALETTE:pa,PROPERTY_KEY:Kc,applyColor:Vc,buildColorExpression:hh,canonicalFamilyName:Fi,default:{name:"Language Family",propertyKey:Kc,palette:pa,colors:pa,getColor:fh,applyColor:Vc,buildColorExpression:hh,getLanguageFamilyColor:nn,canonicalFamilyName:Fi},defaultFamilyColor:"#95a5a6",getColor:fh,getLanguageFamilyColor:nn,languageFamilyColors:pa},Symbol.toStringTag,{value:"Module"})),mh="peoplePraying",wn=144,ga={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Ia=ga,Yc={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},rw=Yc;function Ni(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>=wn?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function Zc(e){return ga[Ni(e)]}function bh(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 $h(e){return Ni(e)==="fullPrayer"}function _h(e){return Zc(e)}function Jc({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,wn],ga.fullPrayer,[">",t,0],ga.hasPrayer,ga.noPrayer]}const yh=Jc,sw=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:wn,LABELS:Yc,PALETTE:ga,PRAYER_COLORS:Ia,PRAYER_LABELS:rw,PROPERTY_KEY:mh,applyColor:Jc,buildColorExpression:yh,checkHasFullPrayer:$h,checkHasPrayer:bh,default:{name:"Prayer Progress",propertyKey:mh,palette:ga,colors:ga,labels:Yc,threshold:wn,getColor:_h,applyColor:Jc,buildColorExpression:yh,getPrayerLevel:Ni,getPrayerColor:Zc,checkHasPrayer:bh,checkHasFullPrayer:$h},getColor:_h,getPrayerColor:Zc,getPrayerLevel:Ni},Symbol.toStringTag,{value:"Module"})),vh="religion",Xc="#94a3b8",an={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Uo={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function ds(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return an[t]?t:"U"}function wh(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 Uo[ds(t)]||Xc}function Qc(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Uo.C,"M",Uo.M,"H",Uo.H,"B",Uo.B,"E",Uo.E,"J",Uo.J,"S",Uo.S,"N",Uo.N,"O",Uo.O,Xc]}const kh=Qc,iw={name:"Religion",propertyKey:vh,palette:Uo,families:an,getColor:wh,applyColor:Qc,buildColorExpression:kh,fallback:Xc};function eu(e){const t=String(e||""),o=an[t]||t;return o?yo("religion.family."+o)||o:""}const lw=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Uo,PROPERTY_KEY:vh,RELIGION_FAMILIES:an,applyColor:Qc,buildColorExpression:kh,default:iw,getColor:wh,getReligionFamily:ds,religionFamilyLabel:eu},Symbol.toStringTag,{value:"Module"})),xh="resourceType",fa={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},cw=fa,ps=["bible","jesusFilm","radio","gospel","audio","stories"],tu={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},uw=tu;function gs(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function Sh(e){var t;for(const o of ps)if((e[o]||((t=e._raw)==null?void 0:t[gs(o)]))==="Available")return fa.hasResources;return fa.noResources}function Ph(e){var t;for(const o of ps)if((e[o]||((t=e._raw)==null?void 0:t[gs(o)]))==="Available")return!0;return!1}function Ah(e){var t;for(const o of ps)if((e[o]||((t=e._raw)==null?void 0:t[gs(o)]))==="Available")return o;return"noResources"}function ou(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],fa.hasResources,fa.noResources]}const Lh=ou,dw=Object.freeze(Object.defineProperty({__proto__:null,NAMES:tu,PALETTE:fa,PROPERTY_KEY:xh,RESOURCE_COLORS:cw,RESOURCE_NAMES:uw,RESOURCE_PRIORITY:ps,applyColor:ou,buildColorExpression:Lh,default:{name:"Gospel Resources",propertyKey:xh,palette:fa,colors:fa,names:tu,priority:ps,getColor:Sh,applyColor:ou,buildColorExpression:Lh,hasAnyResource:Ph,getResourceType:Ah,getCSVColumn:gs},getCSVColumn:gs,getColor:Sh,getResourceType:Ah,hasAnyResource:Ph},Symbol.toStringTag,{value:"Module"})),Ch="region",nu="#6d766e",Th={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"},fs={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},au=Object.keys(fs);function Eh(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 fs[t]||nu}function ru(){const e=["match",["coalesce",["get","region"],""]];for(const t of au)e.push(t,fs[t]);return e.push(nu),e}const Mh=ru,pw=Object.assign({"./adoption.js":Vv,"./affinity-block.js":Yv,"./doxa-region.js":Xv,"./engagement.js":ew,"./language-family.js":aw,"./prayer-progress.js":sw,"./religion.js":lw,"./resource.js":dw,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:fs,PROPERTY_KEY:Ch,REGION_ORDER:au,WAGF_REGIONS:Th,applyColor:ru,buildColorExpression:Mh,default:{name:"WAGF Region",propertyKey:Ch,palette:fs,regions:Th,order:au,getColor:Eh,applyColor:ru,buildColorExpression:Mh,fallback:nu},getColor:Eh},Symbol.toStringTag,{value:"Module"}))}),gw=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),fw=e=>e.replace(/-/g,"_").toUpperCase(),gr={...{STATUS:"status",CUSTOM:"custom"}},su={};function hw(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=gw(o);gr[fw(o)]=a,su[a]=n}}hw(pw);function kn(e){return su[e]||su[gr.LANGUAGE_FAMILY]}function mw(e,t={}){return kn(e).applyColor(t)}const bw={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]}},Rh={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 $w(e){return bw[e]||null}function iu(e="standard"){return Rh.circleRadius[e]||Rh.circleRadius.standard}const _w={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};function Ut(e){return e==null?"":String(e).replace(/[&<>"'`]/g,t=>_w[t])}function yw(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 Ut(o.href)}catch{}return Ut(t)}function Fh(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,r=He("uiStore"),{t:s,locale:i}=Kt(),l=we([]);function c(_){const g=n(_.languageFamily),y="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let h=_.imageUrl;(!h||h.includes("NoImageAvailable"))&&(h=y);const k=(_.name||"U")[0].toUpperCase(),A=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],x=k.charCodeAt(0)%A.length,D=A[x];return`
- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + diff --git a/public/dx-maps/manifest.json b/public/dx-maps/manifest.json index 34df554cb..2077dcacc 100644 --- a/public/dx-maps/manifest.json +++ b/public/dx-maps/manifest.json @@ -12,7 +12,7 @@ "bundle": "all-people-groups", "scriptUrl": "./all-people-groups/all-people-groups.js", "output": "dx-maps/all-people-groups/all-people-groups.js", - "integrity": "sha384-3XFCHAvOOnT8Gyw8bo2DQoS7zwXtpWy+S5Ysvq98GJn9Se4o/Cu3Nx8UN2RbeILX", + "integrity": "sha384-yeZUyM3DRQj1C04HCo6evNMJ2KYoOgYCByR2lrxyL/9E/0G+VFU61PO+BCztEi13", "elements": [ "all-people-groups" ], @@ -30,8 +30,8 @@ "scriptUrl": "./all-people-groups/all-people-groups.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": "all-people-groups" } @@ -41,7 +41,7 @@ "bundle": "bible-posters", "scriptUrl": "./bible-posters/bible-posters.js", "output": "dx-maps/bible-posters/bible-posters.js", - "integrity": "sha384-x0qrqnzFOHxhCWZN4YYpnME08TLUQdfMI8oR5cAnQDtOVKu133/27BXcHCr0Ev7Q", + "integrity": "sha384-I/S/z45Ji0oxZOAEcwy2Mr2nRgjpJwz1fJ/sATdHF9Y996uroRh2kOruP+mYysMz", "elements": [ "bible-posters" ], @@ -63,7 +63,7 @@ "scriptUrl": "./bible-posters/bible-posters.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "bundle": "bible-posters" } @@ -142,7 +142,7 @@ "bundle": "cities-internet", "scriptUrl": "./cities-internet/cities-internet.js", "output": "dx-maps/cities-internet/cities-internet.js", - "integrity": "sha384-Rgm0VsAm4XUdQurgXOIUyjTAufHU7a+prSGrtNmyDM7FuAHz7emR4L6qnTm4fiRB", + "integrity": "sha384-VpsN/mgFBWE6q7OMlM4tDobY/WNA/v664BfDv4iBlsVSGpmqJZuZ9JChkSBLyfoU", "elements": [ "cities-internet-map" ], @@ -161,7 +161,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -177,8 +177,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" } }, { @@ -194,7 +194,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } } ] @@ -203,7 +203,7 @@ "bundle": "country-map", "scriptUrl": "./country-map/country-map.js", "output": "dx-maps/country-map/country-map.js", - "integrity": "sha384-+VPG59xWldacfLW+gdIC5/lcEC7xsd8lZDtq4vaCT1F+DBiSRu8RvKCJieTu8k4k", + "integrity": "sha384-xpSmmJ/snEmTkmHq+FaXhWhA5YrJZkaxKBg815110kS9Az54wYE+e6Vv9rvZNta5", "elements": [ "doxa-country-map" ], @@ -222,8 +222,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" } } ] @@ -232,7 +232,7 @@ "bundle": "country-posters", "scriptUrl": "./country-posters/country-posters.js", "output": "dx-maps/country-posters/country-posters.js", - "integrity": "sha384-RNQpjV6ZOCjBC3B3PZiNnZr4o5rrw03gBxlFZK2KZGhN7ACcYcC5Z4xBp9nL00nX", + "integrity": "sha384-K0g28FNerJ/g+vI/8aBz7417C8qieGdssQr1NzGNuxpUqp0yKtERXkxp8G+oDi4p", "elements": [ "country-posters-map" ], @@ -255,8 +255,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" } }, { @@ -272,7 +272,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -288,8 +288,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" } } ] @@ -347,7 +347,7 @@ "bundle": "demo-map", "scriptUrl": "./demo-map/demo-map.js", "output": "dx-maps/demo-map/demo-map.js", - "integrity": "sha384-X+VUfPlcC9H0lAKY1C5O7KHjlPNJk9AQbRap0Yf+omymz42VOFbLiZZJ1e+J2wTb", + "integrity": "sha384-4HmW8Ec4meYFCs50+yk5aOpYfNUF13K7MuGgREoeuASNmfB754bb+v/tsOyPrKrT", "elements": [ "demo-map" ], @@ -365,8 +365,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": [ { @@ -393,7 +393,7 @@ "bundle": "doxa-maps-spa", "scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js", "output": "dx-maps/doxa-maps-spa/doxa-maps-spa.js", - "integrity": "sha384-O6ncS56zUa2/9qib46/2MV5z2GRI12GqyDGIiJOGX4Zl1cGqUiNIvLLl15juiTDl", + "integrity": "sha384-X9IKmCib5oY/UKanPqM5iPWqZrlafv4L2fMe/lkwx5piCkHG4UcEzwHGAD6rwvkd", "elements": [ "doxa-maps-spa" ], @@ -423,7 +423,7 @@ "scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { @@ -450,7 +450,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-22n6l3xAj9jEpCWmgmgb97PC7Qpj+VymS1t1fiCv+mXcTeTLFByZDIkxSsQ0MPsF", + "integrity": "sha384-3HMkL6ogxc5G6QRtDxpJEGLoUGLFmrgbL8+wFeOb7/mhNj6wwkmRICJ4G7IidqBX", "elements": [ "doxa-research-map" ], @@ -469,8 +469,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": [ { @@ -496,7 +496,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-Lu0Rnx8QrPQMOnJ6F3A0v7hPbeNbyDIX1gibjgqRVk5Gz9Msi9Si4FKoDPKWI0tj", + "integrity": "sha384-rinuWzPy7aijYspyRf/nM+EpRGA5cajboi2jwXN741nejnXe5qgLkJPuIgoNthH/", "elements": [ "dxm-simple-map" ], @@ -515,8 +515,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": [ { @@ -686,7 +686,7 @@ "bundle": "gospel-internet", "scriptUrl": "./gospel-internet/gospel-internet.js", "output": "dx-maps/gospel-internet/gospel-internet.js", - "integrity": "sha384-pKYPnXHz77gMnqboT9XWADb+2Ax+SYb6I8/paGHrWtJBaEQ0IiBFM+05loQLXup3", + "integrity": "sha384-EjgUkycHIfGZN44/cWfTP84yEkS5AvkwJdvEWJdVhCNJYsGDdutVlTvdONfnSd3g", "elements": [ "gospel-internet-board" ], @@ -707,8 +707,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": [ { @@ -815,7 +815,7 @@ "bundle": "gospel-resources", "scriptUrl": "./gospel-resources/gospel-resources.js", "output": "dx-maps/gospel-resources/gospel-resources.js", - "integrity": "sha384-gW9QHjiGvH/hg5UWSRg4hQN2UeBrgpezSCaDMsJEzumLVEahivM2jiRNJ7qR3BbI", + "integrity": "sha384-AD6R1Q1VqPTAE2pwB19CJhc2GmIFRVdJ6g9KYnfY+B886ruOt0kR2RNuhjqGkqB4", "elements": [ "gospel-resources-map" ], @@ -838,7 +838,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\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" } }, { @@ -887,7 +887,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -903,8 +903,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" } } ] @@ -913,7 +913,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-0CDahw5+ypaB6p2UgEw7tzNqqPNXp4T1j6oZVhIWQLINcFP+EdPpdjH/4Y4HWDUD", + "integrity": "sha384-Nk00lm8C/AcC+pH75gHIfJNy/KgnW8ATGJd5pFBST1luUfbwo00l/ElPICXtwN1W", "elements": [ "my-upg-100-list-map" ], @@ -936,7 +936,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -952,8 +952,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" } }, { @@ -969,8 +969,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" } } ] @@ -1043,7 +1043,7 @@ "bundle": "plugin-studio", "scriptUrl": "./plugin-studio/plugin-studio.js", "output": "dx-maps/plugin-studio/plugin-studio.js", - "integrity": "sha384-Ho56LhDEIeUJwhGvHC9k3g/CTVhnVfz/o4r7QiYj+lHnjwOKZVsHxhGNnqJ16KEn", + "integrity": "sha384-NQcTT1r4eUmiJiiaI4+5F36stJdlm86nTxS38YldvEDVBE9lEby/nQR/Mzn8QvhB", "elements": [ "plugin-studio" ], @@ -1074,7 +1074,7 @@ "scriptUrl": "./plugin-studio/plugin-studio.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { @@ -1101,7 +1101,7 @@ "bundle": "poster-design", "scriptUrl": "./poster-design/poster-design.js", "output": "dx-maps/poster-design/poster-design.js", - "integrity": "sha384-wlLXZtU6PdFuuWhoCEG1vCsbfQkXbqpeLwD+tKhp6F5TSKMTjTffLzVgSaMr11cN", + "integrity": "sha384-AQNdSxPnJ3XhEVOpTeRAdFtmAzdrAD9G+SSS5JWTBKTvJ+SHRf9njw7fyUxuOuPU", "elements": [ "poster-design" ], @@ -1124,7 +1124,7 @@ "scriptUrl": "./poster-design/poster-design.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -1140,7 +1140,7 @@ "scriptUrl": "./poster-design/poster-design.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -1156,7 +1156,7 @@ "scriptUrl": "./poster-design/poster-design.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } } ] @@ -1165,7 +1165,7 @@ "bundle": "posterverse", "scriptUrl": "./posterverse/posterverse.js", "output": "dx-maps/posterverse/posterverse.js", - "integrity": "sha384-g++MF1T2qsdRlRnfvvvwNmZGtZvXcQsk9OfxPUwYo8mEMkuj5FCptXSyZwrWoifo", + "integrity": "sha384-kqFU5VlfQtj6itaICRBj7bNEEYGnzLh1dvHJUjh41OOrUYQ+rbR+ZFsc7+LlLkQb", "elements": [ "posterverse-app" ], @@ -1191,7 +1191,7 @@ "scriptUrl": "./posterverse/posterverse.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { @@ -1218,7 +1218,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-kwW7keGS7MJu37PTqIm7yK9eB4y+kgaevI2JzE0NdGMZAeoSwFmbJtDquoYfJvsq", + "integrity": "sha384-P3B5D7UJDBeY9Rnh3jwmibvCCeDuV1RoK9cSZ12l71pXMlMJJU3cAjfMidOQjK+v", "elements": [ "pplr-data-maps" ], @@ -1237,8 +1237,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" } @@ -1276,7 +1276,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "dx-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-sRf1EciMTPf75qh2MCXDXP4WrDipcrjEzUrGi70iO1WxYvCXIqIxIleMFGA4YejC", + "integrity": "sha384-qNPEyWjwIqzdQYkWKk6uYbf+D6g0XBpMikDVIY+ikueUeJ0IvH+INJQolzswDG7w", "elements": [ "regions-dashboard" ], @@ -1299,8 +1299,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" } }, { @@ -1316,7 +1316,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -1332,8 +1332,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" } } ] @@ -1342,7 +1342,7 @@ "bundle": "research-dashboard", "scriptUrl": "./research-dashboard/research-dashboard.js", "output": "dx-maps/research-dashboard/research-dashboard.js", - "integrity": "sha384-M2exl0TCDqokWf7ct+k8ArBmRIg49qUxIWFaEXhxnOqRitEEu4bwHJVXODQ2bmlh", + "integrity": "sha384-PkaZ6aqgix8bs3IRZIy18QJM2CsMBZTif77FAEvCUawwxMUxM9Y719vrxW7f7Rbj", "elements": [ "research-dashboard-map" ], @@ -1361,8 +1361,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" } @@ -1467,7 +1467,7 @@ "bundle": "upg-neighbor", "scriptUrl": "./upg-neighbor/upg-neighbor.js", "output": "dx-maps/upg-neighbor/upg-neighbor.js", - "integrity": "sha384-HFwN9jNuAInFIxFkxcVeQ4OoA44EtBENMaOM9NkrJDLCpFccbRPtnNdSJ/VqC/o5", + "integrity": "sha384-WQC403eeN6uchCkh3xE3X5TKVUhJONAr5eyZyEZYO6d24CsT39xRpSxBDIxxyu59", "elements": [ "upg-neighbor" ], @@ -1486,8 +1486,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": [ { @@ -1569,7 +1569,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-gycNl/k83TQpbh/R8k/t1w1WZjLyx7S5QCPtSZMLoshAjgpkZUZd4/Al+Aqg8HI1", + "integrity": "sha384-THmQpEE61Qc3q9Pqd3z81EicUxmeTWRXUtmR5mJ+NgRpWK5gt3ZNgHl4okZ4akn6", "elements": [ "wall-of-people-groups" ], @@ -1589,7 +1589,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 9a3447fff..a4cde36fd 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 @@ -82,7 +82,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(A,z)=>c.value?Ci((q(),te("div",{key:0,ref_key:"hintEl",ref:b,class:qe(["pin-hint",{dark:s.value}]),role:"status"},[N("span",m1,[z[0]||(z[0]=N("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),N("span",b1,[(q(!0),te(Je,null,qt(l.value,(D,J)=>(q(),te("span",{key:J,class:"pin-hint-line"},ue(D),1))),128))]),N("button",{class:"pin-hint-x",type:"button","aria-label":t("aria.dismissHint","Dismiss hint"),onClick:C},"×",8,$1)])],2)),[[Sp,u.value&&p.value]]):Ae("",!0)}},y1=".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}",vn=(e,t)=>{const o=e.__vccOpts||e;for(const[a,n]of t)o[a]=n;return o},v1={key:0,class:"lsn-block",role:"status"},w1={class:"lsn-block__text"},k1={key:0},x1={key:1,class:"lsn-bar",role:"note"},S1={class:"lsn-bar__text"},P1=["aria-label","title"],gh=vn({__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)=>qa(i,t.locale||void 0)||s,a=X(()=>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=X(()=>o("messages.noticeDismiss","Dismiss")),r=X(()=>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(),te("div",v1,[N("p",w1,[Yt(ue(r.value[0]),1),r.value.length>1?(q(),te("bdi",k1,ue(e.label),1)):Ae("",!0),Yt(ue(r.value[1]||""),1)])])):(q(),te("div",x1,[N("p",S1,ue(a.value),1),N("button",{type:"button",class:"lsn-bar__x","aria-label":n.value,title:n.value,onClick:s[0]||(s[0]=l=>i.$emit("dismiss"))},"×",8,P1)]))}},[["styles",[y1]],["__scopeId","data-v-9a589f6f"]]),A1="(max-width: 639.98px)";function L1(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 C1(e){var l;const t=X(()=>{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=A$()}catch{o=null}const a=o?L1(o):!1,n=_e(!1);if(typeof window<"u"&&typeof window.matchMedia=="function"){const c=window.matchMedia(A1);n.value=c.matches;const u=d=>{n.value=d.matches};(l=c.addEventListener)==null||l.call(c,"change",u),Wt(()=>{var d;return(d=c.removeEventListener)==null?void 0:d.call(c,"change",u)})}const r=X(()=>{var c;return`dx-maps:larger-screens-dismissed:${((c=e.value)==null?void 0:c.profile)||""}`}),i=_e(!1);ht(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:X(()=>t.value==="desktop-only"&&n.value&&!a),advise:X(()=>t.value==="larger-screens"&&n.value&&!a&&!i.value),dismiss:s,label:X(()=>{var c,u;return String(((c=e.value)==null?void 0:c.mobileLabel)||((u=e.value)==null?void 0:u.profile)||"")})}}const T1=!1;let E1=0;const M1=Nl("ui",{state:()=>({_storeInstanceId:++E1,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: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)}))}}}),N1=Nl("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()}}}),R1=Nl("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]=sn({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]=sn({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}}}),Wr={_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}}},F1=".profile-loader[data-locale-pending][data-v-8e369bc8] .stl-tabs,.profile-loader[data-locale-pending][data-v-8e369bc8] .stl-title,.profile-loader[data-locale-pending][data-v-8e369bc8] .stl-rows,.profile-loader[data-locale-pending][data-v-8e369bc8] .legend-title,.profile-loader[data-locale-pending][data-v-8e369bc8] .legend-content,.profile-loader[data-locale-pending][data-v-8e369bc8] .legend-reopen-label,.profile-loader[data-locale-pending][data-v-8e369bc8] .lt-btn-text,.profile-loader[data-locale-pending][data-v-8e369bc8] .rd-topbar,.profile-loader[data-locale-pending][data-v-8e369bc8] .rd-exportbar{visibility:hidden}.profile-loader[data-v-8e369bc8]{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-8e369bc8]{display:flex;flex-direction:column}.profile-loader.has-screen-notice[data-v-8e369bc8]>:not(.lsn-bar){flex:1 1 auto;min-height:0;position:relative!important;inset:auto!important}.profile-error[data-v-8e369bc8]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",I1=["dir","data-locale-pending"],O1={key:0,class:"profile-error"},D1={key:1,class:"profile-error"},z1=vn({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var C;const o=e,a=rt("profileConfig",null),n=X(()=>{var ee;if(!o.profileConfig)return null;let T;try{T=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(T&&T.assetsBase===void 0){const Y=(ee=a==null?void 0:a.value)==null?void 0:ee.assetsBase;typeof Y=="string"&&Y&&(T.assetsBase=Y)}return T}),r=rt("profileModules",null);if(!r)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const i=(()=>{const T=Object.keys(r||{});if(T.length!==1)return null;const ee=T[0].match(/^\.\/(.+)\.vue$/);return ee?ee[1]:null})(),s=X(()=>{var T;return((T=n.value)==null?void 0:T.profile)||i||null}),l=V$(),c=X(()=>{var ee;const T=(ee=n.value)==null?void 0:ee.tk;return typeof T=="string"&&T?T:l.value||""});ht(()=>{var T;return(T=n.value)==null?void 0:T.tk},T=>{typeof T=="string"&&T&&Il(T)},{immediate:!0}),ht(()=>{var T;return(T=n.value)==null?void 0:T.tokenUrl},T=>{var ee;T&&!((ee=n.value)!=null&&ee.tk)&&!l.value&&q$(T)},{immediate:!0});const u=X(()=>{var T;return((T=n.value)==null?void 0:T.dataSource)||Wr.activeSource}),d=X(()=>{var T;return((T=n.value)==null?void 0:T.colorSet)||"default"}),p=X(()=>!1),y=X(()=>{var T;return((T=n.value)==null?void 0:T.pinHint)!==!1}),f=X(()=>{var ee,Y;const T=(((ee=n.value)==null?void 0:ee.locale)||((Y=n.value)==null?void 0:Y.lang)||ih()||"").split("-")[0].toLowerCase();return Br.includes(T)?T:""}),h=rt("appI18n",null);bd(()=>{f.value&&(h&&(h.global.locale.value=f.value),lh(f.value),ac(h,f.value).catch(()=>{}))});const m=X(()=>{var T,ee;return f.value||((ee=(T=h==null?void 0:h.global)==null?void 0:T.locale)==null?void 0:ee.value)||"en"}),$=X(()=>ls.has(m.value)?"rtl":"ltr"),{blocked:b,advise:w,dismiss:_,label:g}=C1(n),v=_e(!1);bd(T=>{const ee=m.value;if(!ls.has(ee)){v.value=!1;return}let Y=!0;T(()=>{Y=!1}),v.value=!0,n1(ee).finally(()=>{Y&&(v.value=!1)})});const P=X(()=>{var T;return((T=n.value)==null?void 0:T.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),L=X(()=>{if(!s.value)return null;const T=`./${s.value}.vue`;return r[T]?ph(r[T]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(r)),null)});$o("mapboxToken",c),$o("dataSource",u),$o("colorSet",d),$o("profileConfig",n),$o("instanceId",P),$o("lang",m);const k=M1(),H=N1(),K=R1();try{const T=typeof localStorage<"u"?localStorage.getItem("theme"):null;T&&((C=k.setTheme)==null||C.call(k,T))}catch{}return $o("uiStore",k),$o("mapStore",H),$o("dataStore",K),(T,ee)=>(q(),te("div",{class:qe(["profile-loader",{"has-screen-notice":le(w)}]),dir:$.value,"data-locale-pending":v.value?"":null},[n.value?L.value?le(b)?(q(),Ct(gh,{key:2,mode:"desktop-only",label:le(g),locale:m.value},null,8,["label","locale"])):(q(),te(Je,{key:3},[le(w)?(q(),Ct(gh,{key:0,mode:"larger-screens",locale:m.value,onDismiss:le(_)},null,8,["locale","onDismiss"])):Ae("",!0),(q(),Ct(dl(L.value)))],64)):(q(),te("div",D1,[N("p",null,[ee[1]||(ee[1]=Yt("⚠️ Profile ",-1)),N("strong",null,'"'+ue(s.value)+'"',1),ee[2]||(ee[2]=Yt(" not found.",-1))])])):(q(),te("div",O1,[...ee[0]||(ee[0]=[N("p",null,[Yt("⚠️ "),N("strong",null,"doxa-map"),Yt(": missing or invalid "),N("code",null,"profile-config"),Yt(" prop.")],-1),N("p",null,[Yt("Example: "),N("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),L.value&&p.value?(q(),Ct(dl(le(null)),{key:4})):Ae("",!0),L.value&&y.value?(q(),Ct(_1,{key:5})):Ae("",!0)],10,I1))}},[["styles",[F1]],["__scopeId","data-v-8e369bc8"]]);function hh(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 G1(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 j1({profileModules:e={},configureApp:t=null}={}){return S$(z1,{configureApp(o){const a=z$();G1(o,()=>o.use(a));const n=r1();o.use(n),hh(o,"appI18n",n),hh(o,"profileModules",e),t&&t(o,{pinia:a,i18n:n})}})}const B1=Object.assign({"./poster-wall.vue":()=>At(()=>Promise.resolve().then(()=>Cw),void 0),"./upg-100-list.vue":()=>At(()=>Promise.resolve().then(()=>t2),void 0),"./upg-100-mfe.vue":()=>At(()=>Promise.resolve().then(()=>F2),void 0)});function H1(){return j1({profileModules:B1,configureApp:(e,{pinia:t,i18n:o})=>{}})}const U1=H1();typeof customElements<"u"&&(customElements.get("my-upg-100-list-map")||customElements.define("my-upg-100-list-map",U1));const rc={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"]}}]},W1=En&&En.tagName.toUpperCase()==="SCRIPT"&&En.src||new URL("my-upg-100-list.js",document.baseURI).href,Ya=e=>String(e||"").trim().replace(/\/+$/,"");function ic(){try{const t=String(W1||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function K1(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Ya(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Ya(o)}return Ya(ic()||"")}function ca(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const a=Ya(t);if(/^https?:\/\//i.test(a)||a.startsWith("/"))return a}const o=Ya((e==null?void 0:e.treeBase)||"")||Ya(ic()||"");if(o)try{const a=typeof document<"u"?document.baseURI:void 0;return Ya(new URL(o+"/assets",a).href)}catch{return Ya(o+"/assets")}return"./assets"}function V1({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=K1(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 Kr=rc.default,sc=new Map;for(const e of rc.lists){sc.set(e.id,e);for(const t of e.aliases||[])sc.set(String(t).toLowerCase(),e)}function fh(e){return sc.get(String(e??"").toLowerCase().trim())||null}function mh(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 bh=new Set;function Yn(e){const t=mh(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||Kr,i=fh(r);return i?i.id:(bh.has(r)||(bh.add(r),console.warn(`[list] unknown people-group list "${r}", showing "${Kr}". Known: ${rc.lists.map(s=>s.id).join(", ")}`)),Kr)}const ds=new Map;function q1(e,t){const o=`${ca(mh(t))}/people-groups/lists/${e}.json`;return ds.has(o)||ds.set(o,Zi(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 ds.delete(o),new Error(`list "${e}" membership ${o}: ${a.message}`)})),ds.get(o)}async function ps(e,t,{key:o=a=>a==null?void 0:a.slug}={}){const a=Yn(t);if(a===Kr||!Array.isArray(e))return e;try{const n=await q1(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 Y1='class="stage"';async function Z1(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 $h(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 Z1(n)?n:null}async function _h(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(Y1)?{html:a,status:o.status}:{html:null,status:404}}function yh(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(' - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +