From 6ba3ad76aa45e7291348d8f5fda14fb1e4bb9a42 Mon Sep 17 00:00:00 2001 From: doxa-maps-88655c70 <88627970+doxa-maps-88655c70@users.noreply.github.com> Date: Wed, 23 Sep 2026 18:30:00 +0000 Subject: [PATCH] Legend rises into the removed search bar's space -- but only where it was removed The UPG-100 legend was pinned 58px below the map top by a profile !important rule whose job was to clear the geocoder pill. Measured with a real token in both hosts: the standalone leaf DOES mount the geocoder (top 12, h 35), so 58 is correct there; the cap-5 shell mounts NO geocoder at all, so the same rule stranded the legend below a pill that was not there -- the dead gap reported repeatedly. One host must not be fixed by breaking the other, so the offset is now conditional on the pill existing: default 8px, pushed to 58px only when :has(.mapboxgl-ctrl-geocoder) finds a rendered pill in the tree. Also parameterizes the shared SemanticTreeLegend's offset as var(--stl-top, 60px) with the max-height mirroring it, so any profile that drops its search bar can raise its legend without an !important arms race. Measured after: leaf legendOffsetInMap=58 with geocoder present; shell legendOffsetInMap=8 with no geocoder. Full authoritative rebuild included -- composite freshness PASS, SRI PASS 45/45. --- .../components/legends/SemanticTreeLegend.vue | 10 ++- .../my-upg-100-list/upg-100-list.vue | 19 +++++- .../research-dashboard/research-dashboard.vue | 33 +++++++--- public/__gallery/index.html | 2 +- .../all-people-groups/all-people-groups.js | 2 +- .../all-people-groups/index.html | 2 +- .../cities-internet/cities-internet.js | 2 +- .../connectivity-list/index.html | 2 +- .../connectivity-map/index.html | 2 +- .../cities-internet/data-tables/index.html | 2 +- .../country-posters/countries-map/index.html | 2 +- .../country-poster-wall/index.html | 2 +- .../country-posters/country-posters.js | 8 +-- public/doxa-maps/demo-map/demo-map.js | 2 +- public/doxa-maps/demo-map/demo-map/index.html | 2 +- .../demo-map/demo-map/maplibre/index.html | 2 +- .../doxa-research-map/doxa-research-map.js | 8 +-- .../doxa-research-map/research-map/index.html | 2 +- .../doxa-simple-map/doxa-simple-map.js | 8 +-- .../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-resources/charts/index.html | 2 +- .../gospel-resources/data-tables/index.html | 2 +- .../gospel-resources/gospel-resources.js | 2 +- .../resources-list/index.html | 2 +- .../gospel-resources/resources-map/index.html | 2 +- public/doxa-maps/index.html | 2 +- public/doxa-maps/key-cities/key-cities.js | 2 +- public/doxa-maps/manifest.json | 62 +++++++++---------- .../my-upg-100-list/my-upg-100-list.js | 8 +-- .../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 | 2 +- .../doxa-maps/plugin-studio/plugin-studio.js | 18 +++--- .../plugin-studio/plugin-studio/index.html | 2 +- .../plugin-studio/studio/index.html | 2 +- .../regions-dashboard/regions-dashboard.js | 2 +- .../regions-dashboard/regions-list/index.html | 2 +- .../template-bundle/template-bundle.js | 2 +- .../template-bundle/template-map-a/index.html | 2 +- .../template-bundle/template-map-b/index.html | 2 +- 43 files changed, 139 insertions(+), 103 deletions(-) diff --git a/library/components/legends/SemanticTreeLegend.vue b/library/components/legends/SemanticTreeLegend.vue index 445165304..c2a9b098e 100644 --- a/library/components/legends/SemanticTreeLegend.vue +++ b/library/components/legends/SemanticTreeLegend.vue @@ -538,9 +538,15 @@ useShadowStyles(` overflow: hidden; } .stl-panel { - position: absolute; left: 8px; top: 60px; width: var(--map-legend-width, 380px); z-index: 4; + /* --stl-top: the panel's offset from the map's top edge. The 60px default reserves room for a + search bar ABOVE the legend, which most consumers (research-map's geocoder) still have. A + profile that has REMOVED its search bar sets --stl-top on the legend's wrapper so the panel + rises into the vacated space instead of keeping a dead gap (Driver, 2026-09-23, UPG-100: + "the search bar is removed, that means the legend needs to be moved up"). The max-height + mirrors it so a raised panel gains the same room at the bottom it gained at the top. */ + position: absolute; left: 8px; top: var(--stl-top, 60px); width: var(--map-legend-width, 380px); z-index: 4; display: flex; flex-direction: column; - max-height: calc(100% - 72px); + max-height: calc(100% - var(--stl-top, 60px) - 12px); transition: transform 0.25s cubic-bezier(0.2, 0, 0, 1), opacity 0.2s; pointer-events: auto; } diff --git a/plugin-designs/my-upg-100-list/upg-100-list.vue b/plugin-designs/my-upg-100-list/upg-100-list.vue index a82c93244..d49b522d4 100644 --- a/plugin-designs/my-upg-100-list/upg-100-list.vue +++ b/plugin-designs/my-upg-100-list/upg-100-list.vue @@ -330,6 +330,12 @@ useShadowStyles( // Desktop panel vs mobile bottom-sheet — exactly one is visible. Breakpoint // matches research-map's .rm-legend-*-slot (767px) so the whole map stack // flips at the same width instead of drifting per profile. + // ★ The search bar above the legend was REMOVED from this profile, so the legend rises into the + // vacated space (Driver 2026-09-23: "the search bar is removed... the legend needs to be moved + // up so that there's not a gap where the search bar used to be"). --stl-top is the shared + // SemanticTreeLegend's offset-from-map-top; 8px matches its own left inset. Other profiles keep + // the 60px default because they still have their search bar. + '.upg-legend-desktop-slot{--stl-top:8px}' + '.upg-legend-mobile-slot{display:none}' + '@media(max-width:767px){' + '.upg-legend-mobile-slot{display:block}' + @@ -448,8 +454,17 @@ useShadowStyles( '.mapboxgl-ctrl-top-left{top:12px!important;left:8px!important;width:380px!important;' + 'max-width:380px!important;z-index:1200!important}' + '.mapboxgl-ctrl-top-left .mapboxgl-ctrl{margin:0!important;float:none!important}' + - // Push the legend panel BELOW the geocoder pill (legend is top-left here too). - '.stl-panel{top:58px!important}' + + // Push the legend panel BELOW the geocoder pill (legend is top-left here too) — + // ★ BUT ONLY IF THE PILL ACTUALLY RENDERED (Driver 2026-09-23, reported repeatedly: "the search + // bar is removed, so the legend needs to move up — there's a gap where the search bar used to + // be"). MEASURED in both hosts with a real token: the standalone leaf mounts the geocoder + // (top 12, h 35) and the legend belongs at 58; the cap-5 shell mounts NO geocoder at all, and + // an unconditional 58px stranded the legend below a pill that was not there — the dead gap the + // Driver kept reporting. One host cannot be fixed by breaking the other, so the offset is + // conditional on the pill EXISTING: default raised to 8px (matching .stl-panel's own left + // inset), pushed down only when a rendered geocoder is actually in the tree. + '.stl-panel{top:8px!important}' + + '.upg-root:has(.mapboxgl-ctrl-geocoder) .stl-panel{top:58px!important}' + // Geocoder suggestion metadata layout (clone — bold field labels for PG rows). '.dg-main{font:13px/1.3 ui-monospace,monospace}' + '.dg-meta{margin-top:2px;font-size:11px;color:#475569;display:flex;flex-wrap:wrap;gap:8px}' + diff --git a/plugin-designs/research-dashboard/research-dashboard.vue b/plugin-designs/research-dashboard/research-dashboard.vue index 3027aa9f6..06ee2ebe9 100644 --- a/plugin-designs/research-dashboard/research-dashboard.vue +++ b/plugin-designs/research-dashboard/research-dashboard.vue @@ -492,15 +492,30 @@ useShadowStyles(` only to what the TRACK resolves to, and an unbounded occupant is part of that resolution. So the cap has to live on facets/rail after all, computed as map + table (both budgets this file already owns) rather than map alone — that is what actually matches "span the map AND the - table". --rd-table-max-h already carries the table's real budget (line 399); reusing it here - keeps the two in lockstep by construction instead of a second hardcoded number that could drift. - +1px absorbs the 1px grid gap between the two rows this element spans. - ★ RE-ROOTED IN --rd-shell-h, SAME CARD AS THE TABLE RULE ABOVE. map-h + table-cell(bar + - grid-max-h) now sums to EXACTLY --rd-shell-h by construction (table-max-h is defined as - shell-h - map-h - bar-h, so bar-h + table-max-h = shell-h - map-h, and adding map-h back - cancels it) — so the two-row span the sidebars must cover is just the shell's own total, not a - re-derived sum of its two parts. This also means the sidebars automatically track the NEW - shell handle (.rd-rz-shell) the same tick it moves, with no separate wiring. */ + table". +1px absorbs the 1px grid gap between the two rows this element spans. + ★ THE ORIGINAL VERSION OF THIS COMMENT CLAIMED reusing --rd-table-max-h here "keeps the two in + lockstep by construction" — THAT WAS AN ASSERTION, NOT A MEASUREMENT, AND IT WAS FALSE. + MEASURED (BUG-SHELL-HANDLE-BOUND-TO-WRONG-DIVIDER, sampled once per second for 16s on the + built dashboard-plus-grid composite, not a single post-load snapshot — a single snapshot had + already missed this same defect twice): facets/rail sat a STABLE -62px above table.bottom on + every sample. --rd-table-max-h (line 434) caps the table's INNER scrollport only (.rd-grid); + the table's OUTER cell is that plus its header bar AND its "Σ" summary footer — two elements + this formula never accounted for — so "the two budgets already owned" were never actually the + same number. The two were never in lockstep; nothing here recomputed either at runtime, so the + old -62px was permanent on every load, not a timing artifact. + ★ THE FIX: re-root BOTH this rule and the table rule (line 434) in ONE shared variable, + --rd-shell-h, instead of deriving the sidebar span from a second, independently-drifting + estimate. map-h + table-cell(bar + grid-max-h + foot) now sums to EXACTLY --rd-shell-h BY + CONSTRUCTION (table-max-h at line 434 is defined as shell-h - map-h - bar-h - foot-h, so + bar-h + foot-h + table-max-h = shell-h - map-h, and adding map-h back cancels it algebraically + — not just on this data set, for any value of any of the four terms). This also means the + sidebars automatically track the NEW shell handle (.rd-rz-shell) the same tick it moves, with + no separate wiring. RE-VERIFIED after this fix: -2px (grid-gap/border rounding) on every one of + 17 samples across 16s, and check:fits-screen clause A (force-expand every facet section) still + shows growth=0px against its 24px tolerance — the cap still stops the flexible map/table row + TRACKS from stretching to an uncapped sidebar's content height (CSS Grid does not intrinsically + bound a spanning item to its co-occupants — see the CORRECTED AGAIN note above); only the + NUMBER the cap computes was wrong, not the need for a cap at all. */ .rd-shell.rd-page-scroll > [data-region="facets"], .rd-shell.rd-page-scroll > [data-region="rail"]{ min-height:0; overflow:hidden; max-height:calc(var(--rd-shell-h, 80svh) + 1px); } diff --git a/public/__gallery/index.html b/public/__gallery/index.html index f3e80e44f..a8534cd79 100644 --- a/public/__gallery/index.html +++ b/public/__gallery/index.html @@ -94,7 +94,7 @@ code{font-family:ui-monospace,Menlo,monospace} (function () { var TREE = "../doxa-maps", TOKEN_SRC = "window.MAP_TOKEN_URL", BAKED_TOKEN = "pk.eyJ1IjoiZ29zeXN0ZW1zIiwiYSI6ImNtZm9vM291czA3amQya3BzYW42YW9ibTcifQ.52WM0IpxY9FcB0zc9f1zbQ", API_BASE = "https://pray.doxa.life", ASSETS_BASE = "", QA = false; var DEFAULT_TOKEN_URL = '/api/maps/token'; - var BAKED = [{"b":"all-people-groups","s":"./all-people-groups/all-people-groups.js","i":"sha384-tAjAGAdk1Cl37qG8jpKtcYDzHBRMDrXKEHFrVLHxtzEkcvEuJPhGhhYBZmCe/9yZ","e":["all-people-groups"],"p":[{"p":"all-people-groups","e":"all-people-groups","u":"./all-people-groups/all-people-groups/index.html","d":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","c":1,"em":{"iframe":"\u003ciframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-tAjAGAdk1Cl37qG8jpKtcYDzHBRMDrXKEHFrVLHxtzEkcvEuJPhGhhYBZmCe/9yZ\" crossorigin=\"anonymous\">\u003c/script>\n\u003call-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/all-people-groups>"}}]},{"b":"big-picture","s":"./big-picture/big-picture.js","i":"sha384-a9W2VPCO3zJ+1pqWQadGso72rNPTfmZgO4aoGtZN7RDFQpVQbeTvy8JBsGi9VH43","e":["bp-big-picture","bp-research-header","people-groups-grid"],"p":[{"p":"big-picture","e":"bp-big-picture","u":"./big-picture/big-picture/index.html","d":"The Cat-4 composite that PAIRS the two real capability elements of the","c":4,"em":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./big-picture/big-picture.js\" integrity=\"sha384-a9W2VPCO3zJ+1pqWQadGso72rNPTfmZgO4aoGtZN7RDFQpVQbeTvy8JBsGi9VH43\" crossorigin=\"anonymous\">\u003c/script>\n\u003cbp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/bp-big-picture>"},"in":[{"id":"big-picture","t":"Big Picture — research header ↔ people-groups grid (composite)","a":"","pr":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"e":"bp-big-picture","u":"./big-picture/big-picture/big-picture/index.html"},{"id":"frontier","t":"Big Picture — frontier accent","a":"","pr":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"e":"bp-big-picture","u":"./big-picture/big-picture/frontier/index.html"}]}]},{"b":"cities-internet","s":"./cities-internet/cities-internet.js","i":"sha384-RqaP7LZai35CX83Joy3kLGhlnHOW9OwExd7LyXS+pxvxawS0VIhlW1zpG9hYweWo","e":["cities-internet-map"],"p":[{"p":"connectivity-list","e":"cities-internet-map","u":"./cities-internet/connectivity-list/index.html","d":"Countries where DX people groups live, grouped by region, showing measured internet penetration","c":1,"em":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-RqaP7LZai35CX83Joy3kLGhlnHOW9OwExd7LyXS+pxvxawS0VIhlW1zpG9hYweWo\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"p":"connectivity-map","e":"cities-internet-map","u":"./cities-internet/connectivity-map/index.html","d":"Every country shaded by measured internet penetration, with its named carriers and dominant","c":1,"em":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-RqaP7LZai35CX83Joy3kLGhlnHOW9OwExd7LyXS+pxvxawS0VIhlW1zpG9hYweWo\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"p":"data-tables","e":"cities-internet-map","u":"./cities-internet/data-tables/index.html","d":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","c":1,"em":{"iframe":"\u003ciframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-RqaP7LZai35CX83Joy3kLGhlnHOW9OwExd7LyXS+pxvxawS0VIhlW1zpG9hYweWo\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}}]},{"b":"country-posters","s":"./country-posters/country-posters.js","i":"sha384-BekKJLrplB/C2yM5LktAqgQVgu6c2bMXXj8q8YcXCc5k0MSaA5j3eSB4pBfnuqpX","e":["country-posters-map"],"p":[{"p":"countries-map","e":"country-posters-map","u":"./country-posters/countries-map/index.html","d":"The researcher's workbench retargeted from people groups to COUNTRIES — region","c":1,"em":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-BekKJLrplB/C2yM5LktAqgQVgu6c2bMXXj8q8YcXCc5k0MSaA5j3eSB4pBfnuqpX\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"p":"country-poster-wall","e":"country-posters-map","u":"./country-posters/country-poster-wall/index.html","d":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","c":1,"em":{"iframe":"\u003ciframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-BekKJLrplB/C2yM5LktAqgQVgu6c2bMXXj8q8YcXCc5k0MSaA5j3eSB4pBfnuqpX\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"b":"dashboard-plus-grid","s":"./dashboard-plus-grid/dashboard-plus-grid.js","i":"sha384-yFl0NfQts+GAff7HVWmG1l2tBNvPhoDAj4peCyO7uuavUVCpW1Dd9s1bro6uh7S3","e":["dashboard-plus-grid"],"p":[{"p":"dashboard-plus-grid","e":"dashboard-plus-grid","u":"./dashboard-plus-grid/dashboard-plus-grid/index.html","d":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","c":4,"em":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-yFl0NfQts+GAff7HVWmG1l2tBNvPhoDAj4peCyO7uuavUVCpW1Dd9s1bro6uh7S3\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/dashboard-plus-grid>"},"in":[{"id":"default","t":"default","a":"","pr":{"profile":"dashboard-plus-grid"},"e":"dashboard-plus-grid","u":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html"}]}]},{"b":"demo-map","s":"./demo-map/demo-map.js","i":"sha384-K2NX+xsAChEWESHmT4mbibzCKJAe7dG8YlBlNBeAIFESgEEa0rfqhtO0xMzGoEDr","e":["demo-map"],"p":[{"p":"demo-map","e":"demo-map","u":"./demo-map/demo-map/index.html","d":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","c":2,"em":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-K2NX+xsAChEWESHmT4mbibzCKJAe7dG8YlBlNBeAIFESgEEa0rfqhtO0xMzGoEDr\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/demo-map>"},"in":[{"id":"maplibre","t":"Demo map — MapLibre (token-free)","a":"","pr":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"e":"demo-map","u":"./demo-map/demo-map/maplibre/index.html"}]}]},{"b":"doxa-maps-spa","s":"./doxa-maps-spa/doxa-maps-spa.js","i":"sha384-cw2n+25OyL+mq+8x1KXLcYZbPs+7dMkWfU7ocUq3vESVlHHc5HNvpckLSbvFAhJm","e":["doxa-maps-spa"],"p":[{"p":"doxa-maps-spa","e":"doxa-maps-spa","u":"./doxa-maps-spa/doxa-maps-spa/index.html","d":"The DX-maps app itself: one element whose vertical-tab rail nests every other","c":5,"em":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-cw2n+25OyL+mq+8x1KXLcYZbPs+7dMkWfU7ocUq3vESVlHHc5HNvpckLSbvFAhJm\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-maps-spa>"},"in":[{"id":"app","t":"DX-Maps SPA — Big Picture + every research map (app-shell)","a":"","pr":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"DX-Maps"},"e":"doxa-maps-spa","u":"./doxa-maps-spa/doxa-maps-spa/app/index.html"}]}]},{"b":"doxa-research-map","s":"./doxa-research-map/doxa-research-map.js","i":"sha384-7S1T7VPYgSO4kuv8c9z986t07Px9CCSldEencPmTmSOKw3O7EyHreSIR2oTjltXW","e":["doxa-research-map"],"p":[{"p":"research-map","e":"doxa-research-map","u":"./doxa-research-map/research-map/index.html","d":"The researcher's workbench: every piece a missiologist, demographer or","c":3,"em":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-7S1T7VPYgSO4kuv8c9z986t07Px9CCSldEencPmTmSOKw3O7EyHreSIR2oTjltXW\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-research-map>"}}]},{"b":"doxa-simple-map","s":"./doxa-simple-map/doxa-simple-map.js","i":"sha384-5h+E+VvqqnWYLB6JJlilhVDhIcReDkjMbXMj/tcxZ30PFWB2KzYIf7EA3CDo6sM7","e":["doxa-map","doxa-simple-map"],"p":[{"p":"doxa-simple-map","e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/index.html","d":"The simple world map, shipped as three presets off ONE prop table —","c":2,"em":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-5h+E+VvqqnWYLB6JJlilhVDhIcReDkjMbXMj/tcxZ30PFWB2KzYIf7EA3CDo6sM7\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-map>"},"in":[{"id":"prayer","t":"Prayer Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/prayer/index.html"},{"id":"engagement","t":"Engagement Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/engagement/index.html"},{"id":"adoption","t":"Adoption Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/adoption/index.html"}]}]},{"b":"doxa-vision-card","s":"./doxa-vision-card/doxa-vision-card.js","i":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","e":["doxa-vision-card"],"p":[{"p":"doxa-vision-card","e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/index.html","d":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","c":2,"em":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-vision-card/doxa-vision-card.js\" integrity=\"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-vision-card profile-config='{\"profile\":\"doxa-vision-card\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-vision-card>"},"in":[{"id":"default","t":"Vision card — reach at a glance","a":"","pr":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/default/index.html"},{"id":"frontier","t":"Vision card — frontier accent","a":"","pr":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-frontier","accent":"#22d3ee","title":"The last frontier of the gospel.","tagline":"Frontier people groups — where fewer than one in a thousand follow Jesus.","stats":[{"value":"1,910","label":"Frontier groups","note":"under 0.1% believers"},{"value":"2.1B","label":"People","note":"living in frontier settings"},{"value":"0.1%","label":"Christian","note":"or fewer, in each group"}]},"e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/frontier/index.html"}]}]},{"b":"golden-path-check","s":"./golden-path-check/golden-path-check.js","i":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","e":["golden-path-check"],"p":[{"p":"golden-path-check","e":"golden-path-check","u":"./golden-path-check/golden-path-check/index.html","d":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","c":1,"em":{"iframe":"\u003ciframe src=\"./golden-path-check/golden-path-check/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./golden-path-check/golden-path-check.js\" integrity=\"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgolden-path-check profile-config='{\"profile\":\"golden-path-check\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/golden-path-check>"}}]},{"b":"gospel-resources","s":"./gospel-resources/gospel-resources.js","i":"sha384-nFY1cewUGJeRgiA3CHjnnYCKMesb1Vh9dfexz7CbAljdHezciVIaND11t66EN5Se","e":["gospel-resources-map"],"p":[{"p":"charts","e":"gospel-resources-map","u":"./gospel-resources/charts/index.html","d":"The gap by LANGUAGE (ISO 639-3) rather than by people group — because one translation serves every","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-nFY1cewUGJeRgiA3CHjnnYCKMesb1Vh9dfexz7CbAljdHezciVIaND11t66EN5Se\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"p":"data-tables","e":"gospel-resources-map","u":"./gospel-resources/data-tables/index.html","d":"Two validated tables: what resources exist per people group, and whether that access is keeping","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-nFY1cewUGJeRgiA3CHjnnYCKMesb1Vh9dfexz7CbAljdHezciVIaND11t66EN5Se\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"p":"resources-list","e":"gospel-resources-map","u":"./gospel-resources/resources-list/index.html","d":"Which DX people groups have scripture in their own language, and which have none. The zero-resource","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-nFY1cewUGJeRgiA3CHjnnYCKMesb1Vh9dfexz7CbAljdHezciVIaND11t66EN5Se\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"p":"resources-map","e":"gospel-resources-map","u":"./gospel-resources/resources-map/index.html","d":"Every country shaded by how much of its unengaged population has NO gospel resource in their own","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-nFY1cewUGJeRgiA3CHjnnYCKMesb1Vh9dfexz7CbAljdHezciVIaND11t66EN5Se\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}}]},{"b":"my-upg-100-list","s":"./my-upg-100-list/my-upg-100-list.js","i":"sha384-+5WuoIUhRu6FKqEalxJkTqfKvzzA5UvID0woty5FlSSGXth9IKlfWUd8T7341Kw6","e":["my-upg-100-list-map"],"p":[{"p":"poster-wall","e":"my-upg-100-list-map","u":"./my-upg-100-list/poster-wall/index.html","d":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\" action that","c":1,"em":{"iframe":"\u003ciframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-+5WuoIUhRu6FKqEalxJkTqfKvzzA5UvID0woty5FlSSGXth9IKlfWUd8T7341Kw6\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"p":"upg-100-list","e":"my-upg-100-list-map","u":"./my-upg-100-list/upg-100-list/index.html","d":"A personal unreached-people-groups list painted as true boundary polygons —","c":1,"em":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-+5WuoIUhRu6FKqEalxJkTqfKvzzA5UvID0woty5FlSSGXth9IKlfWUd8T7341Kw6\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"p":"upg-100-mfe","e":"my-upg-100-list-map","u":"./my-upg-100-list/upg-100-mfe/index.html","d":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","c":4,"em":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-+5WuoIUhRu6FKqEalxJkTqfKvzzA5UvID0woty5FlSSGXth9IKlfWUd8T7341Kw6\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}}]},{"b":"people-groups-grid","s":"./people-groups-grid/people-groups-grid.js","i":"sha384-M3RVF4r+s9KJ2YznjQ+g3BR4XjsA4n8uhfCk97dwyiuN1BxRdeQmmMnQILV0CwJg","e":["people-groups-grid"],"p":[{"p":"people-groups-grid","e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/index.html","d":"The people-groups grid as an owned custom element: card list, search and four","c":2,"em":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-M3RVF4r+s9KJ2YznjQ+g3BR4XjsA4n8uhfCk97dwyiuN1BxRdeQmmMnQILV0CwJg\" crossorigin=\"anonymous\">\u003c/script>\n\u003cpeople-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/people-groups-grid>"},"in":[{"id":"people-groups-grid","t":"People Groups Grid — standalone (own search + 4 dropdowns)","a":"","pr":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html"},{"id":"driven","t":"People Groups Grid — externally driven (controls off, props/events)","a":"","pr":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/driven/index.html"}]}]},{"b":"plugin-studio","s":"./plugin-studio/plugin-studio.js","i":"sha384-UGZ2jNTQ+LJhDH8mbUOBsPxIsCys7Dt0n6u6MA2rSm+vJxLGnR018XfygKq7dDdh","e":["plugin-studio"],"p":[{"p":"plugin-studio","e":"plugin-studio","u":"./plugin-studio/plugin-studio/index.html","d":"The developer's viewing surface: a sidebar that is the composability ladder","c":5,"em":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-UGZ2jNTQ+LJhDH8mbUOBsPxIsCys7Dt0n6u6MA2rSm+vJxLGnR018XfygKq7dDdh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cplugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/plugin-studio>"},"in":[{"id":"studio","t":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","a":"","pr":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"e":"plugin-studio","u":"./plugin-studio/plugin-studio/studio/index.html"}]}]},{"b":"prayer-walk-planner","s":"./prayer-walk-planner/prayer-walk-planner.js","i":"sha384-+XBRYgeeX8JLpdYcc+oGtkQf+Zgc2JkFK6/tlMBh5qghF9rNAJLk1lwVxWkU0cKx","e":["prayer-walk-planner"],"p":[{"p":"prayer-walk-planner","e":"prayer-walk-planner","u":"./prayer-walk-planner/prayer-walk-planner/index.html","d":"A simple polygon-drawing tool for planning prayer-walking routes.","c":1,"em":{"iframe":"\u003ciframe src=\"./prayer-walk-planner/prayer-walk-planner/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-+XBRYgeeX8JLpdYcc+oGtkQf+Zgc2JkFK6/tlMBh5qghF9rNAJLk1lwVxWkU0cKx\" crossorigin=\"anonymous\">\u003c/script>\n\u003cprayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/prayer-walk-planner>"}}]},{"b":"regions-dashboard","s":"./regions-dashboard/regions-dashboard.js","i":"sha384-Y25Bah62zTBVYbECkjizvyHgz0uexTpUG2Td22NlCrIwhrEIe2HuM87/2DD958lM","e":["regions-dashboard"],"p":[{"p":"regions-list","e":"regions-dashboard","u":"./regions-dashboard/regions-list/index.html","d":"A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into","c":1,"em":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-Y25Bah62zTBVYbECkjizvyHgz0uexTpUG2Td22NlCrIwhrEIe2HuM87/2DD958lM\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}}]},{"b":"research-dashboard","s":"./research-dashboard/research-dashboard.js","i":"sha384-bMlXnX3T3wamNv7zckjPeNmL15R5hH4QrpdehOaQ4y8Qme36PGftft1tzh2sUf6P","e":["research-dashboard-map"],"p":[{"p":"research-dashboard","e":"research-dashboard-map","u":"./research-dashboard/research-dashboard/index.html","d":"Coordinated-Multiple-Views research dashboard for 10/40-window UPGs (live pray.doxa.life): docked facet rail + map-as-hero + linked table/charts, brushing-and-linking over one in-memory store.","c":3,"em":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-bMlXnX3T3wamNv7zckjPeNmL15R5hH4QrpdehOaQ4y8Qme36PGftft1tzh2sUf6P\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-dashboard-map>"}}]},{"b":"research-map-plus-grid","s":"./research-map-plus-grid/research-map-plus-grid.js","i":"sha384-Dyh9E7k/YtwVCKP4lulQpWs9+oqKV5LJjxEnJMufru4zAzyZpbHyz0pja7hPwIwS","e":["research-map-plus-grid"],"p":[{"p":"research-map-plus-grid","e":"research-map-plus-grid","u":"./research-map-plus-grid/research-map-plus-grid/index.html","d":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","c":4,"em":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-Dyh9E7k/YtwVCKP4lulQpWs9+oqKV5LJjxEnJMufru4zAzyZpbHyz0pja7hPwIwS\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-map-plus-grid>"},"in":[{"id":"default","t":"default","a":"","pr":{"profile":"research-map-plus-grid"},"e":"research-map-plus-grid","u":"./research-map-plus-grid/research-map-plus-grid/default/index.html"}]}]},{"b":"stack-demo","s":"./stack-demo/stack-demo.js","i":"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy","e":["stack-demo"],"p":[{"p":"stack-demo","e":"stack-demo","u":"./stack-demo/stack-demo/index.html","d":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","c":4,"em":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./stack-demo/stack-demo.js\" integrity=\"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cstack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/stack-demo>"},"in":[{"id":"pair","t":"pair","a":"","pr":{"profile":"stack-demo"},"e":"stack-demo","u":"./stack-demo/stack-demo/pair/index.html"}]}]},{"b":"template-bundle","s":"./template-bundle/template-bundle.js","i":"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW","e":["template-bundle"],"p":[{"p":"template-map-a","e":"template-bundle","u":"./template-bundle/template-map-a/index.html","d":"Minimal example profile A — a colored placeholder, no Mapbox or data.","c":1,"em":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-a/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-a\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"}},{"p":"template-map-b","e":"template-bundle","u":"./template-bundle/template-map-b/index.html","d":"Minimal example profile B — a second profile in the same bundle.","c":1,"em":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-b/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-b\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"}}]}]; + var BAKED = [{"b":"all-people-groups","s":"./all-people-groups/all-people-groups.js","i":"sha384-ajyiOLGnsr8AOhrZpwopjFXwKGNk56IbWkBMD+2oYA+DSDjdtATeoF5muZoXhcEF","e":["all-people-groups"],"p":[{"p":"all-people-groups","e":"all-people-groups","u":"./all-people-groups/all-people-groups/index.html","d":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","c":1,"em":{"iframe":"\u003ciframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-ajyiOLGnsr8AOhrZpwopjFXwKGNk56IbWkBMD+2oYA+DSDjdtATeoF5muZoXhcEF\" crossorigin=\"anonymous\">\u003c/script>\n\u003call-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/all-people-groups>"}}]},{"b":"big-picture","s":"./big-picture/big-picture.js","i":"sha384-a9W2VPCO3zJ+1pqWQadGso72rNPTfmZgO4aoGtZN7RDFQpVQbeTvy8JBsGi9VH43","e":["bp-big-picture","bp-research-header","people-groups-grid"],"p":[{"p":"big-picture","e":"bp-big-picture","u":"./big-picture/big-picture/index.html","d":"The Cat-4 composite that PAIRS the two real capability elements of the","c":4,"em":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./big-picture/big-picture.js\" integrity=\"sha384-a9W2VPCO3zJ+1pqWQadGso72rNPTfmZgO4aoGtZN7RDFQpVQbeTvy8JBsGi9VH43\" crossorigin=\"anonymous\">\u003c/script>\n\u003cbp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/bp-big-picture>"},"in":[{"id":"big-picture","t":"Big Picture — research header ↔ people-groups grid (composite)","a":"","pr":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"e":"bp-big-picture","u":"./big-picture/big-picture/big-picture/index.html"},{"id":"frontier","t":"Big Picture — frontier accent","a":"","pr":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"e":"bp-big-picture","u":"./big-picture/big-picture/frontier/index.html"}]}]},{"b":"cities-internet","s":"./cities-internet/cities-internet.js","i":"sha384-hPi6IsGUAPVV3elxm033L7vP7obKmmoWOMv7F2iDrufqGMi6/A7Lswpb4wbOhUb+","e":["cities-internet-map"],"p":[{"p":"connectivity-list","e":"cities-internet-map","u":"./cities-internet/connectivity-list/index.html","d":"Countries where DX people groups live, grouped by region, showing measured internet penetration","c":1,"em":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-hPi6IsGUAPVV3elxm033L7vP7obKmmoWOMv7F2iDrufqGMi6/A7Lswpb4wbOhUb+\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"p":"connectivity-map","e":"cities-internet-map","u":"./cities-internet/connectivity-map/index.html","d":"Every country shaded by measured internet penetration, with its named carriers and dominant","c":1,"em":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-hPi6IsGUAPVV3elxm033L7vP7obKmmoWOMv7F2iDrufqGMi6/A7Lswpb4wbOhUb+\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"p":"data-tables","e":"cities-internet-map","u":"./cities-internet/data-tables/index.html","d":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","c":1,"em":{"iframe":"\u003ciframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-hPi6IsGUAPVV3elxm033L7vP7obKmmoWOMv7F2iDrufqGMi6/A7Lswpb4wbOhUb+\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}}]},{"b":"country-posters","s":"./country-posters/country-posters.js","i":"sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO","e":["country-posters-map"],"p":[{"p":"countries-map","e":"country-posters-map","u":"./country-posters/countries-map/index.html","d":"The researcher's workbench retargeted from people groups to COUNTRIES — region","c":1,"em":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"p":"country-poster-wall","e":"country-posters-map","u":"./country-posters/country-poster-wall/index.html","d":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","c":1,"em":{"iframe":"\u003ciframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"b":"dashboard-plus-grid","s":"./dashboard-plus-grid/dashboard-plus-grid.js","i":"sha384-3+3nuh+mvj6t92UISFMgEmcWfH/aLnfaSnDVHi5f+ZMwrk04FTbkKCTXnII1/YPw","e":["dashboard-plus-grid"],"p":[{"p":"dashboard-plus-grid","e":"dashboard-plus-grid","u":"./dashboard-plus-grid/dashboard-plus-grid/index.html","d":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","c":4,"em":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-3+3nuh+mvj6t92UISFMgEmcWfH/aLnfaSnDVHi5f+ZMwrk04FTbkKCTXnII1/YPw\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/dashboard-plus-grid>"},"in":[{"id":"default","t":"default","a":"","pr":{"profile":"dashboard-plus-grid"},"e":"dashboard-plus-grid","u":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html"}]}]},{"b":"demo-map","s":"./demo-map/demo-map.js","i":"sha384-7MInyIySoNGrpOdg+gHikv/MsKVDUkWLMokK8QGtvu/MelcWExRT3z+Bjye/EnHL","e":["demo-map"],"p":[{"p":"demo-map","e":"demo-map","u":"./demo-map/demo-map/index.html","d":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","c":2,"em":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-7MInyIySoNGrpOdg+gHikv/MsKVDUkWLMokK8QGtvu/MelcWExRT3z+Bjye/EnHL\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/demo-map>"},"in":[{"id":"maplibre","t":"Demo map — MapLibre (token-free)","a":"","pr":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"e":"demo-map","u":"./demo-map/demo-map/maplibre/index.html"}]}]},{"b":"doxa-maps-spa","s":"./doxa-maps-spa/doxa-maps-spa.js","i":"sha384-cw2n+25OyL+mq+8x1KXLcYZbPs+7dMkWfU7ocUq3vESVlHHc5HNvpckLSbvFAhJm","e":["doxa-maps-spa"],"p":[{"p":"doxa-maps-spa","e":"doxa-maps-spa","u":"./doxa-maps-spa/doxa-maps-spa/index.html","d":"The DX-maps app itself: one element whose vertical-tab rail nests every other","c":5,"em":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-cw2n+25OyL+mq+8x1KXLcYZbPs+7dMkWfU7ocUq3vESVlHHc5HNvpckLSbvFAhJm\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-maps-spa>"},"in":[{"id":"app","t":"DX-Maps SPA — Big Picture + every research map (app-shell)","a":"","pr":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"DX-Maps"},"e":"doxa-maps-spa","u":"./doxa-maps-spa/doxa-maps-spa/app/index.html"}]}]},{"b":"doxa-research-map","s":"./doxa-research-map/doxa-research-map.js","i":"sha384-ugm8PXu3KYQmGJoQnOUaICqt07r17kQa1bINkKsrUgt89uENqvd87rxT2NBeyC9/","e":["doxa-research-map"],"p":[{"p":"research-map","e":"doxa-research-map","u":"./doxa-research-map/research-map/index.html","d":"The researcher's workbench: every piece a missiologist, demographer or","c":3,"em":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-ugm8PXu3KYQmGJoQnOUaICqt07r17kQa1bINkKsrUgt89uENqvd87rxT2NBeyC9/\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-research-map>"}}]},{"b":"doxa-simple-map","s":"./doxa-simple-map/doxa-simple-map.js","i":"sha384-fl3Eh//QzBhOEpF3OJcfZDXOdpyb/yxiQ5aEroT23Onjya6wvBlx+F2dUB6FiBZu","e":["doxa-map","doxa-simple-map"],"p":[{"p":"doxa-simple-map","e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/index.html","d":"The simple world map, shipped as three presets off ONE prop table —","c":2,"em":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-fl3Eh//QzBhOEpF3OJcfZDXOdpyb/yxiQ5aEroT23Onjya6wvBlx+F2dUB6FiBZu\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-map>"},"in":[{"id":"prayer","t":"Prayer Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/prayer/index.html"},{"id":"engagement","t":"Engagement Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/engagement/index.html"},{"id":"adoption","t":"Adoption Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/adoption/index.html"}]}]},{"b":"doxa-vision-card","s":"./doxa-vision-card/doxa-vision-card.js","i":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","e":["doxa-vision-card"],"p":[{"p":"doxa-vision-card","e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/index.html","d":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","c":2,"em":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-vision-card/doxa-vision-card.js\" integrity=\"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-vision-card profile-config='{\"profile\":\"doxa-vision-card\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-vision-card>"},"in":[{"id":"default","t":"Vision card — reach at a glance","a":"","pr":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/default/index.html"},{"id":"frontier","t":"Vision card — frontier accent","a":"","pr":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-frontier","accent":"#22d3ee","title":"The last frontier of the gospel.","tagline":"Frontier people groups — where fewer than one in a thousand follow Jesus.","stats":[{"value":"1,910","label":"Frontier groups","note":"under 0.1% believers"},{"value":"2.1B","label":"People","note":"living in frontier settings"},{"value":"0.1%","label":"Christian","note":"or fewer, in each group"}]},"e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/frontier/index.html"}]}]},{"b":"golden-path-check","s":"./golden-path-check/golden-path-check.js","i":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","e":["golden-path-check"],"p":[{"p":"golden-path-check","e":"golden-path-check","u":"./golden-path-check/golden-path-check/index.html","d":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","c":1,"em":{"iframe":"\u003ciframe src=\"./golden-path-check/golden-path-check/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./golden-path-check/golden-path-check.js\" integrity=\"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgolden-path-check profile-config='{\"profile\":\"golden-path-check\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/golden-path-check>"}}]},{"b":"gospel-resources","s":"./gospel-resources/gospel-resources.js","i":"sha384-24QikjGUSAri3x94fXjrlcpJWlqDc719jT36BglGNkr0hNMmwN2Hz3wh1y9g+/Sb","e":["gospel-resources-map"],"p":[{"p":"charts","e":"gospel-resources-map","u":"./gospel-resources/charts/index.html","d":"The gap by LANGUAGE (ISO 639-3) rather than by people group — because one translation serves every","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-24QikjGUSAri3x94fXjrlcpJWlqDc719jT36BglGNkr0hNMmwN2Hz3wh1y9g+/Sb\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"p":"data-tables","e":"gospel-resources-map","u":"./gospel-resources/data-tables/index.html","d":"Two validated tables: what resources exist per people group, and whether that access is keeping","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-24QikjGUSAri3x94fXjrlcpJWlqDc719jT36BglGNkr0hNMmwN2Hz3wh1y9g+/Sb\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"p":"resources-list","e":"gospel-resources-map","u":"./gospel-resources/resources-list/index.html","d":"Which DX people groups have scripture in their own language, and which have none. The zero-resource","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-24QikjGUSAri3x94fXjrlcpJWlqDc719jT36BglGNkr0hNMmwN2Hz3wh1y9g+/Sb\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"p":"resources-map","e":"gospel-resources-map","u":"./gospel-resources/resources-map/index.html","d":"Every country shaded by how much of its unengaged population has NO gospel resource in their own","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-24QikjGUSAri3x94fXjrlcpJWlqDc719jT36BglGNkr0hNMmwN2Hz3wh1y9g+/Sb\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}}]},{"b":"my-upg-100-list","s":"./my-upg-100-list/my-upg-100-list.js","i":"sha384-a/MPvkKyH2iVUcC9ukmAQrrF90vNRtOFRTKtQyp7PKIFXCre3hrqEYw1qRk8KFCm","e":["my-upg-100-list-map"],"p":[{"p":"poster-wall","e":"my-upg-100-list-map","u":"./my-upg-100-list/poster-wall/index.html","d":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\" action that","c":1,"em":{"iframe":"\u003ciframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-a/MPvkKyH2iVUcC9ukmAQrrF90vNRtOFRTKtQyp7PKIFXCre3hrqEYw1qRk8KFCm\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"p":"upg-100-list","e":"my-upg-100-list-map","u":"./my-upg-100-list/upg-100-list/index.html","d":"A personal unreached-people-groups list painted as true boundary polygons —","c":1,"em":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-a/MPvkKyH2iVUcC9ukmAQrrF90vNRtOFRTKtQyp7PKIFXCre3hrqEYw1qRk8KFCm\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"p":"upg-100-mfe","e":"my-upg-100-list-map","u":"./my-upg-100-list/upg-100-mfe/index.html","d":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","c":4,"em":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-a/MPvkKyH2iVUcC9ukmAQrrF90vNRtOFRTKtQyp7PKIFXCre3hrqEYw1qRk8KFCm\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}}]},{"b":"people-groups-grid","s":"./people-groups-grid/people-groups-grid.js","i":"sha384-M3RVF4r+s9KJ2YznjQ+g3BR4XjsA4n8uhfCk97dwyiuN1BxRdeQmmMnQILV0CwJg","e":["people-groups-grid"],"p":[{"p":"people-groups-grid","e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/index.html","d":"The people-groups grid as an owned custom element: card list, search and four","c":2,"em":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-M3RVF4r+s9KJ2YznjQ+g3BR4XjsA4n8uhfCk97dwyiuN1BxRdeQmmMnQILV0CwJg\" crossorigin=\"anonymous\">\u003c/script>\n\u003cpeople-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/people-groups-grid>"},"in":[{"id":"people-groups-grid","t":"People Groups Grid — standalone (own search + 4 dropdowns)","a":"","pr":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html"},{"id":"driven","t":"People Groups Grid — externally driven (controls off, props/events)","a":"","pr":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/driven/index.html"}]}]},{"b":"plugin-studio","s":"./plugin-studio/plugin-studio.js","i":"sha384-VuTJ3Db517xAN7nyV6VKdM0YJH6ToDwxyCjjAEeK69x8KompgYFCHWs29Q0BkfJp","e":["plugin-studio"],"p":[{"p":"plugin-studio","e":"plugin-studio","u":"./plugin-studio/plugin-studio/index.html","d":"The developer's viewing surface: a sidebar that is the composability ladder","c":5,"em":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-VuTJ3Db517xAN7nyV6VKdM0YJH6ToDwxyCjjAEeK69x8KompgYFCHWs29Q0BkfJp\" crossorigin=\"anonymous\">\u003c/script>\n\u003cplugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/plugin-studio>"},"in":[{"id":"studio","t":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","a":"","pr":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"e":"plugin-studio","u":"./plugin-studio/plugin-studio/studio/index.html"}]}]},{"b":"prayer-walk-planner","s":"./prayer-walk-planner/prayer-walk-planner.js","i":"sha384-+XBRYgeeX8JLpdYcc+oGtkQf+Zgc2JkFK6/tlMBh5qghF9rNAJLk1lwVxWkU0cKx","e":["prayer-walk-planner"],"p":[{"p":"prayer-walk-planner","e":"prayer-walk-planner","u":"./prayer-walk-planner/prayer-walk-planner/index.html","d":"A simple polygon-drawing tool for planning prayer-walking routes.","c":1,"em":{"iframe":"\u003ciframe src=\"./prayer-walk-planner/prayer-walk-planner/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-+XBRYgeeX8JLpdYcc+oGtkQf+Zgc2JkFK6/tlMBh5qghF9rNAJLk1lwVxWkU0cKx\" crossorigin=\"anonymous\">\u003c/script>\n\u003cprayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/prayer-walk-planner>"}}]},{"b":"regions-dashboard","s":"./regions-dashboard/regions-dashboard.js","i":"sha384-id9PKqoerelcRD/ML+R3F+9AwInZJ0sqyh4G/qQCiloYTBW8/rdUkZM9qGUgq6Dg","e":["regions-dashboard"],"p":[{"p":"regions-list","e":"regions-dashboard","u":"./regions-dashboard/regions-list/index.html","d":"A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into","c":1,"em":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-id9PKqoerelcRD/ML+R3F+9AwInZJ0sqyh4G/qQCiloYTBW8/rdUkZM9qGUgq6Dg\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}}]},{"b":"research-dashboard","s":"./research-dashboard/research-dashboard.js","i":"sha384-+DTArUc8tv9Z668IT3aIyOwfpSeqLVcl24xxmUr78tK8WRr3SOwPlvuY5dHdVZvc","e":["research-dashboard-map"],"p":[{"p":"research-dashboard","e":"research-dashboard-map","u":"./research-dashboard/research-dashboard/index.html","d":"Coordinated-Multiple-Views research dashboard for 10/40-window UPGs (live pray.doxa.life): docked facet rail + map-as-hero + linked table/charts, brushing-and-linking over one in-memory store.","c":3,"em":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-+DTArUc8tv9Z668IT3aIyOwfpSeqLVcl24xxmUr78tK8WRr3SOwPlvuY5dHdVZvc\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-dashboard-map>"}}]},{"b":"research-map-plus-grid","s":"./research-map-plus-grid/research-map-plus-grid.js","i":"sha384-Dyh9E7k/YtwVCKP4lulQpWs9+oqKV5LJjxEnJMufru4zAzyZpbHyz0pja7hPwIwS","e":["research-map-plus-grid"],"p":[{"p":"research-map-plus-grid","e":"research-map-plus-grid","u":"./research-map-plus-grid/research-map-plus-grid/index.html","d":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","c":4,"em":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-Dyh9E7k/YtwVCKP4lulQpWs9+oqKV5LJjxEnJMufru4zAzyZpbHyz0pja7hPwIwS\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-map-plus-grid>"},"in":[{"id":"default","t":"default","a":"","pr":{"profile":"research-map-plus-grid"},"e":"research-map-plus-grid","u":"./research-map-plus-grid/research-map-plus-grid/default/index.html"}]}]},{"b":"stack-demo","s":"./stack-demo/stack-demo.js","i":"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy","e":["stack-demo"],"p":[{"p":"stack-demo","e":"stack-demo","u":"./stack-demo/stack-demo/index.html","d":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","c":4,"em":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./stack-demo/stack-demo.js\" integrity=\"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cstack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/stack-demo>"},"in":[{"id":"pair","t":"pair","a":"","pr":{"profile":"stack-demo"},"e":"stack-demo","u":"./stack-demo/stack-demo/pair/index.html"}]}]},{"b":"template-bundle","s":"./template-bundle/template-bundle.js","i":"sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28","e":["template-bundle"],"p":[{"p":"template-map-a","e":"template-bundle","u":"./template-bundle/template-map-a/index.html","d":"Minimal example profile A — a colored placeholder, no Mapbox or data.","c":1,"em":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-a/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-a\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"}},{"p":"template-map-b","e":"template-bundle","u":"./template-bundle/template-map-b/index.html","d":"Minimal example profile B — a second profile in the same bundle.","c":1,"em":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-b/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-b\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"}}]}]; var snip = function snip(b, p, x) { var u = (x || p).u, tag = (x && x.e) || p.e || b.e[0] || b.b var r = { iframe: '' } diff --git a/public/doxa-maps/all-people-groups/all-people-groups.js b/public/doxa-maps/all-people-groups/all-people-groups.js index 5a4cd0727..4b51a21b0 100644 --- a/public/doxa-maps/all-people-groups/all-people-groups.js +++ b/public/doxa-maps/all-people-groups/all-people-groups.js @@ -39,7 +39,7 @@ * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const $h="9.14.5";function Eh(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Mt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Mt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Mt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Mt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Mt().__INTLIFY_PROD_DEVTOOLS__=!1)}const Lh=ah.__EXTEND_POINT__,Rt=Ho(Lh);Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt();const Sl=it.__EXTEND_POINT__,Ue=Ho(Sl),Ce={UNEXPECTED_RETURN_TYPE:Sl,INVALID_ARGUMENT:Ue(),MUST_BE_CALL_SETUP_TOP:Ue(),NOT_INSTALLED:Ue(),NOT_AVAILABLE_IN_LEGACY_MODE:Ue(),REQUIRED_VALUE:Ue(),INVALID_VALUE:Ue(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ue(),NOT_INSTALLED_WITH_PROVIDE:Ue(),UNEXPECTED_ERROR:Ue(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ue(),BRIDGE_SUPPORT_VUE_2_ONLY:Ue(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ue(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ue(),__EXTEND_POINT__:Ue()};function Pe(e,...t){return An(e,null,void 0)}const os=Gt("__translateVNode"),as=Gt("__datetimeParts"),ss=Gt("__numberParts"),vl=Gt("__setPluralRules"),kl=Gt("__injectWithOption"),is=Gt("__dispose");function to(e){if(!ue(e)||bt(e))return e;for(const t in e)if(at(e,t))if(!t.includes("."))ue(e[t])&&to(e[t]);else{const n=t.split("."),o=n.length-1;let a=e,s=!1;for(let i=0;i{if("locale"in r&&"resource"in r){const{locale:l,resource:c}=r;l?(i[l]=i[l]||pe(),Wo(c,i[l])):Wo(c,i)}else z(r)&&Wo(JSON.parse(r),i)}),a==null&&s)for(const r in i)at(i,r)&&to(i[r]);return i}function Tl(e){return e.type}function $l(e,t,n){let o=ue(t.messages)?t.messages:pe();"__i18nGlobal"in n&&(o=Zo(e.locale.value,{messages:o,__i18n:n.__i18nGlobal}));const a=Object.keys(o);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,o[s])});{if(ue(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(ue(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function El(e){return Ne(qn,null,e,0)}const Ll="__INTLIFY_META__",Cl=()=>[],Ch=()=>!1;let wl=0;function Nl(e){return(t,n,o,a)=>e(n,o,Nt()||void 0,a)}const wh=()=>{const e=Nt();let t=null;return e&&(t=Tl(e)[Ll])?{[Ll]:t}:null};function rs(e={},t){const{__root:n,__injectWithOption:o}=e,a=n===void 0,s=e.flatJson,i=zo?fe:ya,r=!!e.translateExistCompatible;let l=le(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:z(e.locale)?e.locale:kn),u=i(n&&l?n.fallbackLocale.value:z(e.fallbackLocale)||Se(e.fallbackLocale)||ae(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=i(Zo(c.value,e)),m=i(ae(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),k=i(ae(e.numberFormats)?e.numberFormats:{[c.value]:{}});let C=n?n.missingWarn:le(e.missingWarn)||zt(e.missingWarn)?e.missingWarn:!0,S=n?n.fallbackWarn:le(e.fallbackWarn)||zt(e.fallbackWarn)?e.fallbackWarn:!0,N=n?n.fallbackRoot:le(e.fallbackRoot)?e.fallbackRoot:!0,w=!!e.fallbackFormat,L=_e(e.missing)?e.missing:null,_=_e(e.missing)?Nl(e.missing):null,b=_e(e.postTranslation)?e.postTranslation:null,y=n?n.warnHtmlMessage:le(e.warnHtmlMessage)?e.warnHtmlMessage:!0,$=!!e.escapeParameter;const P=n?n.modifiers:ae(e.modifiers)?e.modifiers:{};let F=e.pluralRules||n&&n.pluralRules,v;v=(()=>{a&&il(null);const T={version:$h,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:P,pluralRules:F,missing:_===null?void 0:_,missingWarn:C,fallbackWarn:S,fallbackFormat:w,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:y,escapeParameter:$,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=m.value,T.numberFormats=k.value,T.__datetimeFormatters=ae(v)?v.__datetimeFormatters:void 0,T.__numberFormatters=ae(v)?v.__numberFormatters:void 0;const R=hh(T);return a&&il(R),R})(),eo(v,c.value,u.value);function ie(){return[c.value,u.value,f.value,m.value,k.value]}const W=he({get:()=>c.value,set:T=>{c.value=T,v.locale=c.value}}),ne=he({get:()=>u.value,set:T=>{u.value=T,v.fallbackLocale=u.value,eo(v,c.value,T)}}),Y=he(()=>f.value),D=he(()=>m.value),j=he(()=>k.value);function H(){return _e(b)?b:null}function V(T){b=T,v.postTranslation=T}function Q(){return L}function X(T){T!==null&&(_=Nl(T)),L=T,v.missing=_}const Z=(T,R,J,se,ye,Be)=>{ie();let Re;try{__INTLIFY_PROD_DEVTOOLS__,a||(v.fallbackContext=n?ph():void 0),Re=T(v)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(v.fallbackContext=void 0)}if(J!=="translate exists"&&$e(Re)&&Re===Xo||J==="translate exists"&&!Re){const[cn,Ls]=R();return n&&N?se(n):ye(cn)}else{if(Be(Re))return Re;throw Pe(Ce.UNEXPECTED_RETURN_TYPE)}};function re(...T){return Z(R=>Reflect.apply(dl,null,[R,...T]),()=>es(...T),"translate",R=>Reflect.apply(R.t,R,[...T]),R=>R,R=>z(R))}function ke(...T){const[R,J,se]=T;if(se&&!ue(se))throw Pe(Ce.INVALID_ARGUMENT);return re(R,J,Ie({resolvedMessage:!0},se||{}))}function Ze(...T){return Z(R=>Reflect.apply(hl,null,[R,...T]),()=>ts(...T),"datetime format",R=>Reflect.apply(R.d,R,[...T]),()=>Zr,R=>z(R))}function yt(...T){return Z(R=>Reflect.apply(_l,null,[R,...T]),()=>ns(...T),"number format",R=>Reflect.apply(R.n,R,[...T]),()=>Zr,R=>z(R))}function rt(T){return T.map(R=>z(R)||$e(R)||le(R)?El(String(R)):R)}const xt={normalize:rt,interpolate:T=>T,type:"vnode"};function Xt(...T){return Z(R=>{let J;const se=R;try{se.processor=xt,J=Reflect.apply(dl,null,[se,...T])}finally{se.processor=null}return J},()=>es(...T),"translate",R=>R[os](...T),R=>[El(R)],R=>Se(R))}function Qe(...T){return Z(R=>Reflect.apply(_l,null,[R,...T]),()=>ns(...T),"number format",R=>R[ss](...T),Cl,R=>z(R)||Se(R))}function En(...T){return Z(R=>Reflect.apply(hl,null,[R,...T]),()=>ts(...T),"datetime format",R=>R[as](...T),Cl,R=>z(R)||Se(R))}function p(T){F=T,v.pluralRules=F}function A(T,R){return Z(()=>{if(!T)return!1;const J=z(R)?R:c.value,se=x(J),ye=v.messageResolver(se,T);return r?ye!=null:bt(ye)||Je(ye)||z(ye)},()=>[T],"translate exists",J=>Reflect.apply(J.te,J,[T,R]),Ch,J=>le(J))}function h(T){let R=null;const J=Jr(v,u.value,c.value);for(let se=0;se{l&&(c.value=T,v.locale=T,eo(v,c.value,u.value))}),nn(n.fallbackLocale,T=>{l&&(u.value=T,v.fallbackLocale=T,eo(v,c.value,u.value))}));const B={id:wl,locale:W,fallbackLocale:ne,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,eo(v,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:Y,get modifiers(){return P},get pluralRules(){return F||{}},get isGlobal(){return a},get missingWarn(){return C},set missingWarn(T){C=T,v.missingWarn=C},get fallbackWarn(){return S},set fallbackWarn(T){S=T,v.fallbackWarn=S},get fallbackRoot(){return N},set fallbackRoot(T){N=T},get fallbackFormat(){return w},set fallbackFormat(T){w=T,v.fallbackFormat=w},get warnHtmlMessage(){return y},set warnHtmlMessage(T){y=T,v.warnHtmlMessage=T},get escapeParameter(){return $},set escapeParameter(T){$=T,v.escapeParameter=T},t:re,getLocaleMessage:x,setLocaleMessage:O,mergeLocaleMessage:U,getPostTranslationHandler:H,setPostTranslationHandler:V,getMissingHandler:Q,setMissingHandler:X,[vl]:p};return B.datetimeFormats=D,B.numberFormats=j,B.rt=ke,B.te=A,B.tm=M,B.d=Ze,B.n=yt,B.getDateTimeFormat=K,B.setDateTimeFormat=g,B.mergeDateTimeFormat=d,B.getNumberFormat=E,B.setNumberFormat=I,B.mergeNumberFormat=G,B[kl]=o,B[os]=Xt,B[as]=En,B[ss]=Qe,B}function Nh(e){const t=z(e.locale)?e.locale:kn,n=z(e.fallbackLocale)||Se(e.fallbackLocale)||ae(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,o=_e(e.missing)?e.missing:void 0,a=le(e.silentTranslationWarn)||zt(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=le(e.silentFallbackWarn)||zt(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=le(e.fallbackRoot)?e.fallbackRoot:!0,r=!!e.formatFallbackMessages,l=ae(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=_e(e.postTranslation)?e.postTranslation:void 0,f=z(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,m=!!e.escapeParameterHtml,k=le(e.sync)?e.sync:!0;let C=e.messages;if(ae(e.sharedMessages)){const $=e.sharedMessages;C=Object.keys($).reduce((F,v)=>{const q=F[v]||(F[v]={});return Ie(q,$[v]),F},C||{})}const{__i18n:S,__root:N,__injectWithOption:w}=e,L=e.datetimeFormats,_=e.numberFormats,b=e.flatJson,y=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:C,flatJson:b,datetimeFormats:L,numberFormats:_,missing:o,missingWarn:a,fallbackWarn:s,fallbackRoot:i,fallbackFormat:r,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:m,messageResolver:e.messageResolver,inheritLocale:k,translateExistCompatible:y,__i18n:S,__root:N,__injectWithOption:w}}function ls(e={},t){{const n=rs(Nh(e)),{__extender:o}=e,a={id:n.id,get locale(){return n.locale.value},set locale(s){n.locale.value=s},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(s){n.fallbackLocale.value=s},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(s){},get missing(){return n.getMissingHandler()},set missing(s){n.setMissingHandler(s)},get silentTranslationWarn(){return le(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(s){n.missingWarn=le(s)?!s:s},get silentFallbackWarn(){return le(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(s){n.fallbackWarn=le(s)?!s:s},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(s){n.fallbackFormat=s},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(s){n.setPostTranslationHandler(s)},get sync(){return n.inheritLocale},set sync(s){n.inheritLocale=s},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){n.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(s){n.escapeParameter=s},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(s){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...s){const[i,r,l]=s,c={};let u=null,f=null;if(!z(i))throw Pe(Ce.INVALID_ARGUMENT);const m=i;return z(r)?c.locale=r:Se(r)?u=r:ae(r)&&(f=r),Se(l)?u=l:ae(l)&&(f=l),Reflect.apply(n.t,n,[m,u||f||{},c])},rt(...s){return Reflect.apply(n.rt,n,[...s])},tc(...s){const[i,r,l]=s,c={plural:1};let u=null,f=null;if(!z(i))throw Pe(Ce.INVALID_ARGUMENT);const m=i;return z(r)?c.locale=r:$e(r)?c.plural=r:Se(r)?u=r:ae(r)&&(f=r),z(l)?c.locale=l:Se(l)?u=l:ae(l)&&(f=l),Reflect.apply(n.t,n,[m,u||f||{},c])},te(s,i){return n.te(s,i)},tm(s){return n.tm(s)},getLocaleMessage(s){return n.getLocaleMessage(s)},setLocaleMessage(s,i){n.setLocaleMessage(s,i)},mergeLocaleMessage(s,i){n.mergeLocaleMessage(s,i)},d(...s){return Reflect.apply(n.d,n,[...s])},getDateTimeFormat(s){return n.getDateTimeFormat(s)},setDateTimeFormat(s,i){n.setDateTimeFormat(s,i)},mergeDateTimeFormat(s,i){n.mergeDateTimeFormat(s,i)},n(...s){return Reflect.apply(n.n,n,[...s])},getNumberFormat(s){return n.getNumberFormat(s)},setNumberFormat(s,i){n.setNumberFormat(s,i)},mergeNumberFormat(s,i){n.mergeNumberFormat(s,i)},getChoiceIndex(s,i){return-1}};return a.__extender=o,a}}const cs={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Ph({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((o,a)=>[...o,...a.type===Ye?a.children:[a]],[]):t.reduce((n,o)=>{const a=e[o];return a&&(n[o]=a()),n},pe())}function Pl(e){return Ye}const Ml=jn({name:"i18n-t",props:Ie({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>$e(e)||!isNaN(e)}},cs),setup(e,t){const{slots:n,attrs:o}=t,a=e.i18n||us({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(n).filter(f=>f!=="_"),i=pe();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=z(e.plural)?+e.plural:e.plural);const r=Ph(t,s),l=a[os](e.keypath,r,i),c=Ie(pe(),o),u=z(e.tag)||ue(e.tag)?e.tag:Pl();return ar(u,c,l)}}});function Mh(e){return Se(e)&&!z(e[0])}function Il(e,t,n,o){const{slots:a,attrs:s}=t;return()=>{const i={part:!0};let r=pe();e.locale&&(i.locale=e.locale),z(e.format)?i.key=e.format:ue(e.format)&&(z(e.format.key)&&(i.key=e.format.key),r=Object.keys(e.format).reduce((m,k)=>n.includes(k)?Ie(pe(),m,{[k]:e.format[k]}):m,pe()));const l=o(e.value,i,r);let c=[i.key];Se(l)?c=l.map((m,k)=>{const C=a[m.type],S=C?C({[m.type]:m.value,index:k,parts:l}):[m.value];return Mh(S)&&(S[0].key=`${m.type}-${k}`),S}):z(l)&&(c=[l]);const u=Ie(pe(),s),f=z(e.tag)||ue(e.tag)?e.tag:Pl();return ar(f,u,c)}}const Rl=jn({name:"i18n-n",props:Ie({value:{type:Number,required:!0},format:{type:[String,Object]}},cs),setup(e,t){const n=e.i18n||us({useScope:e.scope,__useComponent:!0});return Il(e,t,yl,(...o)=>n[ss](...o))}}),Dl=jn({name:"i18n-d",props:Ie({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},cs),setup(e,t){const n=e.i18n||us({useScope:e.scope,__useComponent:!0});return Il(e,t,ml,(...o)=>n[as](...o))}});function Ih(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const o=n.__getInstance(t);return o!=null?o.__composer:e.global.__composer}}function Rh(e){const t=i=>{const{instance:r,modifiers:l,value:c}=i;if(!r||!r.$)throw Pe(Ce.UNEXPECTED_ERROR);const u=Ih(e,r.$),f=Fl(c);return[Reflect.apply(u.t,u,[...Ol(f)]),u]};return{created:(i,r)=>{const[l,c]=t(r);zo&&e.global===c&&(i.__i18nWatcher=nn(c.locale,()=>{r.instance&&r.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{zo&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:r})=>{if(i.__composer){const l=i.__composer,c=Fl(r);i.textContent=Reflect.apply(l.t,l,[...Ol(c)])}},getSSRProps:i=>{const[r]=t(i);return{textContent:r}}}}function Fl(e){if(z(e))return{path:e};if(ae(e)){if(!("path"in e))throw Pe(Ce.REQUIRED_VALUE,"path");return e}else throw Pe(Ce.INVALID_VALUE)}function Ol(e){const{path:t,locale:n,args:o,choice:a,plural:s}=e,i={},r=o||{};return z(n)&&(i.locale=n),$e(a)&&(i.plural=a),$e(s)&&(i.plural=s),[t,r,i]}function Dh(e,t,...n){const o=ae(n[0])?n[0]:{},a=!!o.useI18nComponentName;(le(o.globalInstall)?o.globalInstall:!0)&&([a?"i18n":Ml.name,"I18nT"].forEach(i=>e.component(i,Ml)),[Rl.name,"I18nN"].forEach(i=>e.component(i,Rl)),[Dl.name,"I18nD"].forEach(i=>e.component(i,Dl))),e.directive("t",Rh(t))}function Fh(e,t,n){return{beforeCreate(){const o=Nt();if(!o)throw Pe(Ce.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const s=a.i18n;if(a.__i18n&&(s.__i18n=a.__i18n),s.__root=t,this===this.$root)this.$i18n=xl(e,s);else{s.__injectWithOption=!0,s.__extender=n.__vueI18nExtend,this.$i18n=ls(s);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=xl(e,a);else{this.$i18n=ls({__i18n:a.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&$l(t,a,a),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$tc=(...s)=>this.$i18n.tc(...s),this.$te=(s,i)=>this.$i18n.te(s,i),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s),n.__setInstance(o,this.$i18n)},mounted(){},unmounted(){const o=Nt();if(!o)throw Pe(Ce.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),n.__deleteInstance(o),delete this.$i18n}}}function xl(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[vl](t.pluralizationRules||e.pluralizationRules);const n=Zo(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(o=>e.mergeLocaleMessage(o,n[o])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(o=>e.mergeDateTimeFormat(o,t.datetimeFormats[o])),t.numberFormats&&Object.keys(t.numberFormats).forEach(o=>e.mergeNumberFormat(o,t.numberFormats[o])),e}const Oh=Gt("global-vue-i18n");function xh(e={},t){const n=__VUE_I18N_LEGACY_API__&&le(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,o=le(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,s=new Map,[i,r]=jh(e,n),l=Gt("");function c(m){return s.get(m)||null}function u(m,k){s.set(m,k)}function f(m){s.delete(m)}{const m={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return a},async install(k,...C){if(k.__VUE_I18N_SYMBOL__=l,k.provide(k.__VUE_I18N_SYMBOL__,m),ae(C[0])){const w=C[0];m.__composerExtend=w.__composerExtend,m.__vueI18nExtend=w.__vueI18nExtend}let S=null;!n&&o&&(S=Wh(k,m.global)),__VUE_I18N_FULL_INSTALL__&&Dh(k,m,...C),__VUE_I18N_LEGACY_API__&&n&&k.mixin(Fh(r,r.__composer,m));const N=k.unmount;k.unmount=()=>{S&&S(),m.dispose(),N()}},get global(){return r},dispose(){i.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:f};return m}}function us(e={}){const t=Nt();if(t==null)throw Pe(Ce.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Pe(Ce.NOT_INSTALLED);const n=Bh(t),o=Uh(n),a=Tl(t),s=Kh(e,a);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw Pe(Ce.NOT_AVAILABLE_IN_LEGACY_MODE);return Hh(t,s,o,e)}if(s==="global")return $l(o,e,a),o;if(s==="parent"){let l=Gh(n,t,e.__useComponent);return l==null&&(l=o),l}const i=n;let r=i.__getInstance(t);if(r==null){const l=Ie({},e);"__i18n"in a&&(l.__i18n=a.__i18n),o&&(l.__root=o),r=rs(l),i.__composerExtend&&(r[is]=i.__composerExtend(r)),qh(i,t,r),i.__setInstance(t,r)}return r}function jh(e,t,n){const o=ra();{const a=__VUE_I18N_LEGACY_API__&&t?o.run(()=>ls(e)):o.run(()=>rs(e));if(a==null)throw Pe(Ce.UNEXPECTED_ERROR);return[o,a]}}function Bh(e){{const t=Fe(e.isCE?Oh:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Pe(e.isCE?Ce.NOT_INSTALLED_WITH_PROVIDE:Ce.UNEXPECTED_ERROR);return t}}function Kh(e,t){return qo(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Uh(e){return e.mode==="composition"?e.global:e.global.__composer}function Gh(e,t,n=!1){let o=null;const a=t.root;let s=zh(t,n);for(;s!=null;){const i=e;if(e.mode==="composition")o=i.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const r=i.__getInstance(s);r!=null&&(o=r.__composer,n&&o&&!o[kl]&&(o=null))}if(o!=null||a===s)break;s=s.parent}return o}function zh(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function qh(e,t,n){Un(()=>{},t),Io(()=>{const o=n;e.__deleteInstance(t);const a=o[is];a&&(a(),delete o[is])},t)}function Hh(e,t,n,o={}){const a=t==="local",s=ya(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Pe(Ce.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=le(o.inheritLocale)?o.inheritLocale:!z(o.locale),r=fe(!a||i?n.locale.value:z(o.locale)?o.locale:kn),l=fe(!a||i?n.fallbackLocale.value:z(o.fallbackLocale)||Se(o.fallbackLocale)||ae(o.fallbackLocale)||o.fallbackLocale===!1?o.fallbackLocale:r.value),c=fe(Zo(r.value,o)),u=fe(ae(o.datetimeFormats)?o.datetimeFormats:{[r.value]:{}}),f=fe(ae(o.numberFormats)?o.numberFormats:{[r.value]:{}}),m=a?n.missingWarn:le(o.missingWarn)||zt(o.missingWarn)?o.missingWarn:!0,k=a?n.fallbackWarn:le(o.fallbackWarn)||zt(o.fallbackWarn)?o.fallbackWarn:!0,C=a?n.fallbackRoot:le(o.fallbackRoot)?o.fallbackRoot:!0,S=!!o.fallbackFormat,N=_e(o.missing)?o.missing:null,w=_e(o.postTranslation)?o.postTranslation:null,L=a?n.warnHtmlMessage:le(o.warnHtmlMessage)?o.warnHtmlMessage:!0,_=!!o.escapeParameter,b=a?n.modifiers:ae(o.modifiers)?o.modifiers:{},y=o.pluralRules||a&&n.pluralRules;function $(){return[r.value,l.value,c.value,u.value,f.value]}const P=he({get:()=>s.value?s.value.locale.value:r.value,set:h=>{s.value&&(s.value.locale.value=h),r.value=h}}),F=he({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:h=>{s.value&&(s.value.fallbackLocale.value=h),l.value=h}}),v=he(()=>s.value?s.value.messages.value:c.value),q=he(()=>u.value),ie=he(()=>f.value);function W(){return s.value?s.value.getPostTranslationHandler():w}function ne(h){s.value&&s.value.setPostTranslationHandler(h)}function Y(){return s.value?s.value.getMissingHandler():N}function D(h){s.value&&s.value.setMissingHandler(h)}function j(h){return $(),h()}function H(...h){return s.value?j(()=>Reflect.apply(s.value.t,null,[...h])):j(()=>"")}function V(...h){return s.value?Reflect.apply(s.value.rt,null,[...h]):""}function Q(...h){return s.value?j(()=>Reflect.apply(s.value.d,null,[...h])):j(()=>"")}function X(...h){return s.value?j(()=>Reflect.apply(s.value.n,null,[...h])):j(()=>"")}function Z(h){return s.value?s.value.tm(h):{}}function re(h,M){return s.value?s.value.te(h,M):!1}function ke(h){return s.value?s.value.getLocaleMessage(h):{}}function Ze(h,M){s.value&&(s.value.setLocaleMessage(h,M),c.value[h]=M)}function yt(h,M){s.value&&s.value.mergeLocaleMessage(h,M)}function rt(h){return s.value?s.value.getDateTimeFormat(h):{}}function Ot(h,M){s.value&&(s.value.setDateTimeFormat(h,M),u.value[h]=M)}function xt(h,M){s.value&&s.value.mergeDateTimeFormat(h,M)}function Xt(h){return s.value?s.value.getNumberFormat(h):{}}function Qe(h,M){s.value&&(s.value.setNumberFormat(h,M),f.value[h]=M)}function En(h,M){s.value&&s.value.mergeNumberFormat(h,M)}const p={get id(){return s.value?s.value.id:-1},locale:P,fallbackLocale:F,messages:v,datetimeFormats:q,numberFormats:ie,get inheritLocale(){return s.value?s.value.inheritLocale:i},set inheritLocale(h){s.value&&(s.value.inheritLocale=h)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:b},get pluralRules(){return s.value?s.value.pluralRules:y},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:m},set missingWarn(h){s.value&&(s.value.missingWarn=h)},get fallbackWarn(){return s.value?s.value.fallbackWarn:k},set fallbackWarn(h){s.value&&(s.value.missingWarn=h)},get fallbackRoot(){return s.value?s.value.fallbackRoot:C},set fallbackRoot(h){s.value&&(s.value.fallbackRoot=h)},get fallbackFormat(){return s.value?s.value.fallbackFormat:S},set fallbackFormat(h){s.value&&(s.value.fallbackFormat=h)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:L},set warnHtmlMessage(h){s.value&&(s.value.warnHtmlMessage=h)},get escapeParameter(){return s.value?s.value.escapeParameter:_},set escapeParameter(h){s.value&&(s.value.escapeParameter=h)},t:H,getPostTranslationHandler:W,setPostTranslationHandler:ne,getMissingHandler:Y,setMissingHandler:D,rt:V,d:Q,n:X,tm:Z,te:re,getLocaleMessage:ke,setLocaleMessage:Ze,mergeLocaleMessage:yt,getDateTimeFormat:rt,setDateTimeFormat:Ot,mergeDateTimeFormat:xt,getNumberFormat:Xt,setNumberFormat:Qe,mergeNumberFormat:En};function A(h){h.locale.value=r.value,h.fallbackLocale.value=l.value,Object.keys(c.value).forEach(M=>{h.mergeLocaleMessage(M,c.value[M])}),Object.keys(u.value).forEach(M=>{h.mergeDateTimeFormat(M,u.value[M])}),Object.keys(f.value).forEach(M=>{h.mergeNumberFormat(M,f.value[M])}),h.escapeParameter=_,h.fallbackFormat=S,h.fallbackRoot=C,h.fallbackWarn=k,h.missingWarn=m,h.warnHtmlMessage=L}return Ai(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Pe(Ce.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const h=s.value=e.proxy.$i18n.__composer;t==="global"?(r.value=h.locale.value,l.value=h.fallbackLocale.value,c.value=h.messages.value,u.value=h.datetimeFormats.value,f.value=h.numberFormats.value):a&&A(h)}),p}const Vh=["locale","fallbackLocale","availableLocales"],jl=["t","rt","d","n","tm","te"];function Wh(e,t){const n=Object.create(null);return Vh.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw Pe(Ce.UNEXPECTED_ERROR);const i=ve(s.value)?{get(){return s.value.value},set(r){s.value.value=r}}:{get(){return s.get&&s.get()}};Object.defineProperty(n,a,i)}),e.config.globalProperties.$i18n=n,jl.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw Pe(Ce.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,jl.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(Eh(),__INTLIFY_JIT_COMPILATION__?tl(Ah):tl(yh),uh(zp),gh(Jr),__INTLIFY_PROD_DEVTOOLS__){const e=Mt();e.__INTLIFY__=!0,Qp(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Yh=Object.assign({"./locales/ar/aria.json":ed,"./locales/ar/buttons.json":td,"./locales/ar/detail.json":nd,"./locales/ar/legend.json":od,"./locales/ar/messages.json":ad,"./locales/ar/options.json":sd,"./locales/ar/prayerLaps.json":id,"./locales/ar/search.json":rd,"./locales/ar/tabs.json":ld,"./locales/de/aria.json":cd,"./locales/de/buttons.json":ud,"./locales/de/detail.json":gd,"./locales/de/legend.json":dd,"./locales/de/messages.json":fd,"./locales/de/options.json":pd,"./locales/de/prayerLaps.json":hd,"./locales/de/search.json":md,"./locales/de/tabs.json":bd,"./locales/en/aria.json":_d,"./locales/en/buttons.json":yd,"./locales/en/detail.json":Ad,"./locales/en/legend.json":Sd,"./locales/en/messages.json":vd,"./locales/en/options.json":kd,"./locales/en/popup.json":Td,"./locales/en/prayerLaps.json":$d,"./locales/en/search.json":Ed,"./locales/en/tabs.json":Ld,"./locales/es/aria.json":Cd,"./locales/es/buttons.json":wd,"./locales/es/detail.json":Nd,"./locales/es/legend.json":Pd,"./locales/es/messages.json":Md,"./locales/es/options.json":Id,"./locales/es/prayerLaps.json":Rd,"./locales/es/search.json":Dd,"./locales/es/tabs.json":Fd,"./locales/fr/aria.json":Od,"./locales/fr/buttons.json":xd,"./locales/fr/detail.json":jd,"./locales/fr/legend.json":Bd,"./locales/fr/messages.json":Kd,"./locales/fr/options.json":Ud,"./locales/fr/popup.json":Gd,"./locales/fr/prayerLaps.json":zd,"./locales/fr/search.json":qd,"./locales/fr/tabs.json":Hd,"./locales/hi/aria.json":Vd,"./locales/hi/buttons.json":Wd,"./locales/hi/detail.json":Yd,"./locales/hi/legend.json":Jd,"./locales/hi/messages.json":Xd,"./locales/hi/options.json":Zd,"./locales/hi/prayerLaps.json":Qd,"./locales/hi/search.json":ef,"./locales/it/aria.json":tf,"./locales/it/buttons.json":nf,"./locales/it/detail.json":of,"./locales/it/legend.json":af,"./locales/it/messages.json":sf,"./locales/it/options.json":rf,"./locales/it/prayerLaps.json":lf,"./locales/it/search.json":cf,"./locales/pt/aria.json":uf,"./locales/pt/buttons.json":gf,"./locales/pt/detail.json":df,"./locales/pt/legend.json":ff,"./locales/pt/messages.json":pf,"./locales/pt/options.json":hf,"./locales/pt/prayerLaps.json":mf,"./locales/pt/search.json":bf,"./locales/pt/tabs.json":_f,"./locales/ro/aria.json":yf,"./locales/ro/buttons.json":Af,"./locales/ro/detail.json":Sf,"./locales/ro/legend.json":vf,"./locales/ro/messages.json":kf,"./locales/ro/options.json":Tf,"./locales/ro/prayerLaps.json":$f,"./locales/ro/search.json":Ef,"./locales/ru/aria.json":Lf,"./locales/ru/buttons.json":Cf,"./locales/ru/detail.json":wf,"./locales/ru/legend.json":Nf,"./locales/ru/messages.json":Pf,"./locales/ru/options.json":Mf,"./locales/ru/prayerLaps.json":If,"./locales/ru/search.json":Rf,"./locales/ru/tabs.json":Df,"./locales/zh/aria.json":Ff,"./locales/zh/buttons.json":Of,"./locales/zh/detail.json":xf,"./locales/zh/legend.json":jf,"./locales/zh/messages.json":Bf,"./locales/zh/options.json":Kf,"./locales/zh/prayerLaps.json":Uf,"./locales/zh/search.json":Gf}),no={};for(const[e,t]of Object.entries(Yh)){const n=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!n)continue;const[,o,a]=n;no[o]??(no[o]={}),no[o][a]=t}const Bl=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function Jh(){var n;const t=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Bl.includes(t)?t:"en"}function Xh(){return xh({legacy:!1,globalInjection:!0,locale:Jh(),fallbackLocale:"en",messages:no,missingWarn:!1,fallbackWarn:!1})}function Kl(e,t){const n=t||Zh(e);Un(()=>{var r;const o=Nt();if(!o)return;const a=(r=o.proxy)==null?void 0:r.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot)||s.querySelector(`style[data-shadow-styles="${n}"]`))return;const i=document.createElement("style");i.setAttribute("data-shadow-styles",n),i.textContent=e,s.appendChild(i)})}function Zh(e){let t=0;for(let n=0;n(t==null?void 0:t.theme)==="dark"),a=he(()=>{var N;return((N=n==null?void 0:n.value)==null?void 0:N.pinHintLabel)||"Tap a red dot — someone still needs prayer"}),s=fe(!1),i=fe(null);let r=null,l=null,c=null,u=null,f=null;function m(){s.value=!1}function k(N,w){var _;let L=N==null?void 0:N.parentElement;for(let b=0;L&&b<12;b++,L=L.parentElement){if(L===w||(_=L.classList)!=null&&_.contains("profile-loader"))return null;let y="";try{y=getComputedStyle(L).position}catch{}if(y&&y!=="static"){const $=L.getBoundingClientRect();if($.height>=120&&$.width>=160)return L}}return null}function C(){const N=i.value;if(N)try{N.style.removeProperty("--pin-hint-lift");const w=N.getBoundingClientRect();if(!w.height)return;const L=Math.round(w.bottom-window.innerHeight);L>0&&N.style.setProperty("--pin-hint-lift",L+8+"px")}catch{}}function S(N){const w=i.value;if(!w||!(N!=null&&N.querySelector))return;let L=0;try{const b=N.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(b){const y=b.getBoundingClientRect(),$=w.parentElement,P=$?$.getBoundingClientRect():null;if(L=P?Math.max(y.height||0,P.bottom-y.top):y.height||0,f!==b&&typeof ResizeObserver<"u"){if(c)try{c.disconnect()}catch{}f=b,c=new ResizeObserver(()=>S(N)),c.observe(b)}}}catch{}const _=Math.min(Math.max(Math.ceil(L)||20,20),72);w.style.setProperty("--pin-hint-attrib-clear",_+"px"),C()}return Un(()=>{var _,b,y;const N=Nt(),w=(y=(b=(_=N==null?void 0:N.proxy)==null?void 0:_.$el)==null?void 0:b.getRootNode)==null?void 0:y.call(b);if(!w||typeof w.querySelector!="function")return;let L=0;r=setInterval(()=>{L++;const $=w.querySelector("canvas");$?(clearInterval(r),r=null,s.value=!0,Eo(()=>{const P=k($,w),F=i.value;if(P&&F&&F.parentElement!==P)try{P.appendChild(F),l=P}catch{}S(w),C();try{const v=i.value&&i.value.offsetParent||null;if(v&&typeof ResizeObserver<"u"){if(u)try{u.disconnect()}catch{}u=new ResizeObserver(()=>C()),u.observe(v)}}catch{}})):L>40&&(clearInterval(r),r=null)},300)}),Ea(()=>{var N;if(r&&clearInterval(r),c){try{c.disconnect()}catch{}c=null}if(f=null,u){try{u.disconnect()}catch{}u=null}if(l&&((N=i.value)==null?void 0:N.parentElement)===l)try{l.removeChild(i.value)}catch{}l=null}),Kl(` + */const $h="9.14.5";function Eh(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Mt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Mt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Mt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Mt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Mt().__INTLIFY_PROD_DEVTOOLS__=!1)}const Lh=ah.__EXTEND_POINT__,Rt=Ho(Lh);Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt();const Sl=it.__EXTEND_POINT__,Ue=Ho(Sl),Ce={UNEXPECTED_RETURN_TYPE:Sl,INVALID_ARGUMENT:Ue(),MUST_BE_CALL_SETUP_TOP:Ue(),NOT_INSTALLED:Ue(),NOT_AVAILABLE_IN_LEGACY_MODE:Ue(),REQUIRED_VALUE:Ue(),INVALID_VALUE:Ue(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ue(),NOT_INSTALLED_WITH_PROVIDE:Ue(),UNEXPECTED_ERROR:Ue(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ue(),BRIDGE_SUPPORT_VUE_2_ONLY:Ue(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ue(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ue(),__EXTEND_POINT__:Ue()};function Pe(e,...t){return An(e,null,void 0)}const os=Gt("__translateVNode"),as=Gt("__datetimeParts"),ss=Gt("__numberParts"),vl=Gt("__setPluralRules"),kl=Gt("__injectWithOption"),is=Gt("__dispose");function to(e){if(!ue(e)||bt(e))return e;for(const t in e)if(at(e,t))if(!t.includes("."))ue(e[t])&&to(e[t]);else{const n=t.split("."),o=n.length-1;let a=e,s=!1;for(let i=0;i{if("locale"in r&&"resource"in r){const{locale:l,resource:c}=r;l?(i[l]=i[l]||pe(),Wo(c,i[l])):Wo(c,i)}else z(r)&&Wo(JSON.parse(r),i)}),a==null&&s)for(const r in i)at(i,r)&&to(i[r]);return i}function Tl(e){return e.type}function $l(e,t,n){let o=ue(t.messages)?t.messages:pe();"__i18nGlobal"in n&&(o=Zo(e.locale.value,{messages:o,__i18n:n.__i18nGlobal}));const a=Object.keys(o);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,o[s])});{if(ue(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(ue(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function El(e){return Ne(qn,null,e,0)}const Ll="__INTLIFY_META__",Cl=()=>[],Ch=()=>!1;let wl=0;function Nl(e){return(t,n,o,a)=>e(n,o,Nt()||void 0,a)}const wh=()=>{const e=Nt();let t=null;return e&&(t=Tl(e)[Ll])?{[Ll]:t}:null};function rs(e={},t){const{__root:n,__injectWithOption:o}=e,a=n===void 0,s=e.flatJson,i=zo?fe:ya,r=!!e.translateExistCompatible;let l=le(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:z(e.locale)?e.locale:kn),u=i(n&&l?n.fallbackLocale.value:z(e.fallbackLocale)||Se(e.fallbackLocale)||ae(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=i(Zo(c.value,e)),m=i(ae(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),k=i(ae(e.numberFormats)?e.numberFormats:{[c.value]:{}});let C=n?n.missingWarn:le(e.missingWarn)||zt(e.missingWarn)?e.missingWarn:!0,S=n?n.fallbackWarn:le(e.fallbackWarn)||zt(e.fallbackWarn)?e.fallbackWarn:!0,N=n?n.fallbackRoot:le(e.fallbackRoot)?e.fallbackRoot:!0,w=!!e.fallbackFormat,L=_e(e.missing)?e.missing:null,_=_e(e.missing)?Nl(e.missing):null,b=_e(e.postTranslation)?e.postTranslation:null,y=n?n.warnHtmlMessage:le(e.warnHtmlMessage)?e.warnHtmlMessage:!0,$=!!e.escapeParameter;const P=n?n.modifiers:ae(e.modifiers)?e.modifiers:{};let F=e.pluralRules||n&&n.pluralRules,v;v=(()=>{a&&il(null);const T={version:$h,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:P,pluralRules:F,missing:_===null?void 0:_,missingWarn:C,fallbackWarn:S,fallbackFormat:w,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:y,escapeParameter:$,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=m.value,T.numberFormats=k.value,T.__datetimeFormatters=ae(v)?v.__datetimeFormatters:void 0,T.__numberFormatters=ae(v)?v.__numberFormatters:void 0;const R=hh(T);return a&&il(R),R})(),eo(v,c.value,u.value);function ie(){return[c.value,u.value,f.value,m.value,k.value]}const W=he({get:()=>c.value,set:T=>{c.value=T,v.locale=c.value}}),ne=he({get:()=>u.value,set:T=>{u.value=T,v.fallbackLocale=u.value,eo(v,c.value,T)}}),Y=he(()=>f.value),D=he(()=>m.value),j=he(()=>k.value);function H(){return _e(b)?b:null}function V(T){b=T,v.postTranslation=T}function Q(){return L}function X(T){T!==null&&(_=Nl(T)),L=T,v.missing=_}const Z=(T,R,J,se,ye,Be)=>{ie();let Re;try{__INTLIFY_PROD_DEVTOOLS__,a||(v.fallbackContext=n?ph():void 0),Re=T(v)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(v.fallbackContext=void 0)}if(J!=="translate exists"&&$e(Re)&&Re===Xo||J==="translate exists"&&!Re){const[cn,Ls]=R();return n&&N?se(n):ye(cn)}else{if(Be(Re))return Re;throw Pe(Ce.UNEXPECTED_RETURN_TYPE)}};function re(...T){return Z(R=>Reflect.apply(dl,null,[R,...T]),()=>es(...T),"translate",R=>Reflect.apply(R.t,R,[...T]),R=>R,R=>z(R))}function ke(...T){const[R,J,se]=T;if(se&&!ue(se))throw Pe(Ce.INVALID_ARGUMENT);return re(R,J,Ie({resolvedMessage:!0},se||{}))}function Ze(...T){return Z(R=>Reflect.apply(hl,null,[R,...T]),()=>ts(...T),"datetime format",R=>Reflect.apply(R.d,R,[...T]),()=>Zr,R=>z(R))}function yt(...T){return Z(R=>Reflect.apply(_l,null,[R,...T]),()=>ns(...T),"number format",R=>Reflect.apply(R.n,R,[...T]),()=>Zr,R=>z(R))}function rt(T){return T.map(R=>z(R)||$e(R)||le(R)?El(String(R)):R)}const xt={normalize:rt,interpolate:T=>T,type:"vnode"};function Xt(...T){return Z(R=>{let J;const se=R;try{se.processor=xt,J=Reflect.apply(dl,null,[se,...T])}finally{se.processor=null}return J},()=>es(...T),"translate",R=>R[os](...T),R=>[El(R)],R=>Se(R))}function Qe(...T){return Z(R=>Reflect.apply(_l,null,[R,...T]),()=>ns(...T),"number format",R=>R[ss](...T),Cl,R=>z(R)||Se(R))}function En(...T){return Z(R=>Reflect.apply(hl,null,[R,...T]),()=>ts(...T),"datetime format",R=>R[as](...T),Cl,R=>z(R)||Se(R))}function p(T){F=T,v.pluralRules=F}function A(T,R){return Z(()=>{if(!T)return!1;const J=z(R)?R:c.value,se=x(J),ye=v.messageResolver(se,T);return r?ye!=null:bt(ye)||Je(ye)||z(ye)},()=>[T],"translate exists",J=>Reflect.apply(J.te,J,[T,R]),Ch,J=>le(J))}function h(T){let R=null;const J=Jr(v,u.value,c.value);for(let se=0;se{l&&(c.value=T,v.locale=T,eo(v,c.value,u.value))}),nn(n.fallbackLocale,T=>{l&&(u.value=T,v.fallbackLocale=T,eo(v,c.value,u.value))}));const B={id:wl,locale:W,fallbackLocale:ne,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,eo(v,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:Y,get modifiers(){return P},get pluralRules(){return F||{}},get isGlobal(){return a},get missingWarn(){return C},set missingWarn(T){C=T,v.missingWarn=C},get fallbackWarn(){return S},set fallbackWarn(T){S=T,v.fallbackWarn=S},get fallbackRoot(){return N},set fallbackRoot(T){N=T},get fallbackFormat(){return w},set fallbackFormat(T){w=T,v.fallbackFormat=w},get warnHtmlMessage(){return y},set warnHtmlMessage(T){y=T,v.warnHtmlMessage=T},get escapeParameter(){return $},set escapeParameter(T){$=T,v.escapeParameter=T},t:re,getLocaleMessage:x,setLocaleMessage:O,mergeLocaleMessage:U,getPostTranslationHandler:H,setPostTranslationHandler:V,getMissingHandler:Q,setMissingHandler:X,[vl]:p};return B.datetimeFormats=D,B.numberFormats=j,B.rt=ke,B.te=A,B.tm=M,B.d=Ze,B.n=yt,B.getDateTimeFormat=K,B.setDateTimeFormat=g,B.mergeDateTimeFormat=d,B.getNumberFormat=E,B.setNumberFormat=I,B.mergeNumberFormat=G,B[kl]=o,B[os]=Xt,B[as]=En,B[ss]=Qe,B}function Nh(e){const t=z(e.locale)?e.locale:kn,n=z(e.fallbackLocale)||Se(e.fallbackLocale)||ae(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,o=_e(e.missing)?e.missing:void 0,a=le(e.silentTranslationWarn)||zt(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=le(e.silentFallbackWarn)||zt(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=le(e.fallbackRoot)?e.fallbackRoot:!0,r=!!e.formatFallbackMessages,l=ae(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=_e(e.postTranslation)?e.postTranslation:void 0,f=z(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,m=!!e.escapeParameterHtml,k=le(e.sync)?e.sync:!0;let C=e.messages;if(ae(e.sharedMessages)){const $=e.sharedMessages;C=Object.keys($).reduce((F,v)=>{const q=F[v]||(F[v]={});return Ie(q,$[v]),F},C||{})}const{__i18n:S,__root:N,__injectWithOption:w}=e,L=e.datetimeFormats,_=e.numberFormats,b=e.flatJson,y=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:C,flatJson:b,datetimeFormats:L,numberFormats:_,missing:o,missingWarn:a,fallbackWarn:s,fallbackRoot:i,fallbackFormat:r,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:m,messageResolver:e.messageResolver,inheritLocale:k,translateExistCompatible:y,__i18n:S,__root:N,__injectWithOption:w}}function ls(e={},t){{const n=rs(Nh(e)),{__extender:o}=e,a={id:n.id,get locale(){return n.locale.value},set locale(s){n.locale.value=s},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(s){n.fallbackLocale.value=s},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(s){},get missing(){return n.getMissingHandler()},set missing(s){n.setMissingHandler(s)},get silentTranslationWarn(){return le(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(s){n.missingWarn=le(s)?!s:s},get silentFallbackWarn(){return le(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(s){n.fallbackWarn=le(s)?!s:s},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(s){n.fallbackFormat=s},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(s){n.setPostTranslationHandler(s)},get sync(){return n.inheritLocale},set sync(s){n.inheritLocale=s},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){n.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(s){n.escapeParameter=s},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(s){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...s){const[i,r,l]=s,c={};let u=null,f=null;if(!z(i))throw Pe(Ce.INVALID_ARGUMENT);const m=i;return z(r)?c.locale=r:Se(r)?u=r:ae(r)&&(f=r),Se(l)?u=l:ae(l)&&(f=l),Reflect.apply(n.t,n,[m,u||f||{},c])},rt(...s){return Reflect.apply(n.rt,n,[...s])},tc(...s){const[i,r,l]=s,c={plural:1};let u=null,f=null;if(!z(i))throw Pe(Ce.INVALID_ARGUMENT);const m=i;return z(r)?c.locale=r:$e(r)?c.plural=r:Se(r)?u=r:ae(r)&&(f=r),z(l)?c.locale=l:Se(l)?u=l:ae(l)&&(f=l),Reflect.apply(n.t,n,[m,u||f||{},c])},te(s,i){return n.te(s,i)},tm(s){return n.tm(s)},getLocaleMessage(s){return n.getLocaleMessage(s)},setLocaleMessage(s,i){n.setLocaleMessage(s,i)},mergeLocaleMessage(s,i){n.mergeLocaleMessage(s,i)},d(...s){return Reflect.apply(n.d,n,[...s])},getDateTimeFormat(s){return n.getDateTimeFormat(s)},setDateTimeFormat(s,i){n.setDateTimeFormat(s,i)},mergeDateTimeFormat(s,i){n.mergeDateTimeFormat(s,i)},n(...s){return Reflect.apply(n.n,n,[...s])},getNumberFormat(s){return n.getNumberFormat(s)},setNumberFormat(s,i){n.setNumberFormat(s,i)},mergeNumberFormat(s,i){n.mergeNumberFormat(s,i)},getChoiceIndex(s,i){return-1}};return a.__extender=o,a}}const cs={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Ph({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((o,a)=>[...o,...a.type===Ye?a.children:[a]],[]):t.reduce((n,o)=>{const a=e[o];return a&&(n[o]=a()),n},pe())}function Pl(e){return Ye}const Ml=jn({name:"i18n-t",props:Ie({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>$e(e)||!isNaN(e)}},cs),setup(e,t){const{slots:n,attrs:o}=t,a=e.i18n||us({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(n).filter(f=>f!=="_"),i=pe();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=z(e.plural)?+e.plural:e.plural);const r=Ph(t,s),l=a[os](e.keypath,r,i),c=Ie(pe(),o),u=z(e.tag)||ue(e.tag)?e.tag:Pl();return ar(u,c,l)}}});function Mh(e){return Se(e)&&!z(e[0])}function Il(e,t,n,o){const{slots:a,attrs:s}=t;return()=>{const i={part:!0};let r=pe();e.locale&&(i.locale=e.locale),z(e.format)?i.key=e.format:ue(e.format)&&(z(e.format.key)&&(i.key=e.format.key),r=Object.keys(e.format).reduce((m,k)=>n.includes(k)?Ie(pe(),m,{[k]:e.format[k]}):m,pe()));const l=o(e.value,i,r);let c=[i.key];Se(l)?c=l.map((m,k)=>{const C=a[m.type],S=C?C({[m.type]:m.value,index:k,parts:l}):[m.value];return Mh(S)&&(S[0].key=`${m.type}-${k}`),S}):z(l)&&(c=[l]);const u=Ie(pe(),s),f=z(e.tag)||ue(e.tag)?e.tag:Pl();return ar(f,u,c)}}const Rl=jn({name:"i18n-n",props:Ie({value:{type:Number,required:!0},format:{type:[String,Object]}},cs),setup(e,t){const n=e.i18n||us({useScope:e.scope,__useComponent:!0});return Il(e,t,yl,(...o)=>n[ss](...o))}}),Dl=jn({name:"i18n-d",props:Ie({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},cs),setup(e,t){const n=e.i18n||us({useScope:e.scope,__useComponent:!0});return Il(e,t,ml,(...o)=>n[as](...o))}});function Ih(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const o=n.__getInstance(t);return o!=null?o.__composer:e.global.__composer}}function Rh(e){const t=i=>{const{instance:r,modifiers:l,value:c}=i;if(!r||!r.$)throw Pe(Ce.UNEXPECTED_ERROR);const u=Ih(e,r.$),f=Fl(c);return[Reflect.apply(u.t,u,[...Ol(f)]),u]};return{created:(i,r)=>{const[l,c]=t(r);zo&&e.global===c&&(i.__i18nWatcher=nn(c.locale,()=>{r.instance&&r.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{zo&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:r})=>{if(i.__composer){const l=i.__composer,c=Fl(r);i.textContent=Reflect.apply(l.t,l,[...Ol(c)])}},getSSRProps:i=>{const[r]=t(i);return{textContent:r}}}}function Fl(e){if(z(e))return{path:e};if(ae(e)){if(!("path"in e))throw Pe(Ce.REQUIRED_VALUE,"path");return e}else throw Pe(Ce.INVALID_VALUE)}function Ol(e){const{path:t,locale:n,args:o,choice:a,plural:s}=e,i={},r=o||{};return z(n)&&(i.locale=n),$e(a)&&(i.plural=a),$e(s)&&(i.plural=s),[t,r,i]}function Dh(e,t,...n){const o=ae(n[0])?n[0]:{},a=!!o.useI18nComponentName;(le(o.globalInstall)?o.globalInstall:!0)&&([a?"i18n":Ml.name,"I18nT"].forEach(i=>e.component(i,Ml)),[Rl.name,"I18nN"].forEach(i=>e.component(i,Rl)),[Dl.name,"I18nD"].forEach(i=>e.component(i,Dl))),e.directive("t",Rh(t))}function Fh(e,t,n){return{beforeCreate(){const o=Nt();if(!o)throw Pe(Ce.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const s=a.i18n;if(a.__i18n&&(s.__i18n=a.__i18n),s.__root=t,this===this.$root)this.$i18n=xl(e,s);else{s.__injectWithOption=!0,s.__extender=n.__vueI18nExtend,this.$i18n=ls(s);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=xl(e,a);else{this.$i18n=ls({__i18n:a.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&$l(t,a,a),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$tc=(...s)=>this.$i18n.tc(...s),this.$te=(s,i)=>this.$i18n.te(s,i),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s),n.__setInstance(o,this.$i18n)},mounted(){},unmounted(){const o=Nt();if(!o)throw Pe(Ce.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),n.__deleteInstance(o),delete this.$i18n}}}function xl(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[vl](t.pluralizationRules||e.pluralizationRules);const n=Zo(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(o=>e.mergeLocaleMessage(o,n[o])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(o=>e.mergeDateTimeFormat(o,t.datetimeFormats[o])),t.numberFormats&&Object.keys(t.numberFormats).forEach(o=>e.mergeNumberFormat(o,t.numberFormats[o])),e}const Oh=Gt("global-vue-i18n");function xh(e={},t){const n=__VUE_I18N_LEGACY_API__&&le(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,o=le(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,s=new Map,[i,r]=jh(e,n),l=Gt("");function c(m){return s.get(m)||null}function u(m,k){s.set(m,k)}function f(m){s.delete(m)}{const m={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return a},async install(k,...C){if(k.__VUE_I18N_SYMBOL__=l,k.provide(k.__VUE_I18N_SYMBOL__,m),ae(C[0])){const w=C[0];m.__composerExtend=w.__composerExtend,m.__vueI18nExtend=w.__vueI18nExtend}let S=null;!n&&o&&(S=Wh(k,m.global)),__VUE_I18N_FULL_INSTALL__&&Dh(k,m,...C),__VUE_I18N_LEGACY_API__&&n&&k.mixin(Fh(r,r.__composer,m));const N=k.unmount;k.unmount=()=>{S&&S(),m.dispose(),N()}},get global(){return r},dispose(){i.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:f};return m}}function us(e={}){const t=Nt();if(t==null)throw Pe(Ce.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Pe(Ce.NOT_INSTALLED);const n=Bh(t),o=Uh(n),a=Tl(t),s=Kh(e,a);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw Pe(Ce.NOT_AVAILABLE_IN_LEGACY_MODE);return Hh(t,s,o,e)}if(s==="global")return $l(o,e,a),o;if(s==="parent"){let l=Gh(n,t,e.__useComponent);return l==null&&(l=o),l}const i=n;let r=i.__getInstance(t);if(r==null){const l=Ie({},e);"__i18n"in a&&(l.__i18n=a.__i18n),o&&(l.__root=o),r=rs(l),i.__composerExtend&&(r[is]=i.__composerExtend(r)),qh(i,t,r),i.__setInstance(t,r)}return r}function jh(e,t,n){const o=ra();{const a=__VUE_I18N_LEGACY_API__&&t?o.run(()=>ls(e)):o.run(()=>rs(e));if(a==null)throw Pe(Ce.UNEXPECTED_ERROR);return[o,a]}}function Bh(e){{const t=Fe(e.isCE?Oh:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Pe(e.isCE?Ce.NOT_INSTALLED_WITH_PROVIDE:Ce.UNEXPECTED_ERROR);return t}}function Kh(e,t){return qo(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Uh(e){return e.mode==="composition"?e.global:e.global.__composer}function Gh(e,t,n=!1){let o=null;const a=t.root;let s=zh(t,n);for(;s!=null;){const i=e;if(e.mode==="composition")o=i.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const r=i.__getInstance(s);r!=null&&(o=r.__composer,n&&o&&!o[kl]&&(o=null))}if(o!=null||a===s)break;s=s.parent}return o}function zh(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function qh(e,t,n){Un(()=>{},t),Io(()=>{const o=n;e.__deleteInstance(t);const a=o[is];a&&(a(),delete o[is])},t)}function Hh(e,t,n,o={}){const a=t==="local",s=ya(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Pe(Ce.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=le(o.inheritLocale)?o.inheritLocale:!z(o.locale),r=fe(!a||i?n.locale.value:z(o.locale)?o.locale:kn),l=fe(!a||i?n.fallbackLocale.value:z(o.fallbackLocale)||Se(o.fallbackLocale)||ae(o.fallbackLocale)||o.fallbackLocale===!1?o.fallbackLocale:r.value),c=fe(Zo(r.value,o)),u=fe(ae(o.datetimeFormats)?o.datetimeFormats:{[r.value]:{}}),f=fe(ae(o.numberFormats)?o.numberFormats:{[r.value]:{}}),m=a?n.missingWarn:le(o.missingWarn)||zt(o.missingWarn)?o.missingWarn:!0,k=a?n.fallbackWarn:le(o.fallbackWarn)||zt(o.fallbackWarn)?o.fallbackWarn:!0,C=a?n.fallbackRoot:le(o.fallbackRoot)?o.fallbackRoot:!0,S=!!o.fallbackFormat,N=_e(o.missing)?o.missing:null,w=_e(o.postTranslation)?o.postTranslation:null,L=a?n.warnHtmlMessage:le(o.warnHtmlMessage)?o.warnHtmlMessage:!0,_=!!o.escapeParameter,b=a?n.modifiers:ae(o.modifiers)?o.modifiers:{},y=o.pluralRules||a&&n.pluralRules;function $(){return[r.value,l.value,c.value,u.value,f.value]}const P=he({get:()=>s.value?s.value.locale.value:r.value,set:h=>{s.value&&(s.value.locale.value=h),r.value=h}}),F=he({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:h=>{s.value&&(s.value.fallbackLocale.value=h),l.value=h}}),v=he(()=>s.value?s.value.messages.value:c.value),q=he(()=>u.value),ie=he(()=>f.value);function W(){return s.value?s.value.getPostTranslationHandler():w}function ne(h){s.value&&s.value.setPostTranslationHandler(h)}function Y(){return s.value?s.value.getMissingHandler():N}function D(h){s.value&&s.value.setMissingHandler(h)}function j(h){return $(),h()}function H(...h){return s.value?j(()=>Reflect.apply(s.value.t,null,[...h])):j(()=>"")}function V(...h){return s.value?Reflect.apply(s.value.rt,null,[...h]):""}function Q(...h){return s.value?j(()=>Reflect.apply(s.value.d,null,[...h])):j(()=>"")}function X(...h){return s.value?j(()=>Reflect.apply(s.value.n,null,[...h])):j(()=>"")}function Z(h){return s.value?s.value.tm(h):{}}function re(h,M){return s.value?s.value.te(h,M):!1}function ke(h){return s.value?s.value.getLocaleMessage(h):{}}function Ze(h,M){s.value&&(s.value.setLocaleMessage(h,M),c.value[h]=M)}function yt(h,M){s.value&&s.value.mergeLocaleMessage(h,M)}function rt(h){return s.value?s.value.getDateTimeFormat(h):{}}function Ot(h,M){s.value&&(s.value.setDateTimeFormat(h,M),u.value[h]=M)}function xt(h,M){s.value&&s.value.mergeDateTimeFormat(h,M)}function Xt(h){return s.value?s.value.getNumberFormat(h):{}}function Qe(h,M){s.value&&(s.value.setNumberFormat(h,M),f.value[h]=M)}function En(h,M){s.value&&s.value.mergeNumberFormat(h,M)}const p={get id(){return s.value?s.value.id:-1},locale:P,fallbackLocale:F,messages:v,datetimeFormats:q,numberFormats:ie,get inheritLocale(){return s.value?s.value.inheritLocale:i},set inheritLocale(h){s.value&&(s.value.inheritLocale=h)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:b},get pluralRules(){return s.value?s.value.pluralRules:y},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:m},set missingWarn(h){s.value&&(s.value.missingWarn=h)},get fallbackWarn(){return s.value?s.value.fallbackWarn:k},set fallbackWarn(h){s.value&&(s.value.missingWarn=h)},get fallbackRoot(){return s.value?s.value.fallbackRoot:C},set fallbackRoot(h){s.value&&(s.value.fallbackRoot=h)},get fallbackFormat(){return s.value?s.value.fallbackFormat:S},set fallbackFormat(h){s.value&&(s.value.fallbackFormat=h)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:L},set warnHtmlMessage(h){s.value&&(s.value.warnHtmlMessage=h)},get escapeParameter(){return s.value?s.value.escapeParameter:_},set escapeParameter(h){s.value&&(s.value.escapeParameter=h)},t:H,getPostTranslationHandler:W,setPostTranslationHandler:ne,getMissingHandler:Y,setMissingHandler:D,rt:V,d:Q,n:X,tm:Z,te:re,getLocaleMessage:ke,setLocaleMessage:Ze,mergeLocaleMessage:yt,getDateTimeFormat:rt,setDateTimeFormat:Ot,mergeDateTimeFormat:xt,getNumberFormat:Xt,setNumberFormat:Qe,mergeNumberFormat:En};function A(h){h.locale.value=r.value,h.fallbackLocale.value=l.value,Object.keys(c.value).forEach(M=>{h.mergeLocaleMessage(M,c.value[M])}),Object.keys(u.value).forEach(M=>{h.mergeDateTimeFormat(M,u.value[M])}),Object.keys(f.value).forEach(M=>{h.mergeNumberFormat(M,f.value[M])}),h.escapeParameter=_,h.fallbackFormat=S,h.fallbackRoot=C,h.fallbackWarn=k,h.missingWarn=m,h.warnHtmlMessage=L}return Ai(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Pe(Ce.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const h=s.value=e.proxy.$i18n.__composer;t==="global"?(r.value=h.locale.value,l.value=h.fallbackLocale.value,c.value=h.messages.value,u.value=h.datetimeFormats.value,f.value=h.numberFormats.value):a&&A(h)}),p}const Vh=["locale","fallbackLocale","availableLocales"],jl=["t","rt","d","n","tm","te"];function Wh(e,t){const n=Object.create(null);return Vh.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw Pe(Ce.UNEXPECTED_ERROR);const i=ve(s.value)?{get(){return s.value.value},set(r){s.value.value=r}}:{get(){return s.get&&s.get()}};Object.defineProperty(n,a,i)}),e.config.globalProperties.$i18n=n,jl.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw Pe(Ce.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,jl.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(Eh(),__INTLIFY_JIT_COMPILATION__?tl(Ah):tl(yh),uh(zp),gh(Jr),__INTLIFY_PROD_DEVTOOLS__){const e=Mt();e.__INTLIFY__=!0,Qp(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Yh=Object.assign({"./locales/ar/aria.json":ed,"./locales/ar/buttons.json":td,"./locales/ar/detail.json":nd,"./locales/ar/legend.json":od,"./locales/ar/messages.json":ad,"./locales/ar/options.json":sd,"./locales/ar/prayerLaps.json":id,"./locales/ar/search.json":rd,"./locales/ar/tabs.json":ld,"./locales/de/aria.json":cd,"./locales/de/buttons.json":ud,"./locales/de/detail.json":gd,"./locales/de/legend.json":dd,"./locales/de/messages.json":fd,"./locales/de/options.json":pd,"./locales/de/prayerLaps.json":hd,"./locales/de/search.json":md,"./locales/de/tabs.json":bd,"./locales/en/aria.json":_d,"./locales/en/buttons.json":yd,"./locales/en/detail.json":Ad,"./locales/en/legend.json":Sd,"./locales/en/messages.json":vd,"./locales/en/options.json":kd,"./locales/en/popup.json":Td,"./locales/en/prayerLaps.json":$d,"./locales/en/search.json":Ed,"./locales/en/tabs.json":Ld,"./locales/es/aria.json":Cd,"./locales/es/buttons.json":wd,"./locales/es/detail.json":Nd,"./locales/es/legend.json":Pd,"./locales/es/messages.json":Md,"./locales/es/options.json":Id,"./locales/es/prayerLaps.json":Rd,"./locales/es/search.json":Dd,"./locales/es/tabs.json":Fd,"./locales/fr/aria.json":Od,"./locales/fr/buttons.json":xd,"./locales/fr/detail.json":jd,"./locales/fr/legend.json":Bd,"./locales/fr/messages.json":Kd,"./locales/fr/options.json":Ud,"./locales/fr/popup.json":Gd,"./locales/fr/prayerLaps.json":zd,"./locales/fr/search.json":qd,"./locales/fr/tabs.json":Hd,"./locales/hi/aria.json":Vd,"./locales/hi/buttons.json":Wd,"./locales/hi/detail.json":Yd,"./locales/hi/legend.json":Jd,"./locales/hi/messages.json":Xd,"./locales/hi/options.json":Zd,"./locales/hi/prayerLaps.json":Qd,"./locales/hi/search.json":ef,"./locales/it/aria.json":tf,"./locales/it/buttons.json":nf,"./locales/it/detail.json":of,"./locales/it/legend.json":af,"./locales/it/messages.json":sf,"./locales/it/options.json":rf,"./locales/it/prayerLaps.json":lf,"./locales/it/search.json":cf,"./locales/pt/aria.json":uf,"./locales/pt/buttons.json":gf,"./locales/pt/detail.json":df,"./locales/pt/legend.json":ff,"./locales/pt/messages.json":pf,"./locales/pt/options.json":hf,"./locales/pt/prayerLaps.json":mf,"./locales/pt/search.json":bf,"./locales/pt/tabs.json":_f,"./locales/ro/aria.json":yf,"./locales/ro/buttons.json":Af,"./locales/ro/detail.json":Sf,"./locales/ro/legend.json":vf,"./locales/ro/messages.json":kf,"./locales/ro/options.json":Tf,"./locales/ro/prayerLaps.json":$f,"./locales/ro/search.json":Ef,"./locales/ru/aria.json":Lf,"./locales/ru/buttons.json":Cf,"./locales/ru/detail.json":wf,"./locales/ru/legend.json":Nf,"./locales/ru/messages.json":Pf,"./locales/ru/options.json":Mf,"./locales/ru/prayerLaps.json":If,"./locales/ru/search.json":Rf,"./locales/ru/tabs.json":Df,"./locales/zh/aria.json":Ff,"./locales/zh/buttons.json":Of,"./locales/zh/detail.json":xf,"./locales/zh/legend.json":jf,"./locales/zh/messages.json":Bf,"./locales/zh/options.json":Kf,"./locales/zh/prayerLaps.json":Uf,"./locales/zh/search.json":Gf}),no={};for(const[e,t]of Object.entries(Yh)){const n=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!n)continue;const[,o,a]=n;no[o]??(no[o]={}),no[o][a]=t}const Bl=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function Jh(){var n;const t=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Bl.includes(t)?t:"en"}function Xh(){return xh({legacy:!1,globalInjection:!0,locale:Jh(),fallbackLocale:"en",messages:no,missingWarn:!1,fallbackWarn:!1})}function Kl(e,t){const n=t||Zh(e);Un(()=>{var r;const o=Nt();if(!o)return;const a=(r=o.proxy)==null?void 0:r.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot)||s.querySelector(`style[data-shadow-styles="${n}"]`))return;const i=document.createElement("style");i.setAttribute("data-shadow-styles",n),i.textContent=e,s.appendChild(i)})}function Zh(e){let t=0;for(let n=0;n(t==null?void 0:t.theme)==="dark"),a=he(()=>{var N;return((N=n==null?void 0:n.value)==null?void 0:N.pinHintLabel)||"Tap a coloured dot — someone still needs prayer"}),s=fe(!1),i=fe(null);let r=null,l=null,c=null,u=null,f=null;function m(){s.value=!1}function k(N,w){var _;let L=N==null?void 0:N.parentElement;for(let b=0;L&&b<12;b++,L=L.parentElement){if(L===w||(_=L.classList)!=null&&_.contains("profile-loader"))return null;let y="";try{y=getComputedStyle(L).position}catch{}if(y&&y!=="static"){const $=L.getBoundingClientRect();if($.height>=120&&$.width>=160)return L}}return null}function C(){const N=i.value;if(N)try{N.style.removeProperty("--pin-hint-lift");const w=N.getBoundingClientRect();if(!w.height)return;const L=Math.round(w.bottom-window.innerHeight);L>0&&N.style.setProperty("--pin-hint-lift",L+8+"px")}catch{}}function S(N){const w=i.value;if(!w||!(N!=null&&N.querySelector))return;let L=0;try{const b=N.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(b){const y=b.getBoundingClientRect(),$=w.parentElement,P=$?$.getBoundingClientRect():null;if(L=P?Math.max(y.height||0,P.bottom-y.top):y.height||0,f!==b&&typeof ResizeObserver<"u"){if(c)try{c.disconnect()}catch{}f=b,c=new ResizeObserver(()=>S(N)),c.observe(b)}}}catch{}const _=Math.min(Math.max(Math.ceil(L)||20,20),72);w.style.setProperty("--pin-hint-attrib-clear",_+"px"),C()}return Un(()=>{var _,b,y;const N=Nt(),w=(y=(b=(_=N==null?void 0:N.proxy)==null?void 0:_.$el)==null?void 0:b.getRootNode)==null?void 0:y.call(b);if(!w||typeof w.querySelector!="function")return;let L=0;r=setInterval(()=>{L++;const $=w.querySelector("canvas");$?(clearInterval(r),r=null,s.value=!0,Eo(()=>{const P=k($,w),F=i.value;if(P&&F&&F.parentElement!==P)try{P.appendChild(F),l=P}catch{}S(w),C();try{const v=i.value&&i.value.offsetParent||null;if(v&&typeof ResizeObserver<"u"){if(u)try{u.disconnect()}catch{}u=new ResizeObserver(()=>C()),u.observe(v)}}catch{}})):L>40&&(clearInterval(r),r=null)},300)}),Ea(()=>{var N;if(r&&clearInterval(r),c){try{c.disconnect()}catch{}c=null}if(f=null,u){try{u.disconnect()}catch{}u=null}if(l&&((N=i.value)==null?void 0:N.parentElement)===l)try{l.removeChild(i.value)}catch{}l=null}),Kl(` .pin-hint { position: absolute; left: 50%; bottom: calc(var(--pin-hint-attrib-clear, 20px) + 12px + var(--pin-hint-lift, 0px)); transform: translateX(-50%); z-index: 2147482000; pointer-events: none; diff --git a/public/doxa-maps/all-people-groups/all-people-groups/index.html b/public/doxa-maps/all-people-groups/all-people-groups/index.html index bb68b7b60..0bd81d00f 100644 --- a/public/doxa-maps/all-people-groups/all-people-groups/index.html +++ b/public/doxa-maps/all-people-groups/all-people-groups/index.html @@ -29,7 +29,7 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":21,"profileCount":30,"bundles":[{"bundle":"all-people-groups","scriptUrl":"./all-people-groups/all-people-groups.js","output":"doxa-maps/all-people-groups/all-people-groups.js","integrity":"sha384-ajyiOLGnsr8AOhrZpwopjFXwKGNk56IbWkBMD+2oYA+DSDjdtATeoF5muZoXhcEF","elements":["all-people-groups"],"profiles":[{"profile":"all-people-groups","file":"all-people-groups.vue","description":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","element":"all-people-groups","type":"single","isMap":true,"iframeUrl":"./all-people-groups/all-people-groups/index.html","scriptUrl":"./all-people-groups/all-people-groups.js","embed":{"iframe":"\u003ciframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-ajyiOLGnsr8AOhrZpwopjFXwKGNk56IbWkBMD+2oYA+DSDjdtATeoF5muZoXhcEF\" crossorigin=\"anonymous\">\u003c/script>\n\u003call-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/all-people-groups>"},"bundle":"all-people-groups"}]},{"bundle":"big-picture","scriptUrl":"./big-picture/big-picture.js","output":"doxa-maps/big-picture/big-picture.js","integrity":"sha384-a9W2VPCO3zJ+1pqWQadGso72rNPTfmZgO4aoGtZN7RDFQpVQbeTvy8JBsGi9VH43","elements":["bp-big-picture","bp-research-header","people-groups-grid"],"composes":["bp-research-header","people-groups-grid"],"profiles":[{"profile":"big-picture","file":"big-picture.vue","description":"The Cat-4 composite that PAIRS the two real capability elements of the","element":"bp-big-picture","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./big-picture/big-picture/index.html","scriptUrl":"./big-picture/big-picture.js","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./big-picture/big-picture.js\" integrity=\"sha384-a9W2VPCO3zJ+1pqWQadGso72rNPTfmZgO4aoGtZN7RDFQpVQbeTvy8JBsGi9VH43\" crossorigin=\"anonymous\">\u003c/script>\n\u003cbp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/bp-big-picture>"},"instances":[{"id":"big-picture","title":"Big Picture — research header ↔ people-groups grid (composite)","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/big-picture/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Big Picture — frontier accent","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"big-picture"}]},{"bundle":"cities-internet","scriptUrl":"./cities-internet/cities-internet.js","output":"doxa-maps/cities-internet/cities-internet.js","integrity":"sha384-hPi6IsGUAPVV3elxm033L7vP7obKmmoWOMv7F2iDrufqGMi6/A7Lswpb4wbOhUb+","elements":["cities-internet-map"],"profiles":[{"profile":"connectivity-list","file":"connectivity-list.vue","description":"Countries where DX people groups live, grouped by region, showing measured internet penetration","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/connectivity-list/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-hPi6IsGUAPVV3elxm033L7vP7obKmmoWOMv7F2iDrufqGMi6/A7Lswpb4wbOhUb+\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"connectivity-map","file":"connectivity-map.vue","description":"Every country shaded by measured internet penetration, with its named carriers and dominant","element":"cities-internet-map","type":"single","isMap":true,"iframeUrl":"./cities-internet/connectivity-map/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-hPi6IsGUAPVV3elxm033L7vP7obKmmoWOMv7F2iDrufqGMi6/A7Lswpb4wbOhUb+\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/data-tables/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-hPi6IsGUAPVV3elxm033L7vP7obKmmoWOMv7F2iDrufqGMi6/A7Lswpb4wbOhUb+\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}}]},{"bundle":"country-posters","scriptUrl":"./country-posters/country-posters.js","output":"doxa-maps/country-posters/country-posters.js","integrity":"sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO","elements":["country-posters-map"],"profiles":[{"profile":"countries-map","file":"countries-map.vue","description":"The researcher's workbench retargeted from people groups to COUNTRIES — region","element":"country-posters-map","type":"single","isMap":true,"iframeUrl":"./country-posters/countries-map/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"profile":"country-poster-wall","file":"country-poster-wall.vue","description":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","element":"country-posters-map","type":"single","isMap":false,"iframeUrl":"./country-posters/country-poster-wall/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"bundle":"dashboard-plus-grid","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","output":"doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js","integrity":"sha384-3+3nuh+mvj6t92UISFMgEmcWfH/aLnfaSnDVHi5f+ZMwrk04FTbkKCTXnII1/YPw","elements":["dashboard-plus-grid"],"composes":["research-dashboard","people-groups-grid"],"profiles":[{"profile":"dashboard-plus-grid","file":"dashboard-plus-grid.vue","description":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","element":"dashboard-plus-grid","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/index.html","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-3+3nuh+mvj6t92UISFMgEmcWfH/aLnfaSnDVHi5f+ZMwrk04FTbkKCTXnII1/YPw\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/dashboard-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"dashboard-plus-grid"},"element":"dashboard-plus-grid","iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"demo-map","scriptUrl":"./demo-map/demo-map.js","output":"doxa-maps/demo-map/demo-map.js","integrity":"sha384-7MInyIySoNGrpOdg+gHikv/MsKVDUkWLMokK8QGtvu/MelcWExRT3z+Bjye/EnHL","elements":["demo-map"],"profiles":[{"profile":"demo-map","file":"demo-map.vue","description":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","element":"demo-map","type":"parameterized","isMap":true,"iframeUrl":"./demo-map/demo-map/index.html","scriptUrl":"./demo-map/demo-map.js","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-7MInyIySoNGrpOdg+gHikv/MsKVDUkWLMokK8QGtvu/MelcWExRT3z+Bjye/EnHL\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/demo-map>"},"instances":[{"id":"maplibre","title":"Demo map — MapLibre (token-free)","apiBaseUrl":"","props":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"element":"demo-map","iframeUrl":"./demo-map/demo-map/maplibre/index.html","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/maplibre/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"demo-map"}]},{"bundle":"doxa-maps-spa","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","output":"doxa-maps/doxa-maps-spa/doxa-maps-spa.js","integrity":"sha384-cw2n+25OyL+mq+8x1KXLcYZbPs+7dMkWfU7ocUq3vESVlHHc5HNvpckLSbvFAhJm","elements":["doxa-maps-spa"],"composes":["bp-big-picture","doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map"],"profiles":[{"profile":"doxa-maps-spa","file":"doxa-maps-spa.vue","description":"The DX-maps app itself: one element whose vertical-tab rail nests every other","element":"doxa-maps-spa","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./doxa-maps-spa/doxa-maps-spa/index.html","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-cw2n+25OyL+mq+8x1KXLcYZbPs+7dMkWfU7ocUq3vESVlHHc5HNvpckLSbvFAhJm\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-maps-spa>"},"instances":[{"id":"app","title":"DX-Maps SPA — Big Picture + every research map (app-shell)","apiBaseUrl":"","props":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"DX-Maps"},"element":"doxa-maps-spa","iframeUrl":"./doxa-maps-spa/doxa-maps-spa/app/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/app/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-research-map","scriptUrl":"./doxa-research-map/doxa-research-map.js","output":"doxa-maps/doxa-research-map/doxa-research-map.js","integrity":"sha384-ugm8PXu3KYQmGJoQnOUaICqt07r17kQa1bINkKsrUgt89uENqvd87rxT2NBeyC9/","elements":["doxa-research-map"],"profiles":[{"profile":"research-map","file":"research-map.vue","description":"The researcher's workbench: every piece a missiologist, demographer or","element":"doxa-research-map","type":"monolithic","isMap":true,"iframeUrl":"./doxa-research-map/research-map/index.html","scriptUrl":"./doxa-research-map/doxa-research-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-ugm8PXu3KYQmGJoQnOUaICqt07r17kQa1bINkKsrUgt89uENqvd87rxT2NBeyC9/\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-research-map>"}}]},{"bundle":"doxa-simple-map","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","output":"doxa-maps/doxa-simple-map/doxa-simple-map.js","integrity":"sha384-fl3Eh//QzBhOEpF3OJcfZDXOdpyb/yxiQ5aEroT23Onjya6wvBlx+F2dUB6FiBZu","elements":["doxa-map","doxa-simple-map"],"profiles":[{"profile":"doxa-simple-map","file":"doxa-simple-map.vue","description":"The simple world map, shipped as three presets off ONE prop table —","element":"doxa-map","type":"parameterized","isMap":true,"iframeUrl":"./doxa-simple-map/doxa-simple-map/index.html","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-fl3Eh//QzBhOEpF3OJcfZDXOdpyb/yxiQ5aEroT23Onjya6wvBlx+F2dUB6FiBZu\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-map>"},"instances":[{"id":"prayer","title":"Prayer Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/prayer/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/prayer/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"engagement","title":"Engagement Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/engagement/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/engagement/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"adoption","title":"Adoption Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/adoption/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/adoption/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-vision-card","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","output":"doxa-maps/doxa-vision-card/doxa-vision-card.js","integrity":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","elements":["doxa-vision-card"],"profiles":[{"profile":"doxa-vision-card","file":"doxa-vision-card.vue","description":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","element":"doxa-vision-card","type":"parameterized","isMap":false,"iframeUrl":"./doxa-vision-card/doxa-vision-card/index.html","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-vision-card/doxa-vision-card.js\" integrity=\"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-vision-card profile-config='{\"profile\":\"doxa-vision-card\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-vision-card>"},"instances":[{"id":"default","title":"Vision card — reach at a glance","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/default/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Vision card — frontier accent","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-frontier","accent":"#22d3ee","title":"The last frontier of the gospel.","tagline":"Frontier people groups — where fewer than one in a thousand follow Jesus.","stats":[{"value":"1,910","label":"Frontier groups","note":"under 0.1% believers"},{"value":"2.1B","label":"People","note":"living in frontier settings"},{"value":"0.1%","label":"Christian","note":"or fewer, in each group"}]},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"doxa-vision-card"}]},{"bundle":"golden-path-check","scriptUrl":"./golden-path-check/golden-path-check.js","output":"doxa-maps/golden-path-check/golden-path-check.js","integrity":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","elements":["golden-path-check"],"profiles":[{"profile":"golden-path-check","file":"golden-path-check.vue","description":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","element":"golden-path-check","type":"single","isMap":false,"iframeUrl":"./golden-path-check/golden-path-check/index.html","scriptUrl":"./golden-path-check/golden-path-check.js","embed":{"iframe":"\u003ciframe src=\"./golden-path-check/golden-path-check/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./golden-path-check/golden-path-check.js\" integrity=\"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgolden-path-check profile-config='{\"profile\":\"golden-path-check\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/golden-path-check>"}}]},{"bundle":"gospel-resources","scriptUrl":"./gospel-resources/gospel-resources.js","output":"doxa-maps/gospel-resources/gospel-resources.js","integrity":"sha384-24QikjGUSAri3x94fXjrlcpJWlqDc719jT36BglGNkr0hNMmwN2Hz3wh1y9g+/Sb","elements":["gospel-resources-map"],"profiles":[{"profile":"charts","file":"charts.vue","description":"The gap by LANGUAGE (ISO 639-3) rather than by people group — because one translation serves every","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/charts/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-24QikjGUSAri3x94fXjrlcpJWlqDc719jT36BglGNkr0hNMmwN2Hz3wh1y9g+/Sb\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Two validated tables: what resources exist per people group, and whether that access is keeping","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/data-tables/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-24QikjGUSAri3x94fXjrlcpJWlqDc719jT36BglGNkr0hNMmwN2Hz3wh1y9g+/Sb\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-list","file":"resources-list.vue","description":"Which DX people groups have scripture in their own language, and which have none. The zero-resource","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/resources-list/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-24QikjGUSAri3x94fXjrlcpJWlqDc719jT36BglGNkr0hNMmwN2Hz3wh1y9g+/Sb\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-map","file":"resources-map.vue","description":"Every country shaded by how much of its unengaged population has NO gospel resource in their own","element":"gospel-resources-map","type":"single","isMap":true,"iframeUrl":"./gospel-resources/resources-map/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-24QikjGUSAri3x94fXjrlcpJWlqDc719jT36BglGNkr0hNMmwN2Hz3wh1y9g+/Sb\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}}]},{"bundle":"my-upg-100-list","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","output":"doxa-maps/my-upg-100-list/my-upg-100-list.js","integrity":"sha384-86oJ6qH4DkjSyfmK/9lNNnNjWiHuSSwSmb036ljfRQili1c9oJfxspEQjO8/qz4b","elements":["my-upg-100-list-map"],"composes":["my-upg-100-list/upg-100-list","my-upg-100-list/poster-wall"],"profiles":[{"profile":"poster-wall","file":"poster-wall.vue","description":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\" action that","element":"my-upg-100-list-map","type":"single","isMap":true,"iframeUrl":"./my-upg-100-list/poster-wall/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-86oJ6qH4DkjSyfmK/9lNNnNjWiHuSSwSmb036ljfRQili1c9oJfxspEQjO8/qz4b\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-list","file":"upg-100-list.vue","description":"A personal unreached-people-groups list painted as true boundary polygons —","element":"my-upg-100-list-map","type":"single","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-list/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-86oJ6qH4DkjSyfmK/9lNNnNjWiHuSSwSmb036ljfRQili1c9oJfxspEQjO8/qz4b\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-mfe","file":"upg-100-mfe.vue","description":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","element":"my-upg-100-list-map","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-mfe/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-86oJ6qH4DkjSyfmK/9lNNnNjWiHuSSwSmb036ljfRQili1c9oJfxspEQjO8/qz4b\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}}]},{"bundle":"people-groups-grid","scriptUrl":"./people-groups-grid/people-groups-grid.js","output":"doxa-maps/people-groups-grid/people-groups-grid.js","integrity":"sha384-M3RVF4r+s9KJ2YznjQ+g3BR4XjsA4n8uhfCk97dwyiuN1BxRdeQmmMnQILV0CwJg","elements":["people-groups-grid"],"profiles":[{"profile":"people-groups-grid","file":"people-groups-grid.vue","description":"The people-groups grid as an owned custom element: card list, search and four","element":"people-groups-grid","type":"parameterized","isMap":false,"iframeUrl":"./people-groups-grid/people-groups-grid/index.html","scriptUrl":"./people-groups-grid/people-groups-grid.js","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-M3RVF4r+s9KJ2YznjQ+g3BR4XjsA4n8uhfCk97dwyiuN1BxRdeQmmMnQILV0CwJg\" crossorigin=\"anonymous\">\u003c/script>\n\u003cpeople-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/people-groups-grid>"},"instances":[{"id":"people-groups-grid","title":"People Groups Grid — standalone (own search + 4 dropdowns)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"driven","title":"People Groups Grid — externally driven (controls off, props/events)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/driven/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/driven/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"plugin-studio","scriptUrl":"./plugin-studio/plugin-studio.js","output":"doxa-maps/plugin-studio/plugin-studio.js","integrity":"sha384-VuTJ3Db517xAN7nyV6VKdM0YJH6ToDwxyCjjAEeK69x8KompgYFCHWs29Q0BkfJp","elements":["plugin-studio"],"composes":["bp-big-picture","people-groups-grid","doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-vision-card","all-people-groups","research-dashboard"],"profiles":[{"profile":"plugin-studio","file":"plugin-studio.vue","description":"The developer's viewing surface: a sidebar that is the composability ladder","element":"plugin-studio","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./plugin-studio/plugin-studio/index.html","scriptUrl":"./plugin-studio/plugin-studio.js","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-VuTJ3Db517xAN7nyV6VKdM0YJH6ToDwxyCjjAEeK69x8KompgYFCHWs29Q0BkfJp\" crossorigin=\"anonymous\">\u003c/script>\n\u003cplugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/plugin-studio>"},"instances":[{"id":"studio","title":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","apiBaseUrl":"","props":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"element":"plugin-studio","iframeUrl":"./plugin-studio/plugin-studio/studio/index.html","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"prayer-walk-planner","scriptUrl":"./prayer-walk-planner/prayer-walk-planner.js","output":"doxa-maps/prayer-walk-planner/prayer-walk-planner.js","integrity":"sha384-+XBRYgeeX8JLpdYcc+oGtkQf+Zgc2JkFK6/tlMBh5qghF9rNAJLk1lwVxWkU0cKx","elements":["prayer-walk-planner"],"profiles":[{"profile":"prayer-walk-planner","file":"prayer-walk-planner.vue","description":"A simple polygon-drawing tool for planning prayer-walking routes.","element":"prayer-walk-planner","type":"single","isMap":true,"iframeUrl":"./prayer-walk-planner/prayer-walk-planner/index.html","scriptUrl":"./prayer-walk-planner/prayer-walk-planner.js","embed":{"iframe":"\u003ciframe src=\"./prayer-walk-planner/prayer-walk-planner/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-+XBRYgeeX8JLpdYcc+oGtkQf+Zgc2JkFK6/tlMBh5qghF9rNAJLk1lwVxWkU0cKx\" crossorigin=\"anonymous\">\u003c/script>\n\u003cprayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/prayer-walk-planner>"}}]},{"bundle":"regions-dashboard","scriptUrl":"./regions-dashboard/regions-dashboard.js","output":"doxa-maps/regions-dashboard/regions-dashboard.js","integrity":"sha384-id9PKqoerelcRD/ML+R3F+9AwInZJ0sqyh4G/qQCiloYTBW8/rdUkZM9qGUgq6Dg","elements":["regions-dashboard"],"profiles":[{"profile":"regions-list","file":"regions-list.vue","description":"A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into","element":"regions-dashboard","type":"single","isMap":false,"iframeUrl":"./regions-dashboard/regions-list/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-id9PKqoerelcRD/ML+R3F+9AwInZJ0sqyh4G/qQCiloYTBW8/rdUkZM9qGUgq6Dg\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}}]},{"bundle":"research-dashboard","scriptUrl":"./research-dashboard/research-dashboard.js","output":"doxa-maps/research-dashboard/research-dashboard.js","integrity":"sha384-+DTArUc8tv9Z668IT3aIyOwfpSeqLVcl24xxmUr78tK8WRr3SOwPlvuY5dHdVZvc","elements":["research-dashboard-map"],"profiles":[{"profile":"research-dashboard","file":"research-dashboard.vue","description":"Coordinated-Multiple-Views research dashboard for 10/40-window UPGs (live pray.doxa.life): docked facet rail + map-as-hero + linked table/charts, brushing-and-linking over one in-memory store.","element":"research-dashboard-map","type":"monolithic","isMap":true,"iframeUrl":"./research-dashboard/research-dashboard/index.html","scriptUrl":"./research-dashboard/research-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-+DTArUc8tv9Z668IT3aIyOwfpSeqLVcl24xxmUr78tK8WRr3SOwPlvuY5dHdVZvc\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-dashboard-map>"},"bundle":"research-dashboard"}]},{"bundle":"research-map-plus-grid","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","output":"doxa-maps/research-map-plus-grid/research-map-plus-grid.js","integrity":"sha384-Dyh9E7k/YtwVCKP4lulQpWs9+oqKV5LJjxEnJMufru4zAzyZpbHyz0pja7hPwIwS","elements":["research-map-plus-grid"],"composes":["doxa-research-map","people-groups-grid"],"profiles":[{"profile":"research-map-plus-grid","file":"research-map-plus-grid.vue","description":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","element":"research-map-plus-grid","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./research-map-plus-grid/research-map-plus-grid/index.html","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-Dyh9E7k/YtwVCKP4lulQpWs9+oqKV5LJjxEnJMufru4zAzyZpbHyz0pja7hPwIwS\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-map-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"research-map-plus-grid"},"element":"research-map-plus-grid","iframeUrl":"./research-map-plus-grid/research-map-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"stack-demo","scriptUrl":"./stack-demo/stack-demo.js","output":"doxa-maps/stack-demo/stack-demo.js","integrity":"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy","elements":["stack-demo"],"composes":["research-dashboard-map","people-groups-grid"],"profiles":[{"profile":"stack-demo","file":"stack-demo.vue","description":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","element":"stack-demo","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./stack-demo/stack-demo/index.html","scriptUrl":"./stack-demo/stack-demo.js","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./stack-demo/stack-demo.js\" integrity=\"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cstack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/stack-demo>"},"instances":[{"id":"pair","title":"pair","apiBaseUrl":"","props":{"profile":"stack-demo"},"element":"stack-demo","iframeUrl":"./stack-demo/stack-demo/pair/index.html","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/pair/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"template-bundle","scriptUrl":"./template-bundle/template-bundle.js","output":"doxa-maps/template-bundle/template-bundle.js","integrity":"sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28","elements":["template-bundle"],"profiles":[{"profile":"template-map-a","file":"template-map-a.vue","description":"Minimal example profile A — a colored placeholder, no Mapbox or data.","element":"template-bundle","type":"single","isMap":false,"iframeUrl":"./template-bundle/template-map-a/index.html","scriptUrl":"./template-bundle/template-bundle.js","embed":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-a/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-a\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"},"bundle":"template-bundle"},{"profile":"template-map-b","file":"template-map-b.vue","description":"Minimal example profile B — a second profile in the same bundle.","element":"template-bundle","type":"single","isMap":false,"iframeUrl":"./template-bundle/template-map-b/index.html","scriptUrl":"./template-bundle/template-bundle.js","embed":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-b/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-b\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"},"bundle":"template-bundle"}]}]}; \n\n" + "script": "\n\n" }, "bundle": "all-people-groups" } @@ -101,7 +101,7 @@ "bundle": "cities-internet", "scriptUrl": "./cities-internet/cities-internet.js", "output": "doxa-maps/cities-internet/cities-internet.js", - "integrity": "sha384-RqaP7LZai35CX83Joy3kLGhlnHOW9OwExd7LyXS+pxvxawS0VIhlW1zpG9hYweWo", + "integrity": "sha384-hPi6IsGUAPVV3elxm033L7vP7obKmmoWOMv7F2iDrufqGMi6/A7Lswpb4wbOhUb+", "elements": [ "cities-internet-map" ], @@ -117,7 +117,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -131,7 +131,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -145,7 +145,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ] @@ -154,7 +154,7 @@ "bundle": "country-posters", "scriptUrl": "./country-posters/country-posters.js", "output": "doxa-maps/country-posters/country-posters.js", - "integrity": "sha384-BekKJLrplB/C2yM5LktAqgQVgu6c2bMXXj8q8YcXCc5k0MSaA5j3eSB4pBfnuqpX", + "integrity": "sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO", "elements": [ "country-posters-map" ], @@ -170,7 +170,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -184,7 +184,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ] @@ -237,7 +237,7 @@ "bundle": "demo-map", "scriptUrl": "./demo-map/demo-map.js", "output": "doxa-maps/demo-map/demo-map.js", - "integrity": "sha384-K2NX+xsAChEWESHmT4mbibzCKJAe7dG8YlBlNBeAIFESgEEa0rfqhtO0xMzGoEDr", + "integrity": "sha384-7MInyIySoNGrpOdg+gHikv/MsKVDUkWLMokK8QGtvu/MelcWExRT3z+Bjye/EnHL", "elements": [ "demo-map" ], @@ -253,7 +253,7 @@ "scriptUrl": "./demo-map/demo-map.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" }, "instances": [ { @@ -331,7 +331,7 @@ "bundle": "doxa-research-map", "scriptUrl": "./doxa-research-map/doxa-research-map.js", "output": "doxa-maps/doxa-research-map/doxa-research-map.js", - "integrity": "sha384-7S1T7VPYgSO4kuv8c9z986t07Px9CCSldEencPmTmSOKw3O7EyHreSIR2oTjltXW", + "integrity": "sha384-ugm8PXu3KYQmGJoQnOUaICqt07r17kQa1bINkKsrUgt89uENqvd87rxT2NBeyC9/", "elements": [ "doxa-research-map" ], @@ -347,7 +347,7 @@ "scriptUrl": "./doxa-research-map/doxa-research-map.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ] @@ -356,7 +356,7 @@ "bundle": "doxa-simple-map", "scriptUrl": "./doxa-simple-map/doxa-simple-map.js", "output": "doxa-maps/doxa-simple-map/doxa-simple-map.js", - "integrity": "sha384-5h+E+VvqqnWYLB6JJlilhVDhIcReDkjMbXMj/tcxZ30PFWB2KzYIf7EA3CDo6sM7", + "integrity": "sha384-fl3Eh//QzBhOEpF3OJcfZDXOdpyb/yxiQ5aEroT23Onjya6wvBlx+F2dUB6FiBZu", "elements": [ "doxa-map", "doxa-simple-map" @@ -373,7 +373,7 @@ "scriptUrl": "./doxa-simple-map/doxa-simple-map.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" }, "instances": [ { @@ -556,7 +556,7 @@ "bundle": "gospel-resources", "scriptUrl": "./gospel-resources/gospel-resources.js", "output": "doxa-maps/gospel-resources/gospel-resources.js", - "integrity": "sha384-nFY1cewUGJeRgiA3CHjnnYCKMesb1Vh9dfexz7CbAljdHezciVIaND11t66EN5Se", + "integrity": "sha384-24QikjGUSAri3x94fXjrlcpJWlqDc719jT36BglGNkr0hNMmwN2Hz3wh1y9g+/Sb", "elements": [ "gospel-resources-map" ], @@ -572,7 +572,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -586,7 +586,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -600,7 +600,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -614,7 +614,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ] @@ -623,7 +623,7 @@ "bundle": "my-upg-100-list", "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "output": "doxa-maps/my-upg-100-list/my-upg-100-list.js", - "integrity": "sha384-KztI/8n0IEae2z4rU3yxpcUm0ZaYK+eKPFyPwjf/6hTsfZvCEpEeTWoURcoE3TKL", + "integrity": "sha384-86oJ6qH4DkjSyfmK/9lNNnNjWiHuSSwSmb036ljfRQili1c9oJfxspEQjO8/qz4b", "elements": [ "my-upg-100-list-map" ], @@ -643,7 +643,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -657,7 +657,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -671,7 +671,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ] @@ -741,7 +741,7 @@ "bundle": "plugin-studio", "scriptUrl": "./plugin-studio/plugin-studio.js", "output": "doxa-maps/plugin-studio/plugin-studio.js", - "integrity": "sha384-+S3A3z43puiUAZgQa8IxNHH1pIgdF34GqaTRUBxZ8uhm0yoY/AU6spel8kHjkwGz", + "integrity": "sha384-VuTJ3Db517xAN7nyV6VKdM0YJH6ToDwxyCjjAEeK69x8KompgYFCHWs29Q0BkfJp", "elements": [ "plugin-studio" ], @@ -769,7 +769,7 @@ "scriptUrl": "./plugin-studio/plugin-studio.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" }, "instances": [ { @@ -821,7 +821,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "doxa-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-Y25Bah62zTBVYbECkjizvyHgz0uexTpUG2Td22NlCrIwhrEIe2HuM87/2DD958lM", + "integrity": "sha384-id9PKqoerelcRD/ML+R3F+9AwInZJ0sqyh4G/qQCiloYTBW8/rdUkZM9qGUgq6Dg", "elements": [ "regions-dashboard" ], @@ -837,7 +837,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ] @@ -960,7 +960,7 @@ "bundle": "template-bundle", "scriptUrl": "./template-bundle/template-bundle.js", "output": "doxa-maps/template-bundle/template-bundle.js", - "integrity": "sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW", + "integrity": "sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28", "elements": [ "template-bundle" ], @@ -976,7 +976,7 @@ "scriptUrl": "./template-bundle/template-bundle.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" }, "bundle": "template-bundle" }, @@ -991,7 +991,7 @@ "scriptUrl": "./template-bundle/template-bundle.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" }, "bundle": "template-bundle" } diff --git a/public/doxa-maps/my-upg-100-list/my-upg-100-list.js b/public/doxa-maps/my-upg-100-list/my-upg-100-list.js index 491b56c0f..025cafa32 100644 --- a/public/doxa-maps/my-upg-100-list/my-upg-100-list.js +++ b/public/doxa-maps/my-upg-100-list/my-upg-100-list.js @@ -102,9 +102,9 @@ overflow: hidden; } .stl-panel { - position: absolute; left: 8px; top: 60px; width: var(--map-legend-width, 380px); z-index: 4; + position: absolute; left: 8px; top: var(--stl-top, 60px); width: var(--map-legend-width, 380px); z-index: 4; display: flex; flex-direction: column; - max-height: calc(100% - 72px); + max-height: calc(100% - var(--stl-top, 60px) - 12px); transition: transform 0.25s cubic-bezier(0.2, 0, 0, 1), opacity 0.2s; pointer-events: auto; } @@ -539,7 +539,7 @@ .stl-panel:not(.legend-mobile-sheet *) .stl-info-pop { font-size: 13px; } .stl-panel:not(.legend-mobile-sheet *) .stl-empty, .stl-panel:not(.legend-mobile-sheet *) .stl-overflow { font-size: 12.5px; } -`,"semantic-tree-legend"),(S,O)=>{var ne,ce,ge,Le;return W(),ee($e,null,[P("div",{class:Ae(["stl-panel",{closed:!M.value,"fit-content":e.hideTabs}]),"data-theme":((ne=be(i))==null?void 0:ne.theme.value)||"dark"},[P("div",x0,[P("div",{class:Ae(["stl-titlebar",{"has-progress":!!c.value}])},[P("span",S0,[un(S.$slots,"title-caret",{},void 0,!0)]),S.$slots["title-caret"]?me("",!0):(W(),ee("button",{key:0,class:Ae(["stl-collapse-btn",{closed:!M.value}]),title:M.value?"Collapse legend":"Expand legend","aria-label":M.value?"Collapse legend":"Expand legend","aria-expanded":String(M.value),onClick:O[0]||(O[0]=_e=>{M.value=!M.value,s("update:open",M.value)})},[...O[8]||(O[8]=[P("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[P("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,A0)),K.value&&U.value?(W(),ee($e,{key:1},[P("span",$0,de(K.value.tabName),1),P("button",{type:"button",class:"stl-tb-up",title:`Go up to ${K.value.node.label}`,"aria-label":`Go up to ${K.value.tabName} ${K.value.node.label}`,onClick:Dt(X,["stop"])},[O[9]||(O[9]=P("svg",{class:"stl-tb-up-icon",width:"9",height:"9",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[P("path",{d:"M3 7.5L6 4.5L9 7.5",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),K.value.node.color?(W(),ee("span",{key:0,class:"stl-tb-dot",style:et({background:K.value.node.color})},null,4)):me("",!0),P("span",{class:"stl-tb-text",title:K.value.node.label},de(K.value.node.label),9,C0)],8,L0)],64)):(W(),ee("span",E0,de(u.value),1)),me("",!0),c.value?(W(),rt(Nu,{key:4,class:"stl-progress","show-text":!1,covered:c.value.covered,total:c.value.total,segments:c.value.segments,"is-dark":p.value,"fmt-count":re,onSelectSegment:x},null,8,["covered","total","segments","is-dark"])):me("",!0)],2),e.hideTabs?me("",!0):(W(),ee("div",T0,[P("div",P0,[(W(!0),ee($e,null,St(m.value,(_e,ct)=>(W(),ee("div",{key:_e.id,class:Ae(["stl-tab-chip",{active:G.value===ct}])},[P("button",{class:"stl-tab",onClick:Fe=>q(ct)},de(a(_e)),9,M0),_e.info?(W(),ee("button",{key:0,class:"stl-tab-info",title:_e.info,onClick:Fe=>b(ct,Fe)},"i",8,N0)):me("",!0)],2))),128))]),I.value!==null&&((ce=m.value[I.value])!=null&&ce.info)?(W(),ee("div",I0,de(m.value[I.value].info),1)):me("",!0)])),P("div",R0,[O[13]||(O[13]=P("span",{class:"stl-caret-sp"},null,-1)),O[14]||(O[14]=P("span",{class:"stl-dot-sp"},null,-1)),P("span",F0,de(e.columnLabel||(e.hideTabs?e.title:a(m.value[G.value])||be(o)("legend.columns.name"))),1),A.value?(W(),ee("button",{key:0,class:Ae(["stl-hdr-num",{active:F.value==="count"}]),title:be(o)("legend.sortByUpgs"),onClick:O[4]||(O[4]=_e=>oe("count"))},[dt(de(be(o)("legend.columns.upgs"))+" ",1),F.value==="count"?(W(),ee("span",D0,de(H.value==="desc"?"▼":"▲"),1)):me("",!0)],10,O0)):me("",!0),N.value?(W(),ee("button",{key:1,class:Ae(["stl-hdr-num",{active:F.value==="pop"}]),title:be(o)("legend.sortByPop"),onClick:O[5]||(O[5]=_e=>oe("pop"))},[dt(de(be(o)("legend.columns.population"))+" ",1),F.value==="pop"?(W(),ee("span",j0,de(H.value==="desc"?"▼":"▲"),1)):me("",!0)],10,B0)):me("",!0),O[15]||(O[15]=P("span",{class:"stl-x-slot"},null,-1))]),P("div",{class:Ae(["stl-rows",{"has-sel":$t.value}]),ref_key:"rowsContainer",ref:T},[(W(!0),ee($e,null,St(Ye.value,_e=>{var ct,Fe;return W(),ee("div",{key:_e.node.id,class:Ae(["stl-row",j(_e)]),"data-stl-node-id":_e.node.id,style:et({"--trunk-color":((ct=_e.parent)==null?void 0:ct.color)||"#6e7681","--row-color":_e.node.color||"#73A17F"}),onClick:tt=>Y(_e.node)},[(W(!0),ee($e,null,St(_e.trunks,(tt,lo)=>(W(),ee("span",{key:`tr${lo}`,class:Ae(["stl-trunk",`stl-trunk-${tt}`])},null,2))),128)),(Fe=_e.node.children)!=null&&Fe.length?(W(),ee("button",{key:0,class:Ae(["stl-caret",{open:L.value.has(_e.node.id)}]),onClick:Dt(tt=>Z(_e.node.id,tt),["stop"])},[...O[16]||(O[16]=[P("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[P("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,U0)):(W(),ee("span",K0)),_e.node.color?(W(),ee("span",{key:2,class:"stl-dot",style:et({background:_e.node.color})},null,4)):(W(),ee("span",z0)),P("span",H0,de(_e.node.label),1),A.value?(W(),ee("span",V0,de(re(_e.node.count)),1)):me("",!0),N.value?(W(),ee("span",W0,de(ie(_e.node.pop)),1)):me("",!0),P("span",Y0,[B.value===_e.node.id?(W(),ee("button",{key:0,class:"stl-x-chip",title:"Clear selection",onClick:O[6]||(O[6]=Dt(tt=>f(tt),["stop"]))},[...O[17]||(O[17]=[P("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[P("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])])):me("",!0)])],14,G0)}),128)),Pe.value&&!Ye.value.length?(W(),ee("div",q0,[O[18]||(O[18]=P("span",{class:"stl-spinner"},null,-1)),P("span",null,"Loading "+de(((ge=m.value[G.value])==null?void 0:ge.label)||"rows")+"…",1)])):!Ye.value.length&&e.nodes.length===0?(W(),ee("div",J0,"Loading data…")):Ye.value.length?me("",!0):(W(),ee("div",Z0,"No data at this level")),Ke.value>0?(W(),ee("div",X0,[dt(" Showing top "+de(m.value[G.value].topLimit.toLocaleString())+" of "+de(Qe.value.length.toLocaleString())+" — ",1),O[19]||(O[19]=P("span",{class:"stl-overflow-hint"},"use the geocoder above to find the rest",-1))])):me("",!0)],2)])],10,w0),M.value?me("",!0):(W(),ee("button",{key:0,class:"stl-reopen","data-theme":((Le=be(i))==null?void 0:Le.theme.value)||"dark",title:"Expand legend",onClick:O[7]||(O[7]=_e=>{M.value=!0,s("update:open",!0)})},[O[20]||(O[20]=P("svg",{class:"stl-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[P("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),P("span",e_,[U.value?(W(),ee($e,{key:0},[U.value.color?(W(),ee("span",{key:0,class:"stl-reopen-dot",style:et({background:U.value.color})},null,4)):me("",!0),dt(" "+de(U.value.label),1)],64)):(W(),ee($e,{key:1},[dt(de(u.value),1)],64))]),O[21]||(O[21]=P("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none",class:"stl-reopen-caret"},[P("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Q0))],64)}}},[["styles",[k0]],["__scopeId","data-v-8a5e8f8d"]]),Ru="peoplePraying",nr=144,Do={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Jo=Do,Es={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},t_=Es;function ar(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>=nr?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function Ts(e){return Do[ar(e)]}function Fu(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 Ou(e){return ar(e)==="fullPrayer"}function Du(e){return Ts(e)}function Ps({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,nr],Do.fullPrayer,[">",t,0],Do.hasPrayer,Do.noPrayer]}const Bu=Ps,o_=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:nr,LABELS:Es,PALETTE:Do,PRAYER_COLORS:Jo,PRAYER_LABELS:t_,PROPERTY_KEY:Ru,applyColor:Ps,buildColorExpression:Bu,checkHasFullPrayer:Ou,checkHasPrayer:Fu,default:{name:"Prayer Progress",propertyKey:Ru,palette:Do,colors:Do,labels:Es,threshold:nr,getColor:Du,applyColor:Ps,buildColorExpression:Bu,getPrayerLevel:ar,getPrayerColor:Ts,checkHasPrayer:Fu,checkHasFullPrayer:Ou},getColor:Du,getPrayerColor:Ts,getPrayerLevel:ar},Symbol.toStringTag,{value:"Module"}));function ju(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Qo&&Qo.tagName.toUpperCase()==="SCRIPT"&&Qo.src||new URL("my-upg-100-list.js",document.baseURI).href}<"u"&&"https://pray.doxa.life"||""}const Ms=ue(0),rr=ue(0),sr=ue(0),Ns=ue(!1),Is=ue(!1),Rs=ue(null);let aa=null;async function n_(){if(!Ns.value)return aa||(Is.value=!0,Rs.value=null,aa=(async()=>{var e,t;try{const o=((e=na==null?void 0:na.sources)==null?void 0:e[na.activeSource])||{},n=ju(),a=((t=o.endpoints)==null?void 0:t.statistics)||"/api/people-groups/statistics",r=await fetch(`${n}${a}`,{cache:"no-store"});if(!r.ok)throw new Error(`statistics HTTP ${r.status}`);const s=await r.json();Ms.value=Number(s.total||0),rr.value=Number(s.total_with_prayer_committed??s.total_with_prayer??0),sr.value=Number(s.total_with_100_committed??s.total_with_full_prayer??0),Ns.value=!0}catch(o){Rs.value=o&&o.message?o.message:String(o)}finally{Is.value=!1,aa=null}})(),aa)}function a_(){return{total:Ms,withPrayer:rr,withFullPrayer:sr,loaded:Ns,loading:Is,error:Rs,load:n_,noPrayerCount:()=>Math.max(0,Ms.value-rr.value),hasPrayerCount:()=>Math.max(0,rr.value-sr.value),fullPrayerCount:()=>sr.value}}const Gu="engagementStatus",$o={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Fs=$o,Os={notEngaged:"Unengaged",hasEngagement:"Engaged"},r_=Os;function Uu(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)?$o.hasEngagement:$o.notEngaged}function Ds({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],$o.hasEngagement,["==",t,1],$o.hasEngagement,$o.notEngaged]}const Ku=Ds,s_=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Fs,ENGAGEMENT_LABELS:r_,LABELS:Os,PALETTE:$o,PROPERTY_KEY:Gu,applyColor:Ds,buildColorExpression:Ku,default:{name:"Engagement Progress",propertyKey:Gu,palette:$o,colors:$o,labels:Os,getColor:Uu,applyColor:Ds,buildColorExpression:Ku},getColor:Uu},Symbol.toStringTag,{value:"Module"})),zu="adoptionStatus",Lo={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Bs=Lo,js={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},i_=js;function Hu(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)?Lo.hasAdoption:Lo.notAdopted}function Gs({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Lo.hasAdoption,["==",t,1],Lo.hasAdoption,Lo.notAdopted]}const Vu=Gs,l_=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Bs,ADOPTION_LABELS:i_,LABELS:js,PALETTE:Lo,PROPERTY_KEY:zu,applyColor:Gs,buildColorExpression:Vu,default:{name:"Adoption Progress",propertyKey:zu,palette:Lo,colors:Lo,labels:js,getColor:Hu,applyColor:Gs,buildColorExpression:Vu},getColor:Hu},Symbol.toStringTag,{value:"Module"})),Us="languageFamily",c_="#000000",Bo={"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"},Wu=Bo;function Yt(e){return Bo[e]||c_}const u_=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(Bo))t[e(o)]=o;return t})(),d_={"tai-kadai":"Kra-Dai",none:"Unknown"};function Ks(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return d_[o]||u_[o]||t}function Yu(e){var t;return Yt(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function zs(){const e=["match",["get",Us]];return Object.entries(Bo).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const qu=zs,p_=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Wu,PALETTE:Bo,PROPERTY_KEY:Us,applyColor:zs,buildColorExpression:qu,canonicalFamilyName:Ks,default:{name:"Language Family",propertyKey:Us,palette:Bo,colors:Bo,getColor:Yu,applyColor:zs,buildColorExpression:qu,getLanguageFamilyColor:Yt,canonicalFamilyName:Ks},defaultFamilyColor:"#95a5a6",getColor:Yu,getLanguageFamilyColor:Yt,languageFamilyColors:Bo},Symbol.toStringTag,{value:"Module"})),Ju="religion",Hs="#94a3b8",ra={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Bt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function sa(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return ra[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 Bt[sa(t)]||Hs}function Vs(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Bt.C,"M",Bt.M,"H",Bt.H,"B",Bt.B,"E",Bt.E,"J",Bt.J,"S",Bt.S,"N",Bt.N,"O",Bt.O,Hs]}const Xu=Vs,g_=Object.assign({"./adoption.js":l_,"./engagement.js":s_,"./language-family.js":p_,"./prayer-progress.js":o_,"./religion.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Bt,PROPERTY_KEY:Ju,RELIGION_FAMILIES:ra,applyColor:Vs,buildColorExpression:Xu,default:{name:"Religion",propertyKey:Ju,palette:Bt,families:ra,getColor:Zu,applyColor:Vs,buildColorExpression:Xu,fallback:Hs},getColor:Zu,getReligionFamily:sa},Symbol.toStringTag,{value:"Module"}))}),f_=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),h_=e=>e.replace(/-/g,"_").toUpperCase(),xn={...{STATUS:"status",CUSTOM:"custom"}},Ws={};function m_(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=f_(o);xn[h_(o)]=a,Ws[a]=n}}m_(g_);function ir(e){return Ws[e]||Ws[xn.LANGUAGE_FAMILY]}const At={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"};function b_(e){return(e==null?void 0:e.properties)||e||{}}function lr(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function y_(e){if(!e||typeof e!="string")return null;const t=e.split(",").map(n=>n.trim()).filter(Boolean);if(t.length>=2){const n=[...t].reverse().join(" ");if(At[n])return At[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(At[a])return At[a]}}if(At[e])return At[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();return o!==e&&At[o]?At[o]:null}const __=[[/ sign language$/i,"Sign Language"]];function v_(e){if(!e||typeof e!="string")return"— Unknown —";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function k_(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function w_(e){var s,i,l,c;const t=e.language_family??e.languageFamily??((s=e._raw)==null?void 0:s.LanguageFamily)??((i=e._raw)==null?void 0:i.language_family),o=lr(t),n=Ks(o);if(n&&n!=="Unknown")return n;const a=e.primary_language??e.primaryLanguage??((l=e._raw)==null?void 0:l.PrimaryLanguage)??((c=e._raw)==null?void 0:c.primary_language),r=lr(a);if(r){const u=String(r).trim(),p=y_(u);if(p)return p;for(const[g,x]of __)if(g.test(u))return x}return"Unknown"}function x_(e){var a,r;const t=((a=e._raw)==null?void 0:a.primary_language)??((r=e._raw)==null?void 0:r.PrimaryLanguage);if(t){const s=lr(t);if(s)return String(s).trim()}const o=e.primary_language??e.primaryLanguage??e.language,n=lr(o);return n&&String(n).trim()||"— Unknown —"}function S_(e){var o,n;const t=e.population??((o=e._raw)==null?void 0:o.Population)??((n=e._raw)==null?void 0:n.population)??0;return parseInt(t,10)||0}function A_(e,t){var o,n;return(e==null?void 0:e.id)??t.id??t.peopleGroupId??((o=t._raw)==null?void 0:o.PeopleID3)??((n=t._raw)==null?void 0:n.PeopleID)??null}function $_(e,t){return(e==null?void 0:e.clusterId)??t.clusterId??null}function L_(e,t){var a,r,s,i;const o=parseFloat(t.latitude??t.lat??((a=t._raw)==null?void 0:a.Latitude)??((r=t._raw)==null?void 0:r.latitude)),n=parseFloat(t.longitude??t.lng??((s=t._raw)==null?void 0:s.Longitude)??((i=t._raw)==null?void 0:i.longitude));return!isFinite(o)||!isFinite(n)?null:[n,o]}function C_(e,t){return t.peopleGroupCount!==e.peopleGroupCount?t.peopleGroupCount-e.peopleGroupCount:(t.population||0)-(e.population||0)}function cr(e,t){return(t.population||0)!==(e.population||0)?(t.population||0)-(e.population||0):t.peopleGroupCount-e.peopleGroupCount}function Qu(e,t={}){t.aggregator;const o=on({});function n(h){return!!o[h]}function a(h){o[h]=!o[h]}function r(h){const d=new Set(Array.isArray(h)?h:[]);for(const y of Object.keys(o))d.has(y)||(o[y]=!1);for(const y of d)o[y]=!0}const s=Q(()=>{const h=(e==null?void 0:e.value)||[],d=new Map;for(const y of h){const k=b_(y),v=w_(k),_=x_(k),m=v_(_),$=k_(_),L=S_(k),R=A_(y,k),M=$_(y,k),I=L_(y,k);let C=d.get(v);C||(C={key:v,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,languages:new Map},d.set(v,C)),C.peopleGroupCount+=1,C.population+=L,R!=null&&C.pinIds.push(R),I&&C.coords.push(I),M&&!C.clusterId&&(C.clusterId=M);let F=C.languages.get(m);if(F||(F={key:m,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,dialects:new Map},C.languages.set(m,F)),F.peopleGroupCount+=1,F.population+=L,R!=null&&F.pinIds.push(R),I&&F.coords.push(I),M&&!F.clusterId&&(F.clusterId=M),$){let H=F.dialects.get($);H?H.originalLabels.add(_):(H={key:$,peopleGroupCount:0,population:0,pinIds:[],coords:[],originalLabels:new Set([_])},F.dialects.set($,H)),H.peopleGroupCount+=1,H.population+=L,R!=null&&H.pinIds.push(R),I&&H.coords.push(I)}}return d}),i=t.showAllKnown!==!1,l=Q(()=>{const h=s.value,d=[],y=new Set;for(const k of h.values())d.push({key:k.key,label:k.key,color:Yt(k.key),peopleGroupCount:k.peopleGroupCount,population:k.population,kind:k.clusterId?"cluster":"family",clusterId:k.clusterId||void 0,pinIds:k.pinIds,coords:k.coords}),y.add(k.key);if(i)for(const k of Object.keys(Wu))y.has(k)||d.push({key:k,label:k,color:Yt(k),peopleGroupCount:0,population:0,kind:"family",pinIds:[],coords:[]});return d.sort(C_),d});function c(h){const d=s.value.get(h);if(!d)return[];const y=[];for(const k of d.languages.values())y.push({key:`${h}__${k.key}`,label:k.key,color:Yt(h),peopleGroupCount:k.peopleGroupCount,population:k.population,kind:k.clusterId?"cluster":"language",familyKey:h,clusterId:k.clusterId||void 0,pinIds:k.pinIds,coords:k.coords,hasDialects:k.dialects.size>0});return y.sort(cr),y}function u(h){const d=h.indexOf("__");if(d<0)return[];const y=h.slice(0,d),k=h.slice(d+2),v=s.value.get(y);if(!v)return[];const _=v.languages.get(k);if(!_)return[];const m=[];for(const $ of _.dialects.values())m.push({key:`${h}__${$.key}`,label:`${k}, ${$.key}`,dialectOnly:$.key,color:Yt(y),peopleGroupCount:$.peopleGroupCount,population:$.population,kind:"dialect",languageKey:k,familyKey:y,pinIds:$.pinIds,coords:$.coords,originalLabels:Array.from($.originalLabels)});return m.sort(cr),m}const p=Q(()=>{const h=s.value,d=[];for(const y of h.values())for(const k of y.languages.values())d.push({key:`${y.key}__${k.key}`,label:k.key,color:Yt(y.key),peopleGroupCount:k.peopleGroupCount,population:k.population,kind:k.clusterId?"cluster":"language",familyKey:y.key,clusterId:k.clusterId||void 0,pinIds:k.pinIds,coords:k.coords,hasDialects:k.dialects.size>0});return d.sort(cr),d}),g=Q(()=>{const h=s.value,d=[];for(const y of h.values())for(const k of y.languages.values())for(const v of k.dialects.values())d.push({key:`${y.key}__${k.key}__${v.key}`,label:`${k.key}, ${v.key}`,dialectOnly:v.key,color:Yt(y.key),peopleGroupCount:v.peopleGroupCount,population:v.population,kind:"dialect",languageKey:k.key,familyKey:y.key,pinIds:v.pinIds,coords:v.coords,originalLabels:Array.from(v.originalLabels)});return d.sort(cr),d});function x(h){let d=h;if(typeof h=="string"&&(d=l.value.find(k=>k.key===h),!d))return;const y={kind:d.kind,pinIds:d.pinIds||[],coords:d.coords||[]};d.kind==="family"&&(y.familyKey=d.label),d.kind==="language"&&(y.languageKey=d.label,y.familyKey=d.familyKey),d.kind==="dialect"&&(y.dialectKey=d.key,y.dialectOnly=d.dialectOnly||d.label,y.languageKey=d.languageKey,y.familyKey=d.familyKey,y.originalLabels=d.originalLabels||[]),d.kind==="cluster"&&(y.clusterId=d.clusterId),typeof window<"u"&&typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:highlight",{detail:y}))}const w=Q(()=>{const h=s.value,d=[];for(const y of h.values()){const k=Yt(y.key),v=[];for(const m of y.languages.values()){m.key&&m.key!=="— Unknown —"&&v.push(m.key);for(const $ of m.dialects.values())for(const L of $.originalLabels)L&&v.push(L)}const _={id:`fam:${y.key}`,label:y.key,color:k,count:y.peopleGroupCount,pop:y.population,filter:v.length>0?["any",["==",["get","languageFamily"],y.key],["in",["get","language"],["literal",Array.from(new Set(v))]]]:["==",["get","languageFamily"],y.key],children:[]};for(const m of y.languages.values()){const $=m.key,L={id:`lang:${y.key}__${$}`,label:$,color:k,count:m.peopleGroupCount,pop:m.population,filter:["any",["==",["get","language"],$],["==",["slice",["get","language"],0,$.length+1],$+","],["in"," "+$,["get","language"]]],children:[]};for(const R of m.dialects.values()){const M=Array.from(R.originalLabels);L.children.push({id:`dial:${y.key}__${$}__${R.key}`,label:`${$}, ${R.key}`,color:k,count:R.peopleGroupCount,pop:R.population,filter:M.length===1?["==",["get","language"],M[0]]:["in",["get","language"],["literal",M]],originalLabels:M,children:[]})}_.children.push(L)}d.push(_)}return d.sort((y,k)=>k.pop-y.pop||k.count-y.count),d});return{rows:l,languageRows:p,dialectRows:g,langTree:w,toggle:a,isExpanded:n,setExpansionToOnly:r,childRowsFor:c,dialectRowsFor:u,highlight:x}}const E_=[];function T_(){const e=ir(xn.RESOURCE);return e&&e.propertyKey==="resourceType"?e:null}function P_(){const e=ir(xn.DOXA_REGION);return e&&e.propertyKey==="doxaRegion"?e.palette||{}:{}}function M_(){const e=ir(xn.AFFINITY_BLOCK);if(!e||e.propertyKey!=="affinityBlock")return{};const t=e.names||{},o=e.palette||{},n={};for(const a of Object.keys(t))n[t[a]]=o[a]||"#999";return n}function Zo(e,t){const a=Object.values(e.sources||{}).flatMap(r=>(r==null?void 0:r.features)||[]).filter(r=>t(r.properties||r));return{count:a.length,population:a.reduce((r,s)=>{var l;const i=s.properties||s;return r+(parseInt(i.population||((l=i._raw)==null?void 0:l.Population)||0)||0)},0)}}const ed=100;function N_(e){var o;let t=(e==null?void 0:e.peopleCommitted)??((o=e==null?void 0:e._raw)==null?void 0:o.people_committed)??(e==null?void 0:e.people_committed)??null;return t&&typeof t=="object"&&(t=t.value??t.label??0),Number(t)||0}function Ys(e){return t=>{const o=N_(t);return e==="fullPrayer"?o>=ed:e==="hasPrayer"?o>0&&o0||typeof t=="string"&&parseInt(t,10)>0}function od(e){var o;const t=e.adoptionStatus??((o=e._raw)==null?void 0:o.adopted_by_churches);return t===!0||t===1||t==="1"||t==="true"||typeof t=="number"&&t>0||typeof t=="string"&&parseInt(t,10)>0}const I_={prayer:"legend.title.prayer",engagement:"legend.title.engagement",adoption:"legend.title.adoption","language-families":"legend.title.languageFamilies","language-family":"legend.title.languageFamilies","doxa-regions":"legend.title.doxaRegions","doxa-region":"legend.title.doxaRegions","affinity-blocs":"legend.title.affinityBlocs",countries:"legend.title.countries",country:"legend.title.countries","gospel-resources":"legend.title.gospelResources",religion:"legend.title.religion"};function Sn(e){return e==="doxa-region"?"doxa-regions":e==="country"?"countries":e}function R_(e){return e?e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString():"0"}function F_(e){return(Number(e)||0).toLocaleString()}function O_(e,t={}){const o=Ee("dataStore"),n=Ee("uiStore"),a=Ee("mapStore"),{t:r}=kt(),s=a_();s.load();const i=Q(()=>{if(Sn(e.value)==="religion")return"Religion";const y=I_[e.value];return y?r(y):""}),l=Q(()=>Sn(e.value)==="affinity-blocs"?E_:[{key:"count",label:r("legend.columns.upgs"),width:48},{key:"population",label:r("legend.columns.population"),width:48}]),c=Q(()=>{const d=Sn(e.value);return d==="prayer"?n.prayerFilter:d==="engagement"?n.engagementFilter:d==="adoption"?n.adoptionFilter:d==="language-families"?a.selectedFamily:d==="doxa-regions"?a.selectedRegion:d==="gospel-resources"?a.selectedResource:d==="religion"?n.religionFilter:null});function u(d){const y=Sn(e.value);y==="prayer"?n.setPrayerFilter(n.prayerFilter===d?null:d):y==="engagement"?n.setEngagementFilter(n.engagementFilter===d?null:d):y==="adoption"?n.setAdoptionFilter(n.adoptionFilter===d?null:d):y==="language-families"?a.selectFamily(a.selectedFamily===d?null:d):y==="doxa-regions"?a.selectRegion(a.selectedRegion===d?null:d):y==="gospel-resources"?a.selectResource(a.selectedResource===d?null:d):y==="religion"&&n.setReligionFilter(n.religionFilter===d?null:d)}const p=Q(()=>{var y,k,v,_;const d=Sn(e.value);if(d==="prayer"){const m=Zo(o,Ys("noPrayer")),$=Zo(o,Ys("hasPrayer")),L=Zo(o,Ys("fullPrayer")),R=s.loaded.value,M=R?s.noPrayerCount():m.count,I=R?s.hasPrayerCount():$.count,C=R?s.fullPrayerCount():L.count;return[{key:"noPrayer",label:r("legend.prayer.needsPrayer"),color:Jo.noPrayer,count:M,population:m.population,filterKey:"noPrayer",children:[{key:"hasPrayer",label:r("legend.prayer.hasPrayer"),color:Jo.hasPrayer,count:I,population:$.population,filterKey:"hasPrayer"},{key:"fullPrayer",label:r("legend.prayer.fullPrayerCoverage"),color:Jo.fullPrayer,count:C,population:L.population,filterKey:"fullPrayer"}]}]}if(d==="engagement"){const m=Zo(o,L=>!td(L)),$=Zo(o,L=>td(L));return[{key:"notEngaged",label:r("legend.engagement.needsEngagement"),color:Fs.notEngaged,count:m.count,population:m.population,filterKey:"notEngaged",children:[{key:"hasEngagement",label:r("legend.engagement.hasEngagement"),color:Fs.hasEngagement,count:$.count,population:$.population,filterKey:"hasEngagement"}]}]}if(d==="adoption"){const m=Zo(o,L=>!od(L)),$=Zo(o,L=>od(L));return[{key:"notAdopted",label:r("legend.adoption.needsAdoption"),color:Bs.notAdopted,count:m.count,population:m.population,filterKey:"notAdopted",children:[{key:"hasAdoption",label:r("legend.adoption.hasAdoption"),color:Bs.hasAdoption,count:$.count,population:$.population,filterKey:"hasAdoption"}]}]}if(d==="religion"){const m={},L=Object.values(o.sources||{}).flatMap(I=>(I==null?void 0:I.features)||[]);for(const I of L){const C=I.properties||I,F=C.religion||((k=(y=C._raw)==null?void 0:y.religion)==null?void 0:k.value)||((v=C._raw)==null?void 0:v.religion)||"",H=sa(F);m[H]||(m[H]={count:0,population:0}),m[H].count+=1,m[H].population+=parseInt(C.population||((_=C._raw)==null?void 0:_.Population)||0)||0}const R=new Set((t==null?void 0:t.excludeReligionFamilies)||[]);for(const I of R)delete m[I];return Object.keys(m).sort((I,C)=>I==="C"?-1:C==="C"?1:m[C].population-m[I].population).map(I=>({key:I,label:ra[I]||"Unknown",color:Bt[I]||"#94a3b8",count:m[I].count,population:m[I].population,filterKey:I,children:[]}))}if(d==="language-families")return(o.languageFamiliesData||[]).map(m=>({key:m.name,label:m.name,color:Yt(m.name),count:m.count,population:m.population,filterKey:m.name,children:[]}));if(d==="language-family"){const $={value:Object.values(o.sources||{}).flatMap(R=>(R==null?void 0:R.features)||[])},{rows:L}=Qu($);return L.value.map(R=>({key:R.key,label:R.label,color:R.color,count:R.peopleGroupCount,population:R.population,filterKey:R.key,children:[]}))}if(d==="doxa-regions"){const m=P_();return(o.doxaRegionsData||[]).map($=>({key:$.name,label:$.name,color:m[$.name]||"#999",count:$.count,population:$.population,filterKey:$.name,children:[]}))}if(d==="gospel-resources"){const m=T_(),$=(m==null?void 0:m.palette)??{},L=(m==null?void 0:m.names)??{},R=o.resourcesData||[];return Object.keys($).map(M=>{const I=R.find(C=>C.key===M);return{key:M,label:L[M]||M,color:$[M],count:(I==null?void 0:I.count)||0,population:(I==null?void 0:I.population)||0,filterKey:M,children:((I==null?void 0:I.children)||[]).map(C=>({key:C.key,label:C.name||C.key,color:C.color||$[M],count:C.count||0,population:C.population||0,filterKey:C.key}))}})}if(d==="affinity-blocs"){const m=M_();return Object.keys(m).sort().map($=>({key:$,label:$,color:m[$],filterKey:$,children:[]}))}return[]});function g(d,y){return d.reduce((k,v)=>{var m;let _=v[y]||0;return(m=v.children)!=null&&m.length&&(_+=g(v.children,y)),k+_},0)}const x=Q(()=>g(p.value,"count")),w=Q(()=>g(p.value,"population")),h=Q(()=>{if(Sn(e.value)!=="prayer")return null;const d=p.value[0];if(!d)return null;const y=(d.children||[]).find(L=>L.key==="hasPrayer"),k=(d.children||[]).find(L=>L.key==="fullPrayer"),v=Number(d.count)||0,_=Number(y==null?void 0:y.count)||0,m=Number(k==null?void 0:k.count)||0,$=(Number(y==null?void 0:y.population)||0)+(Number(k==null?void 0:k.population)||0);return{covered:_+m,total:x.value,coveredPopulation:$,totalPopulation:w.value,segments:[{key:"fullPrayer",label:(k==null?void 0:k.label)??r("legend.prayer.fullPrayerCoverage"),count:m,color:Jo.fullPrayer},{key:"hasPrayer",label:(y==null?void 0:y.label)??r("legend.prayer.hasPrayer"),count:_,color:Jo.hasPrayer},{key:"noPrayer",label:d.label,count:v,color:Jo.noPrayer}]}});return{items:p,columns:l,title:i,activeFilter:c,setFilter:u,totalCount:x,totalPopulation:w,progress:h,fmtPop:R_,fmtCount:F_}}const D_={excludeReligionFamilies:["C"]},B_="",j_={key:0,class:"lrg-title-row"},G_={class:"lrg-title-caret-slot"},U_={class:"lrg-title"},K_=["data-lrg-filter-key"],z_=["onClick"],H_={key:1,class:"lrg-caret-placeholder","aria-hidden":"true"},V_=["onClick"],W_={class:"lrg-name"},Y_={class:"lrg-badge-inner"},q_=["data-lrg-filter-key"],J_=["onClick"],Z_={class:"lrg-name"},X_={class:"lrg-badge-inner"},Q_={key:1,class:"lrg-footer"},ev={class:"lrg-footer-label"},tv=vn({__name:"LegendRows",props:{title:{type:String,default:""},items:{type:Array,required:!0},columns:{type:Array,default:()=>[]},activeFilter:{type:String,default:null},isDark:{type:Boolean,default:!1},hideColumnHeader:{type:Boolean,default:!1},showFooter:{type:Boolean,default:!1},totalCount:{type:Number,default:0},totalPopulation:{type:Number,default:0},fmtPop:{type:Function,default:e=>String(e||0)},fmtCount:{type:Function,default:e=>String(e||0)},disableCollapse:{type:Boolean,default:!1},progress:{type:Object,default:null}},emits:["filter-click"],setup(e){const{t}=kt();wt(` +`,"semantic-tree-legend"),(S,O)=>{var ne,ce,ge,Le;return W(),ee($e,null,[P("div",{class:Ae(["stl-panel",{closed:!M.value,"fit-content":e.hideTabs}]),"data-theme":((ne=be(i))==null?void 0:ne.theme.value)||"dark"},[P("div",x0,[P("div",{class:Ae(["stl-titlebar",{"has-progress":!!c.value}])},[P("span",S0,[un(S.$slots,"title-caret",{},void 0,!0)]),S.$slots["title-caret"]?me("",!0):(W(),ee("button",{key:0,class:Ae(["stl-collapse-btn",{closed:!M.value}]),title:M.value?"Collapse legend":"Expand legend","aria-label":M.value?"Collapse legend":"Expand legend","aria-expanded":String(M.value),onClick:O[0]||(O[0]=_e=>{M.value=!M.value,s("update:open",M.value)})},[...O[8]||(O[8]=[P("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[P("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,A0)),K.value&&U.value?(W(),ee($e,{key:1},[P("span",$0,de(K.value.tabName),1),P("button",{type:"button",class:"stl-tb-up",title:`Go up to ${K.value.node.label}`,"aria-label":`Go up to ${K.value.tabName} ${K.value.node.label}`,onClick:Dt(X,["stop"])},[O[9]||(O[9]=P("svg",{class:"stl-tb-up-icon",width:"9",height:"9",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[P("path",{d:"M3 7.5L6 4.5L9 7.5",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),K.value.node.color?(W(),ee("span",{key:0,class:"stl-tb-dot",style:et({background:K.value.node.color})},null,4)):me("",!0),P("span",{class:"stl-tb-text",title:K.value.node.label},de(K.value.node.label),9,C0)],8,L0)],64)):(W(),ee("span",E0,de(u.value),1)),me("",!0),c.value?(W(),rt(Nu,{key:4,class:"stl-progress","show-text":!1,covered:c.value.covered,total:c.value.total,segments:c.value.segments,"is-dark":p.value,"fmt-count":re,onSelectSegment:x},null,8,["covered","total","segments","is-dark"])):me("",!0)],2),e.hideTabs?me("",!0):(W(),ee("div",T0,[P("div",P0,[(W(!0),ee($e,null,St(m.value,(_e,ct)=>(W(),ee("div",{key:_e.id,class:Ae(["stl-tab-chip",{active:G.value===ct}])},[P("button",{class:"stl-tab",onClick:Fe=>q(ct)},de(a(_e)),9,M0),_e.info?(W(),ee("button",{key:0,class:"stl-tab-info",title:_e.info,onClick:Fe=>b(ct,Fe)},"i",8,N0)):me("",!0)],2))),128))]),I.value!==null&&((ce=m.value[I.value])!=null&&ce.info)?(W(),ee("div",I0,de(m.value[I.value].info),1)):me("",!0)])),P("div",R0,[O[13]||(O[13]=P("span",{class:"stl-caret-sp"},null,-1)),O[14]||(O[14]=P("span",{class:"stl-dot-sp"},null,-1)),P("span",F0,de(e.columnLabel||(e.hideTabs?e.title:a(m.value[G.value])||be(o)("legend.columns.name"))),1),A.value?(W(),ee("button",{key:0,class:Ae(["stl-hdr-num",{active:F.value==="count"}]),title:be(o)("legend.sortByUpgs"),onClick:O[4]||(O[4]=_e=>oe("count"))},[dt(de(be(o)("legend.columns.upgs"))+" ",1),F.value==="count"?(W(),ee("span",D0,de(H.value==="desc"?"▼":"▲"),1)):me("",!0)],10,O0)):me("",!0),N.value?(W(),ee("button",{key:1,class:Ae(["stl-hdr-num",{active:F.value==="pop"}]),title:be(o)("legend.sortByPop"),onClick:O[5]||(O[5]=_e=>oe("pop"))},[dt(de(be(o)("legend.columns.population"))+" ",1),F.value==="pop"?(W(),ee("span",j0,de(H.value==="desc"?"▼":"▲"),1)):me("",!0)],10,B0)):me("",!0),O[15]||(O[15]=P("span",{class:"stl-x-slot"},null,-1))]),P("div",{class:Ae(["stl-rows",{"has-sel":$t.value}]),ref_key:"rowsContainer",ref:T},[(W(!0),ee($e,null,St(Ye.value,_e=>{var ct,Fe;return W(),ee("div",{key:_e.node.id,class:Ae(["stl-row",j(_e)]),"data-stl-node-id":_e.node.id,style:et({"--trunk-color":((ct=_e.parent)==null?void 0:ct.color)||"#6e7681","--row-color":_e.node.color||"#73A17F"}),onClick:tt=>Y(_e.node)},[(W(!0),ee($e,null,St(_e.trunks,(tt,lo)=>(W(),ee("span",{key:`tr${lo}`,class:Ae(["stl-trunk",`stl-trunk-${tt}`])},null,2))),128)),(Fe=_e.node.children)!=null&&Fe.length?(W(),ee("button",{key:0,class:Ae(["stl-caret",{open:L.value.has(_e.node.id)}]),onClick:Dt(tt=>Z(_e.node.id,tt),["stop"])},[...O[16]||(O[16]=[P("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[P("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,U0)):(W(),ee("span",K0)),_e.node.color?(W(),ee("span",{key:2,class:"stl-dot",style:et({background:_e.node.color})},null,4)):(W(),ee("span",z0)),P("span",H0,de(_e.node.label),1),A.value?(W(),ee("span",V0,de(re(_e.node.count)),1)):me("",!0),N.value?(W(),ee("span",W0,de(ie(_e.node.pop)),1)):me("",!0),P("span",Y0,[B.value===_e.node.id?(W(),ee("button",{key:0,class:"stl-x-chip",title:"Clear selection",onClick:O[6]||(O[6]=Dt(tt=>f(tt),["stop"]))},[...O[17]||(O[17]=[P("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[P("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])])):me("",!0)])],14,G0)}),128)),Pe.value&&!Ye.value.length?(W(),ee("div",q0,[O[18]||(O[18]=P("span",{class:"stl-spinner"},null,-1)),P("span",null,"Loading "+de(((ge=m.value[G.value])==null?void 0:ge.label)||"rows")+"…",1)])):!Ye.value.length&&e.nodes.length===0?(W(),ee("div",J0,"Loading data…")):Ye.value.length?me("",!0):(W(),ee("div",Z0,"No data at this level")),Ke.value>0?(W(),ee("div",X0,[dt(" Showing top "+de(m.value[G.value].topLimit.toLocaleString())+" of "+de(Qe.value.length.toLocaleString())+" — ",1),O[19]||(O[19]=P("span",{class:"stl-overflow-hint"},"use the geocoder above to find the rest",-1))])):me("",!0)],2)])],10,w0),M.value?me("",!0):(W(),ee("button",{key:0,class:"stl-reopen","data-theme":((Le=be(i))==null?void 0:Le.theme.value)||"dark",title:"Expand legend",onClick:O[7]||(O[7]=_e=>{M.value=!0,s("update:open",!0)})},[O[20]||(O[20]=P("svg",{class:"stl-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[P("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),P("span",e_,[U.value?(W(),ee($e,{key:0},[U.value.color?(W(),ee("span",{key:0,class:"stl-reopen-dot",style:et({background:U.value.color})},null,4)):me("",!0),dt(" "+de(U.value.label),1)],64)):(W(),ee($e,{key:1},[dt(de(u.value),1)],64))]),O[21]||(O[21]=P("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none",class:"stl-reopen-caret"},[P("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Q0))],64)}}},[["styles",[k0]],["__scopeId","data-v-c2112e47"]]),Ru="peoplePraying",nr=144,Do={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Jo=Do,Es={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},t_=Es;function ar(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>=nr?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function Ts(e){return Do[ar(e)]}function Fu(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 Ou(e){return ar(e)==="fullPrayer"}function Du(e){return Ts(e)}function Ps({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,nr],Do.fullPrayer,[">",t,0],Do.hasPrayer,Do.noPrayer]}const Bu=Ps,o_=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:nr,LABELS:Es,PALETTE:Do,PRAYER_COLORS:Jo,PRAYER_LABELS:t_,PROPERTY_KEY:Ru,applyColor:Ps,buildColorExpression:Bu,checkHasFullPrayer:Ou,checkHasPrayer:Fu,default:{name:"Prayer Progress",propertyKey:Ru,palette:Do,colors:Do,labels:Es,threshold:nr,getColor:Du,applyColor:Ps,buildColorExpression:Bu,getPrayerLevel:ar,getPrayerColor:Ts,checkHasPrayer:Fu,checkHasFullPrayer:Ou},getColor:Du,getPrayerColor:Ts,getPrayerLevel:ar},Symbol.toStringTag,{value:"Module"}));function ju(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Qo&&Qo.tagName.toUpperCase()==="SCRIPT"&&Qo.src||new URL("my-upg-100-list.js",document.baseURI).href}<"u"&&"https://pray.doxa.life"||""}const Ms=ue(0),rr=ue(0),sr=ue(0),Ns=ue(!1),Is=ue(!1),Rs=ue(null);let aa=null;async function n_(){if(!Ns.value)return aa||(Is.value=!0,Rs.value=null,aa=(async()=>{var e,t;try{const o=((e=na==null?void 0:na.sources)==null?void 0:e[na.activeSource])||{},n=ju(),a=((t=o.endpoints)==null?void 0:t.statistics)||"/api/people-groups/statistics",r=await fetch(`${n}${a}`,{cache:"no-store"});if(!r.ok)throw new Error(`statistics HTTP ${r.status}`);const s=await r.json();Ms.value=Number(s.total||0),rr.value=Number(s.total_with_prayer_committed??s.total_with_prayer??0),sr.value=Number(s.total_with_100_committed??s.total_with_full_prayer??0),Ns.value=!0}catch(o){Rs.value=o&&o.message?o.message:String(o)}finally{Is.value=!1,aa=null}})(),aa)}function a_(){return{total:Ms,withPrayer:rr,withFullPrayer:sr,loaded:Ns,loading:Is,error:Rs,load:n_,noPrayerCount:()=>Math.max(0,Ms.value-rr.value),hasPrayerCount:()=>Math.max(0,rr.value-sr.value),fullPrayerCount:()=>sr.value}}const Gu="engagementStatus",$o={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Fs=$o,Os={notEngaged:"Unengaged",hasEngagement:"Engaged"},r_=Os;function Uu(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)?$o.hasEngagement:$o.notEngaged}function Ds({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],$o.hasEngagement,["==",t,1],$o.hasEngagement,$o.notEngaged]}const Ku=Ds,s_=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Fs,ENGAGEMENT_LABELS:r_,LABELS:Os,PALETTE:$o,PROPERTY_KEY:Gu,applyColor:Ds,buildColorExpression:Ku,default:{name:"Engagement Progress",propertyKey:Gu,palette:$o,colors:$o,labels:Os,getColor:Uu,applyColor:Ds,buildColorExpression:Ku},getColor:Uu},Symbol.toStringTag,{value:"Module"})),zu="adoptionStatus",Lo={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Bs=Lo,js={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},i_=js;function Hu(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)?Lo.hasAdoption:Lo.notAdopted}function Gs({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Lo.hasAdoption,["==",t,1],Lo.hasAdoption,Lo.notAdopted]}const Vu=Gs,l_=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Bs,ADOPTION_LABELS:i_,LABELS:js,PALETTE:Lo,PROPERTY_KEY:zu,applyColor:Gs,buildColorExpression:Vu,default:{name:"Adoption Progress",propertyKey:zu,palette:Lo,colors:Lo,labels:js,getColor:Hu,applyColor:Gs,buildColorExpression:Vu},getColor:Hu},Symbol.toStringTag,{value:"Module"})),Us="languageFamily",c_="#000000",Bo={"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"},Wu=Bo;function Yt(e){return Bo[e]||c_}const u_=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(Bo))t[e(o)]=o;return t})(),d_={"tai-kadai":"Kra-Dai",none:"Unknown"};function Ks(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return d_[o]||u_[o]||t}function Yu(e){var t;return Yt(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function zs(){const e=["match",["get",Us]];return Object.entries(Bo).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const qu=zs,p_=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Wu,PALETTE:Bo,PROPERTY_KEY:Us,applyColor:zs,buildColorExpression:qu,canonicalFamilyName:Ks,default:{name:"Language Family",propertyKey:Us,palette:Bo,colors:Bo,getColor:Yu,applyColor:zs,buildColorExpression:qu,getLanguageFamilyColor:Yt,canonicalFamilyName:Ks},defaultFamilyColor:"#95a5a6",getColor:Yu,getLanguageFamilyColor:Yt,languageFamilyColors:Bo},Symbol.toStringTag,{value:"Module"})),Ju="religion",Hs="#94a3b8",ra={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Bt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function sa(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return ra[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 Bt[sa(t)]||Hs}function Vs(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Bt.C,"M",Bt.M,"H",Bt.H,"B",Bt.B,"E",Bt.E,"J",Bt.J,"S",Bt.S,"N",Bt.N,"O",Bt.O,Hs]}const Xu=Vs,g_=Object.assign({"./adoption.js":l_,"./engagement.js":s_,"./language-family.js":p_,"./prayer-progress.js":o_,"./religion.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Bt,PROPERTY_KEY:Ju,RELIGION_FAMILIES:ra,applyColor:Vs,buildColorExpression:Xu,default:{name:"Religion",propertyKey:Ju,palette:Bt,families:ra,getColor:Zu,applyColor:Vs,buildColorExpression:Xu,fallback:Hs},getColor:Zu,getReligionFamily:sa},Symbol.toStringTag,{value:"Module"}))}),f_=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),h_=e=>e.replace(/-/g,"_").toUpperCase(),xn={...{STATUS:"status",CUSTOM:"custom"}},Ws={};function m_(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=f_(o);xn[h_(o)]=a,Ws[a]=n}}m_(g_);function ir(e){return Ws[e]||Ws[xn.LANGUAGE_FAMILY]}const At={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"};function b_(e){return(e==null?void 0:e.properties)||e||{}}function lr(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function y_(e){if(!e||typeof e!="string")return null;const t=e.split(",").map(n=>n.trim()).filter(Boolean);if(t.length>=2){const n=[...t].reverse().join(" ");if(At[n])return At[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(At[a])return At[a]}}if(At[e])return At[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();return o!==e&&At[o]?At[o]:null}const __=[[/ sign language$/i,"Sign Language"]];function v_(e){if(!e||typeof e!="string")return"— Unknown —";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function k_(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function w_(e){var s,i,l,c;const t=e.language_family??e.languageFamily??((s=e._raw)==null?void 0:s.LanguageFamily)??((i=e._raw)==null?void 0:i.language_family),o=lr(t),n=Ks(o);if(n&&n!=="Unknown")return n;const a=e.primary_language??e.primaryLanguage??((l=e._raw)==null?void 0:l.PrimaryLanguage)??((c=e._raw)==null?void 0:c.primary_language),r=lr(a);if(r){const u=String(r).trim(),p=y_(u);if(p)return p;for(const[g,x]of __)if(g.test(u))return x}return"Unknown"}function x_(e){var a,r;const t=((a=e._raw)==null?void 0:a.primary_language)??((r=e._raw)==null?void 0:r.PrimaryLanguage);if(t){const s=lr(t);if(s)return String(s).trim()}const o=e.primary_language??e.primaryLanguage??e.language,n=lr(o);return n&&String(n).trim()||"— Unknown —"}function S_(e){var o,n;const t=e.population??((o=e._raw)==null?void 0:o.Population)??((n=e._raw)==null?void 0:n.population)??0;return parseInt(t,10)||0}function A_(e,t){var o,n;return(e==null?void 0:e.id)??t.id??t.peopleGroupId??((o=t._raw)==null?void 0:o.PeopleID3)??((n=t._raw)==null?void 0:n.PeopleID)??null}function $_(e,t){return(e==null?void 0:e.clusterId)??t.clusterId??null}function L_(e,t){var a,r,s,i;const o=parseFloat(t.latitude??t.lat??((a=t._raw)==null?void 0:a.Latitude)??((r=t._raw)==null?void 0:r.latitude)),n=parseFloat(t.longitude??t.lng??((s=t._raw)==null?void 0:s.Longitude)??((i=t._raw)==null?void 0:i.longitude));return!isFinite(o)||!isFinite(n)?null:[n,o]}function C_(e,t){return t.peopleGroupCount!==e.peopleGroupCount?t.peopleGroupCount-e.peopleGroupCount:(t.population||0)-(e.population||0)}function cr(e,t){return(t.population||0)!==(e.population||0)?(t.population||0)-(e.population||0):t.peopleGroupCount-e.peopleGroupCount}function Qu(e,t={}){t.aggregator;const o=on({});function n(h){return!!o[h]}function a(h){o[h]=!o[h]}function r(h){const d=new Set(Array.isArray(h)?h:[]);for(const y of Object.keys(o))d.has(y)||(o[y]=!1);for(const y of d)o[y]=!0}const s=Q(()=>{const h=(e==null?void 0:e.value)||[],d=new Map;for(const y of h){const k=b_(y),v=w_(k),_=x_(k),m=v_(_),$=k_(_),L=S_(k),R=A_(y,k),M=$_(y,k),I=L_(y,k);let C=d.get(v);C||(C={key:v,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,languages:new Map},d.set(v,C)),C.peopleGroupCount+=1,C.population+=L,R!=null&&C.pinIds.push(R),I&&C.coords.push(I),M&&!C.clusterId&&(C.clusterId=M);let F=C.languages.get(m);if(F||(F={key:m,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,dialects:new Map},C.languages.set(m,F)),F.peopleGroupCount+=1,F.population+=L,R!=null&&F.pinIds.push(R),I&&F.coords.push(I),M&&!F.clusterId&&(F.clusterId=M),$){let H=F.dialects.get($);H?H.originalLabels.add(_):(H={key:$,peopleGroupCount:0,population:0,pinIds:[],coords:[],originalLabels:new Set([_])},F.dialects.set($,H)),H.peopleGroupCount+=1,H.population+=L,R!=null&&H.pinIds.push(R),I&&H.coords.push(I)}}return d}),i=t.showAllKnown!==!1,l=Q(()=>{const h=s.value,d=[],y=new Set;for(const k of h.values())d.push({key:k.key,label:k.key,color:Yt(k.key),peopleGroupCount:k.peopleGroupCount,population:k.population,kind:k.clusterId?"cluster":"family",clusterId:k.clusterId||void 0,pinIds:k.pinIds,coords:k.coords}),y.add(k.key);if(i)for(const k of Object.keys(Wu))y.has(k)||d.push({key:k,label:k,color:Yt(k),peopleGroupCount:0,population:0,kind:"family",pinIds:[],coords:[]});return d.sort(C_),d});function c(h){const d=s.value.get(h);if(!d)return[];const y=[];for(const k of d.languages.values())y.push({key:`${h}__${k.key}`,label:k.key,color:Yt(h),peopleGroupCount:k.peopleGroupCount,population:k.population,kind:k.clusterId?"cluster":"language",familyKey:h,clusterId:k.clusterId||void 0,pinIds:k.pinIds,coords:k.coords,hasDialects:k.dialects.size>0});return y.sort(cr),y}function u(h){const d=h.indexOf("__");if(d<0)return[];const y=h.slice(0,d),k=h.slice(d+2),v=s.value.get(y);if(!v)return[];const _=v.languages.get(k);if(!_)return[];const m=[];for(const $ of _.dialects.values())m.push({key:`${h}__${$.key}`,label:`${k}, ${$.key}`,dialectOnly:$.key,color:Yt(y),peopleGroupCount:$.peopleGroupCount,population:$.population,kind:"dialect",languageKey:k,familyKey:y,pinIds:$.pinIds,coords:$.coords,originalLabels:Array.from($.originalLabels)});return m.sort(cr),m}const p=Q(()=>{const h=s.value,d=[];for(const y of h.values())for(const k of y.languages.values())d.push({key:`${y.key}__${k.key}`,label:k.key,color:Yt(y.key),peopleGroupCount:k.peopleGroupCount,population:k.population,kind:k.clusterId?"cluster":"language",familyKey:y.key,clusterId:k.clusterId||void 0,pinIds:k.pinIds,coords:k.coords,hasDialects:k.dialects.size>0});return d.sort(cr),d}),g=Q(()=>{const h=s.value,d=[];for(const y of h.values())for(const k of y.languages.values())for(const v of k.dialects.values())d.push({key:`${y.key}__${k.key}__${v.key}`,label:`${k.key}, ${v.key}`,dialectOnly:v.key,color:Yt(y.key),peopleGroupCount:v.peopleGroupCount,population:v.population,kind:"dialect",languageKey:k.key,familyKey:y.key,pinIds:v.pinIds,coords:v.coords,originalLabels:Array.from(v.originalLabels)});return d.sort(cr),d});function x(h){let d=h;if(typeof h=="string"&&(d=l.value.find(k=>k.key===h),!d))return;const y={kind:d.kind,pinIds:d.pinIds||[],coords:d.coords||[]};d.kind==="family"&&(y.familyKey=d.label),d.kind==="language"&&(y.languageKey=d.label,y.familyKey=d.familyKey),d.kind==="dialect"&&(y.dialectKey=d.key,y.dialectOnly=d.dialectOnly||d.label,y.languageKey=d.languageKey,y.familyKey=d.familyKey,y.originalLabels=d.originalLabels||[]),d.kind==="cluster"&&(y.clusterId=d.clusterId),typeof window<"u"&&typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:highlight",{detail:y}))}const w=Q(()=>{const h=s.value,d=[];for(const y of h.values()){const k=Yt(y.key),v=[];for(const m of y.languages.values()){m.key&&m.key!=="— Unknown —"&&v.push(m.key);for(const $ of m.dialects.values())for(const L of $.originalLabels)L&&v.push(L)}const _={id:`fam:${y.key}`,label:y.key,color:k,count:y.peopleGroupCount,pop:y.population,filter:v.length>0?["any",["==",["get","languageFamily"],y.key],["in",["get","language"],["literal",Array.from(new Set(v))]]]:["==",["get","languageFamily"],y.key],children:[]};for(const m of y.languages.values()){const $=m.key,L={id:`lang:${y.key}__${$}`,label:$,color:k,count:m.peopleGroupCount,pop:m.population,filter:["any",["==",["get","language"],$],["==",["slice",["get","language"],0,$.length+1],$+","],["in"," "+$,["get","language"]]],children:[]};for(const R of m.dialects.values()){const M=Array.from(R.originalLabels);L.children.push({id:`dial:${y.key}__${$}__${R.key}`,label:`${$}, ${R.key}`,color:k,count:R.peopleGroupCount,pop:R.population,filter:M.length===1?["==",["get","language"],M[0]]:["in",["get","language"],["literal",M]],originalLabels:M,children:[]})}_.children.push(L)}d.push(_)}return d.sort((y,k)=>k.pop-y.pop||k.count-y.count),d});return{rows:l,languageRows:p,dialectRows:g,langTree:w,toggle:a,isExpanded:n,setExpansionToOnly:r,childRowsFor:c,dialectRowsFor:u,highlight:x}}const E_=[];function T_(){const e=ir(xn.RESOURCE);return e&&e.propertyKey==="resourceType"?e:null}function P_(){const e=ir(xn.DOXA_REGION);return e&&e.propertyKey==="doxaRegion"?e.palette||{}:{}}function M_(){const e=ir(xn.AFFINITY_BLOCK);if(!e||e.propertyKey!=="affinityBlock")return{};const t=e.names||{},o=e.palette||{},n={};for(const a of Object.keys(t))n[t[a]]=o[a]||"#999";return n}function Zo(e,t){const a=Object.values(e.sources||{}).flatMap(r=>(r==null?void 0:r.features)||[]).filter(r=>t(r.properties||r));return{count:a.length,population:a.reduce((r,s)=>{var l;const i=s.properties||s;return r+(parseInt(i.population||((l=i._raw)==null?void 0:l.Population)||0)||0)},0)}}const ed=100;function N_(e){var o;let t=(e==null?void 0:e.peopleCommitted)??((o=e==null?void 0:e._raw)==null?void 0:o.people_committed)??(e==null?void 0:e.people_committed)??null;return t&&typeof t=="object"&&(t=t.value??t.label??0),Number(t)||0}function Ys(e){return t=>{const o=N_(t);return e==="fullPrayer"?o>=ed:e==="hasPrayer"?o>0&&o0||typeof t=="string"&&parseInt(t,10)>0}function od(e){var o;const t=e.adoptionStatus??((o=e._raw)==null?void 0:o.adopted_by_churches);return t===!0||t===1||t==="1"||t==="true"||typeof t=="number"&&t>0||typeof t=="string"&&parseInt(t,10)>0}const I_={prayer:"legend.title.prayer",engagement:"legend.title.engagement",adoption:"legend.title.adoption","language-families":"legend.title.languageFamilies","language-family":"legend.title.languageFamilies","doxa-regions":"legend.title.doxaRegions","doxa-region":"legend.title.doxaRegions","affinity-blocs":"legend.title.affinityBlocs",countries:"legend.title.countries",country:"legend.title.countries","gospel-resources":"legend.title.gospelResources",religion:"legend.title.religion"};function Sn(e){return e==="doxa-region"?"doxa-regions":e==="country"?"countries":e}function R_(e){return e?e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString():"0"}function F_(e){return(Number(e)||0).toLocaleString()}function O_(e,t={}){const o=Ee("dataStore"),n=Ee("uiStore"),a=Ee("mapStore"),{t:r}=kt(),s=a_();s.load();const i=Q(()=>{if(Sn(e.value)==="religion")return"Religion";const y=I_[e.value];return y?r(y):""}),l=Q(()=>Sn(e.value)==="affinity-blocs"?E_:[{key:"count",label:r("legend.columns.upgs"),width:48},{key:"population",label:r("legend.columns.population"),width:48}]),c=Q(()=>{const d=Sn(e.value);return d==="prayer"?n.prayerFilter:d==="engagement"?n.engagementFilter:d==="adoption"?n.adoptionFilter:d==="language-families"?a.selectedFamily:d==="doxa-regions"?a.selectedRegion:d==="gospel-resources"?a.selectedResource:d==="religion"?n.religionFilter:null});function u(d){const y=Sn(e.value);y==="prayer"?n.setPrayerFilter(n.prayerFilter===d?null:d):y==="engagement"?n.setEngagementFilter(n.engagementFilter===d?null:d):y==="adoption"?n.setAdoptionFilter(n.adoptionFilter===d?null:d):y==="language-families"?a.selectFamily(a.selectedFamily===d?null:d):y==="doxa-regions"?a.selectRegion(a.selectedRegion===d?null:d):y==="gospel-resources"?a.selectResource(a.selectedResource===d?null:d):y==="religion"&&n.setReligionFilter(n.religionFilter===d?null:d)}const p=Q(()=>{var y,k,v,_;const d=Sn(e.value);if(d==="prayer"){const m=Zo(o,Ys("noPrayer")),$=Zo(o,Ys("hasPrayer")),L=Zo(o,Ys("fullPrayer")),R=s.loaded.value,M=R?s.noPrayerCount():m.count,I=R?s.hasPrayerCount():$.count,C=R?s.fullPrayerCount():L.count;return[{key:"noPrayer",label:r("legend.prayer.needsPrayer"),color:Jo.noPrayer,count:M,population:m.population,filterKey:"noPrayer",children:[{key:"hasPrayer",label:r("legend.prayer.hasPrayer"),color:Jo.hasPrayer,count:I,population:$.population,filterKey:"hasPrayer"},{key:"fullPrayer",label:r("legend.prayer.fullPrayerCoverage"),color:Jo.fullPrayer,count:C,population:L.population,filterKey:"fullPrayer"}]}]}if(d==="engagement"){const m=Zo(o,L=>!td(L)),$=Zo(o,L=>td(L));return[{key:"notEngaged",label:r("legend.engagement.needsEngagement"),color:Fs.notEngaged,count:m.count,population:m.population,filterKey:"notEngaged",children:[{key:"hasEngagement",label:r("legend.engagement.hasEngagement"),color:Fs.hasEngagement,count:$.count,population:$.population,filterKey:"hasEngagement"}]}]}if(d==="adoption"){const m=Zo(o,L=>!od(L)),$=Zo(o,L=>od(L));return[{key:"notAdopted",label:r("legend.adoption.needsAdoption"),color:Bs.notAdopted,count:m.count,population:m.population,filterKey:"notAdopted",children:[{key:"hasAdoption",label:r("legend.adoption.hasAdoption"),color:Bs.hasAdoption,count:$.count,population:$.population,filterKey:"hasAdoption"}]}]}if(d==="religion"){const m={},L=Object.values(o.sources||{}).flatMap(I=>(I==null?void 0:I.features)||[]);for(const I of L){const C=I.properties||I,F=C.religion||((k=(y=C._raw)==null?void 0:y.religion)==null?void 0:k.value)||((v=C._raw)==null?void 0:v.religion)||"",H=sa(F);m[H]||(m[H]={count:0,population:0}),m[H].count+=1,m[H].population+=parseInt(C.population||((_=C._raw)==null?void 0:_.Population)||0)||0}const R=new Set((t==null?void 0:t.excludeReligionFamilies)||[]);for(const I of R)delete m[I];return Object.keys(m).sort((I,C)=>I==="C"?-1:C==="C"?1:m[C].population-m[I].population).map(I=>({key:I,label:ra[I]||"Unknown",color:Bt[I]||"#94a3b8",count:m[I].count,population:m[I].population,filterKey:I,children:[]}))}if(d==="language-families")return(o.languageFamiliesData||[]).map(m=>({key:m.name,label:m.name,color:Yt(m.name),count:m.count,population:m.population,filterKey:m.name,children:[]}));if(d==="language-family"){const $={value:Object.values(o.sources||{}).flatMap(R=>(R==null?void 0:R.features)||[])},{rows:L}=Qu($);return L.value.map(R=>({key:R.key,label:R.label,color:R.color,count:R.peopleGroupCount,population:R.population,filterKey:R.key,children:[]}))}if(d==="doxa-regions"){const m=P_();return(o.doxaRegionsData||[]).map($=>({key:$.name,label:$.name,color:m[$.name]||"#999",count:$.count,population:$.population,filterKey:$.name,children:[]}))}if(d==="gospel-resources"){const m=T_(),$=(m==null?void 0:m.palette)??{},L=(m==null?void 0:m.names)??{},R=o.resourcesData||[];return Object.keys($).map(M=>{const I=R.find(C=>C.key===M);return{key:M,label:L[M]||M,color:$[M],count:(I==null?void 0:I.count)||0,population:(I==null?void 0:I.population)||0,filterKey:M,children:((I==null?void 0:I.children)||[]).map(C=>({key:C.key,label:C.name||C.key,color:C.color||$[M],count:C.count||0,population:C.population||0,filterKey:C.key}))}})}if(d==="affinity-blocs"){const m=M_();return Object.keys(m).sort().map($=>({key:$,label:$,color:m[$],filterKey:$,children:[]}))}return[]});function g(d,y){return d.reduce((k,v)=>{var m;let _=v[y]||0;return(m=v.children)!=null&&m.length&&(_+=g(v.children,y)),k+_},0)}const x=Q(()=>g(p.value,"count")),w=Q(()=>g(p.value,"population")),h=Q(()=>{if(Sn(e.value)!=="prayer")return null;const d=p.value[0];if(!d)return null;const y=(d.children||[]).find(L=>L.key==="hasPrayer"),k=(d.children||[]).find(L=>L.key==="fullPrayer"),v=Number(d.count)||0,_=Number(y==null?void 0:y.count)||0,m=Number(k==null?void 0:k.count)||0,$=(Number(y==null?void 0:y.population)||0)+(Number(k==null?void 0:k.population)||0);return{covered:_+m,total:x.value,coveredPopulation:$,totalPopulation:w.value,segments:[{key:"fullPrayer",label:(k==null?void 0:k.label)??r("legend.prayer.fullPrayerCoverage"),count:m,color:Jo.fullPrayer},{key:"hasPrayer",label:(y==null?void 0:y.label)??r("legend.prayer.hasPrayer"),count:_,color:Jo.hasPrayer},{key:"noPrayer",label:d.label,count:v,color:Jo.noPrayer}]}});return{items:p,columns:l,title:i,activeFilter:c,setFilter:u,totalCount:x,totalPopulation:w,progress:h,fmtPop:R_,fmtCount:F_}}const D_={excludeReligionFamilies:["C"]},B_="",j_={key:0,class:"lrg-title-row"},G_={class:"lrg-title-caret-slot"},U_={class:"lrg-title"},K_=["data-lrg-filter-key"],z_=["onClick"],H_={key:1,class:"lrg-caret-placeholder","aria-hidden":"true"},V_=["onClick"],W_={class:"lrg-name"},Y_={class:"lrg-badge-inner"},q_=["data-lrg-filter-key"],J_=["onClick"],Z_={class:"lrg-name"},X_={class:"lrg-badge-inner"},Q_={key:1,class:"lrg-footer"},ev={class:"lrg-footer-label"},tv=vn({__name:"LegendRows",props:{title:{type:String,default:""},items:{type:Array,required:!0},columns:{type:Array,default:()=>[]},activeFilter:{type:String,default:null},isDark:{type:Boolean,default:!1},hideColumnHeader:{type:Boolean,default:!1},showFooter:{type:Boolean,default:!1},totalCount:{type:Number,default:0},totalPopulation:{type:Number,default:0},fmtPop:{type:Function,default:e=>String(e||0)},fmtCount:{type:Function,default:e=>String(e||0)},disableCollapse:{type:Boolean,default:!1},progress:{type:Object,default:null}},emits:["filter-click"],setup(e){const{t}=kt();wt(` .legend-row-group{--lrg-caret-col:30px;display:flex;flex-direction:column;height:100%;min-height:0;} .lrg-items{display:grid;grid-template-columns:var(--lrg-grid-cols, var(--lrg-caret-col) minmax(80px,1fr) auto auto var(--lrg-caret-col));grid-auto-rows:auto;align-content:start;column-gap:6px;row-gap:6px;padding:0 0 12px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none;} .lrg-items::-webkit-scrollbar{display:none;width:0;height:0;} @@ -1030,7 +1030,7 @@ `,"share-button");const{t,tm:o,rt:n}=kt(),a=e,r=ue(null),s=ue(!1),i=ue(null),l=ue(null),c=ue("link"),u=ue(!1),p=ue(!1),g=ue("medium"),x={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},w=Ee("profileConfig",null),h=Q(()=>Ry({embedPath:a.embedPath,profileConfig:be(w)||null})),d=Q(()=>{const I=x[g.value].height;return''});function y(){s.value=!s.value,s.value&&(c.value="link",u.value=!1,p.value=!1)}function k(){s.value=!1}async function v(I){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(I),!0}catch{}try{const C=document.createElement("textarea");C.value=I,C.setAttribute("readonly",""),C.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(C),C.select();const F=document.execCommand("copy");return document.body.removeChild(C),F}catch{return!1}}async function _(){await v(h.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function m(){await v(d.value)&&(p.value=!0,setTimeout(()=>{p.value=!1},2e3))}const $=Ee("mapToolbar",null),L=ue(null);Pt("mapToolbar",$||{el:L});const R=!$;function M(I){if(r.value=I||null,!R||!I){I||(L.value=null);return}const C=I.offsetParent||I.parentElement;C&&!C.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&C.setAttribute("data-map-area","share-fallback"),L.value=I}return(I,C)=>(W(),ee("div",{ref:M,class:"share-wrap","data-share-root":""},[je(Xo,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:s.value,title:be(t)("buttons.share"),onClick:y},{default:jt(()=>[...C[2]||(C[2]=[P("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[P("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),P("polyline",{points:"16 6 12 2 8 6"}),P("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),je(G1,{open:s.value,title:be(t)("buttons.share"),"is-dark":e.isDark,onClose:k},{default:jt(()=>[P("div",{ref_key:"popoverEl",ref:i,class:Ae(["share-pop",{light:!e.isDark}])},[P("ul",U1,[(W(!0),ee($e,null,St(be(o)("buttons.shareSteps"),(F,H)=>(W(),ee("li",{key:H},de(be(n)(F)),1))),128))]),P("div",K1,[P("button",{class:Ae(["share-tab",{active:c.value==="link"}]),onClick:C[0]||(C[0]=F=>c.value="link")},"Embed link",2),P("button",{class:Ae(["share-tab",{active:c.value==="embed"}]),onClick:C[1]||(C[1]=F=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(W(),ee("div",z1,[P("div",H1,[P("div",V1,de(h.value),1)]),P("button",{class:Ae(["share-primary-btn",{copied:u.value}]),onClick:_},[u.value?(W(),ee("svg",Y1,[...C[4]||(C[4]=[P("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(W(),ee("svg",W1,[...C[3]||(C[3]=[P("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),P("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),dt(" "+de(u.value?"Copied!":"Copy Link"),1)],2)])):me("",!0),c.value==="embed"?(W(),ee("div",q1,[C[7]||(C[7]=P("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),P("div",J1,[(W(),ee($e,null,St(x,(F,H)=>P("button",{key:H,class:Ae(["share-size-pill",{active:g.value===H}]),onClick:G=>g.value=H},de(F.label),11,Z1)),64))]),P("div",X1,de(d.value),1),P("button",{class:Ae(["share-secondary-btn",{copied:p.value}]),onClick:m},[p.value?(W(),ee("svg",ek,[...C[6]||(C[6]=[P("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(W(),ee("svg",Q1,[...C[5]||(C[5]=[P("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),P("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),dt(" "+de(p.value?"Copied!":"Copy Code"),1)],2)])):me("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},tk=["blocs","clusters","peopleGroups","families","languages","dialects","people","places","regions","wagfBlocks","religions"],ok={"people-groups":["blocs","clusters","peopleGroups","people","places","families","languages","dialects","regions","religions"],language:["families","languages","dialects","people","blocs","clusters","peopleGroups","places","regions","religions"],regions:["regions","wagfBlocks","places","blocs","clusters","peopleGroups","people","families","languages","dialects","religions"],religion:["religions","people","blocs","clusters","peopleGroups","places","families","languages","dialects","regions"]};function nk(e){return ok[e]||tk}const ak={blocs:3,clusters:3,peopleGroups:3,families:3,languages:3,dialects:3,people:5,places:2,regions:3,wagfBlocks:3,religions:2},ur=["peopleGroups","people","places","languages","religions"],rk={regions:[...ur,"regions","wagfBlocks"],"people-groups":[...ur,"blocs","clusters"],language:[...ur,"dialects","families"],religion:[...ur]},sk=100,ik=50,lk=25,ck=10,Zs=5,dd=20,uk=[[/ sign language$/i,"Sign Language"]];function dk(e){if(!e||typeof e!="string")return"";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function pk(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function gk(e){if(!e||typeof e!="string")return null;const t=e.split(",").map(n=>n.trim()).filter(Boolean);if(t.length>=2){const n=[...t].reverse().join(" ");if(At[n])return At[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(At[a])return At[a]}}if(At[e])return At[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();if(o!==e&&At[o])return At[o];for(const[n,a]of uk)if(n.test(e))return a;return null}function pd(e,t){return{id:`doxa-section-header-${Xs(e)}`,place_name:e,text:e,center:[0,0],place_type:["doxa-section-header"],geometry:{type:"Point",coordinates:[0,0]},properties:{headerLabel:e,isHeader:!0,isAllDataSection:!!t},feature:null}}function Xs(e){return String(e||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function xe(e){return e==null?"":typeof e=="string"?e.toLowerCase():typeof e=="object"&&"label"in e?String(e.label||"").toLowerCase():typeof e=="object"&&"value"in e?String(e.value||"").toLowerCase():String(e).toLowerCase()}function dr(e){return e==null?"":typeof e=="string"?e:typeof e=="object"?e.label||e.value||"":String(e)}function fk(e){var o,n,a,r,s;if(!Array.isArray(e))return[];const t=[];for(const i of e){if(!i)continue;const l=Number(i.latitude),c=Number(i.longitude);if(!Number.isFinite(l)||!Number.isFinite(c))continue;const u=xe(i.name)+" "+xe(i.displayName)+" "+xe(i.alternateName),p=xe(i.countryName)+" "+xe(i.country)+" "+xe(i.countryIso)+" "+xe(i.countryIsoLabel),g=xe(i.religionName)+" "+xe(i.religion)+" "+xe(i.religionLabel)+" "+xe(i.religionCode),x=xe(i.language)+" "+xe(i.languageFamily)+" "+xe(i.languageCode),w=xe(i.doxaRegion)+" "+xe(i.wagfRegion)+" "+xe(i.wagfBlock),h=xe(i.affinityBlock)+" "+xe(i.affinityBlockLabel)+" "+xe((o=i._raw)==null?void 0:o.rop1),d=xe(i.cluster)+" "+xe(i.clusterLabel)+" "+xe((n=i._raw)==null?void 0:n.imb_reg_of_people_2),y=xe(i.peopleGroup)+" "+xe(i.peopleGroupLabel)+" "+xe((a=i._raw)==null?void 0:a.imb_reg_of_people_25),k=((r=i._raw)==null?void 0:r.primary_language)??((s=i._raw)==null?void 0:s.PrimaryLanguage),v=k&&(typeof k=="object"?k.label||k.value:k)||dr(i.language)||dr(i.primaryLanguage)||"",_=dk(v),m=pk(v);t.push({feature:i,nameHay:u,countryHay:p,religionHay:g,languageHay:x,regionHay:w,haystack:u+" "+p+" "+g+" "+x+" "+w+" "+h+" "+d+" "+y,blocHay:h,clusterHay:d,pgHay:y,lat:l,lng:c,familyDerived:gk(v)||null,languageLabel:v,baseLang:_,dialectLabel:m})}return t}function hk(e){const t=(o,n,a)=>{const r=new Map;for(const s of e){const i=o(s);if(!i)continue;const l=r.get(i);if(l)l.count+=1,l.lngSum+=s.lng,l.latSum+=s.lat,l.memberIds.push(String(s.feature.uniqueId??s.feature.id??s.feature.slug??"")),l.minLng=Math.min(l.minLng,s.lng),l.maxLng=Math.max(l.maxLng,s.lng),l.minLat=Math.min(l.minLat,s.lat),l.maxLat=Math.max(l.maxLat,s.lat),a&&a(l,s,!1);else{const c={key:i,label:dr(n(s))||i,count:1,lngSum:s.lng,latSum:s.lat,minLng:s.lng,maxLng:s.lng,minLat:s.lat,maxLat:s.lat,memberIds:[String(s.feature.uniqueId??s.feature.id??s.feature.slug??"")]};a&&a(c,s,!0),r.set(i,c)}}for(const s of r.values())s.lng=s.lngSum/s.count,s.lat=s.latSum/s.count;return Array.from(r.values())};return{countries:t(o=>xe(o.feature.countryName)||xe(o.feature.country)||xe(o.feature.countryIso),o=>o.feature.countryName||o.feature.country||o.feature.countryIso||""),families:t(o=>xe(o.familyDerived),o=>o.familyDerived||""),languages:t(o=>xe(o.baseLang),o=>o.baseLang||""),dialects:t(o=>o.dialectLabel?`${xe(o.baseLang)}__${xe(o.dialectLabel)}`:"",o=>`${o.baseLang}, ${o.dialectLabel}`,(o,n,a)=>{a?(o.originalLabels=new Set([n.languageLabel]),o.familyDerived=n.familyDerived||"",o.baseLang=n.baseLang||"",o.dialectLabel=n.dialectLabel||""):(o.originalLabels.add(n.languageLabel),!o.familyDerived&&n.familyDerived&&(o.familyDerived=n.familyDerived))}),religions:t(o=>{var n,a,r;return sa(o.feature.religion||((a=(n=o.feature._raw)==null?void 0:n.religion)==null?void 0:a.value)||((r=o.feature._raw)==null?void 0:r.religion)||"")},o=>{var n,a,r;return ra[sa(o.feature.religion||((a=(n=o.feature._raw)==null?void 0:n.religion)==null?void 0:a.value)||((r=o.feature._raw)==null?void 0:r.religion)||"")]||"Unknown"}),regions:t(o=>xe(o.feature.doxaRegion)||xe(o.feature.wagfRegion),o=>{var n,a;return o.feature.wagfRegionLabel||o.feature.doxaRegionLabel||((a=(n=o.feature._raw)==null?void 0:n.wagf_region)==null?void 0:a.label)||o.feature.doxaRegion||o.feature.wagfRegion||""}),wagfBlocks:t(o=>xe(o.feature.wagfBlock),o=>{var n,a;return o.feature.wagfBlockLabel||((a=(n=o.feature._raw)==null?void 0:n.wagf_block)==null?void 0:a.label)||o.feature.wagfBlock||""}),blocs:t(o=>xe(o.feature.affinityBlockLabel)||xe(o.feature.affinityBlock),o=>o.feature.affinityBlockLabel||o.feature.affinityBlock||"",(o,n,a)=>{a&&(o.blocCode=n.feature.affinityBlock||"")}),clusters:t(o=>{const n=o.feature.affinityBlock||"",a=o.feature.cluster||"";return a?`${n}__${a}`:""},o=>o.feature.clusterLabel||o.feature.cluster||"",(o,n,a)=>{a&&(o.blocCode=n.feature.affinityBlock||"",o.blocLabel=n.feature.affinityBlockLabel||"",o.clusterCode=n.feature.cluster||"")}),peopleGroups:t(o=>xe(o.feature.peopleGroup)||xe(o.feature.peopleGroupLabel),o=>o.feature.peopleGroupLabel||o.feature.peopleGroup||o.feature.name||"",(o,n,a)=>{a&&(o.blocCode=n.feature.affinityBlock||"",o.blocLabel=n.feature.affinityBlockLabel||"",o.clusterCode=n.feature.cluster||"",o.clusterLabel=n.feature.clusterLabel||"",o.peopleGroupCode=n.feature.peopleGroup||"")})}}function mk(e){const t=e.feature,o=t.name||t.displayName||t.slug||"Unknown",n=t.countryName||t.country||t.countryIso||"",a=t.religionName||t.religion||"",r=t.slug||t.uniqueId||Xs(o+"-"+n),s=[e.lng,e.lat],i=[n,a].filter(Boolean).join(" — "),l=i?`${o}, ${i}`:o;return{id:`doxa-pg-${r}`,place_name:l,text:o,center:s,place_type:["people-group"],geometry:{type:"Point",coordinates:s},properties:{slug:r,...t},feature:t}}function io(e,t){let o,n;switch(e){case"country":o="doxa-country",n="doxa-country-";break;case"region":o="doxa-region",n="doxa-region-";break;case"language-family":o="doxa-language-family",n="doxa-language-family-";break;case"language":o="doxa-language",n="doxa-language-";break;case"dialect":o="doxa-dialect",n="doxa-dialect-";break;case"religion":o="doxa-religion",n="doxa-religion-";break;case"affinity-bloc":o="doxa-affinity-bloc",n="doxa-affinity-bloc-";break;case"cluster":o="doxa-cluster",n="doxa-cluster-";break;case"people-group":o="doxa-people-group",n="doxa-people-group-";break;default:o="doxa",n="doxa-"}const a=dr(t.label)||t.key,r=Xs(t.key),s=[t.lng,t.lat],l={"affinity-bloc":"Affinity Block",cluster:"Cluster","people-group":"PG","pg-in-country":"PGIC"}[e],c=l?`${a} (${l}) · ${t.count}`:`${a} (${t.count})`,u=t.originalLabels?Array.from(t.originalLabels):void 0,p=e==="dialect"?{familyDerived:t.familyDerived||"",baseLang:t.baseLang||"",dialectLabel:t.dialectLabel||""}:null;return{id:`${n}${r}`,place_name:c,text:a,center:s,bbox:[t.minLng,t.minLat,t.maxLng,t.maxLat],place_type:[o],geometry:{type:"Point",coordinates:s},properties:{slug:r,doxaAggregate:e,count:t.count,label:a,memberIds:t.memberIds,bounds:[t.minLng,t.minLat,t.maxLng,t.maxLat],...u?{originalLabels:u}:{},...p||{},...e==="affinity-bloc"?{blocCode:t.blocCode||""}:{},...e==="cluster"?{blocCode:t.blocCode||"",blocLabel:t.blocLabel||"",clusterCode:t.clusterCode||""}:{},...e==="people-group"?{blocCode:t.blocCode||"",blocLabel:t.blocLabel||"",clusterCode:t.clusterCode||"",clusterLabel:t.clusterLabel||"",peopleGroupCode:t.peopleGroupCode||""}:{}},feature:null}}function bk(e={}){const{dataStore:t,dataSourceId:o,getActiveFilter:n,getActiveContext:a}=e,{t:r}=kt(),s=Q(()=>{var p,g;if(!t||!t.sources)return[];if(o&&((p=t.sources[o])!=null&&p.features))return t.sources[o].features;for(const x of Object.keys(t.sources)){const w=t.sources[x];if((g=w==null?void 0:w.features)!=null&&g.length)return w.features}return[]}),i=Q(()=>fk(s.value)),l=Q(()=>hk(i.value));function c(p){const g=String(p||"").trim().toLowerCase(),x={people:[],places:[],regions:[],wagfBlocks:[],families:[],languages:[],dialects:[],religions:[],blocs:[],clusters:[],peopleGroups:[]};if(g.length<2)return x;const w=g.split(/[\s,;]+/).filter(Boolean);if(!w.length)return x;const h=i.value;if(!h.length)return x;const d=l.value,y=[];for(const B of h){let T=!0;for(const ye of w)if(!B.haystack.includes(ye)){T=!1;break}if(!T)continue;let se=0;w.some(ye=>B.nameHay.includes(ye))&&(se+=sk),w.some(ye=>B.countryHay.includes(ye))&&(se+=ik),w.some(ye=>B.religionHay.includes(ye))&&(se+=lk),w.some(ye=>B.languageHay.includes(ye))&&(se+=ck),y.push({entry:B,score:se})}y.sort((B,T)=>T.score-B.score);const k=y.slice(0,Zs).map(B=>mk(B.entry)),v=B=>B.filter(T=>w.every(se=>T.key.includes(se)||xe(T.label).includes(se))).sort((T,se)=>se.count-T.count).slice(0,Zs),_=v(d.countries).map(B=>io("country",B)),m=v(d.regions).map(B=>io("region",B)),$=v(d.wagfBlocks).map(B=>io("region",B)),L=v(d.families).map(B=>io("language-family",B)),R=v(d.languages).map(B=>io("language",B)),M=v(d.dialects).map(B=>io("dialect",B)),I=v(d.religions).map(B=>io("religion",B)),C=v(d.blocs).map(B=>io("affinity-bloc",B));let F=v(d.clusters).map(B=>io("cluster",B)),H=v(d.peopleGroups).map(B=>io("people-group",B));const G=new Set(C.map(B=>xe(B.text)));F=F.filter(B=>!G.has(xe(B.text)));const U=new Set(F.map(B=>xe(B.text)));return H=H.filter(B=>!G.has(xe(B.text))&&!U.has(xe(B.text))),{people:k,places:_,regions:m,wagfBlocks:$,families:L,languages:R,dialects:M,religions:I,blocs:C,clusters:F,peopleGroups:H}}function u(p){const g=typeof n=="function"?n():null,x=typeof a=="function"?a():null,w=c(p),h=nk(x),d=rk[x],y=d?Object.fromEntries(d.filter(L=>w[L]).map(L=>[L,w[L]])):w,k=h.flatMap(L=>y[L]||[]);if(!(g!=null&&g.key)||!k.length)return k.slice(0,dd);const v=[];for(const L of w.people){const R=i.value.find(I=>I.feature===L.feature);let M=!1;R&&(g.kind==="family"?M=(R.familyDerived||"").toLowerCase()===g.key.toLowerCase():g.kind==="language"&&(M=R.languageLabel.toLowerCase()===g.key.toLowerCase())),M&&v.push(L)}const _=[],m=g.key;v.length&&(_.push(pd(r("search.sections.within",{selection:m}),!1)),_.push(...v.slice(0,Zs)));const $=h.flatMap(L=>(y[L]||[]).slice(0,ak[L]??3)).map(L=>({...L,properties:{...L.properties,_allDataSection:!0}}));return _.push(pd(r("search.sections.allData"),!0)),_.push(...$),_.slice(0,dd+8)}return{search:u,searchGrouped:c,index:i,aggregates:l}}const gd="https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1/dist/maplibre-gl-geocoder.min.js",yk={__name:"GeocoderComponent",props:{mapInstance:{type:Object,required:!1,default:null},accessToken:{type:String,required:!0},provider:{type:String,default:"mapbox"},isDark:{type:Boolean,default:!1},standalone:{type:Boolean,default:!1},placeholder:{type:String,default:""},dataSourceId:{type:String,default:""},activeContext:{type:String,default:""}},emits:["result","people-group-result","aggregate-result","clear","error"],setup(e,{expose:t,emit:o}){function n(C){return C+C.replace(/mapboxgl/g,"maplibregl")}wt(n('.mapboxgl-ctrl-geocoder--input,.mapboxgl-ctrl-geocoder input[type="text"],.mapboxgl-ctrl-geocoder input[type="search"]{font-size:16px !important;line-height:1.3;}'),"geocoder-ios-zoom-fix"),wt(n(".mapboxgl-ctrl-geocoder--icon-loading{display:none !important;}"),"geocoder-hide-loading"),wt(n(".mapboxgl-ctrl-geocoder{height:35px!important;min-height:35px!important;box-sizing:border-box!important;}.mapboxgl-ctrl-geocoder--input{height:35px!important;min-height:35px!important;box-sizing:border-box!important;padding-top:0!important;padding-bottom:0!important;line-height:35px!important;}.mapboxgl-ctrl-geocoder--icon-search{top:50%!important;transform:translateY(-50%)!important;margin-top:0!important;left:7px!important;}"),"geocoder-height-35"),wt(n(".mapboxgl-ctrl-geocoder{width:100%!important;max-width:100%!important;min-width:0!important;}@media(max-width:767px){.dg-search-band{top:0!important;left:0!important;right:0!important;width:100%!important;max-width:none!important;margin:0!important;box-sizing:border-box!important;padding:9px 14px!important;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,0.10);}.dg-search-band--dark{background:#3b463d;box-shadow:0 1px 4px rgba(0,0,0,0.35);}.dg-search-band .mapboxgl-ctrl,.dg-search-band .maplibregl-ctrl{margin:0!important;float:none!important;}}.mapboxgl-ctrl-geocoder{border-radius:999px!important;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,0.15)!important;transition:box-shadow .12s,border-color .12s;}.mapboxgl-ctrl-geocoder:focus-within{box-shadow:0 2px 8px rgba(0,0,0,0.15),0 0 0 3px rgba(59,70,61,0.18)!important;}.mapboxgl-ctrl-geocoder--input{border-radius:999px!important;font-size:13px!important;}.mapboxgl-ctrl-geocoder--input::placeholder{font-size:12px!important;}.mapboxgl-ctrl-geocoder--button{display:none!important;top:50%!important;bottom:auto!important;transform:translateY(-50%)!important;margin:0!important;padding:0!important;width:24px!important;height:24px!important;background:transparent!important;border:none!important;box-shadow:none!important;}.mapboxgl-ctrl-geocoder:has(.mapboxgl-ctrl-geocoder--input:not(:placeholder-shown)) .mapboxgl-ctrl-geocoder--button{display:block!important;}.mapboxgl-ctrl-geocoder--button .mapboxgl-ctrl-geocoder--icon-close{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;margin:0!important;width:16px!important;height:16px!important;}.mapboxgl-ctrl-geocoder--suggestions,.mapboxgl-ctrl-geocoder .suggestions{z-index:1200!important;position:absolute;max-height:60vh!important;overflow-y:auto!important;}.geocoder-dark.mapboxgl-ctrl-geocoder,.dsm-dark .mapboxgl-ctrl-geocoder{background:#4e594f!important;border:1px solid rgba(255,255,255,0.14)!important;box-shadow:0 2px 8px rgba(0,0,0,0.4)!important;}.geocoder-dark.mapboxgl-ctrl-geocoder:focus-within,.dsm-dark .mapboxgl-ctrl-geocoder:focus-within{box-shadow:0 2px 8px rgba(0,0,0,0.4),0 0 0 3px rgba(115,161,127,0.22)!important;}.geocoder-dark .mapboxgl-ctrl-geocoder--input,.dsm-dark .mapboxgl-ctrl-geocoder--input{color:#F3F3F1!important;background:transparent!important;}.geocoder-dark .mapboxgl-ctrl-geocoder--input::placeholder,.dsm-dark .mapboxgl-ctrl-geocoder--input::placeholder{color:rgba(243,243,241,0.65)!important;}.geocoder-dark .mapboxgl-ctrl-geocoder--icon,.dsm-dark .mapboxgl-ctrl-geocoder .mapboxgl-ctrl-geocoder--icon{fill:rgba(243,243,241,0.75)!important;}.geocoder-dark .mapboxgl-ctrl-geocoder--button,.dsm-dark .mapboxgl-ctrl-geocoder--button{background:transparent!important;}"),"geocoder-skin");const{t:a,locale:r}=kt(),s=e,i=Q(()=>s.placeholder||a("search.placeholder")),l=o,c={"&":"&","<":"<",">":">",'"':""","'":"'"};function u(C){return String(C??"").replace(/[&<>"']/g,F=>c[F])}function p(C){return C==null?"":typeof C=="string"?C:typeof C=="object"?C.label||C.value||"":String(C)}const g={"people-group":"people","doxa-people-group":"peopleGroup","doxa-affinity-bloc":"bloc","doxa-cluster":"cluster","doxa-country":"country","doxa-region":"region","doxa-language-family":"family","doxa-language":"languageKind","doxa-dialect":"dialect","doxa-religion":"religionKind"};function x(C){const F=g[C];if(!F)return"";const H=a("search.kinds."+F);return`${u(H)}`}function w(C){var G;if(!C)return"";const F=C.place_type||[];if(F.includes("doxa-section-header"))return`
${u(((G=C.properties)==null?void 0:G.headerLabel)||C.text||"")}
`;if(F.includes("people-group")){const U=C.properties||{},B=p(U.name)||p(U.displayName)||p(C.text)||"",T=p(U.countryName)||p(U.country)||p(U.countryIso)||"",se=p(U.language)||p(U.primaryLanguage)||p(U.languageFamily)||"",ye=p(U.religionName)||p(U.religion)||"",ae=a("search.labels.place"),oe=a("search.labels.language"),fe=a("search.labels.religion"),Pe=[];return T&&Pe.push(`${u(ae)} ${u(T)}`),se&&Pe.push(`${u(oe)} ${u(se)}`),ye&&Pe.push(`${u(fe)} ${u(ye)}`),`
${x("people-group")}${u(B)}
`+(Pe.length?`
${Pe.join("")}
`:"")}const H=F.find(U=>U.startsWith("doxa-"));if(H){const U=C.properties||{},B=u(p(U.label)||C.text||""),T=Number(U.count)||0,se=T?` ${T}`:"";return`
${x(H)}${B}${se}
`}return`
${u(C.place_name||C.text||"")}
`}const h=Ee("dataStore",null),d=Ee("mapStore",null),y=Ee("uiStore",null);function k(){return d?d.selectedFamily?{kind:"family",key:d.selectedFamily}:d.selectedLanguage?{kind:"language",key:d.selectedLanguage}:null:null}const{search:v}=bk({dataStore:h,dataSourceId:s.dataSourceId||void 0,getActiveFilter:k,getActiveContext:()=>s.activeContext||null}),_=an(null),m=ue(null),$={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css",maplibre:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1/dist/maplibre-gl-geocoder.css"};function L(C,F){const H=$[F]||$.mapbox;if(C.querySelector(`link[href="${H}"]`))return;const G=document.createElement("link");G.rel="stylesheet",G.href=H,C.prepend(G)}async function R(){if(typeof window<"u"&&window.MaplibreGeocoder||typeof document>"u")return;const C=document.querySelector(`script[src="${gd}"]`);if(C){if(window.MaplibreGeocoder)return;await new Promise(F=>{C.addEventListener("load",F,{once:!0}),C.addEventListener("error",F,{once:!0})});return}await new Promise((F,H)=>{const G=document.createElement("script");G.src=gd,G.async=!1,G.addEventListener("load",F,{once:!0}),G.addEventListener("error",()=>H(new Error("[GeocoderComponent] Failed to load MapLibre geocoder")),{once:!0}),document.head.appendChild(G)})}function M(C,F){return async H=>{const G={features:[]};if(!C||!(H!=null&&H.query))return G;try{const U=Array.isArray(H.language)?H.language[0]:H.language||F()||"en",B=new URLSearchParams({access_token:C,autocomplete:"true",limit:String(H.limit||5)});U&&B.set("language",U);const T=`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(H.query)}.json?${B.toString()}`,se=await fetch(T);if(!se.ok)return G;const ye=await se.json();return ye&&Array.isArray(ye.features)?ye:G}catch{return G}}}to(async()=>{var U,B,T,se,ye;const C=s.provider==="maplibre";if(C){if(await R(),typeof MaplibreGeocoder>"u"){console.error("[GeocoderComponent] MaplibreGeocoder global unavailable.");return}}else if(typeof MapboxGeocoder>"u")return;const F=s.mapInstance;if(!s.standalone&&!F)return;const H=s.standalone?(B=(U=m.value)==null?void 0:U.getRootNode)==null?void 0:B.call(U):(ye=(se=(T=F.getContainer)==null?void 0:T.call(F))==null?void 0:se.getRootNode)==null?void 0:ye.call(se);H instanceof ShadowRoot&&L(H,s.provider);const G={marker:!1,flyTo:!s.standalone,trackProximity:!s.standalone,placeholder:i.value,language:r.value||"en",localGeocoder:v,limit:20,zoom:6,render:w};if(C){const ae=typeof maplibregl<"u"?maplibregl:void 0,oe={forwardGeocode:M(s.accessToken,()=>r.value)};_.value=new MaplibreGeocoder(oe,{...G,maplibregl:ae,showResultsWhileTyping:!0,reverseGeocode:!1})}else _.value=new MapboxGeocoder({accessToken:s.accessToken,mapboxgl,...G});if(_.value.on("result",ae=>{var fe,Pe,We,Xe,Qe,ht,Ke,it,Ye,$t,A,N,E,K,Y,Z,X,q,f,b,D,V,ie,re,j,S,O,ne,ce,ge;const oe=ae==null?void 0:ae.result;oe&&((fe=oe.place_type)!=null&&fe.includes("doxa-section-header")||(d&&(d.selectedRegion=null,d.selectedResource=null,d.selectedAffinityBlock=null,d.selectedDialect=null),y&&((Pe=y.setPrayerFilter)==null||Pe.call(y,null),(We=y.setEngagementFilter)==null||We.call(y,null),(Xe=y.setAdoptionFilter)==null||Xe.call(y,null),(Qe=y.setReligionFilter)==null||Qe.call(y,null)),(ht=oe.properties)!=null&&ht._allDataSection&&d&&(d.selectedFamily=null,d.selectedLanguage=null),l("result",ae),(Ke=oe.place_type)!=null&&Ke.includes("people-group")&&oe.feature?l("people-group-result",{type:"Feature",properties:oe.properties||oe.feature,geometry:oe.geometry||{type:"Point",coordinates:oe.center}}):((it=oe.place_type)!=null&&it.includes("doxa-country")||(Ye=oe.place_type)!=null&&Ye.includes("doxa-region")||($t=oe.place_type)!=null&&$t.includes("doxa-language-family")||(A=oe.place_type)!=null&&A.includes("doxa-language")||(N=oe.place_type)!=null&&N.includes("doxa-dialect")||(E=oe.place_type)!=null&&E.includes("doxa-religion")||(K=oe.place_type)!=null&&K.includes("doxa-affinity-bloc")||(Y=oe.place_type)!=null&&Y.includes("doxa-cluster")||(Z=oe.place_type)!=null&&Z.includes("doxa-people-group"))&&l("aggregate-result",{kind:oe.place_type[0].replace(/^doxa-/,""),label:((X=oe.properties)==null?void 0:X.label)||oe.text,count:((q=oe.properties)==null?void 0:q.count)||0,memberIds:((f=oe.properties)==null?void 0:f.memberIds)||[],bounds:((b=oe.properties)==null?void 0:b.bounds)||null,center:oe.center,originalLabels:((D=oe.properties)==null?void 0:D.originalLabels)||null,familyDerived:((V=oe.properties)==null?void 0:V.familyDerived)||"",baseLang:((ie=oe.properties)==null?void 0:ie.baseLang)||"",dialectLabel:((re=oe.properties)==null?void 0:re.dialectLabel)||"",slug:((j=oe.properties)==null?void 0:j.slug)||null,id:oe.id||null,blocCode:((S=oe.properties)==null?void 0:S.blocCode)||"",blocLabel:((O=oe.properties)==null?void 0:O.blocLabel)||"",clusterCode:((ne=oe.properties)==null?void 0:ne.clusterCode)||"",clusterLabel:((ce=oe.properties)==null?void 0:ce.clusterLabel)||"",peopleGroupCode:((ge=oe.properties)==null?void 0:ge.peopleGroupCode)||"",properties:oe.properties||null})))}),_.value.on("clear",()=>l("clear")),_.value.on("error",ae=>l("error",ae)),s.standalone){if(m.value){const ae={on(){},off(){},fire(){},getContainer:()=>m.value,getZoom:()=>0,getCenter:()=>({lng:0,lat:0}),getBounds:()=>null,flyTo(){},fitBounds(){},addControl(){},removeControl(){},hasControl:()=>!1};try{const oe=_.value.onAdd(s.mapInstance||ae);oe&&m.value.appendChild(oe)}catch(oe){l("error",oe)}}}else F.addControl(_.value,"top-left"),I()});function I(){var F,H;const C=(H=(F=_.value)==null?void 0:F.container)==null?void 0:H.parentElement;C&&(C.classList.add("dg-search-band"),C.classList.toggle("dg-search-band--dark",!!s.isDark))}return nt(()=>s.isDark,()=>I()),nt(i,C=>{var G,U;const F=_.value;if(!F)return;const H=F._inputEl||((U=(G=F.container)==null?void 0:G.querySelector)==null?void 0:U.call(G,"input.mapboxgl-ctrl-geocoder--input"));H&&(H.placeholder=C,H.setAttribute("placeholder",C)),F.options&&(F.options.placeholder=C)}),nt(r,C=>{const F=_.value;F!=null&&F.options&&(F.options.language=C||"en")}),yo(()=>{var C,F;if(_.value){try{s.standalone?(F=(C=_.value).onRemove)==null||F.call(C):s.mapInstance&&s.mapInstance.removeControl(_.value)}catch{}_.value=null}}),t({geocoder:_}),(C,F)=>e.standalone?(W(),ee("div",{key:0,ref_key:"standaloneContainer",ref:m,class:"dg-standalone-geocoder"},null,512)):un(C.$slots,"default",{},void 0,void 0,1)}};function _k(e,t){return`hsl(${Math.round(e*360/(t||1))}, 72%, 56%)`}function pr(e){if(typeof e.count=="number")return e.count;if(typeof e.expected_count=="number")return e.expected_count}function fd(e){const t=parseInt(e&&e.population,10);return Number.isFinite(t)?t:0}function vk(e,t){if(!Array.isArray(t)||t.length===0)return;const o=e&&e.selector;if(o==null)return;if(o.type==="pg_slugs"){const r=new Set(Array.isArray(o.values)?o.values:[]);let s=0;for(const i of t)i&&r.has(i.slug)&&(s+=fd(i));return s}const n=wn(o,t);let a=0;for(const r of t)r&&n.has(r.slug)&&(a+=fd(r));return a}function Qs(e,t={}){const o=t.deafCount??123,n=Array.isArray(t.records)?t.records:null,a=e.lists||[],r=e.asia_lists||[],s=e.uncovered_lists||[],i={type:"affinity_bloc",rop1:"A017"},l=r.filter(G=>G.id.startsWith("asia-india")),c=r.filter(G=>G.id.startsWith("asia-china")),u=[...a.map(G=>G.id),"deaf",...l.map(G=>G.id),...c.map(G=>G.id),...s.map(G=>G.id)],p=u.length,g=G=>_k(u.indexOf(G),p),x=(G,U,B)=>{if(!n)return G;const T=B??(U&&U.selector);return G.pop=vk({selector:T},n),G},w=G=>n?G.reduce((U,B)=>U+(B.pop||0),0):void 0,h=a.map(G=>x({id:G.id,zoneKey:G.id,label:G.label,...G.provinceLabel?{provinceLabel:G.provinceLabel}:{},color:g(G.id),count:pr(G)},G)),d=x({id:"deaf",zoneKey:"deaf",label:"Deaf (affinity bloc A017)",color:g("deaf"),count:o,info:"Unified deaf row — affinity bloc rop1=A017 (collapses the two deaf_lists; zero-delta vs old deaf_predicate). Population double-counts vs geographic rows (design-approved, slice 08)."},null,i),y=G=>x({id:G.id,zoneKey:G.id,label:G.label,...G.provinceLabel?{provinceLabel:G.provinceLabel}:{},color:g(G.id),count:pr(G),...Array.isArray(G.adm0)&&G.adm0.length?{adm0:G.adm0}:{},...Array.isArray(G.provinces)&&G.provinces.length?{provinces:G.provinces}:{}},G),k=l.map(y),v=c.map(y),_=G=>G.reduce((U,B)=>U+(pr(B)||0),0),m={id:"asia-india",label:"India",count:_(l),children:k},$={id:"asia-china",label:"China",count:_(c),children:v};n&&(m.pop=w(k),$.pop=w(v)),_(r),n&&w([m,$]);const L=G=>x({id:G.id,zoneKey:G.id,label:G.label,...G.provinceLabel?{provinceLabel:G.provinceLabel}:{},color:g(G.id),count:pr(G)},G),R=s.map(L);R.length>0&&(()=>{const G={id:"frontier-asia",label:"Frontier Asia (uncovered)",count:_(s),children:R};return n&&(G.pop=w(R)),G})();const M={"west-africa":"Africa",sudan:"Africa","east-africa":"Africa","central-africa":"Africa","southern-africa-islands":"Africa","maghreb-egypt":"Middle East","middle-east-core":"Middle East","uncovered-nas-a":"Central Asia",laos:"Southeast Asia + Oceania","oceania-indonesia":"Southeast Asia + Oceania","mainland-se-asia-philippines":"Southeast Asia + Oceania",brazil:"Americas","andean-caribbean":"Americas","uncovered-scatter":"Americas",europe:"Europe",deaf:"Deaf","deaf-old-world":"Deaf"},I=G=>M[G]||(String(G).startsWith("asia-india-")?"India":String(G).startsWith("asia-china-")?"China + Mongolia":"Other"),C=[...h,d,...k,...v,...R].filter(Boolean),F=new Map;for(const G of C){const U=I(G.id||G.zoneKey);F.has(U)||F.set(U,[]),F.get(U).push(G)}const H=[...F.entries()].map(([G,U])=>{U.sort((T,se)=>(se.count||0)-(T.count||0));const B={id:"region-"+G.toLowerCase().replace(/[^a-z0-9]+/g,"-"),label:G,count:U.reduce((T,se)=>T+(se.count||0),0),children:U};return n&&(B.pop=w(U)),B}).sort((G,U)=>(U.count||0)-(G.count||0));return kk(hd(H),{withPop:!!n}),H}function kk(e,{withPop:t=!1}={}){const o=[];for(const n of e||[]){const a=[];(typeof n.id!="string"||!n.id)&&a.push("id"),(typeof n.zoneKey!="string"||!n.zoneKey)&&a.push("zoneKey"),(typeof n.label!="string"||!n.label)&&a.push("label"),(typeof n.color!="string"||!n.color)&&a.push("color"),typeof n.count!="number"&&a.push("count"),t&&typeof n.pop!="number"&&a.push("pop"),a.length&&o.push(`${n.id||"(no-id)"}: missing/!type [${a.join(", ")}]`)}if(o.length)throw new Error(`legend-tree L15: ${o.length} leaf node(s) violate the uniform consumer shape: `+o.join(` `));return!0}function hd(e){const t=[],o=n=>{for(const a of n)a.children&&a.children.length?o(a.children):t.push(a)};return o(e||[]),t}const md=()=>({type:"FeatureCollection",features:[]});function wk(e,t){const o=wn(e.selector,t),n=new Set;for(const a of t)a&&o.has(a.slug)&&a.country_code&&n.add(a.country_code);return n}function xk(e){return typeof e.id=="string"&&e.id.startsWith("asia-")}function ei(e,t){return{type:"Feature",properties:{...e.properties||{},zoneKey:t.zoneKey??t.id,zoneColor:t.color??t.zoneColor??"#888",zoneLabel:t.label,...t.id==="deaf"?{hatch:!0}:{}},geometry:e.geometry}}function Sk(e,t){const{records:o=[],adm0:n,adm1Ind:a,adm1Chn:r}=t||{},s=md();if(xk(e)){const l=[a,r].filter(Boolean);for(const c of l)for(const u of c.features||[])u.properties&&u.properties.listId===e.id&&s.features.push(ei(u,e));if(Array.isArray(e.adm0)&&e.adm0.length&&n){const c=new Set(e.adm0);for(const u of n.features||[])u.properties&&c.has(u.properties.iso3)&&s.features.push(ei(u,e))}return s}if(!e.selector)return s;const i=wk(e,o);if(n&&i.size)for(const l of n.features||[])l.properties&&i.has(l.properties.iso3)&&s.features.push(ei(l,e));return s}function Ak(e,t){const o=md(),n=new Map;for(const a of e){if(a.id==="deaf"){n.set(a.zoneKey??a.id,0);continue}const r=Sk(a,t);n.set(a.zoneKey??a.id,r.features.length);for(const s of r.features)o.features.push(s)}return{tapestry:o,perZone:n}}const $k={"andean-caribbean":"#f9a51f","asia-china-tibet-autonomous-region":"#00f0c8","asia-china-yunnan-province":"#22ddff","asia-frontier-nas-a":"#ff1744","asia-india-andhra-pradesh":"#22ddff","asia-india-assam":"#22ddff","asia-india-chhattisgarh":"#536dfe","asia-india-gujarat":"#536dfe","asia-india-karnataka":"#536dfe","asia-india-kerala":"#2196ff","asia-india-madhya-pradesh":"#2196ff","asia-india-maharashtra":"#2196ff","asia-india-odisha":"#2196ff","asia-india-rajasthan":"#22ddff","asia-india-tamil-nadu":"#7c4dff","asia-india-uttarakhand":"#536dfe","asia-india-west-bengal":"#22ddff",brazil:"#f4c57b","central-africa":"#c20001",deaf:"#18ffff","east-africa":"#ef3410",europe:"#34cb74",laos:"#7c4dff","maghreb-egypt":"#602f74","mainland-se-asia-philippines":"#ff1744","middle-east-core":"#bc8bd0","oceania-indonesia":"#ee892f","southern-africa-islands":"#e75556",sudan:"#e69e93","uncovered-central-asia":"#ff8a00","uncovered-himalaya":"#ff6d00","uncovered-japan":"#ffc400","uncovered-mongolia":"#76ff03","uncovered-nas-a":"#ff1744","uncovered-nepal":"#ffea00","uncovered-sa-west":"#ff1744","uncovered-scatter":"#eeff41","west-africa":"#edcac9"};function Lk(e,t){const o=$k[e];return typeof o=="string"&&o?o:t}const gr={"Andaman and Nicobar Islands":9,"Andhra Pradesh":81,"Arunāchal Pradesh":7,Assam:15,Bihār:18,Chandīgarh:1,Chhattīsgarh:24,Delhi:1,"Dādra and Nagar Haveli and Damān and Diu":1,Goa:5,Gujarāt:90,Haryāna:4,"Himāchal Pradesh":20,"Jammu and Kashmīr":33,Jhārkhand:9,Karnātaka:81,Kerala:72,Ladākh:6,Lakshadweep:1,"Madhya Pradesh":33,Mahārāshtra:54,Manipur:5,Meghālaya:2,Odisha:64,Puducherry:5,Punjab:4,Rājasthān:48,Sikkim:1,"Tamil Nādu":64,Telangāna:26,Tripura:11,"Uttar Pradesh":23,Uttarākhand:7,"West Bengal":30,"Gansu Province":3,"Guangxi Zhuang Autonomous Region":6,"Guizhou Province":34,"Hainan Province":3,"Heilongjiang Province":2,"Hunan Province":5,"Inner Mongolia Autonomous Region":3,"Qinghai Province":3,"Sichuan Province":12,"Tibet Autonomous Region":13,"Xinjiang Uyghur Autonomous Region":7,"Yunnan Province":61},bd={ABW:1,AFG:21,AGO:10,ALB:1,AND:1,ARE:2,ARM:1,ASM:1,ATG:1,AZE:3,BEN:9,BFA:8,BGD:3,BGR:1,BHR:2,BHS:1,BIH:1,BLM:1,BLR:1,BMU:1,BOL:1,BRA:103,BRB:1,BRN:5,BTN:13,CAF:1,CHN:154,CIV:2,CMR:8,COD:9,COG:2,COK:1,COL:27,COM:3,CUB:1,CUW:1,CYM:1,CYP:1,CZE:1,DJI:1,DMA:1,DZA:17,ECU:1,EGY:3,ERI:8,ESP:1,ETH:29,FIN:1,FJI:1,FRO:1,FSM:1,GAB:2,GEO:1,GGY:1,GHA:1,GIN:13,GLP:1,GMB:3,GNB:3,GNQ:1,GRC:1,GRD:1,GUF:2,GUM:1,GUY:1,IDN:36,IRN:20,IRQ:8,ISL:1,ISR:4,JAM:1,JOR:3,JPN:6,KAZ:1,KEN:5,KGZ:2,KHM:1,KIR:1,KWT:1,LAO:95,LBN:4,LBR:2,LBY:15,LCA:1,LIE:1,LKA:1,LUX:1,MAR:4,MDV:1,MHL:1,MLI:13,MLT:1,MMR:7,MNE:1,MNG:1,MNP:1,MOZ:4,MRT:3,MSR:1,MUS:1,MWI:1,MYS:12,MYT:1,NAM:6,NCL:1,NER:2,NGA:38,NIU:1,NPL:34,NZL:1,OMN:7,PAK:24,PAN:1,PER:10,PHL:1,PLW:1,PNG:1,PRK:1,PRY:1,PSE:4,PYF:1,QAT:3,RUS:21,SAU:3,SDN:105,SEN:1,SHN:1,SLB:1,SLE:2,SMR:1,SOM:9,SSD:22,STP:1,SUR:2,SWE:2,SWZ:1,SYR:5,TCA:1,TCD:53,TGO:6,THA:8,TJK:3,TON:1,TUN:2,TUR:3,TZA:16,UGA:6,USA:3,UZB:1,VCT:1,VEN:6,VGB:1,VIR:1,VNM:16,VUT:1,WLF:1,WSM:1,YEM:9,ZAF:2,ZMB:6,ZWE:3},ia={ABW:"Aruba",IND:"India",AFG:"Afghanistan",AGO:"Angola",ALB:"Albania",AND:"Andorra",ARE:"United Arab Emirates",ARM:"Armenia",ASM:"American Samoa",ATG:"Antigua and Barbuda",AZE:"Azerbaijan",BEN:"Benin",BFA:"Burkina Faso",BGD:"Bangladesh",BGR:"Bulgaria",BHR:"Bahrain",BHS:"Bahamas",BIH:"Bosnia and Herzegovina",BLM:"Saint Barthélemy",BLR:"Belarus",BMU:"Bermuda",BOL:"Bolivia",BRA:"Brazil",BRB:"Barbados",BRN:"Brunei",BTN:"Bhutan",CAF:"Central African Republic",CHN:"China",CIV:"Côte d'Ivoire",CMR:"Cameroon",COD:"DR Congo",COG:"Congo",COK:"Cook Islands",COL:"Colombia",COM:"Comoros",CUB:"Cuba",CUW:"Curaçao",CYM:"Cayman Islands",CYP:"Cyprus",CZE:"Czechia",DJI:"Djibouti",DMA:"Dominica",DZA:"Algeria",ECU:"Ecuador",EGY:"Egypt",ERI:"Eritrea",ESP:"Spain",ETH:"Ethiopia",FIN:"Finland",FJI:"Fiji",FRO:"Faroe Islands",FSM:"Micronesia",GAB:"Gabon",GEO:"Georgia",GGY:"Guernsey",GHA:"Ghana",GIN:"Guinea",GLP:"Guadeloupe",GMB:"Gambia",GNB:"Guinea-Bissau",GNQ:"Equatorial Guinea",GRC:"Greece",GRD:"Grenada",GUF:"French Guiana",GUM:"Guam",GUY:"Guyana",IDN:"Indonesia",IRN:"Iran",IRQ:"Iraq",ISL:"Iceland",ISR:"Israel",JAM:"Jamaica",JOR:"Jordan",JPN:"Japan",KAZ:"Kazakhstan",KEN:"Kenya",KGZ:"Kyrgyzstan",KHM:"Cambodia",KIR:"Kiribati",KWT:"Kuwait",LAO:"Laos",LBN:"Lebanon",LBR:"Liberia",LBY:"Libya",LCA:"Saint Lucia",LIE:"Liechtenstein",LKA:"Sri Lanka",LUX:"Luxembourg",MAR:"Morocco",MDV:"Maldives",MHL:"Marshall Islands",MLI:"Mali",MLT:"Malta",MMR:"Myanmar",MNE:"Montenegro",MNG:"Mongolia",MNP:"Northern Mariana Islands",MOZ:"Mozambique",MRT:"Mauritania",MSR:"Montserrat",MUS:"Mauritius",MWI:"Malawi",MYS:"Malaysia",MYT:"Mayotte",NAM:"Namibia",NCL:"New Caledonia",NER:"Niger",NGA:"Nigeria",NIU:"Niue",NPL:"Nepal",NZL:"New Zealand",OMN:"Oman",PAK:"Pakistan",PAN:"Panama",PER:"Peru",PHL:"Philippines",PLW:"Palau",PNG:"Papua New Guinea",PRK:"North Korea",PRY:"Paraguay",PSE:"Palestine",PYF:"French Polynesia",QAT:"Qatar",RUS:"Russia",SAU:"Saudi Arabia",SDN:"Sudan",SEN:"Senegal",SHN:"Saint Helena",SLB:"Solomon Islands",SLE:"Sierra Leone",SMR:"San Marino",SOM:"Somalia",SSD:"South Sudan",STP:"São Tomé and Príncipe",SUR:"Suriname",SWE:"Sweden",SWZ:"Eswatini",SYR:"Syria",TCA:"Turks and Caicos Islands",TCD:"Chad",TGO:"Togo",THA:"Thailand",TJK:"Tajikistan",TON:"Tonga",TUN:"Tunisia",TUR:"Turkey",TZA:"Tanzania",UGA:"Uganda",USA:"United States",UZB:"Uzbekistan",VCT:"Saint Vincent and the Grenadines",VEN:"Venezuela",VGB:"British Virgin Islands",VIR:"U.S. Virgin Islands",VNM:"Vietnam",VUT:"Vanuatu",WLF:"Wallis and Futuna",WSM:"Samoa",YEM:"Yemen",ZAF:"South Africa",ZMB:"Zambia",ZWE:"Zimbabwe"};function yd(e){const t={...ia};for(const o of e||[]){const n=o&&o.country_code,a=o&&o.country_code_label;n&&a&&(t[n]=a)}return t}function _d(e,t={}){if(!e||typeof e!="object")return null;const o=t.nameMap||ia;if(e.shapeName){const n=String(e.shapeName),a=Object.prototype.hasOwnProperty.call(gr,n)?gr[n]:null;return{key:"adm1:"+n,name:n,count:a,kind:"adm1"}}if(e.iso3){const n=String(e.iso3),a=o[n]||ia[n]||n,r=Object.prototype.hasOwnProperty.call(bd,n)?bd[n]:null;return{key:"adm0:"+n,name:a,count:r,kind:"adm0"}}return null}function vd(e,t={}){const o=Array.isArray(e)?e:[],n=o.map(l=>l.name),a=o.reduce((l,c)=>l+(Number(c.count)||0),0),r=t&&typeof t.color=="string"&&t.color?t.color:"",s=n.join(", ")+" — "+a+" UUPG"+(r?" · "+r:""),i=o.map(l=>l.name+" "+(Number(l.count)||0)).join(", ");return s+` -`+i}function An(e){return String(e??"").normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().trim()}function Ck(e){return An(e).split(/[\s,;]+/).filter(Boolean)}function Ek(e={}){const{records:t=[],leafZones:o=[],adm1Counts:n={},iso3Names:a={},countryNameMap:r=null}=e,s=[],i=new Set;for(const c of t){if(!c)continue;const u=c.slug;if(!u||i.has(u))continue;const p=Number(c.latitude),g=Number(c.longitude);if(!Number.isFinite(p)||!Number.isFinite(g))continue;const x=c.name||u;i.add(u),s.push({label:x,kind:"pg",target:{type:"pg",slug:u,lng:g,lat:p},_hay:An(x)})}for(const c of o){if(!c)continue;const u=c.zoneKey||c.id,p=c.label||u;u&&s.push({label:p,kind:"zone",target:{type:"zone",zoneId:u},_hay:An(p)})}for(const c of Object.keys(n))s.push({label:c,kind:"territory",target:{type:"territory",shapeName:c},_hay:An(c)});const l=r||a;for(const c of Object.keys(a)){const u=l&&l[c]||a[c]||c;s.push({label:u,kind:"territory",target:{type:"territory",shapeName:c,iso3:!0},_hay:An(u)})}return s}const Tk={zone:0,territory:1,pg:2};function Pk(e={}){const{records:t=[],leafZones:o=[],adm1Counts:n={},iso3Names:a={},countryNameMap:r=null,centroidFor:s=null}=e,i=[];for(const u of t)u&&i.push(u);const l=(u,p,g)=>!p||!Number.isFinite(p[0])||!Number.isFinite(p[1])?null:{name:u,slug:g.__synthSlug,latitude:p[1],longitude:p[0],...g};for(const u of o){if(!u)continue;const p=u.zoneKey||u.id,g=u.label||p;if(!p)continue;const x=typeof s=="function"?s(h=>h&&h.properties&&h.properties.zoneKey===p):null,w=l(g,x,{__upgKind:"zone",__zoneId:p,__synthSlug:`__zone__${p}`});w&&i.push(w)}for(const u of Object.keys(n)){const p=typeof s=="function"?s(x=>x&&x.properties&&x.properties.shapeName===u):null,g=l(u,p,{__upgKind:"territory",__shapeName:u,__synthSlug:`__terr__${u}`});g&&i.push(g)}const c=r||a;for(const u of Object.keys(a)){const p=c&&c[u]||a[u]||u,g=typeof s=="function"?s(w=>w&&w.properties&&w.properties.iso3===u):null,x=l(p,g,{__upgKind:"territory",__shapeName:u,__synthSlug:`__terr__${u}`});x&&i.push(x)}return i}function kd(e,t,o={}){const n=o.limit??8,a=Ck(t);if(!a.length)return[];const r=a[0],s=[];for(const i of e){let l=!0;for(const p of a)if(!i._hay.includes(p)){l=!1;break}if(!l)continue;const c=i._hay.startsWith(r)?0:1,u=i._hay===An(t)?-1:0;s.push({e:i,starts:c,exact:u,kr:Tk[i.kind]??9,len:i._hay.length})}return s.sort((i,l)=>i.exact-l.exact||i.starts-l.starts||i.kr-l.kr||i.len-l.len),s.slice(0,n).map(i=>i.e)}const Mk="rgba(120, 128, 134, 0.28)",wd="36px",xd=()=>{};function Nk(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return xd;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return xd;const a=k=>k.classList.contains("map-scroll-edge--left");for(const k of n)k.style.background=`linear-gradient(${a(k)?"to right":"to left"}, ${Mk} ${wd}, transparent ${wd})`,k.style.opacity="0",k.style.transition="opacity 0.16s ease",k.style.userSelect="none",k.style.webkitUserSelect="none";const r=k=>{k.style.opacity="1"},s=k=>{k.style.opacity="0"},i=()=>n.find(k=>!a(k))||null,l=new Set;let c=!1,u=null;const p=()=>{for(const k of n)l.has(k)||s(k)},g=()=>{const k=i();k&&(r(k),u&&clearTimeout(u),u=setTimeout(p,250))},x=()=>g(),w=k=>{if(!(k.touches&&k.touches.length===1))return;const v=k.target;v&&v.classList&&v.classList.contains("map-scroll-edge")||g()},h=()=>{u&&clearTimeout(u),p()};e.addEventListener("wheel",x,{passive:!0}),e.addEventListener("touchmove",w,{passive:!0}),e.addEventListener("touchend",h,{passive:!0}),e.addEventListener("touchcancel",h,{passive:!0});const d=()=>{c||g()};typeof window<"u"&&window.addEventListener("scroll",d,{passive:!0});const y=[];for(const k of n){const v=()=>{l.add(k),r(k)},_=()=>{l.delete(k),s(k)},m=()=>{c=!0,r(k)},$=()=>{c=!1,s(k)};k.addEventListener("mouseenter",v),k.addEventListener("mouseleave",_),k.addEventListener("touchstart",m,{passive:!0}),k.addEventListener("touchend",$,{passive:!0}),y.push(()=>{k.removeEventListener("mouseenter",v),k.removeEventListener("mouseleave",_),k.removeEventListener("touchstart",m),k.removeEventListener("touchend",$)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",x),e.removeEventListener("touchmove",w),e.removeEventListener("touchend",h),e.removeEventListener("touchcancel",h),typeof window<"u"&&window.removeEventListener("scroll",d);for(const v of y)v();for(const v of n)s(v)}}const Ik={class:"upg-root"},Rk={key:0,class:"upg-map-err"},Fk={class:"upg-legend-desktop-slot"},Ok={class:"upg-legend-mobile-slot"},Dk={class:"upg-detail-desktop-slot"},Bk={key:4,class:"upg-hud"},jk={key:0,class:"upg-hud-head"},Gk={class:"upg-hud-total"},Uk={key:1,class:"upg-hud-names"},Kk={key:2,class:"upg-hud-swatches"},zk=["data-color","title","onClick"],Hk={key:3,class:"upg-hud-actions"},Vk={key:4,class:"upg-hud-flash"},Wk={class:"upg-status"},ti="upg-search",Sd="My UPG 100 List — Legend",Yk="people-groups",qk="Search people group, zone, or territory…",Ad=8,oi=123,Jk=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"upg-100-list",setup(e){const t=ol(()=>Cn(()=>Promise.resolve().then(()=>u1),void 0)),o={lists:Lu,asia_lists:Cu,uncovered_lists:Eu},n=Ee("mapboxToken",ue("")),a=Ee("profileConfig",ue(null)),r=Q(()=>{var z;const J=(z=a.value)==null?void 0:z.edgeScrollAffordance;return J==null?!0:!(J===!1||J==="false")}),s=Ee("dataStore",null),i=Ee("uiStore",null),l=ue(null),c=ue("loading…"),u=ue(""),p=an([]),g=ue(null),x=an(null),w=ue(!1),h=d0("my-upg-100-list");h.theme.value="light",p0(h);const d=ue([]),y=Q(()=>d.value.reduce((J,z)=>J+(Number(z.count)||0),0)),k=Q(()=>d.value.length),v=ue("");let _=null;const m=ue(!1);function $(J){const z=J===void 0?!m.value:!!J;return z===m.value||(m.value=z,T&&(T.getCanvas().style.cursor=""),Ke()),z}function L(){$()}nt([m,w],()=>{mo(()=>ne())});function R(J){if(!J)return;const z=d.value,te=z.findIndex(le=>le.key===J.key);te>=0?d.value=z.filter((le,Ce)=>Ce!==te):d.value=[...z,J],Ke(),v.value=""}const M=["#e69f00","#56b4e9","#009e73","#f0e442","#0072b2","#d55e00","#cc79a7","#999999"],I=ue(""),C=ue("");function F(J){const z=/^#?([0-9a-fA-F]{6})$/.exec(String(J||"").trim());if(!z)return;const te="#"+z[1].toLowerCase();I.value=I.value===te?"":te,Ke()}function H(){/^#?[0-9a-fA-F]{6}$/.test(C.value.trim())&&F(C.value)}const G=ue(null),U=[{id:"upg100Region",label:"Region",info:"Region — the broadest grouping, one row per world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every zone beneath it."},{id:"upg100Zone",label:"Zone",info:"Zone — the prayer zones inside a region (e.g. Frontier Asia (uncovered) within Asia, or the Indian states within India). This is the level the map paints and colours."},{id:"upg100Group",label:"People Group",info:"People Group — the individual unreached groups inside a zone, largest prayer need first. Each map dot is one of these."}];let B=[],T=null,se=null,ye=[],ae=null,oe=null,fe=null;const Pe=typeof window<"u"&&window.MAP_APP_API_URL||"https://pray.doxa.life";wt(`.upg-root{position:absolute;inset:0;background:#0a1410;color:#e5e7eb;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.upg-map{position:absolute;inset:0}.upg-map-err{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);z-index:1;pointer-events:none;text-align:center;padding:0 24px;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#9aa7b8}.upg-map-err strong{display:block;font-size:14px;color:#cbd5e1;margin-bottom:4px}.map-scroll-edge{position:absolute;top:0;bottom:0;width:40px;z-index:2;touch-action:pan-y;pointer-events:auto;background:transparent}.map-scroll-edge--left{left:0}.map-scroll-edge--right{right:0}.upg-legend-mobile-slot{display:none}@media(max-width:767px){.upg-legend-mobile-slot{display:block}.upg-legend-desktop-slot{display:none}.upg-detail-desktop-slot{display:none}}.upg-status{position:absolute;bottom:10px;right:10px;z-index:5;font:10px/1 ui-monospace,monospace;color:#9aa7b8;background:rgba(10,14,21,.82);padding:6px 10px;border-radius:8px}.upg-detail-panel{position:absolute;top:60px;right:8px;bottom:10px;width:340px;max-width:calc(100vw - 16px);z-index:6;background:#fff;border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.45);overflow:hidden;display:flex;flex-direction:column;animation:upgPanelIn .18s ease}.upg-detail-panel.dark{background:#1a1a2e}@keyframes upgPanelIn{from{transform:translateX(16px);opacity:0}to{transform:translateX(0);opacity:1}}@media(max-width:480px){.upg-detail-panel{top:auto;left:8px;right:8px;width:auto;height:55vh}}.upg-hud{position:absolute;bottom:34px;right:10px;z-index:6;min-width:150px;font:11px/1.35 ui-monospace,monospace;color:#e5e7eb;background:rgba(10,20,16,.92);border:1px solid rgba(110,231,183,.35);border-radius:10px;padding:8px 10px;box-shadow:0 4px 16px rgba(0,0,0,.4)}.upg-hud-head{display:flex;align-items:baseline;gap:6px;white-space:nowrap}.upg-hud-total{font-size:15px;font-weight:700;color:#6ee7b7}.upg-hud-band{margin-left:auto;font-size:9px;color:#9aa7b8}.upg-hud-band.ok{color:#6ee7b7}.upg-hud-names{margin-top:5px;max-height:84px;overflow:auto;font-size:10px;color:#cbd5e1;line-height:1.45;word-break:break-word}.upg-hud-actions{display:flex;gap:6px;margin-top:7px}.upg-hud-btn{flex:1;cursor:pointer;border:1px solid rgba(110,231,183,.4);background:rgba(16,185,129,.18);color:#d1fae5;font:12px/1 ui-monospace,monospace;padding:0 10px;min-height:40px;border-radius:8px}.upg-hud-btn:hover{background:rgba(16,185,129,.32)}.upg-hud-btn.clear{background:rgba(148,163,184,.12);border-color:rgba(148,163,184,.4);color:#cbd5e1}.upg-hud-flash{margin-top:5px;font-size:9px;color:#6ee7b7;min-height:11px}.upg-hud-hint{margin-top:4px;font-size:9px;color:#64748b}.upg-hud-swatches{display:flex;gap:6px;margin-top:7px;align-items:center;flex-wrap:wrap}.upg-swatch{width:40px;height:40px;border-radius:9px;cursor:pointer;padding:0;border:1px solid rgba(255,255,255,.3)}.upg-swatch.active{outline:2px solid #fff;outline-offset:1px}.upg-hex{width:84px;min-height:40px;background:rgba(148,163,184,.12);border:1px solid rgba(148,163,184,.4);color:#cbd5e1;font:12px/1 ui-monospace,monospace;padding:0 8px;border-radius:8px}@media(max-width:480px){.upg-hud{left:8px;right:8px;min-width:0;bottom:30px;max-height:48vh;overflow:auto}}.map-toolbar .mcb.upg-batch-on{background:#10b981!important;color:#04241a!important;box-shadow:0 0 0 2px rgba(52,211,153,.45),0 1px 4px rgba(0,0,0,0.2)!important}.map-toolbar .mcb.upg-batch-on.dark{border-color:#34d399!important}.upg-batch-row{position:relative;background:rgba(16,185,129,.16)!important;opacity:1!important;box-shadow:inset 3px 0 0 0 #10b981}.upg-batch-row .stl-name{color:#065f46!important;font-weight:700}.stl-panel[data-theme="dark"] .upg-batch-row .stl-name,.upg-batch-row.dark .stl-name{color:#6ee7b7!important}.upg-batch-row .stl-dot{box-shadow:0 0 0 2px #10b981}.mapboxgl-ctrl-top-left{top:12px!important;left:8px!important;width:380px!important;max-width:380px!important;z-index:1200!important}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{margin:0!important;float:none!important}.stl-panel{top:58px!important}.dg-main{font:13px/1.3 ui-monospace,monospace}.dg-meta{margin-top:2px;font-size:11px;color:#475569;display:flex;flex-wrap:wrap;gap:8px}.dg-field strong{font-weight:700}.dg-section-header-item{padding:4px 8px;font:10px/1.2 ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8;pointer-events:none}`);function We(J){const z=[];for(const te of J)z.push(te.zoneKey,Lk(te.zoneKey,te.color));return["match",["get","zoneKey"],...z,"#9ca3af"]}function Xe(){if(T.getSource("tapestry"))return;T.addSource("tapestry",{type:"geojson",data:se});const J=w.value?.45:.3,z=w.value?.65:.45;T.addLayer({id:"tapestry-fill",type:"fill",source:"tapestry",paint:{"fill-color":ae,"fill-opacity":["case",["==",["get","zoneKey"],"deaf"],J,z]}}),T.addLayer({id:"tapestry-line",type:"line",source:"tapestry",paint:{"line-color":ae,"line-width":1.2,"line-opacity":.9}})}function Qe(){!T||!T.getSource("tapestry")||T.getLayer("upg-sel-fill")||(T.addLayer({id:"upg-sel-fill",type:"fill",source:"tapestry",filter:["boolean",!1],paint:{"fill-color":"#f59e0b","fill-opacity":.28}}),T.addLayer({id:"upg-sel-line",type:"line",source:"tapestry",filter:["boolean",!1],paint:{"line-color":"#fbbf24","line-width":2.4,"line-opacity":.95}}))}function ht(){const J=[],z=[],te=[];for(const Ce of d.value)Ce.kind==="adm1"?J.push(Ce.name):Ce.kind==="adm0"?z.push(Ce.key.slice(5)):Ce.kind==="zone"&&te.push(Ce.key.slice(5));const le=[];return J.length&&le.push(["in",["get","shapeName"],["literal",J]]),z.length&&le.push(["in",["get","iso3"],["literal",z]]),te.length&&le.push(["in",["get","zoneKey"],["literal",te]]),le.length?le.length===1?le[0]:["any",...le]:["boolean",!1]}function Ke(){if(ne(),!T||!T.getLayer("upg-sel-fill"))return;const J=m.value?ht():["boolean",!1];T.setFilter("upg-sel-fill",J),T.setFilter("upg-sel-line",J);const z=I.value;T.setPaintProperty("upg-sel-fill","fill-color",z||"#f59e0b"),T.setPaintProperty("upg-sel-fill","fill-opacity",z?.55:.28),T.setPaintProperty("upg-sel-line","line-color",z||"#fbbf24")}let it=null,Ye=!1;function $t(){if(!(!T||!T.getLayer("tapestry-fill"))){if(it)try{T.off("click","tapestry-fill",it)}catch{}it=J=>{const z=J&&J.features&&J.features[0];if(z&&m.value){const te=_d(z.properties,{nameMap:_});if(!te){console.warn("[batch-select] clicked feature has no shapeName/iso3",z.properties);return}te.count==null&&console.warn("[batch-select] no UUPG count for territory",te.name,z.properties),R(te)}},T.on("click","tapestry-fill",it),Ye||(T.on("mouseenter","tapestry-fill",()=>{T&&(T.getCanvas().style.cursor=m.value?"crosshair":"")}),T.on("mouseleave","tapestry-fill",()=>{T&&(T.getCanvas().style.cursor="")}),Ye=!0)}}function A(){d.value=[],v.value="",I.value="",C.value="",Ke()}async function N(){if(!d.value.length)return;const J=vd(d.value,{color:I.value});typeof window<"u"&&(window.__UPG_LAST_CLIPBOARD__=J);let z=!1;try{navigator.clipboard&&navigator.clipboard.writeText?(await navigator.clipboard.writeText(J),z=!0):z=E(J)}catch{z=E(J)}v.value=z?"Copied!":"Copy failed — press Ctrl/Cmd-C",setTimeout(()=>{v.value.startsWith("Copied")&&(v.value="")},1800)}function E(J){try{const z=document.createElement("textarea");z.value=J,z.style.position="fixed",z.style.opacity="0",z.style.top="0",document.body.appendChild(z),z.focus(),z.select();const te=document.execCommand&&document.execCommand("copy");return document.body.removeChild(z),!!te}catch{return!1}}function K(J){if(s&&typeof s.cacheSourceData=="function"){const z=Pk({records:J,leafZones:ye,adm1Counts:gr,iso3Names:ia,countryNameMap:_,centroidFor:te=>{const le=V(te);return le?[(le[0][0]+le[1][0])/2,(le[0][1]+le[1][1])/2]:null}});s.cacheSourceData(ti,{normalizedData:z})}B=Ek({records:J,leafZones:ye,adm1Counts:gr,iso3Names:ia,countryNameMap:_}),typeof window<"u"&&(window.__UPG_SEARCH__={size:()=>B.length,counts:()=>{const z={pg:0,zone:0,territory:0};for(const te of B)z[te.kind]=(z[te.kind]||0)+1;return z},query:z=>kd(B,z,{limit:Ad}).map(te=>({label:te.label,kind:te.kind,target:te.target})),select:z=>{const te=kd(B,z,{limit:Ad})[0];return te?(q(te.target),{label:te.label,kind:te.kind,target:te.target}):null},feedSize:()=>{const z=s&&s.sources&&s.sources[ti];return z&&Array.isArray(z.features)&&z.features.length||0},localGeocoder:z=>{const te=G.value&&G.value.geocoder,le=te&&te.options&&te.options.localGeocoder;return le?le(z).map(Ce=>Ce&&Ce.place_name):null}})}function Y(J){const z=J&&J.properties||{},te=z.__upgKind;if(te==="zone")b(z.__zoneId);else if(te==="territory")D(z.__shapeName);else{const le=J&&J.geometry,Ce=le&&Array.isArray(le.coordinates)?le.coordinates:null;Ce&&Number.isFinite(Ce[0])&&Number.isFinite(Ce[1])&&T&&T.flyTo({center:[Ce[0],Ce[1]],zoom:6,duration:800}),f(z.slug)}}function Z(J){if(!J||!T)return;const z=new Set(J.memberIds||[]);if(!z.size)return;let te=[];try{te=T.querySourceFeatures("upg").filter(De=>{const he=De.properties||{};return z.has(he.slug)||z.has(he.id)||z.has(he.peopleGroupId)})}catch{return}if(!te.length)return;let le=180,Ce=90,Nt=-180,mt=-90,Oe=!1;for(const De of te){const he=De.geometry&&De.geometry.coordinates;!Array.isArray(he)||!Number.isFinite(he[0])||!Number.isFinite(he[1])||(he[0]Nt&&(Nt=he[0]),he[1]mt&&(mt=he[1]),Oe=!0)}Oe&&T.fitBounds([[le,Ce],[Nt,mt]],{padding:60,duration:800,maxZoom:6})}function X(){_e(null),i&&typeof i.selectPeopleGroup=="function"&&i.selectPeopleGroup(null)}function q(J){!J||!T||(J.type==="pg"?(Number.isFinite(J.lng)&&Number.isFinite(J.lat)&&T.flyTo({center:[J.lng,J.lat],zoom:6,duration:800}),f(J.slug)):J.type==="zone"?b(J.zoneId):J.type==="territory"&&D(J.shapeName))}function f(J){if(!J||!i||typeof i.selectPeopleGroup!="function")return;const z=T&&T.getSource&&T.getSource("upg"),le=(z&&z._data&&z._data.features||[]).find(Ce=>Ce.properties&&Ce.properties.slug===J);le&&i.selectPeopleGroup(le)}function b(J){if(!J||!T||!se)return;const z=V(te=>te.properties&&te.properties.zoneKey===J);z&&T.fitBounds(z,{padding:40,duration:800,maxZoom:6})}function D(J){if(!J||!T||!se)return;const z=V(te=>{const le=te.properties||{};return le.shapeName===J||le.iso3===J});z&&T.fitBounds(z,{padding:40,duration:800,maxZoom:6})}function V(J){let z=180,te=90,le=-180,Ce=-90,Nt=!1;const mt=Oe=>{if(typeof Oe[0]=="number"){const[De,he]=Oe;Dele&&(le=De),heCe&&(Ce=he),Nt=!0;return}for(const De of Oe)mt(De)};for(const Oe of se.features)J(Oe)&&mt(Oe.geometry.coordinates);return Nt?[[z,te],[le,Ce]]:null}function ie(J){const z=new Set,te=le=>{le.children&&le.children.length?le.children.forEach(te):z.add(le.zoneKey??le.id)};return te(J),z}let re=null;function j(J){if(![...ie(J)].length)return;const te=[],le=Oe=>{Oe.children&&Oe.children.length?Oe.children.forEach(le):te.push(Oe)};le(J);const Ce=d.value,Nt=new Set(Ce.filter(Oe=>Oe.kind==="zone").map(Oe=>Oe.key));if(te.every(Oe=>Nt.has("zone:"+(Oe.zoneKey??Oe.id)))){const Oe=new Set(te.map(De=>"zone:"+(De.zoneKey??De.id)));d.value=Ce.filter(De=>!Oe.has(De.key))}else{const Oe=te.filter(De=>!Nt.has("zone:"+(De.zoneKey??De.id))).map(De=>({key:"zone:"+(De.zoneKey??De.id),name:De.label||De.id,count:Number(De.count)||0,kind:"zone"}));d.value=[...Ce,...Oe]}Ke(),v.value=""}function S(){const J=new Set;for(const z of d.value)z.kind==="zone"&&J.add(z.key.slice(5));return J}function O(){const J=new Map,z=te=>{const le=ie(te);te.label&&J.set(te.label,le),te.children&&te.children.length&&te.children.forEach(z)};for(const te of p.value)z(te);return J}function ne(){if(typeof document>"u")return;const J=document.querySelector("my-upg-100-list-map"),te=(J&&J.shadowRoot||document).querySelectorAll(".stl-row");if(!te.length)return;if(!m.value){te.forEach(mt=>mt.classList.remove("upg-batch-row"));return}const le=S(),Ce=O(),Nt=w.value;te.forEach(mt=>{const Oe=mt.querySelector(".stl-name"),De=Oe?Oe.textContent.trim():"",he=De&&Ce.get(De),qe=!!(he&&he.size&&[...he].every(lt=>le.has(lt)));mt.classList.toggle("upg-batch-row",qe),mt.classList.toggle("dark",qe&&Nt)})}let ce=null;function ge(){if(typeof document>"u"||ce)return;const J=document.querySelector("my-upg-100-list-map"),te=(J&&J.shadowRoot||document).querySelector(".stl-rows");te&&(ce=new MutationObserver(()=>{requestAnimationFrame(()=>ne())}),ce.observe(te,{childList:!0,subtree:!0}))}Pt("onSemanticTreeSelect",_e);function Le(J){const z=g.value;if(!z)return;if(J==="packet"){c.value="Prayer List — coming soon",setTimeout(()=>{c.value=""},2600);return}const te=$s(a.value),le=document.createElement("a");le.href=`${te}/posters/${z}.webp`,le.download=`doxa-upg-100-${z}-poster.webp`,document.body.appendChild(le),le.click(),le.remove()}function _e(J){if(!T||!T.getLayer("tapestry-fill"))return;if(m.value){J&&j(J);return}if(!J){re=null,g.value=null,T.setFilter("tapestry-fill",null),T.setFilter("tapestry-line",null),T.setPaintProperty("upg-pins","circle-opacity",1);return}re=J;const z=[...ie(J)];g.value=z.length===1?z[0]:J.id??null;const te=["in",["get","zoneKey"],["literal",z]];T.setFilter("tapestry-fill",te),T.setFilter("tapestry-line",te),T.getLayer("upg-pins")&&T.setPaintProperty("upg-pins","circle-opacity",["case",["in",["get","zoneKey"],["literal",z]],.95,.05]);const le=V(Ce=>z.includes(Ce.properties.zoneKey));le&&T.fitBounds(le,{padding:40,duration:700,maxZoom:6})}function ct(){!T||!se||(Xe(),typeof fe=="function"&&fe(),Qe(),$t(),Ke(),g.value&&T.getLayer("tapestry-fill")&&_e(re))}function Fe(){T&&(w.value=!w.value,h.theme.value=w.value?"dark":"light",T.setStyle(w.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11"),T.once("style.load",ct))}function tt(){!T||!T.getLayer("upg-pins")||(T.on("click","upg-pins",J=>{const z=J&&J.features&&J.features[0];z&&i&&typeof i.selectPeopleGroup=="function"&&i.selectPeopleGroup(z)}),T.on("mouseenter","upg-pins",()=>{T&&(T.getCanvas().style.cursor="pointer")}),T.on("mouseleave","upg-pins",()=>{T&&(T.getCanvas().style.cursor="")}))}let lo=null;function fr(J){var le;const z=((le=J==null?void 0:J.detail)==null?void 0:le.listId)??null;if(!z){_e(null);return}const te=Cd(p.value,z);te&&_e(te)}function Cd(J,z){for(const te of J||[]){if((te.zoneKey||te.id)===z)return te;const le=te.children&&Cd(te.children,z);if(le)return le}return null}function sw(){const J=Qs(o,{deafCount:oi});p.value=J,ye=hd(J);const z={};for(const te of o.lists||[])z[te.id]=te.selector;for(const te of o.asia_lists||[])z[te.id]=te.selector;for(const te of o.uncovered_lists||[])z[te.id]=te.selector;z.deaf={type:"affinity_bloc",rop1:"A017"};for(const te of ye)te.selector=z[te.id];ae=We(ye)}async function Ed(){try{const z=await fetch(`${Pe}/api/people-groups/list?fields=slug,name,country_code,wagf_region,wagf_block,rop1,population,latitude,longitude&lang=en`,{cache:"no-store"});if(!z.ok)throw new Error(`list ${z.status}`);const te=Ls(Cs(await z.json()));_=yd(te),p.value=Qs(o,{deafCount:oi,records:te})}catch{}}return to(async()=>{var Ce,Nt,mt,Oe,De;sw();const J=window.mapboxgl,z=(n==null?void 0:n.value)||((Ce=a==null?void 0:a.value)==null?void 0:Ce.tk)||"";if(!J){c.value="⚠ mapbox-gl not loaded",u.value="mapbox-gl did not load. The list and legend are unaffected.",Ed();return}if(!z){c.value="⚠ no mapbox token",u.value="No Mapbox token configured. The list and legend are unaffected.",Ed();return}J.accessToken=z;try{const he=l.value&&l.value.getRootNode();if(he instanceof ShadowRoot){const qe="https://api.mapbox.com/mapbox-gl-js/v3.3.0/mapbox-gl.css";if(!he.querySelector(`link[href="${qe}"]`)){const lt=document.createElement("link");lt.rel="stylesheet",lt.href=qe,he.prepend(lt)}}}catch{}T=new J.Map({container:l.value,style:"mapbox://styles/mapbox/light-v11",center:[35,20],zoom:1.5,projection:"mercator"}),x.value=T,oe=Nk(((Nt=l.value)==null?void 0:Nt.parentElement)||null,{enabled:r.value}),typeof window<"u"&&(window.__UPG_MAP__=T),window.__UPG_SELECT__={get list(){return d.value.map(he=>({...he}))},get total(){return y.value},get count(){return k.value},get color(){return I.value},get batchMode(){return m.value},setColor:he=>F(he),setBatchMode:he=>$(he),clipboardText:()=>vd(d.value,{color:I.value}),clear:()=>A(),toggleByProps:he=>{const qe=_d(he,{nameMap:_});return qe?(R(qe),{...qe}):null},toggleLegendRow:he=>{const qe=jo=>{for(const at of jo){if(at.label===he)return at;if(at.children&&at.children.length){const co=qe(at.children);if(co)return co}}return null},lt=qe(p.value);return lt?(j(lt),{label:lt.label,zoneKeys:[...ie(lt)]}):null},markedLegendRows:()=>{if(typeof document>"u")return[];const he=document.querySelector("my-upg-100-list-map");return[...(he&&he.shadowRoot||document).querySelectorAll(".stl-row.upg-batch-row .stl-name")].map(lt=>lt.textContent.trim())},highlightFeatureCount:()=>{if(!T||!se||!T.getLayer("upg-sel-fill"))return-1;const he=new Set,qe=new Set,lt=new Set;for(const at of d.value)at.kind==="zone"?he.add(at.key.slice(5)):at.kind==="adm1"?qe.add(at.name):at.kind==="adm0"&<.add(at.key.slice(5));let jo=0;for(const at of se.features){const co=at.properties||{};(he.has(co.zoneKey)||qe.has(co.shapeName)||lt.has(co.iso3))&&jo++}return jo},zoneKeysForRow:he=>{const qe=jo=>{for(const at of jo){if(at.label===he)return at;if(at.children&&at.children.length){const co=qe(at.children);if(co)return co}}return null},lt=qe(p.value);return lt?[...ie(lt)]:null}};try{c.value="loading boundaries…";const he=Ne=>`${$s(a.value)}/boundaries/${Ne}`,qe=Ne=>fetch(he(Ne)).then(bt=>{if(!bt.ok)throw new Error(`boundary fetch ${bt.status} ${Ne}`);return bt.json()}),[lt,jo,at]=await Promise.all([qe("world-adm0.geojson"),qe("gb-IND-ADM1.geojson"),qe("gb-CHN-ADM1.geojson")]);c.value="fetching 2106 UUPGs…";const ni=await fetch(`${Pe}/api/people-groups/list?fields=slug,name,country_code,wagf_region,wagf_block,rop1,population,latitude,longitude&lang=en`,{cache:"no-store"});if(!ni.ok)throw new Error(`list ${ni.status}`);const $n=Ls(Cs(await ni.json()));_=yd($n),p.value=Qs(o,{deafCount:oi,records:$n});const{tapestry:iw,perZone:lw}=Ak(ye,{records:$n,adm0:lt,adm1Ind:jo,adm1Chn:at});se=Uo(iw),K($n);const ai=[],la={},{evaluate:cw}=await Cn(async()=>{const{evaluate:Ne}=await Promise.resolve().then(()=>jy);return{evaluate:Ne}},void 0);for(const Ne of ye)if(Ne.selector&&Ne.selector.type==="pg_slugs")for(const bt of Ne.selector.values||[])bt in la||(la[bt]=Ne.zoneKey);else try{for(const bt of cw(Ne.selector,$n))bt in la||(la[bt]=Ne.zoneKey)}catch(bt){console.warn("zone selector skipped",Ne.id,bt&&bt.message)}for(const Ne of $n){const bt=Number(Ne.latitude),si=Number(Ne.longitude);!isFinite(bt)||!isFinite(si)||ai.push({type:"Feature",geometry:{type:"Point",coordinates:[si,bt]},properties:{slug:Ne.slug,zoneKey:la[Ne.slug]||"",name:Ne.name||Ne.slug||"",population:Ne.population??0,countryName:Ne.country_code_label||"",country:Ne.country_code||""}})}const uw=Uo({type:"FeatureCollection",features:ai});fe=()=>{T.getSource("upg")||(T.addSource("upg",{type:"geojson",data:uw}),T.addLayer({id:"upg-pins",type:"circle",source:"upg",paint:{"circle-radius":["interpolate",["linear"],["zoom"],1,4,4,6,8,9],"circle-color":ae,"circle-opacity":1,"circle-stroke-width":["interpolate",["linear"],["zoom"],1,1.2,8,2],"circle-stroke-color":"rgba(15,20,25,0.9)"}}),tt())};let ri=!0;const Ln=()=>{ri&&(ri=!1,T.off("style.load",Ln),T.off("idle",Ln),ct())};if(T.isStyleLoaded())Ln();else{T.once("style.load",Ln),T.once("idle",Ln);const Ne=setInterval(()=>{if(!ri||!T){clearInterval(Ne);return}let bt=!1;try{bt=T.isStyleLoaded()}catch{clearInterval(Ne);return}bt&&(clearInterval(Ne),Ln())},120);setTimeout(()=>clearInterval(Ne),15e3)}const Td=[...lw.entries()].filter(([Ne])=>Ne!=="deaf"),dw=Td.filter(([,Ne])=>Ne>=1).length;c.value=`${se.features.length} polys · ${dw}/${Td.length} zones · ${ai.length} pins`}catch(he){c.value="⚠ "+(he&&he.message?he.message:String(he))}let te=0;const le=()=>{const he=typeof document<"u"&&document.querySelector("my-upg-100-list-map"),qe=he&&he.shadowRoot||(typeof document<"u"?document:null);if(qe&&qe.querySelector(".stl-rows")){ge(),ne();return}te++<40&&setTimeout(le,250)};le();{const he=(De=(Oe=(mt=l.value)==null?void 0:mt.getRootNode)==null?void 0:Oe.call(mt))==null?void 0:De.host;he&&(lo=fr,he.addEventListener("doxa:select-zone",lo))}}),yo(()=>{var J,z,te;if(lo){const le=(te=(z=(J=l.value)==null?void 0:J.getRootNode)==null?void 0:z.call(J))==null?void 0:te.host;le==null||le.removeEventListener("doxa:select-zone",lo),lo=null}if(ce){try{ce.disconnect()}catch{}ce=null}if(oe){try{oe()}catch{}oe=null}T&&(T.remove(),T=null),se=null}),(J,z)=>{var te;return W(),ee("div",Ik,[P("div",{ref_key:"mapEl",ref:l,class:"upg-map"},null,512),u.value?(W(),ee("div",Rk,[z[1]||(z[1]=P("strong",null,"Map unavailable",-1)),dt(de(u.value),1)])):me("",!0),r.value?(W(),ee($e,{key:1},[z[2]||(z[2]=P("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),z[3]||(z[3]=P("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1))],64)):me("",!0),x.value?(W(),rt(yk,{key:2,ref_key:"geocoderRef",ref:G,"map-instance":x.value,"access-token":be(n)||((te=be(a))==null?void 0:te.tk)||"","data-source-id":ti,"is-dark":w.value,placeholder:qk,"active-context":Yk,onPeopleGroupResult:Y,onAggregateResult:Z,onClear:X},null,8,["map-instance","access-token","is-dark"])):me("",!0),x.value?(W(),rt($1,{key:3},{default:jt(()=>[je(C1,{map:x.value,"is-dark":w.value},null,8,["map","is-dark"]),je(E1,{map:x.value,"is-dark":w.value},null,8,["map","is-dark"]),je(T1,{map:x.value,"is-dark":w.value},null,8,["map","is-dark"]),je(N1,{"map-container":l.value,"is-dark":w.value},null,8,["map-container","is-dark"]),je(R1,{"is-dark":w.value,onToggle:Fe},null,8,["is-dark"]),je(ud,{"is-dark":w.value,"embed-path":"my-upg-100-list/upg-100-list/index.html"},null,8,["is-dark"]),je(Xo,{"is-dark":w.value,active:m.value,class:Ae({"upg-batch-on":m.value}),"aria-pressed":m.value?"true":"false",title:"Batch Select",onClick:L},{default:jt(()=>[...z[4]||(z[4]=[P("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[P("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1"}),P("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1"}),P("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1"}),P("rect",{x:"14",y:"14",width:"7",height:"7",rx:"1"})],-1)])]),_:1},8,["is-dark","active","class","aria-pressed"])]),_:1})):me("",!0),P("div",Fk,[p.value.length?(W(),rt(Iu,{key:0,nodes:p.value,tabs:U,columns:["count","pop"],title:Sd,"export-enabled":!0,onSelect:_e,onExport:Le},null,8,["nodes"])):me("",!0)]),P("div",Ok,[p.value.length?(W(),rt(A1,{key:0,"legend-type":"upg-100",nodes:p.value,columns:["count","pop"],"column-label":"UPG 100",title:Sd,"is-dark":w.value,"popup-action":"pray"},null,8,["nodes","is-dark"])):me("",!0)]),P("div",Dk,[be(i)&&be(i).selectedPeopleGroup?(W(),ee("div",{key:0,class:Ae(["upg-detail-panel pg-detail-root",{dark:w.value}])},[je(be(t),{peopleGroup:be(i).selectedPeopleGroup,dark:w.value,action:"pray"},null,8,["peopleGroup","dark"])],2)):me("",!0)]),m.value?(W(),ee("div",Bk,[z[5]||(z[5]=P("div",{class:"upg-hud-hint"}," Tap territories on the map or legend rows to add · tap again to remove ",-1)),k.value?(W(),ee("div",jk,[P("span",null,de(k.value)+" territor"+de(k.value===1?"y":"ies")+" ·",1),P("span",Gk,de(y.value)+" UUPG",1),P("span",{class:Ae(["upg-hud-band",{ok:y.value>=50&&y.value<=100}])},de(y.value>=50&&y.value<=100?"✓ 50–100 band":"band 50–100"),3)])):me("",!0),k.value?(W(),ee("div",Uk,de(d.value.map(le=>le.name).join(", ")),1)):me("",!0),k.value?(W(),ee("div",Kk,[(W(),ee($e,null,St(M,le=>P("button",{key:le,class:Ae(["upg-swatch",{active:I.value===le}]),"data-color":le,style:et({background:le}),title:le,onClick:Ce=>F(le)},null,14,zk)),64)),Sp(P("input",{"onUpdate:modelValue":z[0]||(z[0]=le=>C.value=le),class:"upg-hex",placeholder:"#hex",spellcheck:"false",onChange:H,onKeyup:os(H,["enter"])},null,544),[[af,C.value]])])):me("",!0),k.value?(W(),ee("div",Hk,[P("button",{class:"upg-hud-btn copy",onClick:N},"Copy selection"),P("button",{class:"upg-hud-btn clear",onClick:A},"Clear")])):me("",!0),k.value?(W(),ee("div",Vk,de(v.value),1)):me("",!0)])):me("",!0),P("div",Wk,de(c.value),1)])}}}},Symbol.toStringTag,{value:"Module"})),Zk=` +`+i}function An(e){return String(e??"").normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().trim()}function Ck(e){return An(e).split(/[\s,;]+/).filter(Boolean)}function Ek(e={}){const{records:t=[],leafZones:o=[],adm1Counts:n={},iso3Names:a={},countryNameMap:r=null}=e,s=[],i=new Set;for(const c of t){if(!c)continue;const u=c.slug;if(!u||i.has(u))continue;const p=Number(c.latitude),g=Number(c.longitude);if(!Number.isFinite(p)||!Number.isFinite(g))continue;const x=c.name||u;i.add(u),s.push({label:x,kind:"pg",target:{type:"pg",slug:u,lng:g,lat:p},_hay:An(x)})}for(const c of o){if(!c)continue;const u=c.zoneKey||c.id,p=c.label||u;u&&s.push({label:p,kind:"zone",target:{type:"zone",zoneId:u},_hay:An(p)})}for(const c of Object.keys(n))s.push({label:c,kind:"territory",target:{type:"territory",shapeName:c},_hay:An(c)});const l=r||a;for(const c of Object.keys(a)){const u=l&&l[c]||a[c]||c;s.push({label:u,kind:"territory",target:{type:"territory",shapeName:c,iso3:!0},_hay:An(u)})}return s}const Tk={zone:0,territory:1,pg:2};function Pk(e={}){const{records:t=[],leafZones:o=[],adm1Counts:n={},iso3Names:a={},countryNameMap:r=null,centroidFor:s=null}=e,i=[];for(const u of t)u&&i.push(u);const l=(u,p,g)=>!p||!Number.isFinite(p[0])||!Number.isFinite(p[1])?null:{name:u,slug:g.__synthSlug,latitude:p[1],longitude:p[0],...g};for(const u of o){if(!u)continue;const p=u.zoneKey||u.id,g=u.label||p;if(!p)continue;const x=typeof s=="function"?s(h=>h&&h.properties&&h.properties.zoneKey===p):null,w=l(g,x,{__upgKind:"zone",__zoneId:p,__synthSlug:`__zone__${p}`});w&&i.push(w)}for(const u of Object.keys(n)){const p=typeof s=="function"?s(x=>x&&x.properties&&x.properties.shapeName===u):null,g=l(u,p,{__upgKind:"territory",__shapeName:u,__synthSlug:`__terr__${u}`});g&&i.push(g)}const c=r||a;for(const u of Object.keys(a)){const p=c&&c[u]||a[u]||u,g=typeof s=="function"?s(w=>w&&w.properties&&w.properties.iso3===u):null,x=l(p,g,{__upgKind:"territory",__shapeName:u,__synthSlug:`__terr__${u}`});x&&i.push(x)}return i}function kd(e,t,o={}){const n=o.limit??8,a=Ck(t);if(!a.length)return[];const r=a[0],s=[];for(const i of e){let l=!0;for(const p of a)if(!i._hay.includes(p)){l=!1;break}if(!l)continue;const c=i._hay.startsWith(r)?0:1,u=i._hay===An(t)?-1:0;s.push({e:i,starts:c,exact:u,kr:Tk[i.kind]??9,len:i._hay.length})}return s.sort((i,l)=>i.exact-l.exact||i.starts-l.starts||i.kr-l.kr||i.len-l.len),s.slice(0,n).map(i=>i.e)}const Mk="rgba(120, 128, 134, 0.28)",wd="36px",xd=()=>{};function Nk(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return xd;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return xd;const a=k=>k.classList.contains("map-scroll-edge--left");for(const k of n)k.style.background=`linear-gradient(${a(k)?"to right":"to left"}, ${Mk} ${wd}, transparent ${wd})`,k.style.opacity="0",k.style.transition="opacity 0.16s ease",k.style.userSelect="none",k.style.webkitUserSelect="none";const r=k=>{k.style.opacity="1"},s=k=>{k.style.opacity="0"},i=()=>n.find(k=>!a(k))||null,l=new Set;let c=!1,u=null;const p=()=>{for(const k of n)l.has(k)||s(k)},g=()=>{const k=i();k&&(r(k),u&&clearTimeout(u),u=setTimeout(p,250))},x=()=>g(),w=k=>{if(!(k.touches&&k.touches.length===1))return;const v=k.target;v&&v.classList&&v.classList.contains("map-scroll-edge")||g()},h=()=>{u&&clearTimeout(u),p()};e.addEventListener("wheel",x,{passive:!0}),e.addEventListener("touchmove",w,{passive:!0}),e.addEventListener("touchend",h,{passive:!0}),e.addEventListener("touchcancel",h,{passive:!0});const d=()=>{c||g()};typeof window<"u"&&window.addEventListener("scroll",d,{passive:!0});const y=[];for(const k of n){const v=()=>{l.add(k),r(k)},_=()=>{l.delete(k),s(k)},m=()=>{c=!0,r(k)},$=()=>{c=!1,s(k)};k.addEventListener("mouseenter",v),k.addEventListener("mouseleave",_),k.addEventListener("touchstart",m,{passive:!0}),k.addEventListener("touchend",$,{passive:!0}),y.push(()=>{k.removeEventListener("mouseenter",v),k.removeEventListener("mouseleave",_),k.removeEventListener("touchstart",m),k.removeEventListener("touchend",$)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",x),e.removeEventListener("touchmove",w),e.removeEventListener("touchend",h),e.removeEventListener("touchcancel",h),typeof window<"u"&&window.removeEventListener("scroll",d);for(const v of y)v();for(const v of n)s(v)}}const Ik={class:"upg-root"},Rk={key:0,class:"upg-map-err"},Fk={class:"upg-legend-desktop-slot"},Ok={class:"upg-legend-mobile-slot"},Dk={class:"upg-detail-desktop-slot"},Bk={key:4,class:"upg-hud"},jk={key:0,class:"upg-hud-head"},Gk={class:"upg-hud-total"},Uk={key:1,class:"upg-hud-names"},Kk={key:2,class:"upg-hud-swatches"},zk=["data-color","title","onClick"],Hk={key:3,class:"upg-hud-actions"},Vk={key:4,class:"upg-hud-flash"},Wk={class:"upg-status"},ti="upg-search",Sd="My UPG 100 List — Legend",Yk="people-groups",qk="Search people group, zone, or territory…",Ad=8,oi=123,Jk=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"upg-100-list",setup(e){const t=ol(()=>Cn(()=>Promise.resolve().then(()=>u1),void 0)),o={lists:Lu,asia_lists:Cu,uncovered_lists:Eu},n=Ee("mapboxToken",ue("")),a=Ee("profileConfig",ue(null)),r=Q(()=>{var z;const J=(z=a.value)==null?void 0:z.edgeScrollAffordance;return J==null?!0:!(J===!1||J==="false")}),s=Ee("dataStore",null),i=Ee("uiStore",null),l=ue(null),c=ue("loading…"),u=ue(""),p=an([]),g=ue(null),x=an(null),w=ue(!1),h=d0("my-upg-100-list");h.theme.value="light",p0(h);const d=ue([]),y=Q(()=>d.value.reduce((J,z)=>J+(Number(z.count)||0),0)),k=Q(()=>d.value.length),v=ue("");let _=null;const m=ue(!1);function $(J){const z=J===void 0?!m.value:!!J;return z===m.value||(m.value=z,T&&(T.getCanvas().style.cursor=""),Ke()),z}function L(){$()}nt([m,w],()=>{mo(()=>ne())});function R(J){if(!J)return;const z=d.value,te=z.findIndex(le=>le.key===J.key);te>=0?d.value=z.filter((le,Ce)=>Ce!==te):d.value=[...z,J],Ke(),v.value=""}const M=["#e69f00","#56b4e9","#009e73","#f0e442","#0072b2","#d55e00","#cc79a7","#999999"],I=ue(""),C=ue("");function F(J){const z=/^#?([0-9a-fA-F]{6})$/.exec(String(J||"").trim());if(!z)return;const te="#"+z[1].toLowerCase();I.value=I.value===te?"":te,Ke()}function H(){/^#?[0-9a-fA-F]{6}$/.test(C.value.trim())&&F(C.value)}const G=ue(null),U=[{id:"upg100Region",label:"Region",info:"Region — the broadest grouping, one row per world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every zone beneath it."},{id:"upg100Zone",label:"Zone",info:"Zone — the prayer zones inside a region (e.g. Frontier Asia (uncovered) within Asia, or the Indian states within India). This is the level the map paints and colours."},{id:"upg100Group",label:"People Group",info:"People Group — the individual unreached groups inside a zone, largest prayer need first. Each map dot is one of these."}];let B=[],T=null,se=null,ye=[],ae=null,oe=null,fe=null;const Pe=typeof window<"u"&&window.MAP_APP_API_URL||"https://pray.doxa.life";wt(`.upg-root{position:absolute;inset:0;background:#0a1410;color:#e5e7eb;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.upg-map{position:absolute;inset:0}.upg-map-err{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);z-index:1;pointer-events:none;text-align:center;padding:0 24px;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#9aa7b8}.upg-map-err strong{display:block;font-size:14px;color:#cbd5e1;margin-bottom:4px}.map-scroll-edge{position:absolute;top:0;bottom:0;width:40px;z-index:2;touch-action:pan-y;pointer-events:auto;background:transparent}.map-scroll-edge--left{left:0}.map-scroll-edge--right{right:0}.upg-legend-desktop-slot{--stl-top:8px}.upg-legend-mobile-slot{display:none}@media(max-width:767px){.upg-legend-mobile-slot{display:block}.upg-legend-desktop-slot{display:none}.upg-detail-desktop-slot{display:none}}.upg-status{position:absolute;bottom:10px;right:10px;z-index:5;font:10px/1 ui-monospace,monospace;color:#9aa7b8;background:rgba(10,14,21,.82);padding:6px 10px;border-radius:8px}.upg-detail-panel{position:absolute;top:60px;right:8px;bottom:10px;width:340px;max-width:calc(100vw - 16px);z-index:6;background:#fff;border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.45);overflow:hidden;display:flex;flex-direction:column;animation:upgPanelIn .18s ease}.upg-detail-panel.dark{background:#1a1a2e}@keyframes upgPanelIn{from{transform:translateX(16px);opacity:0}to{transform:translateX(0);opacity:1}}@media(max-width:480px){.upg-detail-panel{top:auto;left:8px;right:8px;width:auto;height:55vh}}.upg-hud{position:absolute;bottom:34px;right:10px;z-index:6;min-width:150px;font:11px/1.35 ui-monospace,monospace;color:#e5e7eb;background:rgba(10,20,16,.92);border:1px solid rgba(110,231,183,.35);border-radius:10px;padding:8px 10px;box-shadow:0 4px 16px rgba(0,0,0,.4)}.upg-hud-head{display:flex;align-items:baseline;gap:6px;white-space:nowrap}.upg-hud-total{font-size:15px;font-weight:700;color:#6ee7b7}.upg-hud-band{margin-left:auto;font-size:9px;color:#9aa7b8}.upg-hud-band.ok{color:#6ee7b7}.upg-hud-names{margin-top:5px;max-height:84px;overflow:auto;font-size:10px;color:#cbd5e1;line-height:1.45;word-break:break-word}.upg-hud-actions{display:flex;gap:6px;margin-top:7px}.upg-hud-btn{flex:1;cursor:pointer;border:1px solid rgba(110,231,183,.4);background:rgba(16,185,129,.18);color:#d1fae5;font:12px/1 ui-monospace,monospace;padding:0 10px;min-height:40px;border-radius:8px}.upg-hud-btn:hover{background:rgba(16,185,129,.32)}.upg-hud-btn.clear{background:rgba(148,163,184,.12);border-color:rgba(148,163,184,.4);color:#cbd5e1}.upg-hud-flash{margin-top:5px;font-size:9px;color:#6ee7b7;min-height:11px}.upg-hud-hint{margin-top:4px;font-size:9px;color:#64748b}.upg-hud-swatches{display:flex;gap:6px;margin-top:7px;align-items:center;flex-wrap:wrap}.upg-swatch{width:40px;height:40px;border-radius:9px;cursor:pointer;padding:0;border:1px solid rgba(255,255,255,.3)}.upg-swatch.active{outline:2px solid #fff;outline-offset:1px}.upg-hex{width:84px;min-height:40px;background:rgba(148,163,184,.12);border:1px solid rgba(148,163,184,.4);color:#cbd5e1;font:12px/1 ui-monospace,monospace;padding:0 8px;border-radius:8px}@media(max-width:480px){.upg-hud{left:8px;right:8px;min-width:0;bottom:30px;max-height:48vh;overflow:auto}}.map-toolbar .mcb.upg-batch-on{background:#10b981!important;color:#04241a!important;box-shadow:0 0 0 2px rgba(52,211,153,.45),0 1px 4px rgba(0,0,0,0.2)!important}.map-toolbar .mcb.upg-batch-on.dark{border-color:#34d399!important}.upg-batch-row{position:relative;background:rgba(16,185,129,.16)!important;opacity:1!important;box-shadow:inset 3px 0 0 0 #10b981}.upg-batch-row .stl-name{color:#065f46!important;font-weight:700}.stl-panel[data-theme="dark"] .upg-batch-row .stl-name,.upg-batch-row.dark .stl-name{color:#6ee7b7!important}.upg-batch-row .stl-dot{box-shadow:0 0 0 2px #10b981}.mapboxgl-ctrl-top-left{top:12px!important;left:8px!important;width:380px!important;max-width:380px!important;z-index:1200!important}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{margin:0!important;float:none!important}.stl-panel{top:8px!important}.upg-root:has(.mapboxgl-ctrl-geocoder) .stl-panel{top:58px!important}.dg-main{font:13px/1.3 ui-monospace,monospace}.dg-meta{margin-top:2px;font-size:11px;color:#475569;display:flex;flex-wrap:wrap;gap:8px}.dg-field strong{font-weight:700}.dg-section-header-item{padding:4px 8px;font:10px/1.2 ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8;pointer-events:none}`);function We(J){const z=[];for(const te of J)z.push(te.zoneKey,Lk(te.zoneKey,te.color));return["match",["get","zoneKey"],...z,"#9ca3af"]}function Xe(){if(T.getSource("tapestry"))return;T.addSource("tapestry",{type:"geojson",data:se});const J=w.value?.45:.3,z=w.value?.65:.45;T.addLayer({id:"tapestry-fill",type:"fill",source:"tapestry",paint:{"fill-color":ae,"fill-opacity":["case",["==",["get","zoneKey"],"deaf"],J,z]}}),T.addLayer({id:"tapestry-line",type:"line",source:"tapestry",paint:{"line-color":ae,"line-width":1.2,"line-opacity":.9}})}function Qe(){!T||!T.getSource("tapestry")||T.getLayer("upg-sel-fill")||(T.addLayer({id:"upg-sel-fill",type:"fill",source:"tapestry",filter:["boolean",!1],paint:{"fill-color":"#f59e0b","fill-opacity":.28}}),T.addLayer({id:"upg-sel-line",type:"line",source:"tapestry",filter:["boolean",!1],paint:{"line-color":"#fbbf24","line-width":2.4,"line-opacity":.95}}))}function ht(){const J=[],z=[],te=[];for(const Ce of d.value)Ce.kind==="adm1"?J.push(Ce.name):Ce.kind==="adm0"?z.push(Ce.key.slice(5)):Ce.kind==="zone"&&te.push(Ce.key.slice(5));const le=[];return J.length&&le.push(["in",["get","shapeName"],["literal",J]]),z.length&&le.push(["in",["get","iso3"],["literal",z]]),te.length&&le.push(["in",["get","zoneKey"],["literal",te]]),le.length?le.length===1?le[0]:["any",...le]:["boolean",!1]}function Ke(){if(ne(),!T||!T.getLayer("upg-sel-fill"))return;const J=m.value?ht():["boolean",!1];T.setFilter("upg-sel-fill",J),T.setFilter("upg-sel-line",J);const z=I.value;T.setPaintProperty("upg-sel-fill","fill-color",z||"#f59e0b"),T.setPaintProperty("upg-sel-fill","fill-opacity",z?.55:.28),T.setPaintProperty("upg-sel-line","line-color",z||"#fbbf24")}let it=null,Ye=!1;function $t(){if(!(!T||!T.getLayer("tapestry-fill"))){if(it)try{T.off("click","tapestry-fill",it)}catch{}it=J=>{const z=J&&J.features&&J.features[0];if(z&&m.value){const te=_d(z.properties,{nameMap:_});if(!te){console.warn("[batch-select] clicked feature has no shapeName/iso3",z.properties);return}te.count==null&&console.warn("[batch-select] no UUPG count for territory",te.name,z.properties),R(te)}},T.on("click","tapestry-fill",it),Ye||(T.on("mouseenter","tapestry-fill",()=>{T&&(T.getCanvas().style.cursor=m.value?"crosshair":"")}),T.on("mouseleave","tapestry-fill",()=>{T&&(T.getCanvas().style.cursor="")}),Ye=!0)}}function A(){d.value=[],v.value="",I.value="",C.value="",Ke()}async function N(){if(!d.value.length)return;const J=vd(d.value,{color:I.value});typeof window<"u"&&(window.__UPG_LAST_CLIPBOARD__=J);let z=!1;try{navigator.clipboard&&navigator.clipboard.writeText?(await navigator.clipboard.writeText(J),z=!0):z=E(J)}catch{z=E(J)}v.value=z?"Copied!":"Copy failed — press Ctrl/Cmd-C",setTimeout(()=>{v.value.startsWith("Copied")&&(v.value="")},1800)}function E(J){try{const z=document.createElement("textarea");z.value=J,z.style.position="fixed",z.style.opacity="0",z.style.top="0",document.body.appendChild(z),z.focus(),z.select();const te=document.execCommand&&document.execCommand("copy");return document.body.removeChild(z),!!te}catch{return!1}}function K(J){if(s&&typeof s.cacheSourceData=="function"){const z=Pk({records:J,leafZones:ye,adm1Counts:gr,iso3Names:ia,countryNameMap:_,centroidFor:te=>{const le=V(te);return le?[(le[0][0]+le[1][0])/2,(le[0][1]+le[1][1])/2]:null}});s.cacheSourceData(ti,{normalizedData:z})}B=Ek({records:J,leafZones:ye,adm1Counts:gr,iso3Names:ia,countryNameMap:_}),typeof window<"u"&&(window.__UPG_SEARCH__={size:()=>B.length,counts:()=>{const z={pg:0,zone:0,territory:0};for(const te of B)z[te.kind]=(z[te.kind]||0)+1;return z},query:z=>kd(B,z,{limit:Ad}).map(te=>({label:te.label,kind:te.kind,target:te.target})),select:z=>{const te=kd(B,z,{limit:Ad})[0];return te?(q(te.target),{label:te.label,kind:te.kind,target:te.target}):null},feedSize:()=>{const z=s&&s.sources&&s.sources[ti];return z&&Array.isArray(z.features)&&z.features.length||0},localGeocoder:z=>{const te=G.value&&G.value.geocoder,le=te&&te.options&&te.options.localGeocoder;return le?le(z).map(Ce=>Ce&&Ce.place_name):null}})}function Y(J){const z=J&&J.properties||{},te=z.__upgKind;if(te==="zone")b(z.__zoneId);else if(te==="territory")D(z.__shapeName);else{const le=J&&J.geometry,Ce=le&&Array.isArray(le.coordinates)?le.coordinates:null;Ce&&Number.isFinite(Ce[0])&&Number.isFinite(Ce[1])&&T&&T.flyTo({center:[Ce[0],Ce[1]],zoom:6,duration:800}),f(z.slug)}}function Z(J){if(!J||!T)return;const z=new Set(J.memberIds||[]);if(!z.size)return;let te=[];try{te=T.querySourceFeatures("upg").filter(De=>{const he=De.properties||{};return z.has(he.slug)||z.has(he.id)||z.has(he.peopleGroupId)})}catch{return}if(!te.length)return;let le=180,Ce=90,Nt=-180,mt=-90,Oe=!1;for(const De of te){const he=De.geometry&&De.geometry.coordinates;!Array.isArray(he)||!Number.isFinite(he[0])||!Number.isFinite(he[1])||(he[0]Nt&&(Nt=he[0]),he[1]mt&&(mt=he[1]),Oe=!0)}Oe&&T.fitBounds([[le,Ce],[Nt,mt]],{padding:60,duration:800,maxZoom:6})}function X(){_e(null),i&&typeof i.selectPeopleGroup=="function"&&i.selectPeopleGroup(null)}function q(J){!J||!T||(J.type==="pg"?(Number.isFinite(J.lng)&&Number.isFinite(J.lat)&&T.flyTo({center:[J.lng,J.lat],zoom:6,duration:800}),f(J.slug)):J.type==="zone"?b(J.zoneId):J.type==="territory"&&D(J.shapeName))}function f(J){if(!J||!i||typeof i.selectPeopleGroup!="function")return;const z=T&&T.getSource&&T.getSource("upg"),le=(z&&z._data&&z._data.features||[]).find(Ce=>Ce.properties&&Ce.properties.slug===J);le&&i.selectPeopleGroup(le)}function b(J){if(!J||!T||!se)return;const z=V(te=>te.properties&&te.properties.zoneKey===J);z&&T.fitBounds(z,{padding:40,duration:800,maxZoom:6})}function D(J){if(!J||!T||!se)return;const z=V(te=>{const le=te.properties||{};return le.shapeName===J||le.iso3===J});z&&T.fitBounds(z,{padding:40,duration:800,maxZoom:6})}function V(J){let z=180,te=90,le=-180,Ce=-90,Nt=!1;const mt=Oe=>{if(typeof Oe[0]=="number"){const[De,he]=Oe;Dele&&(le=De),heCe&&(Ce=he),Nt=!0;return}for(const De of Oe)mt(De)};for(const Oe of se.features)J(Oe)&&mt(Oe.geometry.coordinates);return Nt?[[z,te],[le,Ce]]:null}function ie(J){const z=new Set,te=le=>{le.children&&le.children.length?le.children.forEach(te):z.add(le.zoneKey??le.id)};return te(J),z}let re=null;function j(J){if(![...ie(J)].length)return;const te=[],le=Oe=>{Oe.children&&Oe.children.length?Oe.children.forEach(le):te.push(Oe)};le(J);const Ce=d.value,Nt=new Set(Ce.filter(Oe=>Oe.kind==="zone").map(Oe=>Oe.key));if(te.every(Oe=>Nt.has("zone:"+(Oe.zoneKey??Oe.id)))){const Oe=new Set(te.map(De=>"zone:"+(De.zoneKey??De.id)));d.value=Ce.filter(De=>!Oe.has(De.key))}else{const Oe=te.filter(De=>!Nt.has("zone:"+(De.zoneKey??De.id))).map(De=>({key:"zone:"+(De.zoneKey??De.id),name:De.label||De.id,count:Number(De.count)||0,kind:"zone"}));d.value=[...Ce,...Oe]}Ke(),v.value=""}function S(){const J=new Set;for(const z of d.value)z.kind==="zone"&&J.add(z.key.slice(5));return J}function O(){const J=new Map,z=te=>{const le=ie(te);te.label&&J.set(te.label,le),te.children&&te.children.length&&te.children.forEach(z)};for(const te of p.value)z(te);return J}function ne(){if(typeof document>"u")return;const J=document.querySelector("my-upg-100-list-map"),te=(J&&J.shadowRoot||document).querySelectorAll(".stl-row");if(!te.length)return;if(!m.value){te.forEach(mt=>mt.classList.remove("upg-batch-row"));return}const le=S(),Ce=O(),Nt=w.value;te.forEach(mt=>{const Oe=mt.querySelector(".stl-name"),De=Oe?Oe.textContent.trim():"",he=De&&Ce.get(De),qe=!!(he&&he.size&&[...he].every(lt=>le.has(lt)));mt.classList.toggle("upg-batch-row",qe),mt.classList.toggle("dark",qe&&Nt)})}let ce=null;function ge(){if(typeof document>"u"||ce)return;const J=document.querySelector("my-upg-100-list-map"),te=(J&&J.shadowRoot||document).querySelector(".stl-rows");te&&(ce=new MutationObserver(()=>{requestAnimationFrame(()=>ne())}),ce.observe(te,{childList:!0,subtree:!0}))}Pt("onSemanticTreeSelect",_e);function Le(J){const z=g.value;if(!z)return;if(J==="packet"){c.value="Prayer List — coming soon",setTimeout(()=>{c.value=""},2600);return}const te=$s(a.value),le=document.createElement("a");le.href=`${te}/posters/${z}.webp`,le.download=`doxa-upg-100-${z}-poster.webp`,document.body.appendChild(le),le.click(),le.remove()}function _e(J){if(!T||!T.getLayer("tapestry-fill"))return;if(m.value){J&&j(J);return}if(!J){re=null,g.value=null,T.setFilter("tapestry-fill",null),T.setFilter("tapestry-line",null),T.setPaintProperty("upg-pins","circle-opacity",1);return}re=J;const z=[...ie(J)];g.value=z.length===1?z[0]:J.id??null;const te=["in",["get","zoneKey"],["literal",z]];T.setFilter("tapestry-fill",te),T.setFilter("tapestry-line",te),T.getLayer("upg-pins")&&T.setPaintProperty("upg-pins","circle-opacity",["case",["in",["get","zoneKey"],["literal",z]],.95,.05]);const le=V(Ce=>z.includes(Ce.properties.zoneKey));le&&T.fitBounds(le,{padding:40,duration:700,maxZoom:6})}function ct(){!T||!se||(Xe(),typeof fe=="function"&&fe(),Qe(),$t(),Ke(),g.value&&T.getLayer("tapestry-fill")&&_e(re))}function Fe(){T&&(w.value=!w.value,h.theme.value=w.value?"dark":"light",T.setStyle(w.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11"),T.once("style.load",ct))}function tt(){!T||!T.getLayer("upg-pins")||(T.on("click","upg-pins",J=>{const z=J&&J.features&&J.features[0];z&&i&&typeof i.selectPeopleGroup=="function"&&i.selectPeopleGroup(z)}),T.on("mouseenter","upg-pins",()=>{T&&(T.getCanvas().style.cursor="pointer")}),T.on("mouseleave","upg-pins",()=>{T&&(T.getCanvas().style.cursor="")}))}let lo=null;function fr(J){var le;const z=((le=J==null?void 0:J.detail)==null?void 0:le.listId)??null;if(!z){_e(null);return}const te=Cd(p.value,z);te&&_e(te)}function Cd(J,z){for(const te of J||[]){if((te.zoneKey||te.id)===z)return te;const le=te.children&&Cd(te.children,z);if(le)return le}return null}function sw(){const J=Qs(o,{deafCount:oi});p.value=J,ye=hd(J);const z={};for(const te of o.lists||[])z[te.id]=te.selector;for(const te of o.asia_lists||[])z[te.id]=te.selector;for(const te of o.uncovered_lists||[])z[te.id]=te.selector;z.deaf={type:"affinity_bloc",rop1:"A017"};for(const te of ye)te.selector=z[te.id];ae=We(ye)}async function Ed(){try{const z=await fetch(`${Pe}/api/people-groups/list?fields=slug,name,country_code,wagf_region,wagf_block,rop1,population,latitude,longitude&lang=en`,{cache:"no-store"});if(!z.ok)throw new Error(`list ${z.status}`);const te=Ls(Cs(await z.json()));_=yd(te),p.value=Qs(o,{deafCount:oi,records:te})}catch{}}return to(async()=>{var Ce,Nt,mt,Oe,De;sw();const J=window.mapboxgl,z=(n==null?void 0:n.value)||((Ce=a==null?void 0:a.value)==null?void 0:Ce.tk)||"";if(!J){c.value="⚠ mapbox-gl not loaded",u.value="mapbox-gl did not load. The list and legend are unaffected.",Ed();return}if(!z){c.value="⚠ no mapbox token",u.value="No Mapbox token configured. The list and legend are unaffected.",Ed();return}J.accessToken=z;try{const he=l.value&&l.value.getRootNode();if(he instanceof ShadowRoot){const qe="https://api.mapbox.com/mapbox-gl-js/v3.3.0/mapbox-gl.css";if(!he.querySelector(`link[href="${qe}"]`)){const lt=document.createElement("link");lt.rel="stylesheet",lt.href=qe,he.prepend(lt)}}}catch{}T=new J.Map({container:l.value,style:"mapbox://styles/mapbox/light-v11",center:[35,20],zoom:1.5,projection:"mercator"}),x.value=T,oe=Nk(((Nt=l.value)==null?void 0:Nt.parentElement)||null,{enabled:r.value}),typeof window<"u"&&(window.__UPG_MAP__=T),window.__UPG_SELECT__={get list(){return d.value.map(he=>({...he}))},get total(){return y.value},get count(){return k.value},get color(){return I.value},get batchMode(){return m.value},setColor:he=>F(he),setBatchMode:he=>$(he),clipboardText:()=>vd(d.value,{color:I.value}),clear:()=>A(),toggleByProps:he=>{const qe=_d(he,{nameMap:_});return qe?(R(qe),{...qe}):null},toggleLegendRow:he=>{const qe=jo=>{for(const at of jo){if(at.label===he)return at;if(at.children&&at.children.length){const co=qe(at.children);if(co)return co}}return null},lt=qe(p.value);return lt?(j(lt),{label:lt.label,zoneKeys:[...ie(lt)]}):null},markedLegendRows:()=>{if(typeof document>"u")return[];const he=document.querySelector("my-upg-100-list-map");return[...(he&&he.shadowRoot||document).querySelectorAll(".stl-row.upg-batch-row .stl-name")].map(lt=>lt.textContent.trim())},highlightFeatureCount:()=>{if(!T||!se||!T.getLayer("upg-sel-fill"))return-1;const he=new Set,qe=new Set,lt=new Set;for(const at of d.value)at.kind==="zone"?he.add(at.key.slice(5)):at.kind==="adm1"?qe.add(at.name):at.kind==="adm0"&<.add(at.key.slice(5));let jo=0;for(const at of se.features){const co=at.properties||{};(he.has(co.zoneKey)||qe.has(co.shapeName)||lt.has(co.iso3))&&jo++}return jo},zoneKeysForRow:he=>{const qe=jo=>{for(const at of jo){if(at.label===he)return at;if(at.children&&at.children.length){const co=qe(at.children);if(co)return co}}return null},lt=qe(p.value);return lt?[...ie(lt)]:null}};try{c.value="loading boundaries…";const he=Ne=>`${$s(a.value)}/boundaries/${Ne}`,qe=Ne=>fetch(he(Ne)).then(bt=>{if(!bt.ok)throw new Error(`boundary fetch ${bt.status} ${Ne}`);return bt.json()}),[lt,jo,at]=await Promise.all([qe("world-adm0.geojson"),qe("gb-IND-ADM1.geojson"),qe("gb-CHN-ADM1.geojson")]);c.value="fetching 2106 UUPGs…";const ni=await fetch(`${Pe}/api/people-groups/list?fields=slug,name,country_code,wagf_region,wagf_block,rop1,population,latitude,longitude&lang=en`,{cache:"no-store"});if(!ni.ok)throw new Error(`list ${ni.status}`);const $n=Ls(Cs(await ni.json()));_=yd($n),p.value=Qs(o,{deafCount:oi,records:$n});const{tapestry:iw,perZone:lw}=Ak(ye,{records:$n,adm0:lt,adm1Ind:jo,adm1Chn:at});se=Uo(iw),K($n);const ai=[],la={},{evaluate:cw}=await Cn(async()=>{const{evaluate:Ne}=await Promise.resolve().then(()=>jy);return{evaluate:Ne}},void 0);for(const Ne of ye)if(Ne.selector&&Ne.selector.type==="pg_slugs")for(const bt of Ne.selector.values||[])bt in la||(la[bt]=Ne.zoneKey);else try{for(const bt of cw(Ne.selector,$n))bt in la||(la[bt]=Ne.zoneKey)}catch(bt){console.warn("zone selector skipped",Ne.id,bt&&bt.message)}for(const Ne of $n){const bt=Number(Ne.latitude),si=Number(Ne.longitude);!isFinite(bt)||!isFinite(si)||ai.push({type:"Feature",geometry:{type:"Point",coordinates:[si,bt]},properties:{slug:Ne.slug,zoneKey:la[Ne.slug]||"",name:Ne.name||Ne.slug||"",population:Ne.population??0,countryName:Ne.country_code_label||"",country:Ne.country_code||""}})}const uw=Uo({type:"FeatureCollection",features:ai});fe=()=>{T.getSource("upg")||(T.addSource("upg",{type:"geojson",data:uw}),T.addLayer({id:"upg-pins",type:"circle",source:"upg",paint:{"circle-radius":["interpolate",["linear"],["zoom"],1,4,4,6,8,9],"circle-color":ae,"circle-opacity":1,"circle-stroke-width":["interpolate",["linear"],["zoom"],1,1.2,8,2],"circle-stroke-color":"rgba(15,20,25,0.9)"}}),tt())};let ri=!0;const Ln=()=>{ri&&(ri=!1,T.off("style.load",Ln),T.off("idle",Ln),ct())};if(T.isStyleLoaded())Ln();else{T.once("style.load",Ln),T.once("idle",Ln);const Ne=setInterval(()=>{if(!ri||!T){clearInterval(Ne);return}let bt=!1;try{bt=T.isStyleLoaded()}catch{clearInterval(Ne);return}bt&&(clearInterval(Ne),Ln())},120);setTimeout(()=>clearInterval(Ne),15e3)}const Td=[...lw.entries()].filter(([Ne])=>Ne!=="deaf"),dw=Td.filter(([,Ne])=>Ne>=1).length;c.value=`${se.features.length} polys · ${dw}/${Td.length} zones · ${ai.length} pins`}catch(he){c.value="⚠ "+(he&&he.message?he.message:String(he))}let te=0;const le=()=>{const he=typeof document<"u"&&document.querySelector("my-upg-100-list-map"),qe=he&&he.shadowRoot||(typeof document<"u"?document:null);if(qe&&qe.querySelector(".stl-rows")){ge(),ne();return}te++<40&&setTimeout(le,250)};le();{const he=(De=(Oe=(mt=l.value)==null?void 0:mt.getRootNode)==null?void 0:Oe.call(mt))==null?void 0:De.host;he&&(lo=fr,he.addEventListener("doxa:select-zone",lo))}}),yo(()=>{var J,z,te;if(lo){const le=(te=(z=(J=l.value)==null?void 0:J.getRootNode)==null?void 0:z.call(J))==null?void 0:te.host;le==null||le.removeEventListener("doxa:select-zone",lo),lo=null}if(ce){try{ce.disconnect()}catch{}ce=null}if(oe){try{oe()}catch{}oe=null}T&&(T.remove(),T=null),se=null}),(J,z)=>{var te;return W(),ee("div",Ik,[P("div",{ref_key:"mapEl",ref:l,class:"upg-map"},null,512),u.value?(W(),ee("div",Rk,[z[1]||(z[1]=P("strong",null,"Map unavailable",-1)),dt(de(u.value),1)])):me("",!0),r.value?(W(),ee($e,{key:1},[z[2]||(z[2]=P("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),z[3]||(z[3]=P("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1))],64)):me("",!0),x.value?(W(),rt(yk,{key:2,ref_key:"geocoderRef",ref:G,"map-instance":x.value,"access-token":be(n)||((te=be(a))==null?void 0:te.tk)||"","data-source-id":ti,"is-dark":w.value,placeholder:qk,"active-context":Yk,onPeopleGroupResult:Y,onAggregateResult:Z,onClear:X},null,8,["map-instance","access-token","is-dark"])):me("",!0),x.value?(W(),rt($1,{key:3},{default:jt(()=>[je(C1,{map:x.value,"is-dark":w.value},null,8,["map","is-dark"]),je(E1,{map:x.value,"is-dark":w.value},null,8,["map","is-dark"]),je(T1,{map:x.value,"is-dark":w.value},null,8,["map","is-dark"]),je(N1,{"map-container":l.value,"is-dark":w.value},null,8,["map-container","is-dark"]),je(R1,{"is-dark":w.value,onToggle:Fe},null,8,["is-dark"]),je(ud,{"is-dark":w.value,"embed-path":"my-upg-100-list/upg-100-list/index.html"},null,8,["is-dark"]),je(Xo,{"is-dark":w.value,active:m.value,class:Ae({"upg-batch-on":m.value}),"aria-pressed":m.value?"true":"false",title:"Batch Select",onClick:L},{default:jt(()=>[...z[4]||(z[4]=[P("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[P("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1"}),P("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1"}),P("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1"}),P("rect",{x:"14",y:"14",width:"7",height:"7",rx:"1"})],-1)])]),_:1},8,["is-dark","active","class","aria-pressed"])]),_:1})):me("",!0),P("div",Fk,[p.value.length?(W(),rt(Iu,{key:0,nodes:p.value,tabs:U,columns:["count","pop"],title:Sd,"export-enabled":!0,onSelect:_e,onExport:Le},null,8,["nodes"])):me("",!0)]),P("div",Ok,[p.value.length?(W(),rt(A1,{key:0,"legend-type":"upg-100",nodes:p.value,columns:["count","pop"],"column-label":"UPG 100",title:Sd,"is-dark":w.value,"popup-action":"pray"},null,8,["nodes","is-dark"])):me("",!0)]),P("div",Dk,[be(i)&&be(i).selectedPeopleGroup?(W(),ee("div",{key:0,class:Ae(["upg-detail-panel pg-detail-root",{dark:w.value}])},[je(be(t),{peopleGroup:be(i).selectedPeopleGroup,dark:w.value,action:"pray"},null,8,["peopleGroup","dark"])],2)):me("",!0)]),m.value?(W(),ee("div",Bk,[z[5]||(z[5]=P("div",{class:"upg-hud-hint"}," Tap territories on the map or legend rows to add · tap again to remove ",-1)),k.value?(W(),ee("div",jk,[P("span",null,de(k.value)+" territor"+de(k.value===1?"y":"ies")+" ·",1),P("span",Gk,de(y.value)+" UUPG",1),P("span",{class:Ae(["upg-hud-band",{ok:y.value>=50&&y.value<=100}])},de(y.value>=50&&y.value<=100?"✓ 50–100 band":"band 50–100"),3)])):me("",!0),k.value?(W(),ee("div",Uk,de(d.value.map(le=>le.name).join(", ")),1)):me("",!0),k.value?(W(),ee("div",Kk,[(W(),ee($e,null,St(M,le=>P("button",{key:le,class:Ae(["upg-swatch",{active:I.value===le}]),"data-color":le,style:et({background:le}),title:le,onClick:Ce=>F(le)},null,14,zk)),64)),Sp(P("input",{"onUpdate:modelValue":z[0]||(z[0]=le=>C.value=le),class:"upg-hex",placeholder:"#hex",spellcheck:"false",onChange:H,onKeyup:os(H,["enter"])},null,544),[[af,C.value]])])):me("",!0),k.value?(W(),ee("div",Hk,[P("button",{class:"upg-hud-btn copy",onClick:N},"Copy selection"),P("button",{class:"upg-hud-btn clear",onClick:A},"Clear")])):me("",!0),k.value?(W(),ee("div",Vk,de(v.value),1)):me("",!0)])):me("",!0),P("div",Wk,de(c.value),1)])}}}},Symbol.toStringTag,{value:"Module"})),Zk=` /* The column that scrolls. Vertical neighbours stack here and the user scrolls between them; scroll-snap makes each pane settle cleanly instead of stopping half-way between two views. */ diff --git a/public/doxa-maps/my-upg-100-list/poster-wall/index.html b/public/doxa-maps/my-upg-100-list/poster-wall/index.html index 5a947b9d0..3bff1431f 100644 --- a/public/doxa-maps/my-upg-100-list/poster-wall/index.html +++ b/public/doxa-maps/my-upg-100-list/poster-wall/index.html @@ -29,7 +29,7 @@ - + - + - + - + - + - + - + - +